tzdata

Python package providing the IANA time zone database as installable, versioned data

Library
PyPI
v2026.3
112stars
Apache License 2.0

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum.How we score it →
68/100Good
Development Activity64
Maintenance56
Community72
Maturity60
Momentum20

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation.How we score it →
75/100Good
Architecture70
Code Quality78
Innovation55
Learning Curve95

tzdata is a Python package that ships zic-compiled binaries of the IANA time zone database as pip-installable data, created as part of PEP 615 (support for the IANA time zone database in the standard library’s zoneinfo module). It exists as a fallback for systems that don’t have OS-level time zone data installed, or where that data isn’t in a location Python’s zoneinfo module can find, most notably Windows, minimal containers, and some virtualenv setups.

Unlike most Python packages, tzdata contains almost no logic — its src/tzdata/__init__.py is six lines — and instead is a versioned, redistributable data package. New releases track upstream IANA tzdata releases, so pip install --upgrade tzdata is the standard way to get current time zone rules (e.g. new DST law changes) without upgrading the Python interpreter itself.

What You Get

  • zic-compiled IANA time zone binaries for every zone in the IANA database, importable via zoneinfo once installed
  • Regular releases tracking upstream IANA tzdata updates, so time zone rule changes (DST law changes, zone renames) can be picked up via a simple pip upgrade
  • A working fallback for platforms without reliable OS time zone data, notably Windows and minimal/slim container images
  • Version metadata (tzdata.IANA_VERSION) so applications can introspect which IANA release is bundled
  • License compliance data (licenses/ directory) covering the underlying IANA tzdata license terms

Common Use Cases

  • Ensuring zoneinfo.ZoneInfo('America/New_York') resolves correctly in Docker containers built from slim/minimal base images that lack system tzdata
  • Guaranteeing consistent, versioned time zone behavior across Windows, Linux, and macOS in a cross-platform Python application without depending on the OS’s time zone data
  • Pinning a specific IANA tzdata version in a requirements.txt/pyproject.toml for reproducible date/time calculations across deployments
  • Picking up newly enacted DST or time zone law changes quickly via a package upgrade rather than waiting on an OS update

Under The Hood

Architecture - The package’s actual Python code is minimal by design: src/tzdata/__init__.py (6 lines) exposes version metadata, while src/tzdata/zoneinfo/ and src/tzdata/zones/ contain the compiled IANA zone data itself, structured so Python’s zoneinfo module (or the backports.zoneinfo package on older Python) can locate zone files by standard path (e.g. tzdata.zoneinfo.America.New_York). The repository’s real complexity lives in its build/release tooling: update.py fetches and compiles the latest upstream IANA tzdata release using zic, and bump_version.py/tag_release.sh automate versioning that tracks the upstream IANA release identifier.

Tech Stack - Pure Python packaging using setuptools as the build backend (pyproject.toml + setup.cfg), with isort/pre-commit for repo hygiene. The package has no runtime dependencies of its own — it is consumed by Python’s standard library zoneinfo module or the backports.zoneinfo shim, not by importing tzdata’s Python code directly in most cases.

Code Quality - Testing focuses on the data itself rather than logic: tests/test_contents.py verifies the packaged zone data matches expectations, and tests/test_version.py checks version-string consistency with the upstream IANA release. Given the package is fundamentally a data distribution mechanism rather than an algorithmic library, this test shape (contents + version validation) appropriately targets the actual risk surface — a corrupted or mismatched data release.

API Design - There is effectively no API surface to learn: applications don’t import tzdata directly in normal use, they simply install it so that zoneinfo.ZoneInfo(...) (standard library, Python 3.9+) can find zone data on interpreter startup. This zero-API design is the correct one for a data-only fallback package — the value is in resolving an availability problem, not in providing new functionality to call.

Used by 15 apps in this directory

Python
76%
MIT

ArchiveBox

Bookmarks Archiving

28,138

Self-hosted web archiving that saves HTML, PDFs, screenshots, media, and code in open formats you own forever

View details
88
Repo Health
84
Technical
70
Dependency
Built with
Python76%
HTML12%
Updated today
Python
68%
Other

Baserow

No Code Platforms · Databases

5,635

Open-source no-code platform to build databases, apps, automations, and AI agents — self-hosted or cloud, with full data ownership.

View details
89
Repo Health
84
Technical
68
Dependency
Built with
Python68%
JavaScript15%
Vue12%
Updated today
Python
79%
Apache 2.0

changedetection.io

Monitoring

33,241

Self-hosted website change detection with AI-powered smart alerts, browser automation, price tracking, and 85+ notification channels.

View details
90
Repo Health
80
Technical
69
Dependency
Built with
Python79%
Updated 3 days ago
Python
64%
BSD 3

Flagsmith

Developer Tools · Devops · Ab Testing Experimentation

6,518

Open-source feature flagging, remote config, and A/B/multivariate testing platform for web, mobile, and server-side apps — self-host or use the hosted SaaS.

View details
91
Repo Health
82
Technical
65
Dependency
Built with
Python64%
TypeScript31%
Updated today
Python
64%
MIT

Flowfile

Data Engineering

341

Visual ETL that compiles to Polars — build pipelines on a canvas, export as standalone Python, and run anywhere without platform lock-in.

View details
83
Repo Health
81
Technical
66
Dependency
Built with
Python64%
Vue19%
TypeScript16%
Updated today
TypeScript
97%
Other

GrowthBook

Developer Tools · Analytics · Monitoring

8,138

Open source feature flags, A/B testing, and warehouse-native experimentation that queries your existing data infrastructure—no data movement required.

View details
92
Repo Health
85
Technical
66
Dependency
Built with
TypeScript97%
Updated today
HTML
48%
LGPL-2.1

Horilla

Human Resources · ERP

1,330

Open-source HRMS covering recruitment, attendance, payroll, and biometrics in one self-hosted Django application.

View details
88
Repo Health
60
Technical
65
Dependency
Built with
HTML48%
Python35%
JavaScript13%
Updated today
Python
51%
AGPL 3.0

Khoj

AI Assistants · Knowledge Management · Productivity

36,555

A self-hostable AI second brain that chats with your documents, searches the web, builds custom agents, and runs entirely on your own LLM.

View details
77
Repo Health
82
Technical
70
Dependency
Built with
Python51%
TypeScript36%
Updated 2 weeks ago
Python
83%
Apache 2.0

knowhere

AI Development · Developer Tools

2,515

Transform messy, unstructured documents into persistent, navigable memory that AI agents can actually use.

View details
83
Repo Health
75
Technical
70
Dependency
Built with
Python83%
HTML16%
Updated today

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers

Search