pFad - Phone/Frame/Anonymizer/Declutterfier! Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

URL: http://github.com/apache/iceberg-python/pull/3324

/global-5efd63e783ac04bb.css" /> Infra: Add Python 3.14 free-threaded (PEP 703) support by kevinjqliu · Pull Request #3324 · apache/iceberg-python · GitHub
Skip to content

Infra: Add Python 3.14 free-threaded (PEP 703) support#3324

Draft
kevinjqliu wants to merge 1 commit into
apache:mainfrom
kevinjqliu:kevinjqliu/support-3.14t
Draft

Infra: Add Python 3.14 free-threaded (PEP 703) support#3324
kevinjqliu wants to merge 1 commit into
apache:mainfrom
kevinjqliu:kevinjqliu/support-3.14t

Conversation

@kevinjqliu
Copy link
Copy Markdown
Contributor

Rationale for this change

Closes #3322

This is mostly autogenerated by Claude to test the feasibility of 3.14t Looks like there are still dependent libraries without 3.14t support (bodo / ray / sql-postgres / hive-kerberos / datafusion)

Adds support for building and testing pyiceberg under free-threaded Python (3.14t).

Changes

Cython extension (decoder_fast.pyx, setup.py, pyproject.toml)

  • Add # cython: freethreading_compatible=True directive to decoder_fast.pyx
  • Detect Py_GIL_DISABLED at build time and set freethreading_compatible compiler directive in setup.py
  • Bump Cython build requirement from >=3.0.0 to >=3.1.0 (required for freethreading_compatible)

Thread safety (singleton.py)

  • Add double-checked locking to the Singleton metaclass to prevent races without the GIL

Build system (Makefile)

  • Detect free-threaded Python via PYTHON=3.14t and automatically exclude extras that lack free-threaded wheels (bodo, ray, sql-postgres, hive-kerberos, datafusion)
  • Skip corresponding test files (test_datafusion.py, test_upsert.py, kerberos tests)

CI workflows

  • Add 3.14t to the lint-and-unit-test matrix in python-ci.yml
  • Enable free-threaded wheel builds in pypi-build-artifacts.yml and svn-build-artifacts.yml (CIBW_FREE_THREADED_SUPPORT: "true", remove CIBW_SKIP: "cp3*t-*")

Are these changes tested?

Are there any user-facing changes?

Co-authored-by: Copilot <copilot@github.com>
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.

Support Python 3.14 free-threaded

1 participant

pFad - Phonifier reborn

Pfad - The Proxy pFad © 2024 Your Company Name. All rights reserved.





Check this box to remove all script contents from the fetched content.



Check this box to remove all images from the fetched content.


Check this box to remove all CSS styles from the fetched content.


Check this box to keep images inefficiently compressed and original size.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy