Skip to main content

pypi-reserve

pypi-reserve is a single-file, zero-dependency CLI for Python 3.9+ that validates a PyPI project name against every rule PyPI enforces, then publishes a minimal first release under it.

Features

  • The five checks PyPI runs at project creation, reproduced locally. A name is refused if it is invalid, already exists, is on the prohibited list, shadows a standard library module, or is too similar to an existing project. That last one is computed from warehouse's own ultranormalize key — normally it only fails at upload time, after you have picked the name and told people about it.

  • An offline name index. One PEP 691 download of the full project list — 874,595 names — cached as a 4 MB gzip, so every subsequent check runs locally and instantly.

  • Alternative name suggestions. Generated in tiers (vendor prefix, compound and reversed word forms, suffixes, prefixes, numeric variants) and each run through the same five checks, so a suggestion is never a name PyPI would turn around and reject.

  • Zero dependencies. Wheels and sdists are assembled with zipfile and tarfile; uploads are a multipart POST over urllib to the same endpoint twine uses. Field names, digest encodings and filename normalization follow warehouse's forklift/legacy.py — PEP 427 wheel names, PEP 625 sdist names, PEP 503 normalization, sha256_digest and blake2_256_digest. Pass --use-twine to hand the upload step to twine instead.

  • Rehearsal before anything is permanent. --dry-run builds without uploading, --repository testpypi targets TestPyPI, and wheel builds are byte-for-byte reproducible.

  • Credentials from wherever you keep them. ~/.pypirc, environment variables, a --token flag, or an interactive hidden prompt.

Status

Early development preview — the CLI arrives in the next release. This version installs an importable pypi_reserve module exposing __version__ and nothing else, so do not add it to your dependencies yet.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pypi_reserve-0.0.1.tar.gz (1.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pypi_reserve-0.0.1-py3-none-any.whl (2.6 kB view details)

Uploaded Python 3

File details

Details for the file pypi_reserve-0.0.1.tar.gz.

File metadata

  • Download URL: pypi_reserve-0.0.1.tar.gz
  • Upload date:
  • Size: 1.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: pypi-reserve/1.1.0

File hashes

Hashes for pypi_reserve-0.0.1.tar.gz
Algorithm Hash digest
SHA256 931da375dcd52173ffa8e07397c39c06ccdc6fc641c1ccee92d64f3ce7d7698b
MD5 8e70168af2246cd6b24d0b32024350d6
BLAKE2b-256 a762c12bdf73910bc4b09bc9a4fe73492b614ca4091aba30c20234758aad508c

See more details on using hashes here.

File details

Details for the file pypi_reserve-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: pypi_reserve-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 2.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: pypi-reserve/1.1.0

File hashes

Hashes for pypi_reserve-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 afc3b77900c55dab5e42427f466a0578ca9487f60db52c377e3af187998acbb3
MD5 8136994308f26381f28921bcf75d5113
BLAKE2b-256 67b1ce4787151a75c7b49049ff761e0240ca7631ea58f202364545fac739707b

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.0.1 This release

2 files

0.0.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page