2.6 KiB
2.6 KiB
Repository Guidelines
Project Structure & Module Organization
Core Python code is in docutranslate/.
docutranslate/workflow/: file-type workflows (*_workflow.py) that orchestrate conversion, translation, and export.docutranslate/converter/,docutranslate/translator/,docutranslate/exporter/: pipeline stages.docutranslate/app.py: FastAPI/Web UI backend entrypoint.docutranslate/cli.py: CLI entry (docutranslatecommand).docutranslate/static/anddocutranslate/template/: bundled frontend/static assets.- Packaging/build files live at root:
pyproject.toml,Dockerfile,*.spec,.github/workflows/.
Build, Test, and Development Commands
uv sync: install project dependencies frompyproject.toml/uv.lock.uv run docutranslate -i: start local Web UI + API (default127.0.0.1:8010).uv run docutranslate -i -p 8011 --cors: run on a custom port with CORS enabled.docker run -d -p 8010:8010 xunbu/docutranslate:latest: run the published container locally.uv pip install pyinstaller && uv run pyinstaller lite.spec --noconfirm --clean -y: build a lightweight desktop package (see alsofull.spec,lite_mac.spec).
Coding Style & Naming Conventions
- Follow Python 3.11+ conventions and PEP 8: 4-space indentation, clear type-oriented config classes, small focused functions.
- Use
snake_casefor modules/functions/variables andPascalCasefor classes. - Keep workflow naming consistent:
xxx_workflow.py, matching config and workflow class names. - Prefer explicit, composable configs over hard-coded provider values.
Testing Guidelines
There is currently no first-party tests/ suite or enforced coverage gate in this repository.
- For behavior changes, run a manual smoke test: start
docutranslate -i, open/docs, and execute at least one translation path you touched. - If you add automated tests, place them under
tests/withtest_*.pynames and keep fixtures small and file-type specific.
Commit & Pull Request Guidelines
Recent history favors short, imperative commit subjects (Chinese or English), for example: Fix Gemini provider tag, Add regex dependency, Add Vietnamese.
- Keep subject lines concise and action-focused.
- In PRs, include: what changed, why, how you validated it, and UI screenshots when
docutranslate/static/or interface behavior changes. - Link related issues and note any new env vars/API provider requirements.
Security & Configuration Tips
- Never commit real API keys or tokens.
- Keep provider credentials in environment variables or local untracked config.
- For LAN exposure, use
--host 0.0.0.0intentionally and restrict network access as needed.