Pypi package name restricted namespace proposal

The Private :: Do Not Upload classifier kind of happened accidentally.

It’s use happened accidentally, because PyPI does not allow unknown classifiers in uploads, so if your project includes an unknown classifier, PyPI rejects the download. Someone at some point realized that meant you could prevent private projects from being accidentally uploaded to PyPI by adding an unknown classifier. It’s always been a bit of a weird way of implementing it [1], but it works!

At some point PyPI documented it explicitly in the classifiers page that any classifier that begun with Private :: would never be acceptable on PyPI.


  1. Conceptually cleaner is probably an upload client feature that allows you to explicitly define which repositories it is OK to release your project for, but that’s harder to ensure will happen vs a classifier like this. ↩︎

2 Likes