Ultra-strict Python demo project using uv, ruff, and basedpyright.
- Install Qoder AI IDE: Qoder has basedpyright built-in already.
- Clone this repo:
git clone https://github.com/qoder-strict-py-demo.git - Install dependencies:
uv sync
- Python: 3.12+
- Dependency manager: uv
- Type checker: basedpyright (strict mode)
- Linter/formatter: ruff (with many plugins enabled)
- Config & env: python-dotenv, typing-extensions
- Data validation: pydantic>=2
- Task runner: poethepoet (format, check, metrics, etc.)
- Code quality tools: radon, skylos
- Testing & coverage: pytest + coverage (80% minimum by default)
- pandera: Validating DataFrame-like Objects
- pydantic: Data validation using Python type hints
- python-dotenv: Read key-value pairs from a .env file and set them as environment variables
- typeshed: Collection of library stubs for Python, with static types, such as types-requests, psutil, etc.
- typing-extensions: Backported and experimental type hints for Python
- pytest: makes it easy to write small tests, yet scales to support complex functional testing
Please use poe task_name or uv run poe task_name to run tasks.
- format: formats code, fixes issues, and type checks
- lint-unsafe: Lint with unsafe fixes enabled (more aggressive)
- quality: Full quality check: format, lint, type check, and metrics
- metrics: Check code quality: dead code, complexity, and maintainability
- lint: Only linting, no type checking
- check: Lint and type check without fixing
- basedpyright Configuration: https://docs.basedpyright.com/v1.20.0/configuration/config-files/
- Ruff Rules: https://docs.astral.sh/ruff/rules/
- PyStrict-strict-python: Ultra-strict Python project template using uv, ruff, and basedpyright, inspired by TypeScript’s --strict mode.
- Qoder: Agentic Coding Platform for Real Software