-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathsetup.py
120 lines (105 loc) · 3.75 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
#!/usr/bin/env python3
# Copyright 2014 Climate Forecasting Unit, IC3
# This file is part of Autosubmit.
# Autosubmit is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# Autosubmit is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with Autosubmit. If not, see <http://www.gnu.org/licenses/>.
from os import path
from setuptools import setup
from setuptools import find_packages
here = path.abspath(path.dirname(__file__))
# Get the version number from the relevant file
with open(path.join(here, 'VERSION')) as f:
version = f.read().strip()
install_requires = [
'xlib==0.21',
'setuptools<=68.2.2',
'bscearth.utils<=0.5.2',
'requests<=2.31.0',
'networkx<=2.6.3',
'portalocker<=2.7.0',
'paramiko>=3.5.0',
'pyparsing==3.1.1',
'matplotlib<=3.8.3',
'packaging<=23.2',
'typing_extensions<=4.9.0',
'typing<=3.7.4.3',
'psutil<=5.6.1',
'py3dotplus==1.1.0',
'numpy<2',
'rocrate==0.*',
'autosubmitconfigparser==1.0.76',
'configparser',
'setproctitle',
'invoke>=2.0',
# 'sqlalchemy[mypy]' # TODO: pending Postgres MR
]
pg_require = [
'psycopg2'
]
docs_require = [
'livereload',
'pydata-sphinx-theme==0.15.*',
'sphinx==5.*',
'sphinx-autobuild==2021.3.*',
'sphinx_rtd_theme',
'sphinx-reredirects==0.1.*'
]
tests_require = [
'pytest==8.2.*',
'pytest-cov',
'pytest-mock',
'ruff==0.6.2',
# 'testcontainers' # TODO: pending Postgres MR
]
# You can add more groups, e.g. all_require = tests_require + graph_require, etc...
all_require = tests_require + pg_require
extras_require = {
'postgres': pg_require,
'tests': tests_require,
'docs': docs_require,
'all': all_require
}
setup(
name='autosubmit',
license='GNU GPL v3',
platforms=['GNU/Linux Debian'],
version=version,
description='Autosubmit is a Python-based workflow manager to create, manage and monitor complex tasks involving different substeps, such as scientific computational experiments. These workflows may involve multiple computing systems for their completion, from HPCs to post-processing clusters or workstations. Autosubmit can orchestrate all the tasks integrating the workflow by managing their dependencies, interfacing with all the platforms involved, and handling eventual errors.',
long_description=open('README_PIP.md').read(),
author='Daniel Beltran Mora',
author_email='[email protected]',
url='http://www.bsc.es/projects/earthscience/autosubmit/',
download_url='https://earth.bsc.es/wiki/doku.php?id=tools:autosubmit',
keywords=['climate', 'weather', 'workflow', 'HPC'],
install_requires=install_requires,
extras_require=extras_require,
classifiers=[
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"License :: OSI Approved :: GNU General Public License (GPL)",
"Operating System :: POSIX :: Linux",
],
packages=find_packages(),
include_package_data=True,
package_data={'autosubmit': [
'autosubmit/config/files/autosubmit.conf',
'autosubmit/config/files/expdef.conf',
'autosubmit/database/data/autosubmit.sql',
'README',
'CHANGELOG',
'VERSION',
'LICENSE',
'docs/autosubmit.pdf'
]
},
scripts=['bin/autosubmit']
)