This task is to collect changes (possibly breaking changes), that may go into 2.8x.
//note, this could be moved to the wiki, but find Phabricators discussions work better.//
- Use Python 3.6 [[ https://www.python.org/dev/peps/pep-0498 | Literal String Interpolation ]] for all string formatting.
Benefit: more readable, and faster evaluation than modulo or format method.
- Use keyword only arguments for internal API's for optional arguments which adjust function behavior //(can be decided on case-by case basis, [[ https://www.blender.org/api/blender_python_api_current/bpy.utils.html | bpy.utils ]] is an example where keyword only arguments can be used for most options)//
Benefit: ability to extend API without worrying about argument order, also more readable code.
- Support keyword only arguments for RNA API.
- Replace term `median` with `mean` (incorrect use was all over C code and leaked into Python API): `Matrix.median_scale`, `BMFace.calc_center_median`, `BMFace.calc_center_median_weighted`.
- Change / remove `bpy.app.handlers.scene_update_pre`, This is currently running **continuously** because of changes to scene evaluation, many scripts abuse it to execute functions many times a second.
Since the original purpose of this callback is no longer working as expected, we should make this run only on scene updates, or - remove it.
Benefit: Add-on's should remain fast and not slow down Blender by running code continuously.
- Change behavior or Vector multiply & divide, see discussion on D1743.
Benefit: Ability to perform element-wise division/multiplication.
- Investigate supporting `asyncio`.
Benefit: Better options for performing asynchronous operations.
- Replace our own auto-completion with Python's for the Py-Console //(more a general TODO)//.
Benefit: Less code for us to maintain (this isn't and urgent task though).
- Use type hints //(since these are very new, we can take a *wait and see* approach, but seems like these could be useful - and could be automatically set for RNA API's).//
Benefit: Better support code introspection and static checkers.