python-package-boilerplate
python-package-boilerplate copied to clipboard
version.py convention
Thanks for this great repo. I'm trying to understand what is the advantage of fetching the version using version.py vs. setting it directly in setup.py
version=Version('1.0.0').number,
vs
version=1.0.0,
I suppose this approach could be re-vamped in some way. The Version
class is mostly set up so that it can be locked down in the code. It can be useful to have a class for the version of your package so that you can do any checks in the code for branching logic, deprecation warnings, etc. I am open to seeing if there are better ways at doing this if you have any suggestions.
Your explanation makes a lot of sense.
Although I don't manage to fetch the version number once the package is installed. i.e:
# setup.py
setuptools.setup(
name="mypackage",
version=Version("1.0.0-rc.2").number,
)
pip install -r requirements.txt
from mypackage.version import Version
print(Version.number)
but I get
AttributeError: type object 'Version' has no attribute 'number'
Number is an instance method so you would have to do Version('1.0.0-rc.2').number
to get a string of the version. In other languages I have done this where it allows you to get the parts of the version i.e. major, minor, patch. Thinking this could maybe be cleaned up a bit.