Skip to content

Support of Cython 3.1+ and Python 3.12+#22

Draft
elmordo wants to merge 28 commits into
StdCarrot:masterfrom
elmordo:new-cython-support
Draft

Support of Cython 3.1+ and Python 3.12+#22
elmordo wants to merge 28 commits into
StdCarrot:masterfrom
elmordo:new-cython-support

Conversation

@elmordo

@elmordo elmordo commented Jun 26, 2026

Copy link
Copy Markdown

Fix of binary extension compilation on Cython>=3.1 and Python>=3.12.

Unfortunately this changes are not compatible with older Cython and Python because some breaking changes was done in the Python C API.

Because the changes are not backward compatible, I am suggesting to bump version of the Py3AMF library to 0.9.0

@elmordo

elmordo commented Jun 27, 2026

Copy link
Copy Markdown
Author

@StdCarrot I am working on more refactoring/improvement of the installation process (setup.py). Do you prefer separated pull request for this refactoring or add new changes into this one?

@elmordo elmordo marked this pull request as draft June 30, 2026 11:32

Copy link
Copy Markdown
Owner

Thanks for checking. Please add the setup.py / installation process refactoring to this PR.

I am planning a support update for Python up to 3.14 during this summer (2026), so it would be helpful to review and release these compatibility-related changes together.

@elmordo

elmordo commented Jul 3, 2026

Copy link
Copy Markdown
Author

Hello,

I have updated the new-cython-support branch with the second branch setup-cleanup with refactored package setup (setup.py etc), but we have some conflicts.

Main changes I have done:

  1. merged setupinfo.py into the setup.py to avoid "import hacks"
  2. logic responsible for building the C extension completely rewritten
  3. removed the test command from setup.py (tests should be run using runners like pytest)
  4. dependencies (including the extra dependencies) moved to the pyproject.toml
  5. tool configuration moved from the setup.cfg into the pyproject.toml
  6. the --disable-ext flag of the setup.py replaced by the PYAMF_DISABLE_EXT environment variable
  7. pyamf and cpyamf directories moved into the src directory to avoid importing of invalid modules when executing a test runners (mentioned in the README.md and README.rst

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