-
Notifications
You must be signed in to change notification settings - Fork 154
/
Copy pathpyproject.toml
188 lines (177 loc) · 7.01 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
[tool.poetry]
name = "concrete-ml"
version = "1.7.0"
description = "Concrete ML is an open-source set of tools which aims to simplify the use of fully homomorphic encryption (FHE) for data scientists."
license = "BSD-3-Clause-Clear"
authors = [
"Zama <[email protected]>",
]
homepage = "https://zama.ai/concrete-ml/"
repository = "https://github.com/zama-ai/concrete-ml"
documentation = "http://docs.zama.ai/concrete-ml/"
keywords = ["FHE", "homomorphic encryption", "privacy", "security"]
packages = [
{ include = "concrete", from = "src" },
]
classifiers = [
"Topic :: Scientific/Engineering :: Artificial Intelligence",
"Topic :: Scientific/Engineering :: Mathematics",
"Topic :: Scientific/Engineering",
"Topic :: Security",
"Topic :: Security :: Cryptography",
"Topic :: Software Development :: Compilers",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
]
readme = "README.md"
[tool.poetry.urls]
"README" = "https://github.com/zama-ai/concrete-ml/blob/main/README.md"
"Bug Tracker" = "https://github.com/zama-ai/concrete-ml/issues"
[tool.poetry.dependencies]
# Investigate if it is better to fix specific versions or use lower and upper bounds
# FIXME: https://github.com/zama-ai/concrete-ml-internal/issues/2665
python = ">=3.8.1,<3.13"
# Based on the following link, explicitly indicating the source makes poetry only look for that
# source, so we should only use this for Concrete Python's non-public releases
# https://python-poetry.org/docs/1.7/repositories#project-configuration
# concrete-python = {version="==2.7.0", source = "zama-pypi-cpu"}
concrete-ml-extensions = "0.1.3"
concrete-python = {version="==2.9.0rc1.dev20241130", source = "zama-pypi-cpu"}
setuptools = "75.3.0"
skops = {version = "0.5.0"}
xgboost = "1.6.2"
skorch = "0.11.0"
# torch version needs to be pinned for MacOS Intel since it isn't supported by Pytorch anymore
torch = [
{version = "2.2.2", markers = "platform_system=='Darwin' and platform_machine!='arm64'" },
{version = "2.3.1", markers = "platform_system!='Darwin' or platform_machine=='arm64'" }
]
typing-extensions = "^4.5.0"
brevitas = "0.10.2"
onnx = "1.17.0"
onnxoptimizer = "0.3.13"
# onnxruntime versions supported by onnx versions and opsets can be found here :
# https://onnxruntime.ai/docs/reference/compatibility.html#onnx-opset-support
onnxruntime = "1.18"
hummingbird-ml = {version="0.4.11", extras = ["onnx"]}
scikit-learn = [
{version = "1.1.3", python = "<3.9" },
{version = "1.4.0", python = ">=3.9.0"}
]
scipy = [
{version = "1.10.1", python = "3.8"},
{version = ">=1.10.1", python = ">3.8"}
]
numpy = [
{version = "1.23.5", python = "<3.9" },
{version = "1.26.4", python = ">=3.9.0"}
]
protobuf = [
{version = "^5.28.3", python = ">3.11"},
{version = "3.20.3", python = "<=3.11"}
]
pandas = "2.0.3"
# Zama sources
[[tool.poetry.source]]
name = "zama-pypi-cpu"
url = "https://pypi.zama.ai/cpu"
priority = "explicit"
# Development dependencies
[tool.poetry.group.dev]
optional = true
[tool.poetry.group.dev.dependencies]
isort = "^5.10.1"
black = "^24.3.0"
pylint = "^3.0.0"
pytest = "7.4.1"
pytest-cov = "^4.1.0"
pytest-xdist = "^3.3.1"
pytest-randomly = "^3.11.0"
pytest-repeat = "^0.9.1"
pytest-subtests = "^0.11.0"
pytest-json-report = "^1.5.0"
pytest_codeblocks = "^0.14.0"
mypy = "^1.8.0"
pydocstyle = "^6.1.1"
python-semantic-release = "^7.27.0"
semver = "^2.13.0"
nbmake = "^1.3.0"
pygments-style-tomorrow = "^1.0.0"
mdformat = "^0.7.14"
mdformat_myst = "^0.1.4"
mdformat-toc = "^0.3.0"
pip-audit = "^2.1.0"
types-requests = "^2.32.0"
requests="^2.32.1"
jupyter = "^1.0.0"
py-progress-tracker = "0.7.0"
nbqa = "^1.3.1"
darglint = "^1.8.1"
linkcheckmd = "^1.4.0"
keyring = "*"
jinja2 = "^3.1.2"
LinkChecker = "^10.1.0"
kaggle = "^1.5.12"
tf2onnx = "^1.10.1"
transformers = "^4.38.0"
pdoc3 = "^0.10.0"
lazydocs = "^0.4.0"
seaborn = "^0.12.0"
mistletoe = "^0.9.0"
ruff = "^0.0.191"
myst_parser = "0.19.1"
flake8-bugbear = "23.2.13"
flake8 = "^7.1.0"
pycodestyle = "^2.11.1"
ipython = "^8.10.0"
markdown-it-py = "2.2.0"
# torchvision's version depends on torch but is not enforced by the requirements of the
# package so we have to enforce it here by hand
torchvision = [
{version = "0.17.2", markers = "platform_system=='Darwin' and platform_machine!='arm64'" },
{version = "0.18.1", markers = "platform_system!='Darwin' or platform_machine=='arm64'" }
]
peft = "^0.12.0"
[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"
[tool.pytest.ini_options]
filterwarnings = [
"error",
"ignore:`np\\.object` is a deprecated alias for the builtin `object`\\. To silence this warning, use `object` by itself\\. Doing this will not modify any behavior and is safe\\.:DeprecationWarning",
"ignore:Using or importing the ABCs from 'collections' instead of from 'collections\\.abc' is deprecated.*:DeprecationWarning",
"ignore: distutils Version classes are deprecated. Use packaging\\.version instead.*:DeprecationWarning",
"ignore: forcing n_jobs = 1 on mac for segfault issue",
"ignore: allowzero=0 by default.*:UserWarning",
"ignore:Implicitly cleaning up:ResourceWarning",
"ignore:non-integer arguments to randrange\\(\\) have been deprecated since Python 3\\.10 and will be removed in a subsequent version:DeprecationWarning",
"ignore:Deprecated call to `pkg_resources.declare_namespace:DeprecationWarning",
"ignore:The --rsyncdir command line argument and rsyncdirs config variable are deprecated.:DeprecationWarning",
"ignore:Converting a tensor to a NumPy array might cause the trace to be incorrect.",
"ignore:torch.from_numpy results are registered as constants in the trace.",
"ignore:ONNX Preprocess - Removing mutation from node aten*:UserWarning",
"ignore:Liblinear failed to converge,*:sklearn.exceptions.ConvergenceWarning",
"ignore:lbfgs failed to converge,*:sklearn.exceptions.ConvergenceWarning",
"ignore:Maximum number of iteration reached before convergence.*:sklearn.exceptions.ConvergenceWarning",
"ignore:jax.xla_computation is deprecated. Please use the AOT APIs.",
"ignore:Named tensors and all their associated APIs*",
"ignore:You are using `torch.load`*",
"ignore:open_text is deprecated.*:DeprecationWarning",
"ignore:read_text is deprecated.*:DeprecationWarning",
"ignore:open_binary is deprecated.*:DeprecationWarning",
"ignore:pkg_resources is deprecated as an API.*:DeprecationWarning",
]
[tool.semantic_release]
version_toml = "pyproject.toml:tool.poetry.version"
version_variable = "src/concrete/ml/version.py:__version__"
upload_to_pypi = "False"
changelog_sections = "breaking, feature, fix, documentation, performance"
[tool.ruff]
line-length = 100
[tool.ruff.per-file-ignores]
# The tool looks to report 'imported but unused (F401)' while actually the function is used by
# package which import the __init__.py
"**/__init__.py" = ["F401"]
# Add a setuptools_scm section to avoid warnings
[tool.setuptools_scm]