107 lines
3.0 KiB
Python
Executable File
107 lines
3.0 KiB
Python
Executable File
#!/usr/bin/env python
|
|
import semver as package
|
|
from glob import glob
|
|
from os import remove
|
|
from os.path import dirname, join
|
|
from setuptools import setup
|
|
from setuptools.command.test import test as TestCommand
|
|
from shlex import split
|
|
from shutil import rmtree
|
|
|
|
|
|
class Tox(TestCommand):
|
|
user_options = [('tox-args=', 'a', "Arguments to pass to tox")]
|
|
|
|
def initialize_options(self):
|
|
TestCommand.initialize_options(self)
|
|
self.tox_args = None
|
|
|
|
def finalize_options(self):
|
|
TestCommand.finalize_options(self)
|
|
self.test_args = []
|
|
self.test_suite = True
|
|
|
|
def run_tests(self):
|
|
from tox import cmdline
|
|
args = self.tox_args
|
|
if args:
|
|
args = split(self.tox_args)
|
|
errno = cmdline(args=args)
|
|
exit(errno)
|
|
|
|
|
|
class Clean(TestCommand):
|
|
def run(self):
|
|
delete_in_root = [
|
|
'build',
|
|
'.cache',
|
|
'dist',
|
|
'.eggs',
|
|
'*.egg-info',
|
|
'.tox',
|
|
]
|
|
delete_everywhere = [
|
|
'__pycache__',
|
|
'*.pyc',
|
|
]
|
|
for candidate in delete_in_root:
|
|
rmtree_glob(candidate)
|
|
for visible_dir in glob('[A-Za-z0-9]*'):
|
|
for candidate in delete_everywhere:
|
|
rmtree_glob(join(visible_dir, candidate))
|
|
rmtree_glob(join(visible_dir, '*', candidate))
|
|
|
|
|
|
def rmtree_glob(file_glob):
|
|
for fobj in glob(file_glob):
|
|
try:
|
|
rmtree(fobj)
|
|
print('%s/ removed ...' % fobj)
|
|
except OSError:
|
|
try:
|
|
remove(fobj)
|
|
print('%s removed ...' % fobj)
|
|
except OSError:
|
|
pass
|
|
|
|
|
|
def read_file(filename):
|
|
with open(join(dirname(__file__), filename)) as f:
|
|
return f.read()
|
|
|
|
|
|
setup(
|
|
name=package.__name__,
|
|
version=package.__version__,
|
|
description=package.__doc__.strip(),
|
|
long_description=read_file('README.rst'),
|
|
author=package.__author__,
|
|
author_email=package.__author_email__,
|
|
url='https://github.com/k-bx/python-semver',
|
|
download_url='https://github.com/k-bx/python-semver/downloads',
|
|
py_modules=[package.__name__],
|
|
include_package_data=True,
|
|
license='BSD',
|
|
classifiers=[
|
|
'Environment :: Web Environment',
|
|
'Intended Audience :: Developers',
|
|
'License :: OSI Approved :: BSD License',
|
|
'Operating System :: OS Independent',
|
|
'Programming Language :: Python',
|
|
'Programming Language :: Python :: 2',
|
|
'Programming Language :: Python :: 2.6',
|
|
'Programming Language :: Python :: 2.7',
|
|
'Programming Language :: Python :: 3',
|
|
'Programming Language :: Python :: 3.2',
|
|
'Programming Language :: Python :: 3.3',
|
|
'Programming Language :: Python :: 3.4',
|
|
'Programming Language :: Python :: 3.5',
|
|
'Topic :: Software Development :: Libraries :: Python Modules',
|
|
],
|
|
tests_require=['tox', 'virtualenv<14.0.0'],
|
|
cmdclass={
|
|
'clean': Clean,
|
|
'test': Tox,
|
|
},
|
|
)
|