Skip to main content

Software Metadata for Humans

Project description

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__     = "4.0.0",
  __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",
  __readme__      = "README.md",
  __classifiers__ = ["Programming Language :: Python :: 2.7" ,
                     "Topic :: Software Development"         ,
                     "Operating System :: OS Independent"    ,
                     "Intended Audience :: Developers"       ,
                     "License :: OSI Approved :: MIT License",
                     "Development Status :: 3 - Alpha"       ]
)

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__
4.0.0
>>> print about.__license__
MIT License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

about-4.0.0-beta.tar.gz (39.2 kB view details)

Uploaded Source

File details

Details for the file about-4.0.0-beta.tar.gz.

File metadata

  • Download URL: about-4.0.0-beta.tar.gz
  • Upload date:
  • Size: 39.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for about-4.0.0-beta.tar.gz
Algorithm Hash digest
SHA256 b6d2c6960cde13edc0afa1e5d872868f270ba130d5673cbdf9cfeb71ec452fde
MD5 8d5bcb1623a08af56859eddcd74709e5
BLAKE2b-256 05b082489a381ac11db35aeedccb05751c7c39240ce10c10e4a726c82fc731e1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page