Browse Source

Improved get_version.

master 0.2
Erik Stein 7 years ago
parent
commit
fc7eba0a10
  1. 33
      setup.py
  2. 5
      shared/markup/__init__.py

33
setup.py

@ -1,14 +1,39 @@
#!/usr/bin/env python #!/usr/bin/env python
from io import open from io import open
from setuptools import find_packages, setup
import os import os
from setuptools import setup, find_packages import re
import subprocess
"""
Use `git tag 1.0.0` to tag a release; `python setup.py --version`
to update the _version.py file.
"""
def get_version(prefix): def get_version(prefix):
import re if os.path.exists('.git'):
with open(os.path.join(prefix, '__init__.py')) as fd: parts = subprocess.check_output(['git', 'describe', '--tags']).decode().strip().split('-')
metadata = dict(re.findall("__([a-z]+)__ = '([^']+)'", fd.read())) if len(parts) == 3:
version = '{}.{}+{}'.format(*parts)
else:
version = parts[0]
version_py = "__version__ = '{}'".format(version)
_version = os.path.join(prefix, '_version.py')
if not os.path.exists(_version) or open(_version).read().strip() != version_py:
with open(_version, 'w') as fd:
fd.write(version_py)
return version
else:
for f in ('_version.py', '__init__.py'):
f = os.path.join(prefix, f)
if os.path.exists(f):
with open(f) as fd:
metadata = dict(re.findall("__([a-z]+)__ = '([^']+)'", fd.read()))
if 'version' in metadata:
break
return metadata['version'] return metadata['version']

5
shared/markup/__init__.py

@ -1 +1,4 @@
__version__ = '0.5' try:
from ._version import __version__
except ImportError:
pass

Loading…
Cancel
Save