bidict/setup.py

74 lines
2.4 KiB
Python

from io import open
from setuptools import setup, Command
from warnings import warn
try:
with open('bidict/VERSION', encoding='utf8') as f:
version = f.read().strip()
except Exception as e:
version = '0.0.0'
warn('Could not open bidict/VERSION, using bogus version (%s): %r' %
(version, e))
try:
with open('README.rst', encoding='utf8') as f:
long_description = f.read()
except Exception as e:
long_description = 'See https://bidict.readthedocs.org'
warn('Could not open README.rst, using provisional long_description '
'(%r): %r' % (long_description, e))
tests_require = [
'pep257>=0.7.0',
'py>=1.4.31',
'pytest>=2.8.5',
'pytest-cov>=2.2.0',
'hypothesis>=1.17.1',
'hypothesis-pytest>=0.19.0',
]
class PyTest(Command):
user_options = []
def initialize_options(self): pass
def finalize_options(self): pass
def run(self):
from subprocess import call
errno = call(['py.test'])
raise SystemExit(errno)
setup(
name='bidict',
version=version,
author='Joshua Bronson',
author_email='jab@math.brown.edu',
description='Efficient, Pythonic bidirectional map implementation and related functionality',
long_description=long_description,
keywords='dict, dictionary, mapping, bidirectional, bijection, bijective, injective, two-way, 2-way, double, inverse, reverse',
url='https://github.com/jab/bidict',
license='ISCL',
packages=['bidict'],
package_data=dict(bidict=['VERSION']),
zip_safe=True,
classifiers=[
'Development Status :: 4 - Beta',
'Intended Audience :: Developers',
'License :: OSI Approved :: ISC License (ISCL)',
'Natural Language :: English',
'Operating System :: OS Independent',
'Programming Language :: Python :: 2.7',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.3',
'Programming Language :: Python :: 3.4',
'Programming Language :: Python :: 3.5',
'Programming Language :: Python :: Implementation :: CPython',
'Programming Language :: Python :: Implementation :: PyPy',
'Topic :: Scientific/Engineering :: Mathematics',
'Topic :: Software Development :: Libraries :: Python Modules',
],
cmdclass=dict(test=PyTest),
tests_require=tests_require,
extras_require=dict(
dev=['pre-commit'] + tests_require,
test=tests_require,
),
)