-
Notifications
You must be signed in to change notification settings - Fork 443
/
setup.py
executable file
·130 lines (111 loc) · 3.84 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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
#!/usr/bin/env python
# coding=utf-8
"""The gitsome installer."""
from __future__ import print_function, unicode_literals
import os
import sys
try:
from setuptools import setup, find_packages
from setuptools.command.sdist import sdist
from setuptools.command.install import install
from setuptools.command.develop import develop
HAVE_SETUPTOOLS = True
except ImportError:
from distutils.core import setup
from distutils.command.sdist import sdist as sdist
from distutils.command.install import install as install
HAVE_SETUPTOOLS = False
from gitsome.__init__ import __version__ as VERSION
TABLES = ['xonsh/lexer_table.py', 'xonsh/parser_table.py']
def clean_tables():
for f in TABLES:
if os.path.isfile(f):
os.remove(f)
print('Remove ' + f)
def build_tables():
print('Building lexer and parser tables.')
sys.path.insert(0, os.path.dirname(__file__))
from xonsh.parser import Parser
Parser(lexer_table='lexer_table', yacc_table='parser_table',
outputdir='xonsh')
sys.path.pop(0)
class xinstall(install):
def run(self):
clean_tables()
build_tables()
install.run(self)
class xsdist(sdist):
def make_release_tree(self, basedir, files):
clean_tables()
build_tables()
sdist.make_release_tree(self, basedir, files)
if HAVE_SETUPTOOLS:
class xdevelop(develop):
def run(self):
clean_tables()
build_tables()
develop.run(self)
def main():
if sys.version_info < (3, 5):
print('gitsome requires at least Python 3.5.')
sys.exit(1)
try:
if '--name' not in sys.argv:
print(logo)
except UnicodeEncodeError:
pass
skw = dict(
name='gitsome',
description='A Supercharged Git/Shell Autocompleter with GitHub Integration.', # NOQA
license='Apache License 2.0',
version=VERSION,
author='Donne Martin',
maintainer='Donne Martin',
author_email='[email protected]',
url='https://github.com/donnemartin/gitsome',
platforms='Cross Platform',
classifiers=[
'Intended Audience :: Developers',
'Intended Audience :: System Administrators',
'License :: OSI Approved :: Apache Software License',
'Natural Language :: English',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.5',
'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: 3.7',
'Topic :: Software Development',
'Topic :: Software Development :: Libraries :: Python Modules',
],
packages=find_packages(),
scripts=['scripts/xonsh',
'scripts/xonsh.bat',
'scripts/gitsome',
'scripts/gitsome.bat'],
cmdclass={'install': xinstall, 'sdist': xsdist},
)
if HAVE_SETUPTOOLS:
skw['setup_requires'] = ['ply']
skw['install_requires'] = [
'ply>=3.4,<4.0',
'prompt_toolkit>=2.0.0,<2.1.0',
'requests>=2.8.1,<3.0.0',
'colorama>=0.3.3,<1.0.0',
'click>=5.1,<7.0',
'pygments>=2.0.2,<3.0.0',
'feedparser>=5.2.1,<6.0.0',
'pytz>=2016.3,<2017.0',
'docopt>=0.6.2,<1.0.0',
'uritemplate.py>=1.0.0,<4.0.0',
],
skw['entry_points'] = {
'pygments.lexers': ['gitsome = xonsh.pyghooks:XonshLexer',
'gitsomecon = xonsh.pyghooks:XonshConsoleLexer',
],
'console_scripts': ['gh = gitsome.main_cli:cli',
],
}
skw['cmdclass']['develop'] = xdevelop
setup(**skw)
logo = ''
if __name__ == '__main__':
main()