tzdata

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

Library
PyPI
v2026.4
114 stars
Apache License 2.0

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
70 /100 Good
Development Activity 68
Maintenance 60
Community 72
Maturity 60
Momentum 20

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
75 /100 Good
Architecture 70
Code Quality 78
Innovation 55
Learning Curve 95

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
68%
MIT

ArchiveBox

Bookmarks Archiving

28,636

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
69
Dependency
Built with
Python 68%
HTML 25%
Updated 4 days ago
Python
68%
Other

Baserow

Databases · No Code Platforms

6,012

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
Python 68%
JavaScript 16%
Vue 11%
Updated 5 days ago
Python
79%
Apache 2.0

changedetection.io

Monitoring

34,605

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

View details
91
Repo Health
80
Technical
68
Dependency
Built with
Python 79%
Updated 1 weeks ago
Python
63%
BSD 3

Flagsmith

Ab Testing Experimentation · Developer Tools · Devops

6,577

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
90
Repo Health
82
Technical
63
Dependency
Built with
Python 63%
TypeScript 31%
Updated 6 days ago
Python
65%
MIT

Flowfile

Data Engineering

363

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
Python 65%
Vue 17%
TypeScript 17%
Updated 5 days ago
TypeScript
97%
Other

GrowthBook

Ab Testing Experimentation · Analytics · Developer Tools

8,446

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
63
Dependency
Built with
TypeScript 97%
Updated 4 days ago
HTML
46%
LGPL-2.1

Horilla

ERP · Human Resources

1,437

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

View details
91
Repo Health
60
Technical
65
Dependency
Built with
HTML 46%
Python 38%
JavaScript 12%
Updated 4 days ago
Python
51%
AGPL 3.0

Khoj

AI Assistants · Knowledge Management · Productivity

37,526

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
63
Repo Health
82
Technical
66
Dependency
Built with
Python 51%
TypeScript 36%
Updated 2 months ago
Python
86%
Apache 2.0

knowhere

AI Development · AI Memory · Developer Tools

3,541

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

View details
82
Repo Health
75
Technical
66
Dependency
Built with
Python 86%
HTML 14%
Updated 1 weeks ago

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