Skip to main content

pyots (PYthon OT Sanitizer)

Run Tests Build Python Wheels

PyPI PyPI

macOS ubuntu windows

Python wrapper for OpenType Sanitizer, also known as just "OTS". It is similar to and partially based on ots-python, but builds OTS as a Python C Extension (instead of as an executable and calling through subprocess as ots-python does).

NOTE: Although this package is similar to ots-python, it is not a drop-in replacement for it, as the Python API is different.

Requirements

The project builds pip-installable wheels for Python 3.10, 3.11, 3.12, 3.13, or 3.14 under Mac, Linux, or Windows. It is possible this project will build and run with other Pythons and other operating systems, but it has only been tested with the listed configurations.

Installation with pip

If you just want to use pyots, you can simply run python -m pip install -U pyots (in one of the supported platforms/Python versions) which will install pre-built, compiled, ready-to-use Python wheels. Then you can skip down to the Use section.

Installation/setup for developing pyots

If you'd like to tinker with the pyots code, you will want to get your local setup ready:

  • clone this repo
  • run python setup.py download to download the OTS source (which is not included in this project). You can modify the version value in setup.cfg under [download] to specify a different version of OTS. You'll also need to change the sha256 hash value that corresponds to the OTS tar.xz package. Note that this scheme has some limitations: OTS sources older than 8.1.3 might not build correctly since they used different build systems. Also, versions newer than the one specified in this repo might require adjustments in order to build correctly. What can we say, we're dependent on ots...
  • to build and install pyots after downloading OTS, you can run python setup.py install or python -m pip install .
  • while iterating changes, you will want to delete the temporary build and src/ots/build folders.

Testing

There is a test suite defined for exercising the Python extension. It makes use (and assumes the presence of) the downloaded OTS library source's test font data in src/ots so ensure you have run python setup.py download and have the ots folder under src. Invoke the tests with python -m pytest.

If you wish to run tests comparing results from ots-python against pyots, be sure to python -m pip install opentype-sanitizer first, otherwise that set of tests will be skipped.

Use

Simplest case:

import pyots

result = pyots.sanitize("/path/to/font/file.ttf")

result is an OTSResult object with 3 attributes:

  • sanitized Boolean indicating whether the file was successfully sanitized
  • modified Boolean indicating whether the file was modified* during sanitization
  • messages Tuple of message strings generated during sanitization (may be empty)
  • Note: currently the back-end OTS code can modify fonts that are successfully sanitized, even when no changes are performed. Thus modified can sometimes be True when sanitized is True. Usually the modification is only to the modification date and related checksums. Thus, it might be possible to devise a better detection of modification, i.e. ignoring head.modified and other inconsequential modifications, but that was out-of-scope for this work.

Example: sanitizing a folder of font files

# sanitize a folder of fonts. Print messages for any that were not successfully sanitized.
import pyots
from pathlib import Path

for filename in Path("src/ots/tests/fonts/good").rglob("*"):
    result = pyots.sanitize(filename.absolute())
    if not result.sanitized:
        print(f"{filename}:\n{', '.join([m for m in result.messages])}")

