-
Notifications
You must be signed in to change notification settings - Fork 230
Open
Labels
feature requestNew feature wantedNew feature wantedlongtermLong standing issues that need to be resolvedLong standing issues that need to be resolved
Milestone
Description
Description of the desired feature
Python 3.13 came out with an experimental free-threaded mode with the global-interpreter lock disabled (PEP 703). This issue is to track the addition for PyGMT to build free-threaded compatible wheels.
Main guide: https://py-free-threading.github.io/porting/
Steps:
- Test building PyGMT on Python 3.13t in CI
- Document thread safety guarantees via trove classifiers
- Validate thread safety using
pytest-freethreaded
orpytest-run-parallel
Notes:
- Some GMT modules already support multi-threading via the
-x
flag, which happens via OpenMP, need to be careful that we don't do threading of many PyGMT functions + call multi-threaded GMT functions - Related thread on multi-processing support - Support multiprocessing without importing gmt in each process #217
- Dependencies that have added free-threading support
- NumPy (since 2.1) - https://numpy.org/doc/2.3/reference/thread_safety.html
- Pandas (since 2.2.3) - https://pandas.pydata.org/pandas-docs/version/2.2/whatsnew/v2.2.3.html#pandas-2-2-3-is-now-compatible-with-python-3-13
Are you willing to help implement and maintain this feature?
Yes
Metadata
Metadata
Assignees
Labels
feature requestNew feature wantedNew feature wantedlongtermLong standing issues that need to be resolvedLong standing issues that need to be resolved