forked from weecology/retriever
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsetup.py
115 lines (100 loc) · 3.46 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
"""Use the following command to install retriever: python setup.py install"""
from __future__ import absolute_import
import os
import platform
from pkg_resources import parse_version
from setuptools import setup, find_packages
current_platform = platform.system().lower()
extra_includes = []
if current_platform == "windows":
extra_includes += ["pypyodbc"]
if os.path.exists(".git/hooks"): # check if we are in git repo
os.system("cp hooks/pre-commit .git/hooks/pre-commit")
os.system("chmod +x .git/hooks/pre-commit")
app_data = "~/.retriever/scripts"
if os.path.exists(app_data):
os.system("rm -r {}".format(app_data))
__version__ = 'v2.1.0'
with open(os.path.join("retriever", "_version.py"), "w") as version_file:
version_file.write("__version__ = " + "'" + __version__ + "'\n")
version_file.close()
def clean_version(v):
return parse_version(v).__repr__().lstrip("<Version('").rstrip("')>")
includes = [
'xlrd',
'future',
'argcomplete',
'pymysql',
'psycopg2',
'sqlite3',
] + extra_includes
excludes = [
'pyreadline',
'doctest',
'pickle',
'pdb',
'pywin', 'pywin.debugger',
'pywin.debugger.dbgcon',
'pywin.dialogs', 'pywin.dialogs.list',
'Tkconstants', 'Tkinter', 'tcl', 'tk'
]
setup(name='retriever',
version=clean_version(__version__),
description='Data Retriever',
author='Ben Morris, Shivam Negi, Akash Goel, Andrew Zhang, Henry Senyondo, Ethan White',
author_email='[email protected]',
url='https://github.com/weecology/retriever',
classifiers=['Intended Audience :: Science/Research',
'License :: OSI Approved :: MIT License',
'Programming Language :: Python',
'Programming Language :: Python :: 2',
'Programming Language :: Python :: 3', ],
packages=find_packages(
exclude=['hooks',
'docs',
'tests',
'scripts',
'docker',
".cache"]),
entry_points={
'console_scripts': [
'retriever = retriever.__main__:main',
],
},
install_requires=[
'xlrd',
'future',
'argcomplete'
],
data_files=[('', ['CITATION'])],
setup_requires=[],
)
# windows doesn't have bash. No point in using bash-completion
if current_platform != "windows":
# if platform is OS X use "~/.bash_profile"
if current_platform == "darwin":
bash_file = "~/.bash_profile"
# if platform is Linux use "~/.bashrc
elif current_platform == "linux":
bash_file = "~/.bashrc"
# else write and discard
else:
bash_file = "/dev/null"
argcomplete_command = 'eval "$(register-python-argcomplete retriever)"'
with open(os.path.expanduser(bash_file), "a+") as bashrc:
bashrc.seek(0)
# register retriever for arg-completion if not already registered
# whenever a new shell is spawned
if argcomplete_command not in bashrc.read():
bashrc.write(argcomplete_command + "\n")
bashrc.close()
os.system("activate-global-python-argcomplete")
# register for the current shell
os.system(argcomplete_command)
try:
from retriever.compile import compile
from retriever.lib.repository import check_for_updates
check_for_updates(False)
compile()
except:
pass