Metadata-Version: 2.1
Name: pypi-reserve
Version: 0.0.1
Summary: Name availability checks and minimal first-release publishing for PyPI
Author: Pandiyaraj Karuppasamy
Author-email: pandiyarajk@live.com
License: MIT
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
Requires-Python: >=3.9
Description-Content-Type: text/markdown

# 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.
