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:
Campbell Barton
2021-02-21 21:21:18 +11:00
parent de67e3c0c0
commit 08dbc4f996
19 changed files with 123 additions and 12 deletions

View File

@@ -16,6 +16,9 @@
#
# ##### END GPL LICENSE BLOCK #####
# <pep8 compliant>
from __future__ import annotations
import bpy
from bpy_extras.asset_utils import (