-
Notifications
You must be signed in to change notification settings - Fork 283
Open
Labels
Description
I asked ChatGPT to make a table of features that we might be missing.
| Specification | Covered by pypa/packaging? |
Notes / Implementation if Not Covered |
|---|---|---|
| Names and normalization | ✅ Yes | Implements PEP 503 via canonicalize_name() in packaging.utils 1 |
| Core metadata specifications | ✅ Yes | Implements metadata parsing/validation in packaging.metadata 2 |
| Version specifiers (PEP 440) | ✅ Yes | Provided via packaging.version and packaging.specifiers 1 |
| Dependency specifiers (PEP 508) | ✅ Yes | Provided via packaging.requirements and packaging.markers 2 |
pyproject.toml spec (PEPs 518/621) |
❌ No (#647) | Handled by build backends (e.g. setuptools, Poetry); not parsed by packaging |
| Dependency Groups (PEP 735) | ❌ No (#1065) | Requires separate library (e.g. dependency-groups); packaging is out of scope |
| Inline script metadata (PEP 723) | ❌ No | For runtime script metadata; not a concern of packaging |
| Platform compatibility tags (PEP 425/600) | ✅ Yes | Implements via packaging.tags 2 |
| Well-known Project URLs (PEP 753) | ❌ No | Normalised by index/pip; packaging only retains metadata as-is |
| Glob patterns | ❌ No | Handled by build tools; no native glob support in packaging |
| License Expression (SPDX / PEP 639) | ✅ Yes | Implemented through packaging.licenses 2 |
| Recording installed projects (PEP 376) | ❌ No | Managed by installers (e.g. pip); not within packaging scope |
| Entry points spec | ❌ No | Handled by build backends and importlib.metadata; not by packaging |
| Direct URL origin/data (PEP 610) | ❌ No (#944) | Recorded by installers (pip); not by packaging |
| Python Virtual Environments (PEP 405) | ❌ No | Implemented in stdlib (venv) and virtualenv, not packaging |
| Externally Managed Environments (PEP 668) | ❌ No | Policy enforced by installers/package managers; not in packaging |
| Source distribution format | Filename parsing only (parse_sdist_filename()); no content handling |
|
| Binary distribution format (Wheel, PEP 427) | Filename parsing (parse_wheel_filename()); no wheel creation/content handling 12 |
|
.pypirc file |
❌ No | Configuration for uploads; in tools like twine/pip only |
| Simple repository API (PEP 503) | ❌ No (#1088) | Only name normalization covered; metadata fetching handled by pip/Warehouse |
| File Yanking (PEP 592) | ❌ No (#1088) | Handled by index and installer (pip); not in packaging |
| Index hosted attestations (PEP 658) | ❌ No | Security metadata handled by index/installer; not in packaging |
| Project Status Markers (PEP 792) | ❌ No (#1088) | Index metadata (e.g. deprecated); not in packaging |
| Python Description Formats | ❌ No | Description content type stored but not rendered/validated |
build-details.json (PEP 739) |
❌ No | Generated by Python installer; read by build tools, not packaging |
| Reproducible Environments (beyond lock file) | ❌ No | Covered by pip/Pipenv; only pylock.toml lock file is supported |
pylock.toml spec (PEP 751) |
✅ Yes | Supported in v26 through packaging.pylock |
| PyPA schemas | ❌ No | JSON schemas for validation; code validation done instead of schema-based |
Reactions are currently unavailable