PyAPI: use postponed annotations to support Python 3.10

Support Python 3.10a5 or 3.9x with support explicitly enabled.

- Enable Python's postponed annotations for Blender's RNA classes
  types registered on startup.

- Using postponed annotations has implications for how they are defined,
  since they must evaluate in the modules name-space instead of the
  classes name-space. See changes to annotations in `release/scripts`.

- Use `from __future__ import annotations` at the top of the module
  to ensure the script will run with Python 3.10.

- Old logic is kept since it could be used if PEP-649 is supported.

Resolves T83626

Ref D10474
This commit is contained in:
2021-02-21 21:21:18 +11:00
parent de67e3c0c0
commit 08dbc4f996
19 changed files with 123 additions and 12 deletions

View File

@@ -17,6 +17,7 @@
# ##### END GPL LICENSE BLOCK #####
# <pep8-80 compliant>
from __future__ import annotations
from bpy.types import (
Operator,