Skip to main content

YAML parser and emitter for Python with support for free-threading

Project description

PyYAML-ft

A full-featured YAML processing framework for Python with support for free-threading

Why a fork?

PEP 703 introduced free-threaded Python as a separate build of CPython 3.13. Thread-safety issues that might have otherwise gone unnoticed are now much easier to trigger because of the absence of protection from the GIL. Also, because the free-threaded build is ABI-incompatible, extension modules need to be separate, free-threaded wheels and declare support for it.

The PyYAML maintainers decided to not port PyYAML to the free-threaded build before the latter, along with Cython support for it, has been tested more extensively in real-world applications. Our rationale with this fork is to implement support for the free-threaded build, so that PyYAML can be tested with it by its users, even before the port is merged upstream.

Differences compared with upstream

  • This fork uses Cython 3.1 which supports the free-threaded build, but whose support is still experimental.

  • add_constructor, add_representer and add_*resolver now all use thread-local registries, so you will have to explicitly register your custom constrcutors, representers and resolvers in each thread. Here's a small test showcasing that:

    import io
    import threading
    import yaml_ft as yaml
    
    
    class Dice:
        def __init__(self, first, second):
            self.first = first
            self.second = second
        def __repr__(self):
            return f"Dice({self.first}, {self.second})"
    
    
    def construct_dice(constructor, node):
        mapping = constructor.construct_mapping(node)
        return Dice(**mapping)
    
    
    def load_dice():
        yamlcode = io.StringIO("""\
    - !dice
      first: 1
      second: 6
    - !dice
      first: 4
      second: 4
    """)
        print(f"Thread {threading.current_thread().name}")
        try:
            objs = yaml.load(yamlcode, Loader=yaml.CLoader)
            print(f"\t{objs=}")
        except Exception as e:
            print(f"\tException occurred: {e!s}")
    
    yaml.add_constructor("!dice", construct_dice, Loader=yaml.CLoader)
    load_dice()
    
    t = threading.Thread(target=load_dice)
    t.start()
    t.join()
    

    Running the above script gives the following:

     python3.13t tmp/t.py
    Thread MainThread
            objs=[Dice(1, 6), Dice(4, 4)]
    Thread Thread-1 (load_dice)
            Exception occurred: could not determine a constructor for the tag '!dice'
      in "<file>", line 1, column 3
    

    If you see new errors in multithreaded programs using PyYAML-ft that work with PyYAML, you may need to add calls to yaml_ft.add_constructor, yaml_ft.add_representer yaml_ft.add_implicit_resolver or yaml_ft.add_path_resolver in your thread worker function or worker initialization function.

Python versions support

Because PyYAML-ft is only aiming to exist for as long as upstream PyYAML does not support the free-threaded build, we recommend that users only conditionally switch to PyYAML-ft.

At this time, PyYAML-ft only supports Python 3.13 and 3.13t (i.e. the free-threaded build of 3.13). To switch to it, you can do the following in your requirements.txt file:

...
PyYAML; python_version < '3.13'
PyYAML-ft; python_version >= '3.13'

If you're developing a library that depends on PyYAML and you're using pyproject.toml to specify your dependencies, you can do the following:

dependencies = [
  ...,
  "PyYAML; python_version<'3.13'",
  "PyYAML-ft; python_version>='3.13'",
]

Different module name

PyYAML-ft uses a different module name (namely yaml_ft) than upstream PyYAML on purpose, so that both can be installed in an environment at the same time.

If your library depends on both for different Python versions, you can do the following for ease of use:

try:
    import yaml_ft as yaml
except ModuleNotFoundError:
    import yaml

Installation

To install, type pip install PyYAML-ft.

When LibYAML bindings are installed (enabled by default), you may use the fast LibYAML-based parser and emitter as follows:

>>> yaml.load(stream, Loader=yaml.CLoader)
>>> yaml.dump(data, Dumper=yaml.CDumper)

If you don't trust the input YAML stream, you should use:

>>> yaml.safe_load(stream)

Building from source and testing

