Single-source: There is only one truth
single-source helps to reduce the entropy in your Python project by keeping
single source of truth.
The targets of this library are modern Python projects which want to have
one source of truth for version, name and etc.
At the moment, the library provides the single point for a package version.
It supports Python 3.6+.
Quick start
from pathlib import Path
from single_source import get_version
__version__ = get_version(__name__, Path(__file__).parent.parent)
Root of the problem
You use modern pyproject.toml and want to keep the version of your package
here:
[tool.poetry]
name = "modern-project"
version = "0.1.0"
Let's imagine the version of your package is required in some place of the code.
Since you need the version in your Python code, you may want to duplicate the version by putting it as a string variable to some python file:
__version__ = "0.1.0"
|