114 words
1 minute
Adding project links to PyPI
Anubhav Gain
2024-01-27

Adding project links to PyPI#

I spotted a neat looking project links section on https://pypi.org/project/ExifReader/

Turns out that’s added using a project_urls key in setup.py, e.g. here: https://gitlab.com/Cyb3r-Jak3/exifreader/-/blob/publish/setup.py

project_urls={
"Issues": "https://gitlab.com/Cyb3r-Jak3/ExifReader/issues",
"Source Code": "https://gitlab.com/Cyb3r-Jak3/ExifReader/-/tree/publish",
"CI": "https://gitlab.com/Cyb3r-Jak3/ExifReader/pipelines",
"Releases": "https://github.com/Cyb3r-Jak3/ExifReader"
},

The documentation says that the keys can be any string you like. So where do those icons come from?

I looked at the HTML source code and searched the PyPI website source code for one of the CSS classes I found there: https://github.com/pypa/warehouse/search?q=fa-bug&unscoped_q=fa-bug

This lead me to the macro that defines the custom icons, which shows what custom keys or URLs are supported: https://github.com/pypa/warehouse/blob/2f00f4a9f208546ff0ebb6a6e61439021ca60a43/warehouse/templates/packaging/detail.html#L16-L60

I added these to the sqlite-utils PyPI page in this commit.

Project links on PyPI
Adding project links to PyPI
https://mranv.pages.dev/posts/adding-project-links-to-pypi/
Author
Anubhav Gain
Published at
2024-01-27
License
CC BY-NC-SA 4.0