Skip to main content

A utility library for Free Threaded Python programming

Project description

Welcome to ft_utils!

We're excited to share this library with you, designed to help you build high-performance applications with Free Threaded Python.

License

ft_utils is open-source software, licensed under the permissive MIT license. You can find the full license terms in our LICENSE file.

Contributing and Code Standards

We'd love for you to contribute to ft_utils! To ensure that our codebase remains maintainable and efficient, we follow some simple guidelines. Please take a look at our CONTRIBUTING.md document for more information.

Extra Guidelines

In addition to these guidelines, we have a few extra rules to keep in mind:

  • Language: We use C11 and Python as our only programming languages. Build scripts can be in other languages.
  • Cross-Platform Compatibility: Our code must compile on Windows, Linux, and Mac(arm).
  • GIL and Free Threaded Python: All functionality should work seamlessly on both GIL and Free Threaded Python, although results may vary slightly between the two environments.
  • Unit Tests: Every feature must have at least one unit test to ensure it works correctly.
  • Benchmarks: It is best practice to write benchmarks for all new features to further test and to drive our aim of high performance.

Documentation

See to documentation.

Build And CI

Source Only

At the time of writing ft_utils is a source only distribution. You will need to build the wheel yourself.

Build The Wheel

You will need a source code version of CPython. To run for Free Threaded Python, at the time of writing, this means you will require CPython 3.13 and compile as 3.13t. This code will also compile under 3.12 but then you only get the GIL version.

Please ensure you are in a virtual environment. If you cannot, or do not wish to do this then you will need to coomment out the call to check_env() in setup.py.

Once you have everything in place, please execute setup.py as a python script:

python -P setup.py bdist_wheel

If this does not work due to networking then you might need use a proxy; for example:

https_proxy=http://fwdproxy:8080 python setup.py

To install just install the wheel; for example on Windows:

python -m pip install build\dist\ft_utils-0.1.0-cp314-cp314-win_amd64.whl

Or:

python -m pip install --force-reinstall build\dist\ft_utils-0.1.0-cp314-cp314-win_amd64.whl

CI

The code in ft_utils is built and tested interally within Meta. At the time of writing there is no external CI.

However, once installed you can test the code via python -m ft_utils.tests.test_run_all. This will not work if your current working directory is the ft_utils source director (due to name clash). This will run all the tests and benchmarks which are known good and report any failures.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

