tzfpy
[!NOTE]
- It's probably the fastest Python package to convert longitude/latitude to timezone name.
- This package uses simplified polygon data. The error around borders is small and bounded: every simplified boundary stays within about 111 m of the full-precision border. See Accuracy for measured numbers.
- The finder is built on the first call, so that call takes 15 ms on the machine used in Performance; later calls take under 1 µs.
- Uses about 40MB memory, down from about 72MB in 1.x. See Memory.
- It's tested under Python 3.10+.
- Try it online:
- https://ringsaturn.github.io/tzf-web/, powered by tzf-rs and WebAssembly
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
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.- The
_TZFPY_DISABLE_Y_STRIPESenvironment variable was removed. tzf-rs 2 removedFinderOptions, and the YStripes index is always enabled. Setting the variable has no effect and raises no error. get_tz_polygon_geojson()andget_tz_index_geojson()raiseValueErrorfor a name the dataset does not carry. In 1.x the same input panicked, surfacing aspyo3_runtime.PanicException.- 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
>>> 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
-
Always install tzfpy with
tzdataextra:pip install tzfpy[tzdata] -
Use Python's zoneinfo package(
import zoneinfo, akatzdatain 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
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.
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
Metadata
Release files for tzfpy 2.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| tzfpy-2.0.0.tar.gz | 139.3 kB | Details |
Built distributions (wheels)
Total release size: 41.3 MB
Release files / tzfpy-2.0.0.tar.gz
| Download URL | tzfpy-2.0.0.tar.gz |
|---|---|
| Size | 139.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a7ca26550c6d39c441a567f596d142501e20099e63c9a63961b4ae9081d28b38
|
|
BLAKE2b-256 checksum How to use checksums |
4a2d06f2a767ec32f82e2dab14309c12e5a3bdecaf1647f49f849792c4660974
|
| 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 11, 2026.
Transparency logRelease files / tzfpy-2.0.0-cp314-cp314t-win_amd64.whl
| Download URL | tzfpy-2.0.0-cp314-cp314t-win_amd64.whl |
|---|---|
| Size | 2.8 MB |
| Tags | CPython 3.14 CPython 3.14 free-threading Windows x86-64 |
|
SHA-256 checksum How to use checksums |
d277f5defa83277a39e9194e70621e2fc8932fcc61db8f8276a8c2ac16668fc8
|
|
BLAKE2b-256 checksum How to use checksums |
34629161a9c2a656190b25fdf8248d563e26efe26f04ff21cbd510e0442c26ff
|
| 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 11, 2026.
Transparency logRelease files / tzfpy-2.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl
| Download URL | tzfpy-2.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 3.1 MB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
2483bed5feca6b3616c0923cf894851560365a3d1337211330a90b9f89a37ee3
|
|
BLAKE2b-256 checksum How to use checksums |
ca66f7750d806f2200e007b809b7a3c5e273b04bc75514051f5ef676fe2ae311
|
| 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 11, 2026.
Transparency logRelease files / tzfpy-2.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl
| Download URL | tzfpy-2.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 3.1 MB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ ARM64 |
|
SHA-256 checksum How to use checksums |
c7fa84c4ec32baa51257e933e0eac2790c11b312dc7dddd1f57cb2e990b9d62f
|
|
BLAKE2b-256 checksum How to use checksums |
c907d3f7811c99123851c4d969bef8a863d5710a8d970c18de12cac2ebcf6aae
|
| 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 11, 2026.
Transparency logRelease files / tzfpy-2.0.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | tzfpy-2.0.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 2.9 MB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
cff91e749840e688a88b66e76d8335b95a45696e3480907fb4958bb65c2dc12c
|
|
BLAKE2b-256 checksum How to use checksums |
c7c747d6952775c0709124d019d9a1ea958978552618280810ed6431cd4e220b
|
| 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 11, 2026.
Transparency logRelease files / tzfpy-2.0.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | tzfpy-2.0.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 2.9 MB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
cd130752c79cbd7ddfec22e4bb4343e5a3ea209e550c0c216582b01c9da01fba
|
|
BLAKE2b-256 checksum How to use checksums |
c92e4167d2c20c4d8a9a520e2853a0c96bf6cfee0601c4abbbbfa516cddaf74b
|
| 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 11, 2026.
Transparency logRelease files / tzfpy-2.0.0-cp314-cp314t-macosx_11_0_arm64.whl
| Download URL | tzfpy-2.0.0-cp314-cp314t-macosx_11_0_arm64.whl |
|---|---|
| Size | 2.9 MB |
| Tags | CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
506911914950a71ea636d6500b4746670a4239d815fc1b236a925e80f11b6e76
|
|
BLAKE2b-256 checksum How to use checksums |
3831bf4825734c9ddb17958d4d69aedb0780fd507c2638f858189fb29d5ceb9d
|
| 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 11, 2026.
Transparency logRelease files / tzfpy-2.0.0-cp314-cp314t-macosx_10_12_x86_64.whl
| Download URL | tzfpy-2.0.0-cp314-cp314t-macosx_10_12_x86_64.whl |
|---|---|
| Size | 2.9 MB |
| Tags | CPython 3.14 CPython 3.14 free-threading macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
9a48e3354ee2df4ea1892fa34a73979d988d46c7e324597402eb115748935b0c
|
|
BLAKE2b-256 checksum How to use checksums |
03b3b53f073000dbac98fa0e1ccc57139f9ffd4dbc0c1243438cc7d59f5be377
|
| 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 11, 2026.
Transparency logRelease files / tzfpy-2.0.0-cp310-abi3-win_amd64.whl
| Download URL | tzfpy-2.0.0-cp310-abi3-win_amd64.whl |
|---|---|
| Size | 2.8 MB |
| Tags | CPython 3.10 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
63dda89ce177863dbb7023d32c24424bc752cc1866370b559c6bac3ad81fd438
|
|
BLAKE2b-256 checksum How to use checksums |
bb1e4e264053f5f8485b5decd6b05821ee33f1f371f67ed11e2f2f7499111e8b
|
| 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 11, 2026.
Transparency logRelease files / tzfpy-2.0.0-cp310-abi3-musllinux_1_2_x86_64.whl
| Download URL | tzfpy-2.0.0-cp310-abi3-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 3.1 MB |
| Tags | CPython 3.10 Linux musl 1.2+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
1fb9118b4449a2b1dc4a95ba3728822a7bad5f3ec405d67c7573c3bf2f701ebe
|
|
BLAKE2b-256 checksum How to use checksums |
3d09df4c3f687adff07e6199a1d325aa9145e7d8bde988b89009eb1e20b5dd87
|
| 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 11, 2026.
Transparency logRelease files / tzfpy-2.0.0-cp310-abi3-musllinux_1_2_aarch64.whl
| Download URL | tzfpy-2.0.0-cp310-abi3-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 3.1 MB |
| Tags | CPython 3.10 Linux musl 1.2+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
aac5021559e41c995bcf8cfb47f2f41a71d947c577b52bb85cfb7258fae298b2
|
|
BLAKE2b-256 checksum How to use checksums |
5092c3ac25d671cc19c3d46f376621f1c2f957e63c1e8dfc5338b3ba5503829d
|
| 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 11, 2026.
Transparency logRelease files / tzfpy-2.0.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | tzfpy-2.0.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 2.9 MB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
6daf9816520ef4c36ff7dc8cd2e3e068e41f55afafd36deabd16e41cccc454e1
|
|
BLAKE2b-256 checksum How to use checksums |
2e981e5b20b8f7fe2e3f5b29e648546501e561880e5ae289c38adc21b94d5669
|
| 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 11, 2026.
Transparency logRelease files / tzfpy-2.0.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | tzfpy-2.0.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 2.9 MB |
| Tags | CPython 3.10 Linux glibc 2.17+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
182452b1005680c08fe4177a3f8abc96d1cf70333f6087e5e5438c9c594dc740
|
|
BLAKE2b-256 checksum How to use checksums |
9525d61b9f13b17a066fe5b492ac3bde08ccb289cafe68a30a5d325371e9ef7a
|
| 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 11, 2026.
Transparency logRelease files / tzfpy-2.0.0-cp310-abi3-macosx_11_0_arm64.whl
| Download URL | tzfpy-2.0.0-cp310-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 2.9 MB |
| Tags | CPython 3.10 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
b2d65ab38959d7a529432a4f91e5cd14858b151637947eb69b37f2ebeec141f4
|
|
BLAKE2b-256 checksum How to use checksums |
295f8f5c35298322b2d10376d418879a5f39eec978d23d0bd8ddfa0fb228b2d8
|
| 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 11, 2026.
Transparency logRelease files / tzfpy-2.0.0-cp310-abi3-macosx_10_12_x86_64.whl
| Download URL | tzfpy-2.0.0-cp310-abi3-macosx_10_12_x86_64.whl |
|---|---|
| Size | 2.9 MB |
| Tags | CPython 3.10 abi3 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
614fb3ae39f26bb21b3ba37dbc27930b68c087caa485a9a4b782fdd1a85fb58d
|
|
BLAKE2b-256 checksum How to use checksums |
947eb1917b45615fe3c833c7c90b0313dbc2ce6ebc4256f8a5b4242e3f6642e5
|
| 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 11, 2026.
Transparency log