1# -*- coding: utf-8 -*- 2 3import os 4import re 5import sys 6from setuptools import setup 7from setuptools.command.test import test as TestCommand 8 9HERE = os.path.dirname(os.path.realpath(__file__)) 10 11 12class PyTest(TestCommand): 13 """ 14 Run py.test with the "python setup.py test command" 15 """ 16 user_options = [('pytest-args=', 'a', "Arguments to pass to py.test")] 17 18 def initialize_options(self): 19 TestCommand.initialize_options(self) 20 self.pytest_args = '' 21 22 def finalize_options(self): 23 TestCommand.finalize_options(self) 24 self.pytest_args += (' ' + self.distribution.test_suite) 25 26 def run_tests(self): 27 import pytest 28 errno = pytest.main(self.pytest_args) 29 sys.exit(errno) 30 31 32def read(*parts): 33 with open(os.path.join(HERE, *parts)) as f: 34 return f.read() 35 36 37def parse_requirements(data, exclude=()): 38 return [line for line in data.splitlines() 39 if line and not line.startswith("#") and line not in exclude] 40 41 42def version(): 43 return re.findall(r"__version__ = \"([\d.]+)\"", 44 read("dlmanager", "__init__.py"))[0] 45 46setup( 47 name="dlmanager", 48 version=version(), 49 description="download manager library", 50 long_description=read("README.rst"), 51 author="Julien Pagès", 52 author_email="j.parkouss@gmail.com", 53 url="http://github.com/parkouss/dlmanager", 54 license="GPL/LGPL", 55 install_requires=parse_requirements(read("requirements.txt")), 56 cmdclass={'test': PyTest}, 57 tests_require=parse_requirements(read("requirements.txt"), 58 exclude=("-e .",)), 59 test_suite='tests', 60) 61