#!/usr/bin/env python from io import open from setuptools import find_packages, setup import os import re import subprocess """ Use `git tag -a -m "Release 1.0.0" 1.0.0` to tag a release; `python setup.py --version` to update the _version.py file. """ def get_version(prefix): if os.path.exists('.git'): parts = subprocess.check_output(['git', 'describe', '--tags']).decode().strip().split('-') 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'] def read(filename): path = os.path.join(os.path.dirname(__file__), filename) with open(path, encoding='utf-8') as handle: return handle.read() setup( name='django-shared-utils', version=get_version('shared/utils'), description=' Mix of Python and Django utility functions, classed etc.', long_description=read('README.md'), author='Erik Stein', author_email='erik@classlibrary.net', url='https://projects.c--y.net/erik/django-shared-utils/', license='MIT License', platforms=['OS Independent'], packages=find_packages( exclude=['tests', 'testapp'], ), namespace_packages=['shared'], include_package_data=True, install_requires=[ # 'django<2', commented out to make `pip install -U` easier 'python-dateutil', 'beautifulsoup4', 'translitcodec', 'django-dirtyfields', 'six', ], classifiers=[ # 'Development Status :: 4 - Beta', 'Environment :: Web Environment', 'Framework :: Django', 'Intended Audience :: Developers', 'License :: OSI Approved :: BSD License', 'Operating System :: OS Independent', 'Programming Language :: Python', # 'Programming Language :: Python :: 2', # 'Programming Language :: Python :: 2.7', # 'Programming Language :: Python :: 3', # 'Programming Language :: Python :: 3.3', # 'Programming Language :: Python :: 3.4', 'Topic :: Utilities', ], zip_safe=False, tests_require=[ 'Django', # 'coverage', # 'django-mptt', # 'pytz', ], # test_suite='testapp.runtests.runtests', )