Software Metadata for Humans
Summary: define the metadata of your project in a single place, then make it available at setup-time and at runtime.
Let’s consider the about package as an example ; we add to our project files, in the source tree, a file named about.py that contains the metadata of the project:
about |--- setup.py |--- README.md |... |--- about | |--- __init__.py | |... | |--- about.py
This file contains the metadata (and a little boilerplate):
# coding: utf-8 metadata = dict( __name__ = "about", __version__ = "5.1.1", __license__ = "MIT License", __author__ = u"Sébastien Boisgérault <Sebastien.Boisgerault@gmail.com>", __url__ = "https://warehouse.python.org/project/about", __summary__ = "Software Metadata for Humans", __keywords__ = "Python / 2.7, OS independent, software development" ) globals().update(metadata) __all__ = metadata.keys()
Setup. To use this metadata, the setup.py file includes the code:
import about import about.about info = about.get_metadata(about.about) # add extra information (contents, requirements, etc.). info.update(...) if __name__ == "__main__": setuptools.setup(**info)
Runtime. The metadata is stored as a collection of attributes of the about.about module. If we include in the about/__init__.py file the one-liner
from .about import *
they become available in the top-level module:
>>> import about >>> print about.__name__ about >>> print about.__version__ 5.1.1 >>> print about.__license__ MIT License
Release history Release notifications | RSS feed
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.