Throughput Overview: Horse Mix and Grain Mix are now the first two cards and
show TODAY's output only. Removed the 7d/4w/6w/12w range selector; the cards
are fixed to Horse mix today, Grain mix today, Today, This week, 4-week average.
Mix Editor formula save: fix HTTP 500 on PUT /editor/mixes/{id}/formula. The
audit-diff path read the resolved formula by attribute, but the resolver returns
dicts -> AttributeError. Read by key and expire stale ORM state so the response
reflects the just-saved rows. Adds regression tests for both save branches.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
32 lines
682 B
TOML
32 lines
682 B
TOML
[build-system]
|
|
requires = ["setuptools>=68", "wheel"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[project]
|
|
name = "hunter-backend"
|
|
version = "0.1.30"
|
|
description = "Costing platform MVP backend (API for Hunter)"
|
|
requires-python = ">=3.11"
|
|
dependencies = [
|
|
"fastapi>=0.115,<1.0",
|
|
"python-multipart>=0.0.9,<1.0",
|
|
"openpyxl>=3.1,<4.0",
|
|
"rich>=13.9,<15.0",
|
|
"uvicorn[standard]>=0.30,<1.0",
|
|
"sqlalchemy>=2.0,<3.0",
|
|
"pydantic>=2.8,<3.0",
|
|
"pytest>=8.0,<9.0",
|
|
"psycopg[binary]>=3.2,<4.0",
|
|
"reportlab>=4.2,<5.0",
|
|
]
|
|
|
|
[tool.setuptools]
|
|
package-dir = {"" = "."}
|
|
|
|
[tool.setuptools.packages.find]
|
|
where = ["."]
|
|
include = ["app*"]
|
|
|
|
[tool.pytest.ini_options]
|
|
testpaths = ["tests"]
|