-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathpyproject.toml
More file actions
152 lines (135 loc) · 4.15 KB
/
Copy pathpyproject.toml
File metadata and controls
152 lines (135 loc) · 4.15 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
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
[build-system]
requires = ["setuptools", "setuptools-git-versioning"]
build-backend = "setuptools.build_meta"
[project]
name = "busysloths-mlox"
readme = "README.md"
keywords = ["Infrastructure", "Server", "Service", "Dashboard", "Opinionated", "MLOps"]
license = { file = "LICENSE" }
description = "Deploy and manage connected ML/AI infrastructure on your own servers."
requires-python = ">=3.11,<3.13"
authors = [{ name = "drbusysloth", email = "contact@mlox.org" }]
classifiers = [
# How mature is this project? Common values are
# 1 - Planning
# 2 - Pre-Alpha
# 3 - Alpha
# 4 - Beta
# 5 - Production/Stable
"Development Status :: 4 - Beta",
# Indicate who your project is intended for
"Intended Audience :: Developers",
"Topic :: Software Development",
"Topic :: System :: Distributed Computing",
"Topic :: Internet",
"Topic :: Database",
"Programming Language :: Python :: 3",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
]
dynamic = ["version"]
# Core/runtime dependencies (minimal, pinned with >= to allow compatibility)
dependencies = [
"dacite==1.9.2", # M
"pyyaml==6.0.2", # M
"fabric==3.2.2", # M
"paramiko==3.4.1", # M # SSH support used by Fabric
"cryptography==43.0.1", # M
"sqlcipher3==0.6.2", # encrypted single-file project storage
"passlib==1.7.4", # M
"typer==0.17.4", # M # CLI helpers
"grpcio==1.73.1", # M
"kafka-python-ng==2.2.3",
"bcrypt>=5.0.0", # M
# "requests>=2.31",
# "python-dotenv>=1.0",
]
[project.optional-dependencies]
# GCP related extras
gcp = [
"pandas>=2.2",
"gspread==6.2.1", # M
"pandas-gbq==0.29.2", # M
"google-cloud-storage>=2.10",
"google-cloud-bigquery>=3.10",
"google-cloud-secret-manager>=2.18",
]
feast = [
"feast==0.54.0", # M
"feast[postgres]==0.54.0", # M
]
minio = [
"boto3==1.40.56", # M
]
tui = [
"textual==8.2.7", # M
"psycopg2-binary>=2.9",
]
dev = [
# Nicer Logging with colors
"colorama==0.4.6", # M
# Feast
"feast==0.54.0", # M
"feast[postgres]==0.54.0", # M
# MinIO
"boto3==1.40.56", # M
# developer extras (includes 'all')
"streamlit==1.57.0", # M
"streamlit-vis-timeline==0.3.0", # M
"textual==8.2.7", # M
"textual-dev==1.8.0", # M
"backports.tarfile>=1.0",
"pandas>=2.2",
"numpy>=1.26",
"gspread==6.2.1", # M
"pandas-gbq==0.29.2", # M
"google-cloud-storage>=2.10",
"google-cloud-bigquery>=3.10",
"google-cloud-secret-manager>=2.18",
"mlflow==3.8.1", # M
"mlserver==1.7.1", # Mx`
"psutil==7.1.2", # M: for mlflow monitoring
"opentelemetry-api==1.33.1", # M
"opentelemetry-sdk==1.33.1", # M
"opentelemetry-exporter-otlp==1.33.1", # M
"prometheus-client==0.21.1", # MLflow Gateway metrics
"redis>=4.6",
"influxdb>=5.3",
# "grpcio>=1.59",
# Development tools
"pytest>=8.3",
"pytest-cov>=4.1",
"pytest-mock>=3.11",
"pytest-sugar>=1.1.1",
"httpx==0.28.1", # FastAPI/Starlette TestClient
"flake8>=6.1",
"pdoc>=12.0",
"build>=1.1",
"twine>=4.0",
"psycopg2-binary>=2.9",
"colorama>=0.4.6",
"go-task-bin>=3.44.1",
"debugpy==1.8.16", # M
]
[project.urls]
"Homepage" = "https://busysloths.github.io/mlox/mlox.html"
"Tracker" = "https://github.com/busysloths/mlox/issues"
"Source" = "https://github.com/busysloths/mlox"
"Examples" = "https://github.com/busysloths/mlox"
[project.scripts]
mlox = "mlox.cli:app"
[tool.setuptools-git-versioning]
enabled = true
# Use the tag directly for a clean release version (e.g., v0.1.0 -> 0.1.0)
template = "{tag}"
# For development builds after a tag (e.g., v0.1.0 + 2 commits -> 0.1.0.post2)
dev_template = "{tag}.post{ccount}"
# ATTENTION: Dirty builds are no longer accepted in PyPI, so this is commented out.
# For dirty builds (e.g., uncommitted changes after a tag -> 0.1.0.post2.dirty)
# dirty_template = "{tag}.post{ccount}+dirty"
[tool.setuptools]
include-package-data = true
[tool.setuptools.package-data]
mlox = ["services/**/*.tmpl"]
[tool.setuptools.packages.find]
include = ["mlox*"]