Repository navigation
Expand file tree
/
Copy pathpyproject.toml
More file actions
75 lines (70 loc) · 2.59 KB
/
Copy pathpyproject.toml
File metadata and controls
75 lines (70 loc) · 2.59 KB
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
[project]
name = "pdm-project"
version = "0.1.0"
requires-python = ">=3.11"
# The base install is the slim inference core: everything needed to load a
# trained model and run predict() for anomaly detection, plus the feature
# utilities runtime.py uses. Each deployment target adds only the extras it needs:
# inference container / batch: pdm-project[serve]
# edge (anomaly detection): pdm-project[edge]
# edge (classification / RUL): pdm-project[edge,tabular]
# edge (survival): pdm-project[edge,survival]
# training / development: `uv sync` (default "dev" group -> [test] -> [train])
# Deployment targets install the exact versions from uv.lock (`uv export`).
dependencies = [
"numpy>=1.24",
"pandas>=2.0",
"scikit-learn>=1.3",
"scipy>=1.11",
"joblib>=1.3",
]
[project.optional-dependencies]
# AutoGluon models: classification and RUL. Exact pin: AutoGluon only loads
# predictors saved by the same version, so every target must match training.
tabular = ["autogluon.tabular[lightgbm,catboost,xgboost]==1.6.3"]
# Survival models
survival = ["lifelines>=0.29.0", "scikit-survival>=0.23.0"]
# S3 / Parquet I/O for data loading and batch inference
aws = ["boto3>=1.28", "pyarrow>=14.0", "tqdm>=4.66"]
# SageMaker real-time endpoint and batch Processing Job container
serve = ["pdm-project[tabular,aws]", "flask>=3.0", "gunicorn>=22.0", "typing_extensions>=4.0"]
# Greengrass edge component (add tabular / survival for those formulations)
edge = ["awsiotsdk>=1.21"]
# Full training environment
train = [
"pdm-project[tabular,survival,aws]",
"matplotlib>=3.7",
"shap>=0.43",
"imbalanced-learn>=0.12",
"optuna>=3.0",
]
test = [
"pdm-project[train]",
"pytest>=7.4",
"pytest-timeout>=2.2",
]
# Future feature dependencies (not required for core)
monitoring = ["alibi-detect>=0.12"]
tsfresh = ["tsfresh>=0.20"]
deep = ["tsai>=0.3.9", "torch>=2.0", "fastai>=2.7"]
foundation = ["chronos-forecasting>=1.4", "torch>=2.0"]
transfer = ["rul-adapt>=0.4", "pytorch-lightning>=2.0"]
anomaly = ["pyod>=2.0"]
[dependency-groups]
# Synced by default by `uv sync` / `uv run`, so development and skill projects
# always get the full training environment; never installed by pip/uv export.
dev = ["pdm-project[test]"]
[build-system]
requires = ["setuptools>=69"]
build-backend = "setuptools.build_meta"
[tool.setuptools.packages.find]
include = ["pdm*"]
[tool.pytest.ini_options]
testpaths = ["tests"]
timeout = 180
addopts = "-v --tb=short"
filterwarnings = [
"ignore::DeprecationWarning",
"ignore::UserWarning:lifelines.*",
"ignore::FutureWarning:autogluon.*",
]