ft_utils-0.1.0-cp314-cp314t-manylinux_2_34_x86_64.whl (285.7 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.34+ x86-64

ft_utils-0.1.0-cp314-cp314-manylinux_2_34_x86_64.whl (246.3 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.34+ x86-64

ft_utils-0.1.0-cp313-cp313t-win_amd64.whl (99.2 kB view details)

Uploaded CPython 3.13tWindows x86-64

ft_utils-0.1.0-cp313-cp313t-musllinux_1_2_x86_64.whl (287.2 kB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ x86-64

ft_utils-0.1.0-cp313-cp313t-musllinux_1_2_i686.whl (272.5 kB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ i686

ft_utils-0.1.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (295.7 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ x86-64

ft_utils-0.1.0-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl (277.1 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ i686

ft_utils-0.1.0-cp313-cp313t-macosx_11_0_arm64.whl (88.7 kB view details)

Uploaded CPython 3.13tmacOS 11.0+ ARM64

ft_utils-0.1.0-cp313-cp313-win_amd64.whl (96.7 kB view details)

Uploaded CPython 3.13Windows x86-64

ft_utils-0.1.0-cp313-cp313-musllinux_1_2_x86_64.whl (248.4 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

ft_utils-0.1.0-cp313-cp313-musllinux_1_2_i686.whl (234.2 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ i686

ft_utils-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (253.8 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

ft_utils-0.1.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl (237.2 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ i686

ft_utils-0.1.0-cp313-cp313-macosx_11_0_arm64.whl (85.5 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

ft_utils-0.1.0-cp312-cp312-musllinux_1_2_x86_64.whl (221.4 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

ft_utils-0.1.0-cp312-cp312-musllinux_1_2_i686.whl (212.5 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ i686

ft_utils-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (227.9 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

ft_utils-0.1.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl (215.3 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ i686

File details

Details for the file ft_utils-0.1.0-cp314-cp314t-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for ft_utils-0.1.0-cp314-cp314t-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 3db3447b9b0127b47419f2cc792526e01857b81c98b39d7aaa1adf8aebb12501
MD5 e2f4f09c7eea68e995a2db333eaf58ba
BLAKE2b-256 24509f265f2cfed51f2c51fa46cba4539143937ef02544123326ef3a07bd5c49

See more details on using hashes here.

Provenance

The following attestation bundles were made for ft_utils-0.1.0-cp314-cp314t-manylinux_2_34_x86_64.whl:

Publisher: build.yml on kddnewton/ft_utils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ft_utils-0.1.0-cp314-cp314-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for ft_utils-0.1.0-cp314-cp314-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 60517a838d7815cdce8331c6e3210841f2922f4cdae4dc8924f2d2663ac07bdf
MD5 047cf4a124b365107d116df6bb22278b
BLAKE2b-256 c1bca9ca077ea1c6825192a65ebb0556cc826c506c784bed2d396cc3e002d215

See more details on using hashes here.

Provenance

The following attestation bundles were made for ft_utils-0.1.0-cp314-cp314-manylinux_2_34_x86_64.whl:

Publisher: build.yml on kddnewton/ft_utils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ft_utils-0.1.0-cp313-cp313t-win_amd64.whl.

File metadata

  • Download URL: ft_utils-0.1.0-cp313-cp313t-win_amd64.whl
  • Upload date:
  • Size: 99.2 kB
  • Tags: CPython 3.13t, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for ft_utils-0.1.0-cp313-cp313t-win_amd64.whl
Algorithm Hash digest
SHA256 c1a15ea199a15afde136e5bfaa2f2dffbed81a35ff757a6854fca3bc22a561a2
MD5 b7fd7df838e8d03de7c609b264097b44
BLAKE2b-256 bc0d8ea3dba44297880ee6745d8ee696e3a83f4c943d1face94f3d75ea2f7e93

See more details on using hashes here.

Provenance

The following attestation bundles were made for ft_utils-0.1.0-cp313-cp313t-win_amd64.whl:

Publisher: build.yml on kddnewton/ft_utils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ft_utils-0.1.0-cp313-cp313t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for ft_utils-0.1.0-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 1afcf576fba86ddb73ced6745ba45d708f3c46321b9db40fa9c61afbf434d675
MD5 b4cd4a17a4c94ec8b71e8371a5bcbcd4
BLAKE2b-256 833ae08d9b1288100def4fa96e3d812997f78381eae634548f5e118ef06be8e1

See more details on using hashes here.

Provenance

The following attestation bundles were made for ft_utils-0.1.0-cp313-cp313t-musllinux_1_2_x86_64.whl:

Publisher: build.yml on kddnewton/ft_utils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ft_utils-0.1.0-cp313-cp313t-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for ft_utils-0.1.0-cp313-cp313t-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 dc9b9b995ded08f37c4f2a31764d31df6a763106a229b78e297b3de803f7fde5
MD5 f67dbb6a31a91a395829f9a61b8abf4e
BLAKE2b-256 6f05e33c56d27b0fe51ddcfff318f945ce7e77892addb5539505ee1d176dd183

See more details on using hashes here.

Provenance

The following attestation bundles were made for ft_utils-0.1.0-cp313-cp313t-musllinux_1_2_i686.whl:

Publisher: build.yml on kddnewton/ft_utils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ft_utils-0.1.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ft_utils-0.1.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a91c25dd631910bfbcd6387328c46a169c8a25d4e35db95ebffde8542623f5f8
MD5 e08fefff9f3248e5bc7179fa94898f02
BLAKE2b-256 5fa6b288465a5a5b8e000de7180b71729c98347b3121fd8df25e31747c66ce0a

See more details on using hashes here.

Provenance

The following attestation bundles were made for ft_utils-0.1.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: build.yml on kddnewton/ft_utils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ft_utils-0.1.0-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for ft_utils-0.1.0-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 5796dcd43ee3856a7d5f4a5b40f9add56b0eb51a044ffe1c64ecf90c7a2f5f26
MD5 2be2007c398408bc9a6571cc49fa5759
BLAKE2b-256 f45ee1823b5998555cdbe262b1842c42074ced3deed71701363c7bda8ee054f9

See more details on using hashes here.

Provenance

The following attestation bundles were made for ft_utils-0.1.0-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl:

Publisher: build.yml on kddnewton/ft_utils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ft_utils-0.1.0-cp313-cp313t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ft_utils-0.1.0-cp313-cp313t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7fdc4f559279edba17b78b9d6fbd2a00ce888d2bae0dc5aefbef415f220db17a
MD5 f1daeba36f638ea9ec87d46dad70c08d
BLAKE2b-256 d0d20b492a6dbbadb5b5db215fa895c4d10aabf99bee95756a8c8543b06346bc

See more details on using hashes here.

Provenance

The following attestation bundles were made for ft_utils-0.1.0-cp313-cp313t-macosx_11_0_arm64.whl:

Publisher: build.yml on kddnewton/ft_utils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ft_utils-0.1.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: ft_utils-0.1.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 96.7 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for ft_utils-0.1.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 2ee196e966d485128fc758947fecaebb5df8729a4a019f66d523c1e80f1e2e16
MD5 b0a34e3bdccd79525cdc5066256063cf
BLAKE2b-256 31e24f9eec86cde03b1da5251dbda0f1d07f13d183c681ad096baacdf400d284

See more details on using hashes here.

Provenance

The following attestation bundles were made for ft_utils-0.1.0-cp313-cp313-win_amd64.whl:

Publisher: build.yml on kddnewton/ft_utils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ft_utils-0.1.0-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for ft_utils-0.1.0-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 c4cb329635b24f454761f2ef7a205547add90a82a58abfa04201e6ef3464c498
MD5 1a4e91488c89186950c37052d5474ef6
BLAKE2b-256 a89f3f90b35f6d261c0a13a3454b89b73c99d648556f001486d4481fae9b971f

See more details on using hashes here.

Provenance

The following attestation bundles were made for ft_utils-0.1.0-cp313-cp313-musllinux_1_2_x86_64.whl:

Publisher: build.yml on kddnewton/ft_utils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ft_utils-0.1.0-cp313-cp313-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for ft_utils-0.1.0-cp313-cp313-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 62914d40cabd3e52986c57d409a85645b3ae4e522f364cf79f6fc919eb5fe1a7
MD5 9826c6d3cb9ff0d74e23fae3d1eff25c
BLAKE2b-256 b6c3055d1dfc5f5a95b11d160c2a859c6e6433d46ba67c949dfb81d6577ba944

See more details on using hashes here.

Provenance

The following attestation bundles were made for ft_utils-0.1.0-cp313-cp313-musllinux_1_2_i686.whl:

Publisher: build.yml on kddnewton/ft_utils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ft_utils-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ft_utils-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 04b14cbdb1e80dc272be197c9a9a01ee9fd1bc74d8bd9c0b675b879717499dce
MD5 e21c877bf976c45547de39b990951c21
BLAKE2b-256 91f5e9f3c978672b710134a97fb53aa00216ae16bd7822086601d9820ac06704

See more details on using hashes here.

Provenance

The following attestation bundles were made for ft_utils-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: build.yml on kddnewton/ft_utils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ft_utils-0.1.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for ft_utils-0.1.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 79b01bf435ef44a912ac2d74178057245c3186fce97a93b3d2a445e8be727876
MD5 ee71d79e2b8891659be506da5ae92dc7
BLAKE2b-256 dba598e6d86b3d847fb12ff44f49390a0b4cd44cc2b6adfcf51894ba4be23f49

See more details on using hashes here.

Provenance

The following attestation bundles were made for ft_utils-0.1.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl:

Publisher: build.yml on kddnewton/ft_utils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ft_utils-0.1.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ft_utils-0.1.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ce01c54581455adc805f8106fe76766f089a5fa1a5c338283cf42d22b6ca3630
MD5 4b2e1bb8d6d81413914630a14b4bfce5
BLAKE2b-256 64b96272d3aa6dcec0fa476c49b16c95c606a5617eede8448eef4ed84e8c386f

See more details on using hashes here.

Provenance

The following attestation bundles were made for ft_utils-0.1.0-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: build.yml on kddnewton/ft_utils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ft_utils-0.1.0-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for ft_utils-0.1.0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9f5772317d33ddf5572f39f24866bdd4a240a66106b19d1ce12bb9c1d841bdc4
MD5 be4664e93e292bd20e55590963a989ae
BLAKE2b-256 2bbcdf350a070343c005a08294064d56f5ff4bc275a0927b1fb417c7d4579776

See more details on using hashes here.

Provenance

The following attestation bundles were made for ft_utils-0.1.0-cp312-cp312-musllinux_1_2_x86_64.whl:

Publisher: build.yml on kddnewton/ft_utils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ft_utils-0.1.0-cp312-cp312-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for ft_utils-0.1.0-cp312-cp312-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 70decfa0e52c0e82d30a3cdd3e3014d4b4f81ad2aac970c6a02072b8d330b4f6
MD5 fbe88c408169d9d893eeee1d8a38c5b8
BLAKE2b-256 d6c9abe5cc65351fe6460be70a2dded95cf80d754593d782b08b9731e1776b03

See more details on using hashes here.

Provenance

The following attestation bundles were made for ft_utils-0.1.0-cp312-cp312-musllinux_1_2_i686.whl:

Publisher: build.yml on kddnewton/ft_utils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ft_utils-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ft_utils-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 171c7a87652769014a8e0923f4fe003c7273ef11d69f9674dcd6fa77e48672df
MD5 916f6959ace42365005e65097f9277e6
BLAKE2b-256 10e841df933c70a521086dce04e5723a9a5461266bf145ac094e44a8448df545

See more details on using hashes here.

Provenance

The following attestation bundles were made for ft_utils-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: build.yml on kddnewton/ft_utils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ft_utils-0.1.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for ft_utils-0.1.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 cbcb88993f8704d3d041eed5b40c9316ff63a00ce2900f86070d4b867fa025f9
MD5 bf69493dedf2801825aa340331b79332
BLAKE2b-256 6218d5faa6c6bcf88a75c88b328cffc8c8d8383e5a4ce57fa22833bcec5cbd1f

See more details on using hashes here.

Provenance

The following attestation bundles were made for ft_utils-0.1.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl:

Publisher: build.yml on kddnewton/ft_utils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page