8299e073cf
PyAPI: support Python 3.13
- `_PySet_NextEntry` has been removed, use generic iterator access
which will has some additional overhead as it needs to create
an iterator to access the values.
- Add v3.13 compatibility defines to account for renaming:
_PyObject_LookupAttr -> PyObject_GetOptionalAttr
_PyLong_AsInt -> PyLong_AsInt
- Unfortunately use of Python's internal API needs to be used to
inspect op-codes in `bpy_driver.cc`.
Testing GLTF/FBX IO there isn't any significant performance impact
from these changes.
Resolves #123871.
---
Unbreak building with Python 3.12
Support for 3.13 [0] broke 3.12.
[0]: d9f38fca5f
---
Back port:
- 829b16e4f096717b831bde3110e06399772be876
- 8e18ee8276e47bd9aa139b218b394438b7df4530
Pull Request: https://projects.blender.org/blender/blender/pulls/139023