Skip to content

Conversation

@igorcoding
Copy link
Owner

  • Add PyUnicodeWriter compatibility macros for Python 3.14+ (Python 3.14 introduced public PyUnicodeWriter API, deprecating private _PyUnicodeWriter)
  • Add PyHASH_MULTIPLIER compatibility macro for Python 3.13+ (Python 3.13 introduced public PyHASH_MULTIPLIER constant)
  • Update ttuple_repr() and ttuple_hash() to use new compatibility macros
  • Simplify trashcan macros (always use Py_TRASHCAN_BEGIN/END for Python 3.8+)
  • Remove obsolete Python 2.x and <3.7 backports from datetime handling
  • Remove python.pxd (no longer needed, use standard cpython.datetime)
  • Update datetime.pyx to use cpython.datetime's timezone_new and datetime_from_timestamp
  • Remove dateutil dependency from tests (datetime.fromisoformat available since 3.7)

@igorcoding igorcoding force-pushed the python314-support branch 5 times, most recently from d7c69ff to 649748b Compare January 18, 2026 20:41
Python 3.14 compatibility:
- Add PyUnicodeWriter compatibility macros for Python 3.14+
  (Python 3.14 introduced public PyUnicodeWriter API, deprecating private _PyUnicodeWriter)
- Add PyHASH_MULTIPLIER compatibility macro for Python 3.13+
  (Python 3.13 introduced public PyHASH_MULTIPLIER constant)
- Update ttuple_repr() and ttuple_hash() to use new compatibility macros

Free-threaded Python support:
- Add `freethreading_compatible=True` Cython directive to protocol.pyx
- Disable C freelist in tupleobj.c when Py_GIL_DISABLED is defined
  (global static arrays are not thread-safe without the GIL)

Code cleanup (Python 3.9+ minimum):
- Simplify trashcan macros (always use Py_TRASHCAN_BEGIN/END for Python 3.9+)
- Remove obsolete Python 2.x and <3.7 backports from datetime handling
- Remove python.pxd (no longer needed, use standard cpython.datetime)
- Update datetime.pyx to use cpython.datetime's timezone_new and datetime_from_timestamp
- Remove dateutil dependency from tests (datetime.fromisoformat available since 3.7)

Co-Authored-By: Claude Opus 4.5 <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants