Skip to main content

tzfpy

  • PyPI FOSSA Status
  • PyPI - Python Version
  • PyPI - Downloads
  • Anaconda-Server Badge
  • Conda Downloads
  • Conda Platform

Changes in 2.0

tzfpy 2.0 upgrades the Rust core from tzf-rs 1.x to 2.0, which carries no protobuf dependency: the boundary data ships as the TZF embedded binary format (.tzb).

The Python API is unchanged. The same six functions with the same names, signatures and return types: get_tz, get_tzs, timezonenames, data_version, get_tz_polygon_geojson, get_tz_index_geojson. Apart from the four changes listed below, code written against 1.x runs unmodified.

Measured differences:

Metric 1.3.3 2.0.0
Memory after import + first query ~72 MB ~41 MB
Wheel size (macOS arm64) 4.31 MB 2.77 MB
Dataset 2026c 2026c

Breaking changes

  1. get_tzs() results are sorted alphabetically. 1.x returned them in internal polygon order. get_tz() returns the first positive match and is the supported way to obtain a single name.
  2. The _TZFPY_DISABLE_Y_STRIPES environment variable was removed. tzf-rs 2 removed FinderOptions, and the YStripes index is always enabled. Setting the variable has no effect and raises no error.
  3. get_tz_polygon_geojson() and get_tz_index_geojson() raise ValueError for a name the dataset does not carry. In 1.x the same input panicked, surfacing as pyo3_runtime.PanicException.
  4. Exported GeoJSON no longer repeats the duplicated junction vertices that the protobuf expansion carried. Query results are identical; byte-for-byte comparisons of exported GeoJSON against 1.x output are not.

Unchanged: coordinate order is (longitude, latitude), the dataset is 2026c, and a point lying exactly on a shared border belongs to both neighbouring zones.

See the tzf-rs v2 changelog for the Rust-side detail.

Usage

Please note that new timezone names may be added to tzfpy, which could be incompatible with old version package like pytz or tzdata. As an option, tzfpy supports install compatible version of those packages with extra params.

# Install just tzfpy
pip install tzfpy

# Install with pytz
pip install "tzfpy[pytz]"

# Install with tzdata. https://github.com/python/tzdata
pip install "tzfpy[tzdata]"

# Install via conda, see more in https://github.com/conda-forge/tzfpy-feedstock
conda install -c conda-forge tzfpy

Experimental full-precision wheels are distributed separately, from this repository's own index rather than PyPI — see Full-precision wheels.

>>> from tzfpy import get_tz, get_tzs
>>> get_tz(116.3883, 39.9289)  # in (longitude, latitude) order.
'Asia/Shanghai'
>>> get_tzs(87.4160, 44.0400)  # in (longitude, latitude) order.
['Asia/Shanghai', 'Asia/Urumqi']

get_tz returns one name, or '' when no timezone covers the point. It is answered from the pre-index when a tile covers the point and by exact point-in-polygon otherwise. get_tzs is always polygon-exact and returns every match, sorted alphabetically: overlapping timezones and points lying exactly on a shared border yield more than one name.

Or you can try it via uvx:

uvx --with tzfpy python -c "from tzfpy import get_tz;tz = get_tz(116.3883,39.9289);print(tz)"
Asia/Shanghai

Export to GeoJSON

For data visualization, you can get timezone polygon GeoJSON data from tzfpy. get_tz_polygon_geojson returns the timezone's boundary polygons; get_tz_index_geojson returns the bounding boxes of its pre-index tiles: the area where get_tz answers from the fast path. Both return a serialized GeoJSON FeatureCollection, and both raise ValueError for a name the dataset does not carry:

from tzfpy import get_tz, get_tz_index_geojson, get_tz_polygon_geojson

lng = -74.0060
lat = 40.7128
tz = get_tz(lng, lat)
print(f"Timezone for ({lng}, {lat}): {tz}")

with open("tz_nyc_polygon.geojson", "w") as f:
    geojson_data = get_tz_polygon_geojson(tz)
    f.write(geojson_data)

with open("tz_nyc_index.geojson", "w") as f:
    geojson_data = get_tz_index_geojson(tz)
    f.write(geojson_data)

Each call re-serializes the geometry, so the cost is proportional to the timezone's polygon size.

Best practices

  1. Always install tzfpy with tzdata extra: pip install tzfpy[tzdata]

  2. Use Python's zoneinfo package(import zoneinfo, aka tzdata in PyPI) to handle timezone names, even if you are using arrow:

    examples/tzfpy_with_datetime.py:

    from datetime import datetime, timezone
    from zoneinfo import ZoneInfo
    
    from tzfpy import get_tz
    
    tz = get_tz(139.7744, 35.6812)  # Tokyo
    
    now = datetime.now(timezone.utc)
    now = now.replace(tzinfo=ZoneInfo(tz))
    print(now)
    # 2025-04-29 01:33:56.325194+09:00
    

    examples/tzfpy_with_arrow.py:

    from zoneinfo import ZoneInfo
    
    import arrow
    from tzfpy import get_tz
    
    tz = get_tz(139.7744, 35.6812)  # Tokyo
    
    arrow_now = arrow.now(ZoneInfo(tz))
    print(arrow_now.format("YYYY-MM-DD HH:mm:ss ZZZ"))
    # 2025-04-29 01:33:56.325194+09:00
    

    If you are using whenever, since whenever use tzdata internally, so it's compatible with tzfpy:

    examples/tzfpy_with_whenever.py:

    from whenever import Instant
    from tzfpy import get_tz
    
    now = Instant.now()
    
    tz = get_tz(139.7744, 35.6812)  # Tokyo
    
    now = now.to_tz(tz)
    
    print(now)
    # 2025-04-29T10:33:28.427784+09:00[Asia/Tokyo]
    

Accuracy

The Douglas-Peucker simplification uses an epsilon of 0.001 degrees, which caps boundary displacement at roughly 111 m by construction. Measured against the full-precision 2026c dataset with tzf's internal/cmd/borderchange (spherical model, certified via Lipschitz interval subdivision):

Metric Result
Certified maximum boundary displacement 111.7 m (+1.0 m tolerance)
Boundary length displaced more than 100 m 0.41%
Boundary length displaced more than 500 m 0%
Total mis-assigned area 16,962 km² (~0.003% of Earth)
Mis-assigned area within 100 m of the true border 92.8%

Only queries within about 111 m of a timezone border can differ from the full-precision result, and most of that band is much narrower. See BORDER_CHANGE.md in the tzf repository for the complete evaluation results.

Full-precision wheels

If that ~111 m band matters for your use case, full-precision wheels embed the unsimplified dataset. Same package, same API, no extra knobs — they are built from the ~14 MB full.tzb instead of the ~4 MB lite.tzb and carry a +full PEP 440 local version:

pip install tzfpy --index-url https://ringsaturn.github.io/tzfpy/full/simple/
>>> import importlib.metadata
>>> importlib.metadata.version("tzfpy")
'2.1.0+full'

The index carries a +full wheel for every tagged release. pip and uv pick the newest stable one by default; pass --pre (or set prerelease = "allow" under [tool.uv]) to take a newer pre-release.

data_version() reports the same tzdata release for both variants, so the distribution version above is how you tell them apart at runtime.

The full variant runs on tzf-rs's EmbeddedFinder, which queries the .tzb bytes in place instead of expanding them into polygons the way the lite build's DefaultFinder does. So the trade is query latency, not memory: the full wheel is larger on disk yet lighter in RAM. Measured on an Apple M3 Max (macOS 26.6.2, CPython 3.14.0) over all 154,694 cities in citiespy, tzfpy 2.1.0 on tzf-rs 2.1.2 and the 64-point-chunk 2026d data:

Metric Lite Full
Wheel size (macOS arm64) 3.0 MB 11.8 MB
Loaded extension 4.9 MB 16.0 MB
RSS delta after first query 39.0 MB 16.0 MB
Cold start (import + first query) 15 ms 10 ms
get_tz median 208 ns 250 ns
get_tzs median (polygon scan) 375 ns 791 ns

get_tz still answers most points from the FUZZY preindex, so its fast path costs about 20%. The exact polygon scan behind get_tzs (and behind get_tz on a preindex miss, i.e. near borders) decodes compressed geometry on every call and lands at about 2x; on border cities get_tz sits around 1.2 µs against the lite build's 0.9 µs. Both numbers are per-call and single-threaded. The lite build on PyPI stays the right default; reach for the full wheels when you query near borders and the extra fraction of a microsecond is cheaper than the ~111 m band.

These wheels are published only to GitHub Releases and the index above, never to PyPI (the pre-release tags that carry them publish the lite wheels to TestPyPI, not PyPI). Keeping an experimental variant off PyPI means nobody gets it without asking for it, and the mechanics line up with that policy: the full dataset is git-only in tzf-dist because it exceeds the crates.io size limit, and PyPI rejects local versions by design. If the variant graduates, it will be announced in the changelog.

The two variants sit on separate index paths on purpose — 2.0.0+full sorts above 2.0.0, so sharing one page would make pip silently prefer the full wheel. With uv, pin the index explicitly:

[[tool.uv.index]]
name = "tzfpy-full"
url = "https://ringsaturn.github.io/tzfpy/full/simple/"
explicit = true

[tool.uv.sources]
tzfpy = { index = "tzfpy-full" }

Performance

Benchmark run under v2.0.0 on a MacBook Pro (Apple M3 Max, macOS 26.6.2, CPython 3.10.18), via make bench, over random world cities, 500 rounds after 500 warmup iterations:

Index mode Median (µs) Mean (µs) Throughput (Kops/s) Memory
Default (pre-index + YStripes) 0.6825 0.8990 1112.3 ~40.4 MB

Timings include the Python call overhead and the benchmark's own coordinate generation; the Rust lookup itself measures ~260 ns for a random city on the same machine. The 1.x median on the same machine was 0.636 µs, so query latency is within run-to-run variation of 1.x. The measured reductions are in memory and wheel size.

Memory

Measured with make measure-memory on the same machine (RSS increase after import tzfpy plus one query, CPython 3.10.18):

Version RSS delta (3 runs) Whole process
1.3.3 71.6–73.6 MB 89.7–96.4 MB
2.0.0 39.8–42.3 MB 57.8–60.3 MB

Both rows were measured back to back on the same machine with the same script, against the same 2026c dataset.

Or you can view more benchmark results on GitHub Action summary page.

More benchmarks compared with other packages can be found in ringsaturn/tz-benchmark.

Background

tzfpy was originally written in Go named tzf and use CGO compiled to .so to be used by Python. Since v0.11.0 it's rewritten in Rust built on PyO3 and tzf-rs, a tzf's Rust port.

I have written an article about the history of tzf, its Rust port, and its Rust port's Python binding; you can view it here.

Also, see Project tzf for more information.

Compare with other packages

Please note that directly compare with other packages is not fair, because they have different use cases and design goals, for example, the precise.

TimezoneFinder

I got lots of inspiration from it. Timezonefinder is a very good package and it's mostly written in Python, so it's easy to use. And it's much more widely used compared with tzfpy if you care about that.

However, it's slower than tzfpy, especially around the borders, and I have lots of API requests from there. That's the reason I created tzf originally. And then tzf-rs and tzfpy.

pytzwhere

I recommend to read timezonefinder's Comparison to pytzwhere since it's very detailed.

Contributing

Install:

Available commands:
  build            - Build the project using uv
  build-ext        - Rebuild and install local Rust extension into venv
  fmt              - Format the code using ruff
  lint             - Lint the code using ruff
  sync             - Sync and compile the project using uv
  lock             - Lock dependencies using uv
  upgrade          - Upgrade dependencies using uv
  all              - Run lock, sync, fmt, lint, and test
  test             - Run non-benchmark tests
  test-all         - Run all tests including benchmark
  bench            - Run the query benchmark and print a Markdown table
  measure-memory   - Measure memory usage of tzfpy and TimezoneFinder
make all

LICENSE

This project is licensed under the MIT license. The data is licensed under the ODbL license, same as evansiroky/timezone-boundary-builder

FOSSA Status

Metadata

Release files for tzfpy 2.1.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 tzfpy 2.1.0
File Size Uploaded
tzfpy-2.1.0.tar.gz 148.9 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for tzfpy 2.1.0
File
tzfpy-2.1.0-cp314-cp314t-win_amd64.whl CPython 3.14 CPython 3.14 free-threading Windows x86-64 Details
tzfpy-2.1.0-cp314-cp314t-musllinux_1_2_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-64 Details
tzfpy-2.1.0-cp314-cp314t-musllinux_1_2_aarch64.whl CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ ARM64 Details
tzfpy-2.1.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64 Details
tzfpy-2.1.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64 Details
tzfpy-2.1.0-cp314-cp314t-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64 Details
tzfpy-2.1.0-cp314-cp314t-macosx_10_12_x86_64.whl CPython 3.14 CPython 3.14 free-threading macOS 10.12+ x86-64 Details
tzfpy-2.1.0-cp310-abi3-win_amd64.whl CPython 3.10 abi3 Windows x86-64 Details
tzfpy-2.1.0-cp310-abi3-musllinux_1_2_x86_64.whl CPython 3.10 abi3 Linux musl 1.2+ x86-64 Details
tzfpy-2.1.0-cp310-abi3-musllinux_1_2_aarch64.whl CPython 3.10 abi3 Linux musl 1.2+ ARM64 Details
tzfpy-2.1.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 abi3 Linux glibc 2.17+ x86-64 Details
tzfpy-2.1.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.10 abi3 Linux glibc 2.17+ ARM64 Details
tzfpy-2.1.0-cp310-abi3-macosx_11_0_arm64.whl CPython 3.10 abi3 macOS 11.0+ ARM64 Details
tzfpy-2.1.0-cp310-abi3-macosx_10_12_x86_64.whl CPython 3.10 abi3 macOS 10.12+ x86-64 Details

Total release size: 43.3 MB

Release files / tzfpy-2.1.0.tar.gz

Download URL tzfpy-2.1.0.tar.gz
Size 148.9 kB
Tags Source
SHA-256 checksum
How to use checksums
fdacbe1e98b00dc9a9bd2cb442ca2b29b6f625c12efe06c1959628d3e735b174
BLAKE2b-256 checksum
How to use checksums
ef551d5c2600e5236a9cbf997d8677f039794be39dcc4f77c65298615175feb6
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 Sep 17, 2026.

Transparency log

Release files / tzfpy-2.1.0-cp314-cp314t-win_amd64.whl

Download URL tzfpy-2.1.0-cp314-cp314t-win_amd64.whl
Size 2.9 MB
Tags CPython 3.14 CPython 3.14 free-threading Windows x86-64
SHA-256 checksum
How to use checksums
dc90a9e8b4c157249968a4de25cc708753e44f25794e18c3adc47f34da6bb9f7
BLAKE2b-256 checksum
How to use checksums
d82bf80a7429d355851f56478ff13320d5fdee705256efc5865daf5dbb9e038d
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 Sep 17, 2026.

Transparency log

Release files / tzfpy-2.1.0-cp314-cp314t-musllinux_1_2_x86_64.whl

Download URL tzfpy-2.1.0-cp314-cp314t-musllinux_1_2_x86_64.whl
Size 3.3 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
387de0e8d8f1f48773a286c844963482aded61df99534d6105d60310d5f4d9bb
BLAKE2b-256 checksum
How to use checksums
a36737f152330222b2dd0b4824955bdd503cf686653a6d7930b150005faf4310
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 Sep 17, 2026.

Transparency log

Release files / tzfpy-2.1.0-cp314-cp314t-musllinux_1_2_aarch64.whl

Download URL tzfpy-2.1.0-cp314-cp314t-musllinux_1_2_aarch64.whl
Size 3.2 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
7423a5fe674352fc71e13aeb743a20279e363359c425156186968e394f571b9d
BLAKE2b-256 checksum
How to use checksums
300dc076bfaf1da0c702dba3ff29d1557e0328cdccc12ebe09720c6861389124
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 Sep 17, 2026.

Transparency log

Release files / tzfpy-2.1.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL tzfpy-2.1.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 3.1 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
f7c6f333f5a0e89100fe7d6723d6e2b05d3b2c501ec3df021085ca210ff31487
BLAKE2b-256 checksum
How to use checksums
481f2b0bd027a59e3f1de3b793d089f8d584798b9e9b45e5018389a1786cd61c
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 Sep 17, 2026.

Transparency log

Release files / tzfpy-2.1.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL tzfpy-2.1.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 3.1 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
79fadb83b57f04d20c6739e8e3d4ad74106a1adad361b8bef16bfadf0545cff9
BLAKE2b-256 checksum
How to use checksums
1dadf93c2454b1f9095d4bce833ffd1958d688f9b343fd6d1dfad6217f1aecdb
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 Sep 17, 2026.

Transparency log

Release files / tzfpy-2.1.0-cp314-cp314t-macosx_11_0_arm64.whl

Download URL tzfpy-2.1.0-cp314-cp314t-macosx_11_0_arm64.whl
Size 3.0 MB
Tags CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
73b70b278e67e4618b6912f19cb71e1bfaccb048edf667fa8de1b73f4a1686fc
BLAKE2b-256 checksum
How to use checksums
2e94429177d2db3d49db376434b9609f6ffbd8997ca4c36a74726bcef301eba9
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 Sep 17, 2026.

Transparency log

Release files / tzfpy-2.1.0-cp314-cp314t-macosx_10_12_x86_64.whl

Download URL tzfpy-2.1.0-cp314-cp314t-macosx_10_12_x86_64.whl
Size 3.0 MB
Tags CPython 3.14 CPython 3.14 free-threading macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
40f87ffa2072a815e753447ca066c4e88b7f02257b5ecdbdc96aa7dee2f46614
BLAKE2b-256 checksum
How to use checksums
9aac82a6c5cc42ee2181942a24e533be3738a4f21532a41289079e0384118054
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 Sep 17, 2026.

