chore: lock Python to 3.10–3.12 to match cp312-capped wheel availability
Browse files- .python-version +1 -0
- AGENTS.md +1 -1
- requirements.txt +3 -0
.python-version
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
3.12
|
AGENTS.md
CHANGED
|
@@ -50,7 +50,7 @@ All experiment runs are tracked in **MLflow**. All services ship as **Docker** i
|
|
| 50 |
|
| 51 |
## 3. Coding Standards
|
| 52 |
|
| 53 |
-
- **Python 3.10
|
| 54 |
- **Type hints are mandatory** on every public function/method (parameters and return).
|
| 55 |
- **Modular structure.** One responsibility per function. If a function exceeds ~40 lines or 3 levels of nesting, split it.
|
| 56 |
- **TDD is the default workflow.** Write the failing test first, watch it fail, then implement. Tests live in `tests/` mirroring `src/`.
|
|
|
|
| 50 |
|
| 51 |
## 3. Coding Standards
|
| 52 |
|
| 53 |
+
- **Python 3.10–3.12** (the pinned native-extension dependencies do not yet ship cp313+ wheels). Use `from __future__ import annotations` when needed for forward refs.
|
| 54 |
- **Type hints are mandatory** on every public function/method (parameters and return).
|
| 55 |
- **Modular structure.** One responsibility per function. If a function exceeds ~40 lines or 3 levels of nesting, split it.
|
| 56 |
- **TDD is the default workflow.** Write the failing test first, watch it fail, then implement. Tests live in `tests/` mirroring `src/`.
|
requirements.txt
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
| 1 |
# --- Web / API layer ---
|
| 2 |
fastapi==0.115.0
|
| 3 |
uvicorn[standard]==0.30.6
|
|
|
|
| 1 |
+
# Requires Python 3.10–3.12 (rdkit / numpy / pandas / scipy / scikit-learn pins ship cp310–cp312 wheels only).
|
| 2 |
+
# See AGENTS.md §3 for the full coding-standards contract.
|
| 3 |
+
|
| 4 |
# --- Web / API layer ---
|
| 5 |
fastapi==0.115.0
|
| 6 |
uvicorn[standard]==0.30.6
|