forked from oracle/accelerated-data-science
-
Notifications
You must be signed in to change notification settings - Fork 0
/
pyproject.toml
223 lines (210 loc) · 7.11 KB
/
pyproject.toml
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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
## This file created and used instead of setup.py for building and installing ads package. This change is to
## follow best practive to "not invoke setup.py directly", see detailed explanation why here:
## https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html.
## Check README-development.md and Makefile for instruction how to install or build ADS locally.
[build-system]
# PEP 517 – A build-system independent format for source trees - https://peps.python.org/pep-0517/
# Till recently flit-core library was suggested by pip, so we used it. In future, cosider to change to
# other, if better, build-backend library.
requires = [
"flit-core >=3.8,<4",
] # should specify <4, so won’t be impacted by changes in the next major version
build-backend = "flit_core.buildapi"
[project]
# Declaring project metadata
# https://packaging.python.org/en/latest/specifications/declaring-project-metadata/
# PEP 621 – Storing project metadata in pyproject.toml - https://peps.python.org/pep-0621/
# PEP 518 – Specifying Minimum Build System Requirements for Python Projects https://peps.python.org/pep-0518/
# Required
name = "oracle_ads" # the install (PyPI) name; name for local build in [tool.flit.module] section below
version = "2.11.9"
# Optional
description = "Oracle Accelerated Data Science SDK"
readme = { file = "README.md", content-type = "text/markdown" }
requires-python = ">=3.8"
license = { file = "LICENSE.txt" }
authors = [{ name = "Oracle Data Science" }]
keywords = [
"Oracle Cloud Infrastructure",
"OCI",
"Machine Learning",
"ML",
"Artificial Intelligence",
"AI",
"Data Science",
"Cloud",
"Oracle",
]
classifiers = [
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Developers",
"License :: OSI Approved :: Universal Permissive License (UPL)",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
]
# PEP 508 – Dependency specification for Python Software Packages - https://peps.python.org/pep-0508/
# In dependencies se "<library>; platform_machine == 'aarch64'" to specify ARM underlying platform
# Copied from install_requires list in setup.py, setup.py got removed in favor of this config file
dependencies = [
"PyYAML>=6", # pyyaml 5.4 is broken with cython 3
"asteval>=0.9.25",
"cerberus>=1.3.4",
"cloudpickle>=1.6.0",
"fsspec>=0.8.7",
"gitpython>=3.1.2",
"jinja2>=2.11.2",
"matplotlib>=3.1.3",
"numpy>=1.19.2",
"oci>=2.125.3",
"ocifs>=1.1.3",
"pandas>1.2.1; python_version<'3.9'", # starting pandas v2.1.0 requires-python = '>=3.9'
"pandas>=2.2.0; python_version>='3.9'",
"psutil>=5.7.2",
"python_jsonschema_objects>=0.3.13",
"requests",
"scikit-learn>=1.0",
"tabulate>=0.8.9",
"tqdm>=4.59.0",
]
[project.optional-dependencies]
# Copied from extras_require list in setup.py, setup.py got removed in favor of this config file
bds = ["hdfs[kerberos]", "ibis-framework[impala]", "sqlalchemy"]
boosted = [
"lightgbm<4.0.0", # relax when the official releases of skl2onnx (v1.16.0) and onnxmltools (1.11.3), https://github.com/sdpython/mlprodict/issues/488
"xgboost",
]
data = [
"datefinder>=0.7.1",
"fastavro>=0.24.2",
"htmllistparse>=0.6.0",
"openpyxl>=3.0.7",
"oracledb>=1.0",
"pandavro>=1.6.0",
"sqlalchemy>=1.4.1, <=1.4.46",
]
geo = ["geopandas", "oracle_ads[viz]"]
huggingface = ["transformers"]
notebook = ["ipython>=7.23.1, <8.0", "ipywidgets~=7.6.3"]
onnx = [
"lightgbm<4.0.0", # relax when the official releases of skl2onnx (v1.16.0) and onnxmltools (1.11.3), https://github.com/sdpython/mlprodict/issues/488
"onnx>=1.12.0",
"onnxmltools>=1.10.0",
"onnxruntime>=1.10.0,<1.16", # v1.16 introduced issues https://github.com/microsoft/onnxruntime/issues/17631, revealed by unit tests
"oracle_ads[viz]",
"protobuf<=3.20",
"skl2onnx>=1.10.4",
"tf2onnx",
"xgboost<=1.7",
]
opctl = [
"conda-pack",
"docker",
"inflection",
"nbconvert",
"nbformat",
"oci-cli",
"py-cpuinfo",
"rich",
"fire",
"cachetools",
]
optuna = ["optuna==2.9.0", "oracle_ads[viz]"]
spark = ["pyspark>=3.0.0"]
tensorflow = ["oracle_ads[viz]", "tensorflow"]
text = ["spacy", "wordcloud>=1.8.1"]
torch = ["oracle_ads[viz]", "torch", "torchvision"]
viz = [
"bokeh>=3.0.0, <3.2.0", # starting 3.2.0 bokeh not supporting python3.8; relax after ADS will drop py3.8 support
"folium>=0.12.1",
"graphviz<0.17",
"scipy>=1.5.4",
"seaborn>=0.11.0",
]
forecast = [
"conda-pack",
"inflection",
"nbconvert",
"nbformat",
"oci-cli",
"py-cpuinfo",
"rich",
"autots[additional]",
"mlforecast",
"neuralprophet>=0.7.0",
"numpy",
"oci-cli",
"optuna",
"oracle-ads",
"pmdarima",
"prophet",
"shap",
"sktime",
"statsmodels",
"plotly",
"oracledb",
"report-creator==1.0.9",
]
anomaly = [
"oracle_ads[opctl]",
"autots",
"oracledb",
"report-creator==1.0.9",
]
feature-store-marketplace = [
"oracle-ads[opctl]",
"kubernetes"
]
pii = [
"aiohttp",
"gender_guesser",
"nameparser",
"oracle_ads[opctl]",
"plotly",
"scrubadub==2.0.1",
"scrubadub_spacy",
"spacy-transformers==1.2.5",
"spacy==3.6.1",
"report-creator==1.0.9",
]
llm = ["langchain-community<0.0.32", "langchain>=0.1.10,<0.1.14", "evaluate>=0.4.0"]
aqua = ["jupyter_server"]
# To reduce backtracking (decrese deps install time) during test/dev env setup reducing number of versions pip is
# trying to use. Ref - https://pip.pypa.io/en/stable/topics/dependency-resolution/#possible-ways-to-reduce-backtracking.
# Revisit this section continuously and update to recent version of libraries. focus on pyt3.9/3.10 versions.
testsuite = [
"dask==2023.5.0; python_version=='3.8'",
"dask==2023.10.1; python_version>='3.9'", # oci-cli depends on click==8.0.4, dask>2023.10.1 depends on "click>=8.1"
"arff",
"category_encoders==2.6.3", # set version to avoid backtracking
"cohere==4.53", # set version to avoid backtracking
"dask==2023.10.1; python_version>='3.9'", # oci-cli depends on click==8.0.4, dask>2023.10.1 depends on "click>=8.1"
"dask==2023.5.0; python_version=='3.8'",
"faiss-cpu",
"fastparquet==2024.2.0", # set version to avoid backtracking
"imbalanced-learn",
"lxml",
"mysql-connector-python",
"nltk",
"notebook==6.4.12",
"opensearch-py",
"pdfplumber",
"py4j",
"pyarrow",
"statsmodels; python_version=='3.8'",
"statsmodels>=0.14.1; python_version>='3.9'", # cython3.0 compatibility added in v0.14.1
"tables",
"xlrd>=1.2.0",
]
[project.urls]
"Github" = "https://github.com/oracle/accelerated-data-science"
"Documentation" = "https://accelerated-data-science.readthedocs.io/en/latest/index.html"
[project.scripts]
ads = "ads.cli:cli"
[tool.flit.module]
name = "ads" # name for local build and import, see https://flit.pypa.io/en/latest/pyproject_toml.html#module-section
[tool.flit.sdist]
# By default `ads` folder and `LICENSE.txt` file included in sdist. Folders `docs` and `tests` are excluded, as weel as other project files
# Use this section to include/exclude files and folders. See doc: https://flit.pypa.io/en/latest/pyproject_toml.html#sdist-section
include = ["THIRD_PARTY_LICENSES.txt"]