From 9585fb55fa8a491d072ab0473ed9d524e57817ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20Gro=C3=9F?= Date: Wed, 28 Jan 2026 21:41:27 +0100 Subject: [PATCH] add CLI entry-point for uv --- PythonScripts/README.md | 8 ++++- PythonScripts/audit_translations/README.md | 34 +++++++++++++++------- PythonScripts/audit_translations/cli.py | 6 ++-- PythonScripts/pyproject.toml | 11 +++++++ PythonScripts/uv.lock | 2 +- 5 files changed, 46 insertions(+), 15 deletions(-) diff --git a/PythonScripts/README.md b/PythonScripts/README.md index a518248d..9eb6ed44 100644 --- a/PythonScripts/README.md +++ b/PythonScripts/README.md @@ -2,4 +2,10 @@ Project management is done with [uv](https://docs.astral.sh/uv/). -For example, execute `uv run python -m audit_translations de` to see the translation progress for the German language. +For example, execute `uv run audit-translations de` to see the translation progress for the German language. + +If you run from the repo root instead of inside `PythonScripts`, point uv at the project and make sure you've synced once: +```bash +uv sync --project PythonScripts +uv run --project PythonScripts audit-translations de +``` diff --git a/PythonScripts/audit_translations/README.md b/PythonScripts/audit_translations/README.md index 26455086..7104cc74 100644 --- a/PythonScripts/audit_translations/README.md +++ b/PythonScripts/audit_translations/README.md @@ -56,8 +56,13 @@ The tool automatically adjusts its matching logic based on the file type: **Syntax:** ```bash -uv run python -m audit_translations [--file ] -uv run python -m audit_translations --list +# Preferred: console script (no -m needed) +uv run audit-translations [--file ] +uv run audit-translations --list + +# If running from the repo root, point uv at the project: +uv run --project PythonScripts audit-translations +uv run --project PythonScripts audit-translations --list ``` **Convenience Features:** @@ -74,27 +79,36 @@ uv run python -m audit_translations --list ```bash # List available languages -uv run python -m audit_translations --list +uv run audit-translations --list + +# Same from repo root +uv run --project PythonScripts audit-translations --list # Audit all Spanish translation files -uv run python -m audit_translations es +uv run audit-translations es # Audit German translations -uv run python -m audit_translations de +uv run audit-translations de # Audit only a specific file -uv run python -m audit_translations es --file SharedRules/default.yaml +uv run audit-translations es --file SharedRules/default.yaml # Produce JSONL output for automation or AI workflows -uv run python -m audit_translations es --format jsonl --output es-issues.jsonl +uv run audit-translations es --format jsonl --output es-issues.jsonl # Audit a regional variant (merges Rules/Languages/de and Rules/Languages/de/CH) -uv run python -m audit_translations de-CH +uv run audit-translations de-CH # Show detailed output with English/translated snippets for rule differences -uv run python -m audit_translations es --verbose +uv run audit-translations es --verbose +``` + +**Running from the repo root (without `cd PythonScripts`):** +```bash +uv run --project PythonScripts audit-translations es +uv run --project PythonScripts audit-translations --list ``` ### Testing -```uv run python -m pytest``` \ No newline at end of file +```uv run python -m pytest``` diff --git a/PythonScripts/audit_translations/cli.py b/PythonScripts/audit_translations/cli.py index 2644b557..06c3dd7a 100644 --- a/PythonScripts/audit_translations/cli.py +++ b/PythonScripts/audit_translations/cli.py @@ -18,9 +18,9 @@ def main(): formatter_class=argparse.RawDescriptionHelpFormatter, epilog=""" Examples: - python -m audit_translations es - python -m audit_translations de --file SharedRules/default.yaml - python -m audit_translations --list + uv run audit-translations es + uv run audit-translations de --file SharedRules/default.yaml + uv run audit-translations --list """ ) diff --git a/PythonScripts/pyproject.toml b/PythonScripts/pyproject.toml index 20c2e7bc..b316ec24 100644 --- a/PythonScripts/pyproject.toml +++ b/PythonScripts/pyproject.toml @@ -6,5 +6,16 @@ readme = "README.md" requires-python = ">=3.14" dependencies = ["rich", "ruamel.yaml"] +[project.scripts] +audit-translations = "audit_translations.cli:main" + [dependency-groups] dev = ["pytest"] + +[build-system] +requires = ["uv_build>=0.9.25,<0.10.0"] +build-backend = "uv_build" + +[tool.uv.build-backend] +module-name = "audit_translations" +module-root = "" diff --git a/PythonScripts/uv.lock b/PythonScripts/uv.lock index 27534a01..1675f4dc 100644 --- a/PythonScripts/uv.lock +++ b/PythonScripts/uv.lock @@ -87,7 +87,7 @@ wheels = [ [[package]] name = "pythonscripts" version = "0.1.0" -source = { virtual = "." } +source = { editable = "." } dependencies = [ { name = "rich" }, { name = "ruamel-yaml" },