Open
Description
Python 3.13 Compatibility Investigation
Based on research in PR #337, there are two major blockers for Python 3.13 compatibility:
1. fastavro Package (1.8.2)
The package fails to build with Python 3.13 due to several C API changes:
-
Use of deprecated Unicode APIs:
Py_UNICODE
type (deprecated)_PyUnicode_FastCopyCharacters
(should usePyUnicode_CopyCharacters
)
-
Missing or changed internal C APIs:
_PyDict_SetItem_KnownHash
undefined_PyObject_NextNotImplemented
undefined_PyLong_AsByteArray
signature change
2. requests-cache Package
This is also a blocker for Python 3.12 compatibility (see #299).
Required Steps for Python 3.13 Support
- Track and update fastavro once they add Python 3.13 support
- Resolve requests-cache compatibility (tracked in Third party
requests-cache
breaks Python 3.12 compatibility #299) - Re-test with Python 3.13 once both dependencies are updated
Related Links
- Research PR: ci: Do not merge: Research Python 3.13 compatibility #337 with CI failure details: https://github.com/airbytehq/airbyte-python-cdk/actions/runs/13314288230/job/37184392678?pr=337
- Python 3.12 compatibility issue: Third party
requests-cache
breaks Python 3.12 compatibility #299