From db74fd1643d498f08c66b41204f24bfe837a5bb9 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Wed, 14 Oct 2026 12:02:44 +0000 Subject: [PATCH 1/5] build: adopt uv workspace for credit and investing Replace Poetry as the primary install/run path with a root uv workspace (members: credit, investing), uv.lock, Makefile/CI/Docker/devcontainer wired to uv. platform/ stays out of the workspace. Lean deps deferred to #183. Co-authored-by: jdlsicilia --- .cursor/rules/python-poetry.mdc | 34 - .cursor/rules/python-uv.mdc | 35 + .cursor/skills/commit-split/CONVENTION.md | 2 +- .cursor/skills/commit-split/SKILL.md | 12 +- .devcontainer/devcontainer.json | 2 +- .github/workflows/pr-ci.yml | 11 +- Makefile | 14 +- credit/Dockerfile | 17 +- credit/Dockerfile.serve | 17 +- credit/Dockerfile.serve.demo | 17 +- credit/pyproject.toml | 34 + investing/pyproject.toml | 42 + .../src/investing/download_fundamentals.py | 2 +- investing/src/investing/download_simfin.py | 2 +- platform/scripts/demo-up.sh | 2 +- .../scripts/prepare-serve-demo-artifact.sh | 2 +- poetry.lock | 4046 ----------------- pyproject.toml | 56 +- uv.lock | 3661 +++++++++++++++ 19 files changed, 3842 insertions(+), 4166 deletions(-) delete mode 100644 .cursor/rules/python-poetry.mdc create mode 100644 .cursor/rules/python-uv.mdc create mode 100644 credit/pyproject.toml create mode 100644 investing/pyproject.toml delete mode 100644 poetry.lock create mode 100644 uv.lock diff --git a/.cursor/rules/python-poetry.mdc b/.cursor/rules/python-poetry.mdc deleted file mode 100644 index 484802d..0000000 --- a/.cursor/rules/python-poetry.mdc +++ /dev/null @@ -1,34 +0,0 @@ ---- -description: Python 3.11 and Poetry conventions -globs: "**/*.{py,toml}" -alwaysApply: false ---- - -# Python and Poetry - -- Runtime: **Python 3.11+** via Poetry (`pyproject.toml`). -- Run scripts: `poetry run python ...` -- Add dependencies: `poetry add ` (not pip install into the global env). - -## Style - -- Prefer type hints on public functions. -- Short English docstrings for non-obvious business logic. -- Match existing module style when extending code. - -## Libraries - -Use dependencies declared in `pyproject.toml` (pandas, polars, yfinance, etc.) as directed by the **feature spec**, not by default habit. - -## Financial domain - -- **No look-ahead bias:** only data available on or before the decision `as_of_date`. -- Document `as_of_date`, data sources, and formula versions in the feature spec when adding metrics. - -## Tooling - -No project-wide tests or linter unless configured in `pyproject.toml`. Do not add heavy CI scaffolding unless requested. - -## Network - -`yfinance` and external APIs require network access; handle failures explicitly in implementation specs. diff --git a/.cursor/rules/python-uv.mdc b/.cursor/rules/python-uv.mdc new file mode 100644 index 0000000..88d9927 --- /dev/null +++ b/.cursor/rules/python-uv.mdc @@ -0,0 +1,35 @@ +--- +description: Python 3.11 and uv workspace conventions +globs: **/*.py +alwaysApply: false +--- + +# Python and uv + +- Runtime: **Python 3.11+** via uv (`pyproject.toml` workspace + `uv.lock`). +- Install: `uv sync --group dev` or `make install`. +- Run scripts: `uv run