- URLs to path() style - Misc updates - Namespaces all URL references - Removes dependency on AutoSlugField - Cleaner reversals - Cleaner docstrings
107 lines
2.8 KiB
Python
Executable file
107 lines
2.8 KiB
Python
Executable file
#!/usr/bin/env python
|
|
|
|
from glob import glob
|
|
from os import remove
|
|
from os.path import abspath, dirname, join
|
|
from setuptools import setup, find_packages
|
|
from setuptools.command.test import test as TestCommand
|
|
from shlex import split
|
|
from shutil import rmtree
|
|
from sys import exit
|
|
|
|
import todo as package
|
|
|
|
|
|
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):
|
|
import tox
|
|
args = self.tox_args
|
|
if args:
|
|
args = split(self.tox_args)
|
|
errno = tox.cmdline(args=args)
|
|
exit(errno)
|
|
|
|
|
|
class Clean(TestCommand):
|
|
def run(self):
|
|
delete_in_root = [
|
|
'build',
|
|
'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))
|
|
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(*pathname):
|
|
with open(join(dirname(abspath(__file__)), *pathname)) as f:
|
|
return f.read()
|
|
|
|
|
|
setup(
|
|
name='django-todo',
|
|
version=package.__version__,
|
|
description=package.__doc__.strip(),
|
|
long_description=read_file('README.rst'),
|
|
author=package.__author__,
|
|
author_email=package.__email__,
|
|
url=package.__url__,
|
|
license=package.__license__,
|
|
packages=find_packages(),
|
|
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 :: 3',
|
|
'Topic :: Office/Business :: Groupware',
|
|
'Topic :: Software Development :: Bug Tracking',
|
|
],
|
|
include_package_data=True,
|
|
zip_safe=False,
|
|
tests_require=['tox'],
|
|
install_requires=['unidecode', ],
|
|
cmdclass={
|
|
'clean': Clean,
|
|
'test': Tox,
|
|
},
|
|
)
|