Context
In the context of AI-assisted development, a fast feedback loop is essential for coding agents. When an agent writes code, it needs immediate signals about correctness — type errors, lint violations, test failures — to iterate effectively.
JS/TS Actor templates already provide this through dev dependencies: type checking, linting, etc. Python templates currently lack any dev setup, partly because they only use a plain requirements.txt with no concept of dev dependencies.
Goal
Add a proper development setup to Python Actor templates, including:
- Linter — e.g. Ruff (covers both linting and formatting)
- Type checker — ty (from the Astral ecosystem, pairs well with Ruff)
- Configuration —
pyproject.toml with sensible defaults for all tools
- Test setup — basic pytest configuration so users (and agents) can write and run tests out of the box
This would bring Python templates closer to parity with JS/TS templates in terms of developer experience and make them significantly more useful in AI-assisted workflows.
Notes
Parent issue
Sub-issue of https://github.com/apify/apify-core/issues/25871
Context
In the context of AI-assisted development, a fast feedback loop is essential for coding agents. When an agent writes code, it needs immediate signals about correctness — type errors, lint violations, test failures — to iterate effectively.
JS/TS Actor templates already provide this through dev dependencies: type checking, linting, etc. Python templates currently lack any dev setup, partly because they only use a plain
requirements.txtwith no concept of dev dependencies.Goal
Add a proper development setup to Python Actor templates, including:
pyproject.tomlwith sensible defaults for all toolsThis would bring Python templates closer to parity with JS/TS templates in terms of developer experience and make them significantly more useful in AI-assisted workflows.
Notes
uv(or another modern package manager) would make it much easier to manage dev dependencies separately from production dependenciesParent issue
Sub-issue of https://github.com/apify/apify-core/issues/25871