Transparency log

Release files / tzfpy-2.1.0-cp310-abi3-win_amd64.whl

Download URL tzfpy-2.1.0-cp310-abi3-win_amd64.whl
Size 2.9 MB
Tags CPython 3.10 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
2ae6f40b1e6c9ee3d73d932a7e6625e330d91e25bf43c0326430ab12ce4b2d55
BLAKE2b-256 checksum
How to use checksums
c594f347df13537b7cc4060bcc385f0d64d722d7b1a7260c2ec0bb134bbbe956
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 Sep 17, 2026.

Transparency log

Release files / tzfpy-2.1.0-cp310-abi3-musllinux_1_2_x86_64.whl

Download URL tzfpy-2.1.0-cp310-abi3-musllinux_1_2_x86_64.whl
Size 3.3 MB
Tags CPython 3.10 Linux musl 1.2+ x86-64 abi3
SHA-256 checksum
How to use checksums
bac4c66b02b8676f60a7c77c415816474ff8a180fe42dd84ad884bdac9d00380
BLAKE2b-256 checksum
How to use checksums
f66d9b7c41bb2ce543943fd36a5d72ac21d68525bb8741544cdc6063de1a88d8
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 Sep 17, 2026.

Transparency log

Release files / tzfpy-2.1.0-cp310-abi3-musllinux_1_2_aarch64.whl

Download URL tzfpy-2.1.0-cp310-abi3-musllinux_1_2_aarch64.whl
Size 3.2 MB
Tags CPython 3.10 Linux musl 1.2+ ARM64 abi3
SHA-256 checksum
How to use checksums
d041d4456c500396a24bf736e24ba571bea9a427e605f5e85d283abfe626f925
BLAKE2b-256 checksum
How to use checksums
18cfe63ba9f237173df70f289099302f10003aaf7ac504c8d4f49ae2a2f105ce
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 Sep 17, 2026.

Transparency log

Release files / tzfpy-2.1.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL tzfpy-2.1.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 3.1 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
cb6d6bda892e72c90d5c89111daecfbe253c422d63f37e9ac0a26d039ced7cf1
BLAKE2b-256 checksum
How to use checksums
96962ef993b02bb47e726de168f4f3cab8d8c9eccd14646faffa02b341d996e6
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 Sep 17, 2026.

Transparency log

Release files / tzfpy-2.1.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL tzfpy-2.1.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 3.1 MB
Tags CPython 3.10 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
4ee5cf0fc8c947b4d6cf9f0f8a6ae6628df12bca91fa968ef16c368008cabe76
BLAKE2b-256 checksum
How to use checksums
aacb96018a818dc29fe28209353b11b42cc39aed4447efff9319960a4a4e594f
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 Sep 17, 2026.

Transparency log

Release files / tzfpy-2.1.0-cp310-abi3-macosx_11_0_arm64.whl

Download URL tzfpy-2.1.0-cp310-abi3-macosx_11_0_arm64.whl
Size 3.0 MB
Tags CPython 3.10 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
0c2c948fca4444ba9bcc5abbd6f2f4c22cc3c3f501aeed280310ce296eb47b66
BLAKE2b-256 checksum
How to use checksums
e3208da6c2ee47b0a70bed80bf6c6b1ce0e56b2a032bca6a1e88f0dcd4eca1f9
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 Sep 17, 2026.

Transparency log

Release files / tzfpy-2.1.0-cp310-abi3-macosx_10_12_x86_64.whl

Download URL tzfpy-2.1.0-cp310-abi3-macosx_10_12_x86_64.whl
Size 3.0 MB
Tags CPython 3.10 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
55731c2358a07b9e84eb1d4e71c8204e164843fedecff0436011bca04a805697
BLAKE2b-256 checksum
How to use checksums
50949278e85cf3148f092254a15b80f601cae1d4fd66dec29eb0e35b4b2df7ba
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 Sep 17, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

2.1.0 This release

15 release files

2.0.0

15 release files

1.3.3

15 release files

1.3.2

15 release files

1.3.1

15 release files

1.3.0

15 release files

1.2.0

15 release files

1.1.3

21 release files

1.1.2

21 release files

1.1.1

21 release files

1.1.0

21 release files

1.0.1

21 release files

1.0.0

13 release files

0.15.6

8 release files

0.15.0

1 release file

0.13.1

1 release file

0.8.2

1 release file

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