To build PyYAML-ft from source:

  1. Clone the fork repository with git clone https://github.com/Quansight-Labs/pyyaml-ft.

  2. Create a new virtual environment with python3.13 -m venv .venv.

  3. Run source .venv/bin/activate to activate your new virtual environment.

  4. Run python3.13 -m pip install .. This will build PyYAML-ft from source and install it in the newly created virtual environment. By default, the installation process will try to install the LibYAML bindings as well, but will fail silently if it cannot and instead use the pure-Python version.

    To get the latest version of the LibYAML bindings, you can use the libyaml.sh installation script:

    ./packaging/build/libyaml.sh  # This will install the bindings
    

    After the bindings are installed, you can force installing the bindings with the following invocation:

    PYYAML_FORCE_CYTHON=1 \
    PYYAML_FORCE_LIBYAML=1 \
    CFLAGS="-Ilibyaml/include" \
    LDFLAGS="-Llibyaml/src/.libs" \
    python -m pip install -v .
    

To test PyYAML-ft:

  1. Install pytest with python3.13 -m pip install pytest.

  2. Run the tests by just invoking pytest in the root directory of the project.

  3. Optionally, you can also run the free-threading tests with pytest-run-parallel:

    python3.13 -m pip install pytest-run-parallel
    python3.13 -m pytest --parallel-threads=auto --iterations=20 tests/free_threading
    

Further Information

License

The PyYAML module was written by Kirill Simonov xi@resolvent.net. It is currently maintained by the YAML and Python communities.

PyYAML-ft was forked by Quansight-Labs and is currently maintained by a team of engineers working on ecosystem-wide support for free-threading. It is released under the MIT license.

See the file LICENSE for more details.

Project details


Download files

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

Source Distribution

pyyaml_ft-8.0.0.tar.gz (141.1 kB view details)

Uploaded Source

Built Distributions

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

pyyaml_ft-8.0.0-cp313-cp313t-win_amd64.whl (171.6 kB view details)

Uploaded CPython 3.13tWindows x86-64

