Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
git clone --depth 1 https://github.com/mitas/cursor-rulesWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/rules/mitas/cursor-rules/python)<a href="https://agentmods.dev/rules/mitas/cursor-rules/python"><img src="https://agentmods.dev/badge/rules/mitas/cursor-rules/python/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/rules/mitas/cursor-rules/python"><img src="https://agentmods.dev/badge/rules/mitas/cursor-rules/python.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00000 | $0.01882 |
| Opus 5.5 | $0.00000 | $0.00753 |
| Sonnet 5.5 | $0.00000 | $0.00376 |
| Haiku 4.5 | $0.00000 | $0.00188 |
Grade A, and why
python scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 248 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Python Best Practices
Using uv for Python Development
- Use uv instead of standard Python commands for improved performance
- Run Python scripts with:
uv run python script.pyinstead ofpython script.py - Create virtual environments with:
uv venvinstead ofpython -m venv - Install packages with:
uv pip install packageinstead ofpip install package - Manage dependencies with uv instead of poetry or pip-tools:
uv pip compile pyproject.toml -o requirements.txtto generate requirementsuv syncto install dependencies from lockfile (preferred method)uv pip sync requirements.txtas alternative for requirements.txt filesuv add packageto add a dependency to a projectuv remove packageto remove a dependency from a project
- Run tools without installing with:
uvx tool-name(e.g.,uvx pytest) - Install specific Python versions:
uv python install 3.11 - Use specific Python version:
uv run --python 3.11 script.py - Pin Python version for a project:
uv python pin 3.11 - For detailed uv tool usage, see UV Tool Usage
Code Formatting and Linting
- Format code with Black through uv:
uv run black . - Lint and fix code with Ruff:
uv run ruff check --fix . - Add pre-commit hooks for Ruff and Black:
- repo: https://github.com/astral-sh/ruff-pre-commit rev: v0.3.0 hooks: - id: ruff args: [--fix] - id: ruff-format - Configure all tools in pyproject.toml:
[tool.black] line-length = 79 target-version = ["py313"] include = '\.pyi?$' [tool.ruff] target-version = "py313" line-length = 79 [tool.ruff.lint] select = ["E", "F", "B", "I"] ignore = ["E203", "E501"] # Ignore whitespace before ':' and line length - Run Black and Ruff together:
uv run bash -c "ruff check --fix . && black ."
Project Structure
- Use src-layout with
src/your_package_name/ - Place tests in
tests/directory parallel tosrc/ - Keep configuration in
config/or as environment variables - Store requirements in
pyproject.toml(preferred with uv) - Place static files in
static/directory - Use
templates/for Jinja2 templates
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago First seen · 248 lines · 1,882 tokens per session scan A cf3583b4b2e2
python is a cursor rule published in the GitHub repository mitas/cursor-rules (2 stars, last pushed 1y ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 1,882 tokens. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other cursor rules, from other repositories
python_tests
We use the unit tests to cover internal behavior that can work without the web / backend counterpart. We aim for 95%+ unit test coverage of our Python code in lib/streamlit.
django-python
Rules for writing Python services at PostHog (Python servers powered by the Django framework).
py-fast-api
Cursor rules for Python FastAPI backend development and best practices.
python
Python best practices and patterns for modern software development with Flask and SQLite.
python--typescript-guide-cursorrules-prompt-file
Cursor rules for Python development with TypeScript guide integration.
python-conventions
Python coding style, FastAPI endpoint template, code organisation sections.