@public and @private – Document your module’s interface

This library provies two very simple decorators that document the publicness of the names in your module. They keep your module’s __all__ in sync so you don’t have to.

Please note that while the package is called public and it provides a top-level module named public, the PyPI package is called atpublic due to name conflicts.


public requires Python 3.6 or newer.


A simple guide to using the library is available, along with a detailed API reference.

Project details

You can install it with pip:

% pip install atpublic

Do not install “public”; that is a different package!

You can grab the latest development copy of the code using git. The master repository is hosted on GitLab. If you have git installed, you can grab your own branch of the code like this:

$ git clone https://gitlab.com/warsaw/public.git

You may contact the author via barry@python.org.