Options for sanitize()

  • Specify keyword output=<path_to_output_file> to the sanitize() command and the sanitized file will be saved to that location
  • Use quiet=True for sanitize() to suppress messages
  • Specify font_index=<index_in_TTC> when sanitizing a Collection (OTC/TTC) file and you want to sanitize only a particular index within the Collection (otherwise all will be sanitized per OTS's default behavior)

Release files for pyots 9.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyots 9.3.0
File Size Uploaded
pyots-9.3.0.tar.gz 22.2 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for pyots 9.3.0
File
pyots-9.3.0-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
pyots-9.3.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ x86-64 Details
pyots-9.3.0-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
pyots-9.3.0-cp314-cp314-macosx_10_15_x86_64.whl CPython 3.14 CPython 3.14 macOS 10.15+ x86-64 Details
pyots-9.3.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
pyots-9.3.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64 Details
pyots-9.3.0-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
pyots-9.3.0-cp313-cp313-macosx_10_13_x86_64.whl CPython 3.13 CPython 3.13 macOS 10.13+ x86-64 Details
pyots-9.3.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
pyots-9.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details
pyots-9.3.0-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
pyots-9.3.0-cp312-cp312-macosx_10_13_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.13+ x86-64 Details
pyots-9.3.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
pyots-9.3.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details
pyots-9.3.0-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
pyots-9.3.0-cp311-cp311-macosx_10_9_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.9+ x86-64 Details
pyots-9.3.0-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
pyots-9.3.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64 Details
pyots-9.3.0-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details
pyots-9.3.0-cp310-cp310-macosx_10_9_x86_64.whl CPython 3.10 CPython 3.10 macOS 10.9+ x86-64 Details

Total release size: 10.4 MB

Release files / pyots-9.3.0.tar.gz

Download URL pyots-9.3.0.tar.gz
Size 22.2 kB
Tags Source
SHA-256 checksum
How to use checksums
835b117c5b4b3f1a7371bbb540ef8e23ecba8839a263d88103569daee7a98dab
BLAKE2b-256 checksum
How to use checksums
fb9f915ff83dacd52518c4a2f21b2ea274fd27ff37255dfe2e7872e1576114c3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 7, 2026.

Transparency log

Release files / pyots-9.3.0-cp314-cp314-win_amd64.whl

Download URL pyots-9.3.0-cp314-cp314-win_amd64.whl
Size 519.9 kB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
5098b630f62ae8062c3bbc4af2edfe0a85a4c2673d392fb57e1949bf30487a12
BLAKE2b-256 checksum
How to use checksums
70abd846d81e99e0b6d79270914e37fc8db71eca769e6bbe90dcfd928db041d1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 7, 2026.

Transparency log

Release files / pyots-9.3.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL pyots-9.3.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 770.0 kB
Tags CPython 3.14 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
d8add2fc3df5a9a18ce9aad648d76e65882a8be834bba671f920da22d6cc0024
BLAKE2b-256 checksum
How to use checksums
6d73752c7595d10b549e7b5f778dcce3792cc1fce1b8b181812d8bebb4b2d2b0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 7, 2026.

Transparency log

Release files / pyots-9.3.0-cp314-cp314-macosx_11_0_arm64.whl

Download URL pyots-9.3.0-cp314-cp314-macosx_11_0_arm64.whl
Size 397.9 kB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
65c462490b9e21503475e398f93b4f1ebd6015cfc9f83cf819ad75ffab811a98
BLAKE2b-256 checksum
How to use checksums
6aa560ec3a6f979f1875521ef4aa34726cbb169d933f50418aaebbf717366c15
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 7, 2026.

Transparency log

Release files / pyots-9.3.0-cp314-cp314-macosx_10_15_x86_64.whl

Download URL pyots-9.3.0-cp314-cp314-macosx_10_15_x86_64.whl
Size 400.8 kB
Tags CPython 3.14 macOS 10.15+ x86-64
SHA-256 checksum
How to use checksums
fd8ca962b72e119df72dce4d9ceeaf1e742956c94d3616ac91fc33139bfb12fd
BLAKE2b-256 checksum
How to use checksums
4ea229d85858d75fc98c5a5e44b58ceb609dc913fd6f926f1564e610b78d73e0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 7, 2026.

Transparency log

Release files / pyots-9.3.0-cp313-cp313-win_amd64.whl

Download URL pyots-9.3.0-cp313-cp313-win_amd64.whl
Size 504.5 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
0453370796b134c964290acbc4dd186e9009e399cf9dcbff622d4641d7f855d8
BLAKE2b-256 checksum
How to use checksums
74950fb4d5e18515df505a94924d43e86615b5063097a111a49cce7f89a2849e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 7, 2026.

Transparency log

Release files / pyots-9.3.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL pyots-9.3.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 770.0 kB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
b74dfb13e4e83c6e1bbb058124a8ea37783c8a47e4df435f14f220ada52ae161
BLAKE2b-256 checksum
How to use checksums
5ca720364a3454c5d95c9f4353c1a64bddd11ee2dcc4883ae2234cc043087ba4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 7, 2026.

Transparency log

Release files / pyots-9.3.0-cp313-cp313-macosx_11_0_arm64.whl

Download URL pyots-9.3.0-cp313-cp313-macosx_11_0_arm64.whl
Size 397.9 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
928dffbceef91035e4e113d3c411eec61ba3cc59f97b3d286b3515dc98fd416b
BLAKE2b-256 checksum
How to use checksums
16e4ecefe136d260a12e0c7be84781527c6de1292eff42d4342fa2d1be5ed3e0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 7, 2026.

Transparency log

Release files / pyots-9.3.0-cp313-cp313-macosx_10_13_x86_64.whl

Download URL pyots-9.3.0-cp313-cp313-macosx_10_13_x86_64.whl
Size 400.8 kB
Tags CPython 3.13 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
204a85b240451bd9f2ffc94fb7256e720fb8ad5a3cfd4a78d16bd7c16c7ab457
BLAKE2b-256 checksum
How to use checksums
333387b1eb3f0b85c89d88d361943b27070455954e3f33eff652773e49b62267
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 7, 2026.

Transparency log

Release files / pyots-9.3.0-cp312-cp312-win_amd64.whl

Download URL pyots-9.3.0-cp312-cp312-win_amd64.whl
Size 504.5 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
766db6b3c246d0fa0906919f2d4fba4a82d7a16c463da94f3bda7c8544d5d0b4
BLAKE2b-256 checksum
How to use checksums
cf5abf46296f77f23d78dcf0037f7c2e70a17dd986d0a5264f493595469842b0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 7, 2026.

Transparency log

Release files / pyots-9.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL pyots-9.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 770.1 kB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
29442c16c954a3bd78be079a421739b36b79f8f0192d3d3e2ea7e412b096a6d6
BLAKE2b-256 checksum
How to use checksums
edeac1cc242b1f32a0c41796d9316a66e1e6906479d653c1dba9482087f8cca8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 7, 2026.

Transparency log

Release files / pyots-9.3.0-cp312-cp312-macosx_11_0_arm64.whl

Download URL pyots-9.3.0-cp312-cp312-macosx_11_0_arm64.whl
Size 397.9 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
84cf2020413696f2cfd56385265be5179308afcda8422f66063d302a9bf5a1dc
BLAKE2b-256 checksum
How to use checksums
a921563d1d8108cf8887bc9f7ac58a4ae0bc782547c370c6b27f912c4e44224e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 7, 2026.

Transparency log

Release files / pyots-9.3.0-cp312-cp312-macosx_10_13_x86_64.whl

Download URL pyots-9.3.0-cp312-cp312-macosx_10_13_x86_64.whl
Size 400.8 kB
Tags CPython 3.12 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
d89b3bedb28fcbe52070a350e8c9dd03ee44d9a3ff2424b1a911ee79f15e5fec
BLAKE2b-256 checksum
How to use checksums
adf2c55efa0b52a21e1d80d15d4dca9a6a98637040fcaa44a86070247123ca11
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 7, 2026.

Transparency log

Release files / pyots-9.3.0-cp311-cp311-win_amd64.whl

Download URL pyots-9.3.0-cp311-cp311-win_amd64.whl
Size 504.5 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
9e670416b2fa7594db8780c4def72c854c2e4ee657c59b98433367ec61aa5bd7
BLAKE2b-256 checksum
How to use checksums
23ef289a429e8867e02af648844c468cb426051ad82b882b4e6485cd6bf42315
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 7, 2026.

Transparency log

Release files / pyots-9.3.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL pyots-9.3.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 769.9 kB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
957308d61959cb660b4d37564d96cb13c4f5937d5b01deef3476c6dea96db744
BLAKE2b-256 checksum
How to use checksums
46bf1f926111f0a19362e7757da9e9cd7abb5f6bb2292c7f1b2c22effa6ebdd7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 7, 2026.

Transparency log

Release files / pyots-9.3.0-cp311-cp311-macosx_11_0_arm64.whl

Download URL pyots-9.3.0-cp311-cp311-macosx_11_0_arm64.whl
Size 397.8 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
2047abc6b043a5718606de5d601b4a8fb9d58387ad39dc33c578fe66ce8e6fc2
BLAKE2b-256 checksum
How to use checksums
f823e89a76cfdad8d3293371a625093538a84adb661750705a57488e3665ce96
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 7, 2026.

Transparency log

Release files / pyots-9.3.0-cp311-cp311-macosx_10_9_x86_64.whl

Download URL pyots-9.3.0-cp311-cp311-macosx_10_9_x86_64.whl
Size 400.8 kB
Tags CPython 3.11 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
b8436ad34175ce6827eac5dbd6f7804d197f6b425ae7a671195e42799d991ea2
BLAKE2b-256 checksum
How to use checksums
02abbf5695a45f2ff75a0c1bede18a735dbbc0074faa60c99989939b091acc41
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 7, 2026.

Transparency log

Release files / pyots-9.3.0-cp310-cp310-win_amd64.whl

Download URL pyots-9.3.0-cp310-cp310-win_amd64.whl
Size 504.5 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
52d5872d82224206036079812613044f53a6b56ec18ce8427996c57a24933bb3
BLAKE2b-256 checksum
How to use checksums
e70ee1ce12050798b3f246ba9204d05eb438ce84b38f7755991f0eda587e35c0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 7, 2026.

Transparency log

Release files / pyots-9.3.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL pyots-9.3.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 769.9 kB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
651cc293706b946cff6ba4690d71c0f3a5fe73e2ff695ab90b3e7ed013ff1e0c
BLAKE2b-256 checksum
How to use checksums
872643e95a7b77761dd6dd8e1aa39827048f882ea4d4843e896fe2e983c3dc98
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 7, 2026.

Transparency log

Release files / pyots-9.3.0-cp310-cp310-macosx_11_0_arm64.whl

Download URL pyots-9.3.0-cp310-cp310-macosx_11_0_arm64.whl
Size 397.9 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
b595d926f8b53fe7dbe9676ae0b32a3581c32da3651f837a1e805d8fe818d8d1
BLAKE2b-256 checksum
How to use checksums
39679f4e9def991dfb4c417731a0c830392c8cf943ca6fd24520fa46a6f1cd58
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 7, 2026.

Transparency log

Release files / pyots-9.3.0-cp310-cp310-macosx_10_9_x86_64.whl

Download URL pyots-9.3.0-cp310-cp310-macosx_10_9_x86_64.whl
Size 400.8 kB
Tags CPython 3.10 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
ec0b62470d5fa11295e4c5c90709e848f39265f8f83dc1ca0c5be22440576c74
BLAKE2b-256 checksum
How to use checksums
b25f7d273893835c7e22f419fc54fd66634fd6fcbe16ed04834b4cb54aec386a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 7, 2026.

Transparency log
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page