pyyaml_ft-8.0.0-cp313-cp313t-musllinux_1_2_x86_64.whl (835.6 kB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ x86-64

pyyaml_ft-8.0.0-cp313-cp313t-musllinux_1_2_aarch64.whl (810.4 kB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARM64

pyyaml_ft-8.0.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (815.8 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ x86-64

pyyaml_ft-8.0.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl (831.6 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ s390x

pyyaml_ft-8.0.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (811.3 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ARM64

pyyaml_ft-8.0.0-cp313-cp313t-macosx_11_0_arm64.whl (182.9 kB view details)

Uploaded CPython 3.13tmacOS 11.0+ ARM64

pyyaml_ft-8.0.0-cp313-cp313t-macosx_10_13_x86_64.whl (191.3 kB view details)

Uploaded CPython 3.13tmacOS 10.13+ x86-64

pyyaml_ft-8.0.0-cp313-cp313-win_amd64.whl (158.8 kB view details)

Uploaded CPython 3.13Windows x86-64

pyyaml_ft-8.0.0-cp313-cp313-musllinux_1_2_x86_64.whl (799.2 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

pyyaml_ft-8.0.0-cp313-cp313-musllinux_1_2_aarch64.whl (758.5 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

pyyaml_ft-8.0.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (778.7 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

pyyaml_ft-8.0.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl (786.8 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ s390x

pyyaml_ft-8.0.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (746.8 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

pyyaml_ft-8.0.0-cp313-cp313-macosx_11_0_arm64.whl (176.1 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pyyaml_ft-8.0.0-cp313-cp313-macosx_10_13_x86_64.whl (187.0 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

File details

Details for the file pyyaml_ft-8.0.0.tar.gz.

File metadata

  • Download URL: pyyaml_ft-8.0.0.tar.gz
  • Upload date:
  • Size: 141.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for pyyaml_ft-8.0.0.tar.gz
Algorithm Hash digest
SHA256 0c947dce03954c7b5d38869ed4878b2e6ff1d44b08a0d84dc83fdad205ae39ab
MD5 df806c6aca443619a1a8214b2d678836
BLAKE2b-256 5eeb5a0d575de784f9a1f94e2b1288c6886f13f34185e13117ed530f32b6f8a8

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyyaml_ft-8.0.0.tar.gz:

Publisher: ci.yaml on Quansight-Labs/pyyaml-ft

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

File details

Details for the file pyyaml_ft-8.0.0-cp313-cp313t-win_amd64.whl.

File metadata

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

File hashes

Hashes for pyyaml_ft-8.0.0-cp313-cp313t-win_amd64.whl
Algorithm Hash digest
SHA256 de04cfe9439565e32f178106c51dd6ca61afaa2907d143835d501d84703d3793
MD5 3a47eae5dfa918b219119c7ed1e59092
BLAKE2b-256 c02826534bed77109632a956977f60d8519049f545abc39215d086e33a61f1f2

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyyaml_ft-8.0.0-cp313-cp313t-win_amd64.whl:

Publisher: ci.yaml on Quansight-Labs/pyyaml-ft

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

File details

Details for the file pyyaml_ft-8.0.0-cp313-cp313t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyyaml_ft-8.0.0-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 3bb4b927929b0cb162fb1605392a321e3333e48ce616cdcfa04a839271373255
MD5 2b689ffb9f3be15370b6b959fe4ae56f
BLAKE2b-256 d5d2e369064aa51009eb9245399fd8ad2c562bd0bcd392a00be44b2a824ded7c

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyyaml_ft-8.0.0-cp313-cp313t-musllinux_1_2_x86_64.whl:

Publisher: ci.yaml on Quansight-Labs/pyyaml-ft

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

File details

Details for the file pyyaml_ft-8.0.0-cp313-cp313t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pyyaml_ft-8.0.0-cp313-cp313t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 052561b89d5b2a8e1289f326d060e794c21fa068aa11255fe71d65baf18a632e
MD5 9528cc4e8d9967305234b76a1bbf59df
BLAKE2b-256 0510f42c48fa5153204f42eaa945e8d1fd7c10d6296841dcb2447bf7da1be5c4

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyyaml_ft-8.0.0-cp313-cp313t-musllinux_1_2_aarch64.whl:

Publisher: ci.yaml on Quansight-Labs/pyyaml-ft

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

File details

Details for the file pyyaml_ft-8.0.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyyaml_ft-8.0.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bd48d639cab5ca50ad957b6dd632c7dd3ac02a1abe0e8196a3c24a52f5db3f7a
MD5 540f2d6ff99427219176bc9eb86db660
BLAKE2b-256 e8df161c4566facac7d75a9e182295c223060373d4116dead9cc53a265de60b9

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyyaml_ft-8.0.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: ci.yaml on Quansight-Labs/pyyaml-ft

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

File details

Details for the file pyyaml_ft-8.0.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for pyyaml_ft-8.0.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 dab0abb46eb1780da486f022dce034b952c8ae40753627b27a626d803926483b
MD5 b991a8da7248eea1d27cce559d4834e4
BLAKE2b-256 f96628d82dbff7f87b96f0eeac79b7d972a96b4980c1e445eb6a857ba91eda00

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyyaml_ft-8.0.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl:

Publisher: ci.yaml on Quansight-Labs/pyyaml-ft

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

File details

Details for the file pyyaml_ft-8.0.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyyaml_ft-8.0.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8c56bb46b4fda34cbb92a9446a841da3982cdde6ea13de3fbd80db7eeeab8b49
MD5 6b9d52e58c391120e0d5ee1f6718eeb0
BLAKE2b-256 9a40ae8163519d937fa7bfa457b6f78439cc6831a7c2b170e4f612f7eda71815

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyyaml_ft-8.0.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: ci.yaml on Quansight-Labs/pyyaml-ft

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

File details

Details for the file pyyaml_ft-8.0.0-cp313-cp313t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyyaml_ft-8.0.0-cp313-cp313t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8d445bf6ea16bb93c37b42fdacfb2f94c8e92a79ba9e12768c96ecde867046d1
MD5 24cf0c4677ca6a1770e3a6fc453aa2a4
BLAKE2b-256 0f162710c252ee04cbd74d9562ebba709e5a284faeb8ada88fcda548c9191b47

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyyaml_ft-8.0.0-cp313-cp313t-macosx_11_0_arm64.whl:

Publisher: ci.yaml on Quansight-Labs/pyyaml-ft

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

File details

Details for the file pyyaml_ft-8.0.0-cp313-cp313t-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for pyyaml_ft-8.0.0-cp313-cp313t-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 e64fa5f3e2ceb790d50602b2fd4ec37abbd760a8c778e46354df647e7c5a4ebb
MD5 c9a5f2537ae8e779c0f47260506ce3a9
BLAKE2b-256 5d9b41998df3298960d7c67653669f37710fa2d568a5fc933ea24a6df60acaf6

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyyaml_ft-8.0.0-cp313-cp313t-macosx_10_13_x86_64.whl:

Publisher: ci.yaml on Quansight-Labs/pyyaml-ft

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

File details

Details for the file pyyaml_ft-8.0.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: pyyaml_ft-8.0.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 158.8 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for pyyaml_ft-8.0.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 58e1015098cf8d8aec82f360789c16283b88ca670fe4275ef6c48c5e30b22a96
MD5 f3d9695ef415a7f1a3ec20a16f436b4d
BLAKE2b-256 4eacc492a9da2e39abdff4c3094ec54acac9747743f36428281fb186a03fab76

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyyaml_ft-8.0.0-cp313-cp313-win_amd64.whl:

Publisher: ci.yaml on Quansight-Labs/pyyaml-ft

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

File details

Details for the file pyyaml_ft-8.0.0-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyyaml_ft-8.0.0-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 7d10175a746be65f6feb86224df5d6bc5c049ebf52b89a88cf1cd78af5a367a8
MD5 520c41578fd6fd9639863cdbe5d60b64
BLAKE2b-256 f069ac02afe286275980ecb2dcdc0156617389b7e0c0a3fcdedf155c67be2b80

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyyaml_ft-8.0.0-cp313-cp313-musllinux_1_2_x86_64.whl:

Publisher: ci.yaml on Quansight-Labs/pyyaml-ft

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

File details

Details for the file pyyaml_ft-8.0.0-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pyyaml_ft-8.0.0-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 8a7f332bc565817644cdb38ffe4739e44c3e18c55793f75dddb87630f03fc254
MD5 edb11dd25162c238cb622eefed5364b5
BLAKE2b-256 86edfed0da92b5d5d7340a082e3802d84c6dc9d5fa142954404c41a544c1cb92

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyyaml_ft-8.0.0-cp313-cp313-musllinux_1_2_aarch64.whl:

Publisher: ci.yaml on Quansight-Labs/pyyaml-ft

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

File details

Details for the file pyyaml_ft-8.0.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyyaml_ft-8.0.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 06237267dbcab70d4c0e9436d8f719f04a51123f0ca2694c00dd4b68c338e40b
MD5 daf440f662b5af451a44aee50663518b
BLAKE2b-256 35be58a4dcae8854f2fdca9b28d9495298fd5571a50d8430b1c3033ec95d2d0e

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyyaml_ft-8.0.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: ci.yaml on Quansight-Labs/pyyaml-ft

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

File details

Details for the file pyyaml_ft-8.0.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for pyyaml_ft-8.0.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 cec6c92b4207004b62dfad1f0be321c9f04725e0f271c16247d8b39c3bf3ea42
MD5 8314349672137f173c6e71b8f251d656
BLAKE2b-256 5fc2e8825f4ff725b7e560d62a3609e31d735318068e1079539ebfde397ea03e

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyyaml_ft-8.0.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl:

Publisher: ci.yaml on Quansight-Labs/pyyaml-ft

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

File details

Details for the file pyyaml_ft-8.0.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyyaml_ft-8.0.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 3fa992481155ddda2e303fcc74c79c05eddcdbc907b888d3d9ce3ff3e2adcfb0
MD5 952c4e4fe30dd7a9ab9261b87ffb06ad
BLAKE2b-256 e3bb23a9739291086ca0d3189eac7cd92b4d00e9fdc77d722ab610c35f9a82ba

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyyaml_ft-8.0.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: ci.yaml on Quansight-Labs/pyyaml-ft

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

File details

Details for the file pyyaml_ft-8.0.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyyaml_ft-8.0.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 30c5f1751625786c19de751e3130fc345ebcba6a86f6bddd6e1285342f4bbb69
MD5 0c6711e81ea7eb2abc46d1a0e3344b6b
BLAKE2b-256 adc5a3d2020ce5ccfc6aede0d45bcb870298652ac0cf199f67714d250e0cdf39

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyyaml_ft-8.0.0-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: ci.yaml on Quansight-Labs/pyyaml-ft

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

File details

Details for the file pyyaml_ft-8.0.0-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for pyyaml_ft-8.0.0-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 8c1306282bc958bfda31237f900eb52c9bedf9b93a11f82e1aab004c9a5657a6
MD5 059f988f111979b533af981085ace974
BLAKE2b-256 68baa067369fe61a2e57fb38732562927d5bae088c73cb9bb5438736a9555b29

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyyaml_ft-8.0.0-cp313-cp313-macosx_10_13_x86_64.whl:

Publisher: ci.yaml on Quansight-Labs/pyyaml-ft

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