zipp

Backport of pathlib-compatible Path objects for zip archives, ahead of the standard library

Library
PyPI
v4.1.0
67 stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
42 /100 Fair
Development Activity 12
Maintenance 32
Community 52
Maturity 60
Momentum 12

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
72 /100 Good
Architecture 72
Code Quality 80
Innovation 50
Learning Curve 85

zipp is the official backport of Python’s zipfile.Path object — a pathlib-compatible wrapper that lets code navigate and read files inside a zip archive using the same Path-style API (/ for joining, .iterdir(), .read_text()) used for the regular filesystem. Because the standard library’s zipfile.Path gains new capabilities in each Python release, zipp exists to backport those improvements to older Python versions and to let libraries depend on a single, consistently up-to-date implementation instead of branching on Python version.

With over 120 million weekly downloads, zipp is nearly always installed as a transitive dependency of importlib_metadata and setuptools rather than imported directly by application developers, making it one of the quiet, foundational building blocks of the Python packaging ecosystem.

What You Get

  • A zipp.Path class mirroring pathlib.Path’s interface, but backed by a zip archive instead of the OS filesystem
  • Directory-style traversal of zip contents via / joining, .iterdir(), and .glob()
  • Read access to files inside a zip via .read_text() / .read_bytes() / .open() without manual ZipFile extraction calls
  • Forward-compatibility with newer zipfile.Path features backported for older Python runtimes
  • A CompleteDirs helper that fixes long-standing quirks in how Python’s zipfile module lists directory entries

Common Use Cases

  • Reading package metadata and resource files from installed wheels/zip-based Python packages (via importlib_metadata)
  • Inspecting or extracting individual files from a zip archive without manually managing a ZipFile object
  • Supporting older Python versions that lack the latest zipfile.Path features present in newer CPython releases
  • Building tools that treat zip archives as a browsable, pathlib-like tree structure

Under The Hood

Architecture: The entire library is a single module, zipp/__init__.py (~450 lines), centered on a Path class that wraps Python’s built-in zipfile.ZipFile and exposes a pathlib.Path-compatible surface (__truediv__ for joining, iterdir, glob, open, read_text/read_bytes). A CompleteDirs mixin subclasses zipfile.ZipFile to patch known gaps in how the stdlib module enumerates implicit directory entries in zip archives, which Path relies on internally for correct traversal semantics.

Tech Stack: Pure Python standard-library-only implementation (no runtime dependencies), using _functools.py for small internal caching helpers and a compat/ shim package to smooth over API differences across supported Python versions. Packaging follows the jaraco ‘skeleton’ project template with setuptools_scm for git-tag-based versioning and a coherent.licensed build plugin.

Code Quality: tests/test_path.py is the primary suite, parametrized against multiple real zip-file fixtures (via _test_params.py and generated fixtures from write-alpharep.py) to validate traversal, reading, and edge cases like nested directories and non-ASCII names; a separate test_complexity.py guards against algorithmic complexity regressions in directory listing — a notable quality practice for a library whose main historical bug class was O(n²) directory scans. mypy.ini and ruff.toml indicate enforced static typing and linting.

API Design: Because zipp.Path is designed as a drop-in stand-in for the standard library’s own zipfile.Path, the learning curve for anyone already familiar with pathlib.Path is essentially zero — the same / joining and iteration idioms just work against zip contents. This ‘backport, don’t reinvent’ philosophy is deliberate: zipp’s value proposition is precisely that its API surface tracks the stdlib rather than diverging from it, trading novelty for maximum compatibility.

Used by 10 apps in this directory

Python
100%
Apache 2.0

Agno

AI Development · Automation · Devops

42,358

Build, run, and manage agent platforms with a full production stack — SDK, runtime, and control plane included.

View details
93
Repo Health
87
Technical
66
Dependency
Built with
Python 100%
Updated 4 days ago
Python
59%
Apache 2.0

argilla

AI Development · Data Engineering

5,125

Collaborate on high-quality AI training data with a self-hosted annotation platform built for LLMs, NLP, and multimodal models.

View details
65
Repo Health
81
Technical
61
Dependency
Built with
Python 59%
Jupyter Notebook 21%
Updated 1 weeks 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
C++
68%
Apache 2.0

ClickHouse

Analytics · Data Engineering · Databases

50,116

Open-source column-oriented database that delivers real-time analytical queries on petabyte-scale data with millisecond latency.

View details
95
Repo Health
90
Technical
64
Dependency
Built with
C++ 68%
Python 14%
Updated 4 days ago
Go
49%
MIT

Dokku

Devops · Hosting Control Panel

32,162

The smallest PaaS implementation you've ever seen — deploy apps via git push using Docker and Heroku buildpacks on your own server.

View details
92
Repo Health
85
Technical
66
Dependency
Built with
Go 49%
Shell 48%
Updated 6 days ago
Python
70%
Apache 2.0

GPT Researcher

AI Assistants · Productivity

29,650

The pioneering open-source autonomous AI agent that conducts deep, multi-source research and produces citation-backed reports exceeding 2,000 words — faster and more reliably than any human researcher.

View details
91
Repo Health
91
Technical
63
Dependency
Built with
Python 70%
TypeScript 18%
Updated 6 days ago
TypeScript
91%
Apache 2.0

Helicone

AI Development · Analytics · Monitoring

6,182

An open-source AI gateway and LLM observability platform that routes requests to 100+ models while logging cost, latency, and full traces for every call.

View details
70
Repo Health
81
Technical
65
Dependency
Built with
TypeScript 91%
Updated 2 weeks 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
Python
94%
Apache 2.0

SWIRL

Data Engineering · Databases · Search

3,047

Federated AI search and RAG across 100+ enterprise sources—no data extraction, no vector database required.

View details
62
Repo Health
83
Technical
65
Dependency
Built with
Python 94%
Updated 6 days 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