mirror of
https://github.com/luxfi/torus-ml.git
synced 2026-10-30 15:15:23 +00:00
torus-fhe came from a private index at a host that does not resolve. It is a plain PyPI dependency now and the source block is gone: an OSS package that needs a custom index to install is one nobody can install, and both names are free on PyPI. The six pip invocations in the workflows and the GPU guide drop their --extra-index-url with it. .gitleaksignore is removed rather than rewritten. Every one of its twelve entries is a fingerprint over commit:path:rule, and all twelve name commits this repository no longer has, so the file suppressed nothing while reading as though it did. Renaming a path inside a fingerprint would only have broken the match it was there to make.
196 lines
7.5 KiB
TOML
196 lines
7.5 KiB
TOML
[tool.poetry]
|
|
name = "torus-ml"
|
|
version = "1.9.0"
|
|
description = "Torus 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 = [
|
|
"Lux <[email protected]>",
|
|
]
|
|
homepage = "https://lux.network/torus-ml/"
|
|
repository = "https://github.com/luxfi/torus-ml"
|
|
documentation = "http://docs.lux.network/torus-ml/"
|
|
keywords = ["FHE", "homomorphic encryption", "privacy", "security"]
|
|
packages = [
|
|
{ include = "torus", 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/luxfi/torus-ml/blob/main/README.md"
|
|
"Bug Tracker" = "https://github.com/luxfi/torus-ml/issues"
|
|
|
|
[tool.poetry.dependencies]
|
|
# Investigate if it is better to fix specific versions or use lower and upper bounds
|
|
# FIXME: https://github.com/luxfi/torus-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 Torus FHE's non-public releases
|
|
# https://python-poetry.org/docs/1.7/repositories#project-configuration
|
|
# torus-fhe = "==2.7.0"
|
|
torus-ml-extensions = "0.1.9"
|
|
torus-fhe = "==2.10.0"
|
|
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.5.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 = [
|
|
{ version = "2.0.3", python = "<3.12" },
|
|
{ version = ">=2.1.1", python = ">=3.12" }
|
|
]
|
|
|
|
# Lux sources
|
|
# 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"
|
|
ipykernel = "^6.29.5"
|
|
py-cpuinfo = ">=8.0.0,<9.0.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:The distutils package is deprecated and slated for removal in Python 3\\.12.*:DeprecationWarning",
|
|
"ignore:Distutils was imported before Setuptools.*:UserWarning",
|
|
"ignore:Setuptools is replacing distutils.*:UserWarning",
|
|
"ignore:The distutils\\.sysconfig module is deprecated.*: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",
|
|
"ignore:'multi_class' was deprecated in version 1.5 and will be removed in 1.7.*:FutureWarning",
|
|
"ignore:Skipping device Apple Paravirtual device.*:UserWarning",
|
|
"ignore:The exported ONNX model failed ONNX shape inference.*:UserWarning",
|
|
]
|
|
|
|
[tool.semantic_release]
|
|
version_toml = "pyproject.toml:tool.poetry.version"
|
|
version_variable = "src/torus/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]
|