Skip to main content

The missing PyPI(tm) profile page — pipx-installable, plugin-extensible. Not associated with PSF.

Project description

pypi-profile

pypi-profile is a CLI and small FastAPI app for publishing a maintainer profile from a pypi_profile.toml file.

It is aimed at package publishers who want one place to describe who maintains a project, what packages and projects they work on, how to contact them, and how to prove control over related external accounts.

What the package does

pypi-profile currently ships:

  • a CLI for init, validate, inspect, serve, dump, doctor, fetch, keygen, sign, verify, update-proofs, build, find-profiles, and gui
  • a TOML-first profile format for identity, packages, projects, hiring, contact, succession, and verification data
  • a FastAPI + Jinja2 site renderer with matching JSON endpoints
  • a minisign-based proof-of-control flow for external profile URLs

This README documents the usable core that ships today. It is intentionally not a roadmap for unfinished extension work.

Install

Recommended: pipx

pipx install pypi-profile

Alternative: pip

pip install pypi-profile

Optional extras

The standard install already includes the web server and signing support.

Install extras if you also want:

  • fetch for httpx-powered live metadata fetches
  • validate for JSON Resume schema validation
  • all for both
pipx install "pypi-profile[all]"

Or with pip:

pip install "pypi-profile[all]"

From source

This repository is a uv workspace. Run commands from the repo root:

git clone https://github.com/matthewdeanmartin/matthewdeanmartin_pypi.git
cd matthewdeanmartin_pypi
uv sync --all-extras
uv run pypi-profile --help

Use the CLI entry point pypi-profile, not python -m pypi_profile.

Usage

The shortest path from zero to a local profile site is:

pypi-profile init --username your-pypi-name
pypi-profile validate pypi_profile.toml
pypi-profile serve pypi_profile.toml

That gives you a starter TOML file and serves the profile locally at http://127.0.0.1:8000.

Useful follow-up commands:

pypi-profile inspect pypi_profile.toml
pypi-profile dump pypi_profile.toml
pypi-profile doctor

If you already have source data, you can bootstrap from it:

pypi-profile init --from-json-resume resume.json --output pypi_profile.toml
pypi-profile init --username your-pypi-name --fetch

Security notes

  • Proof-of-control signing is built around a local secret key. Keep that key out of version control.
  • serve --allow-code is opt-in. Do not enable it for untrusted code.
  • Verification proves account co-control, not legal identity or the truth of every profile claim.

For the fuller package docs, see docs/installation.md, docs/usage/quickstart.md, and docs/security.md in this package directory.

Legal

Apache license to match the Warehouse license for theme assets.

Not associated with the PSF. Trademarked logos are removed from the profile UI.

PyPI is a trademark of the Python Software Foundation.

PyPI's template and theme are Apache-licensed via Warehouse.

Project details


Download files

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

Source Distribution

pypi_profile-0.1.0.tar.gz (108.1 kB view details)

Uploaded Source

Built Distribution

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

pypi_profile-0.1.0-py3-none-any.whl (116.3 kB view details)

Uploaded Python 3

File details

Details for the file pypi_profile-0.1.0.tar.gz.

File metadata

  • Download URL: pypi_profile-0.1.0.tar.gz
  • Upload date:
  • Size: 108.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for pypi_profile-0.1.0.tar.gz
Algorithm Hash digest
SHA256 2de45d9b38197b73f08a16107c2b2d60fc4065e331b0be8d09c52adce00ba8be
MD5 d54562236c1286f6a7fd33a4e61a89a7
BLAKE2b-256 d13001f19909eb608216963acf36e9c426d00c1438b3be12550d437475586514

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypi_profile-0.1.0.tar.gz:

Publisher: publish_pypi_profile.yml on matthewdeanmartin/matthewdeanmartin_pypi

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pypi_profile-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: pypi_profile-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 116.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for pypi_profile-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 89dc8d05df2b7875ffb7e8669b95a235066787a336c2cde19f8b8587a9b59357
MD5 5f885772147e508c885d3adec2cfb8e4
BLAKE2b-256 ceaf1b9276fd22013c0a1d19a84dd70d45c4f1d13e47df0b89759eeb6eb62832

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypi_profile-0.1.0-py3-none-any.whl:

Publisher: publish_pypi_profile.yml on matthewdeanmartin/matthewdeanmartin_pypi

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page