forked from stephen-bunn/sandpaper
-
Notifications
You must be signed in to change notification settings - Fork 0
/
setup.py
104 lines (87 loc) · 2.78 KB
/
setup.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
#!/usr/bin/env python
# -*- encoding: utf-8 -*-
#
# Copyright (c) 2017 Stephen Bunn (stephen@bunn.io)
# MIT License <https://opensource.org/licenses/MIT>
import os
import sys
import shutil
import setuptools
CURDIR = os.path.abspath(os.path.dirname(__file__))
REQUIRES = [
'six',
'regex',
'pyexcel',
'pyexcel-io',
'pyexcel-xls',
'pyexcel-xlsx',
]
RELEASE = {}
# NOTE: important dumb setup for complete segregation of module info
with open(os.path.join(CURDIR, 'sandpaper', '__version__.py'), 'r') as fp:
exec(fp.read(), RELEASE)
class UploadCommand(setuptools.Command):
description = 'Build and publish package'
user_options = []
@staticmethod
def status(status):
print(('... {status}').format(**locals()))
def initialize_options(self):
pass
def finalize_options(self):
pass
def run(self):
try:
self.status('removing previous builds')
shutil.rmtree(os.path.join(CURDIR, 'dist'))
except FileNotFoundError:
pass
self.status('building distribution')
os.system(('{exe} setup.py sdist').format(exe=sys.executable))
self.status('uploading distribution')
os.system('twine upload dist/*')
self.status('pushing git tags')
os.system(('git tag v{ver}').format(ver=RELEASE['__version__']))
os.system('git push --tags')
sys.exit()
setuptools.setup(
name=RELEASE['__name__'],
version=RELEASE['__version__'],
description=RELEASE['__description__'],
long_description=open(os.path.join(CURDIR, 'README.rst'), 'r').read(),
license=RELEASE['__license__'],
author=RELEASE['__author__'],
author_email=RELEASE['__contact__'],
url='https://github.com/stephen-bunn/sandpaper',
include_package_data=True,
install_requires=REQUIRES,
packages=setuptools.find_packages(),
keywords=[
'normalize',
'csv',
'excel',
'table',
'clean',
],
python_requires='>=2.7',
classifiers=[
'Development Status :: 2 - Pre-Alpha',
'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 :: 3.6',
'License :: OSI Approved :: MIT License',
'Intended Audience :: Developers',
'Intended Audience :: System Administrators',
'Operating System :: POSIX',
'Operating System :: MacOS :: MacOS X',
'Natural Language :: English',
'Topic :: Software Development :: Pre-processors',
'Topic :: Software Development :: Quality Assurance',
],
cmdclass={
'upload': UploadCommand,
},
)