yp
A mapping view to pypi projects
To install: pip install yp
See also: pipoke, for more pypi interaction tools.
Example Usage
Get a mapping of all of pypi projects.
>>> from yp import Pypi
>>> p = Pypi()
The keys of this mapping are the project names. There are lots!
>>> len(p) # doctest: +SKIP
405120
>>> 'numpy' in p and 'dol' in p
True
>>> 'no_way_this_is_a_package' in p
False
The values of the mapping are the corresponding project's info, which is a nested dict of good stuff.
>>> info = p['numpy']
>>> list(info)
['info', 'last_serial', 'releases', 'urls', 'vulnerabilities']
Tip: To only get the info you want, you'll
The project info is obtained, live, making requests to the
https://pypi.python.org/pypi/{pkg_name}/json API,
but the list of all project names is actually taken from a local file.
You should update that file regularly (but not TOO regularly!) to be in sync
with pypi.org. To do so, do this:
>>> Pypi.refresh_cached_package_names() # doctest: +SKIP
If, on the other hand, you don't want all projects of Pypi to be the collection
you're working with, you can specify what user they should belong to:
>>> p = Pypi(user='thorwhalen1')
>>> len(p) # doctest: +SKIP
131
You can also explicitly give Pypi a collection of projects you want to work
with:
>>> p = Pypi(proj_names={'numpy', 'pandas', 'dol'})
>>> len(p)
3
You can do a lot more by simply using the tools of dol to change the mapping
you want to work with in all kinds of ways!
Extras
yp ships a cached list of every PyPI project name (yp/data/pkg_list.tsv.gz), so
name lookups are instant and offline. The cache is loaded lazily -- the first lookup
pays for it, import yp does not.
yp.refresh_saved_pkg_name_stub() fetches the current list and saves it to your app
folder, which then takes precedence over the copy shipped with the package. (It writes
there rather than into the installed package, which is read-only in many installs.)
Pass save_to= to write elsewhere.
I also refresh the shipped copy from time to time and push the results. You can find the list (as a text file with one name per line) here: https://raw.githubusercontent.com/thorwhalen/yp/refs/heads/master/yp/data/pkg_list.txt
Skills
yp ships AI agent skills
(SKILL.md files) that teach an agent how to drive its tools. They live in
yp/data/skills/ (so they install with the package) and are mirrored into
.claude/skills/ for Claude Code.
| Skill | What it helps you do |
|---|---|
yp-name-availability |
Find an available PyPI name for a new package: brainstorm → fast cached pre-filter → authoritative live check → present the free options. |
yp-name-cache |
Operate the cached PyPI name index: refresh it, check names fast/offline, understand freshness & normalization caveats. |
yp-package-info |
Fetch live PyPI info: full project JSON, a tidy digest, latest version(s), last-upload time, a user's projects, bulk download. |
yp-dependencies |
Inspect an installed package's dependency tree (direct/transitive, required vs installed, version conflicts). |
Install one into an agent host with gh skill:
gh skill install thorwhalen/yp yp-name-availability
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file yp-0.0.12.tar.gz.
File metadata
- Download URL: yp-0.0.12.tar.gz
- Upload date:
- Size: 4.0 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.10.21
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1c5ff472bbccc7058a7319063df4a18776a3b0787ec1685bf316bd72798f90fd
|
|
| MD5 |
83b221db149c6e30d113f2fe160c072c
|
|
| BLAKE2b-256 |
0e2da58c48b5cb560e319c722436a375db67e8d96508361f849142ca1ab46a28
|
File details
Details for the file yp-0.0.12-py3-none-any.whl.
File metadata
- Download URL: yp-0.0.12-py3-none-any.whl
- Upload date:
- Size: 4.0 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.10.21
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
299e5cee511bfc80d0a8a39caf295ee2b9dfd4699b0744bb6dd5033f2f15d57b
|
|
| MD5 |
787277e28d095714cc062e18b1972a7a
|
|
| BLAKE2b-256 |
ba8835eb5fe44560cc4dd2317058055d52af2be1155c73614adb7b55793607e3
|