anyio — правило для Cursor: что делает и как установить
Правило задаёт рекомендации для асинхронного Python-кода на AnyIO: использовать структурированную конкурентность и выбирать backend явно. Оно применяется к файлам *.py.
.cursor/rules/anyio.mdcЧто делает anyio
Правило нацелено на асинхронный Python-код, который должен работать с AnyIO поверх asyncio или Trio. Оно рекомендует использовать anyio.run() как точку входа вместо asyncio.run() и не полагаться на выбор backend по умолчанию. Для получения имени текущей асинхронной библиотеки в примере применяется sniffio.
Файл правила нужно разместить в .cursor/rules/anyio.mdc. Область действия ограничена шаблоном **/*.py, поэтому файлы с другим расширением под эти рекомендации не попадают. Это особенно важно, если в проекте точка входа сейчас построена на asyncio.run(): правило предлагает заменить её на anyio.run().
Какие задачи решает
- перевести запуск асинхронного приложения на
anyio.run() - выбирать backend AnyIO явно
- получать имя текущей асинхронной библиотеки через
sniffio - применять рекомендации к Python-файлам проекта
Примеры запросов агенту
- Перепиши точку входа этого асинхронного приложения на
anyio.run()и явно выбери backend. - Проверь этот Python-код на соблюдение рекомендаций AnyIO по структурированной конкурентности.
- Добавь получение текущей асинхронной библиотеки через
sniffioв точку входа.
Как установить anyio
Вручную: положить файлы
.cursor/rules/anyio.mdcВо frontmatter: description, globs, alwaysApply
Вручную: положить файлы
.claude/rules/anyio.mdПоле paths во frontmatter ограничивает файлы: globs из источника → paths
AGENTS.md
Codex читает AGENTS.md: вставьте текст правила туда
Вручную: положить файлы
.github/instructions/anyio.instructions.mdПоле applyTo задаёт, к каким файлам применять: globs из источника → applyTo
Вручную: положить файлы
.devin/rules/anyio.mdВручную: положить файлы
.clinerules/anyio.mdПо шагам, с командами для каждой платформы: Cursor rules: файлы .mdc, четыре режима и замена .cursorrules
Вопросы о anyio
Как установить anyio в Cursor?
Помести файл правила по пути .cursor/rules/anyio.mdc.
Что делает правило anyio?
Оно задаёт рекомендации для асинхронного Python-кода на AnyIO, включая применение anyio.run() и явный выбор backend.
К каким файлам применяется anyio?
К файлам, подходящим под шаблон **/*.py.
Исходный текст
anyio.mdc · CC0-1.0
---
description: Definitive guidelines for writing robust, maintainable, and backend-agnostic asynchronous Python code using AnyIO. Prioritize structured concurrency and native AnyIO primitives.
globs: **/*.py
---
# AnyIO Best Practices
AnyIO is the definitive choice for modern asynchronous Python development. It provides a unified, Trio-inspired API on top of `asyncio` or `Trio`, fixing critical design shortcomings of `asyncio` and enforcing structured concurrency. Adhere to these rules to build reliable, high-performance async applications.
## 1. Entry Point and Backend Selection
Always use `anyio.run()` as your application's entry point. Explicitly select your preferred backend and leverage backend-specific optimizations.
❌ **BAD**: Relying on default backend or `asyncio.run()`.
```python
import asyncio
from anyio import run, sleep
async def main():
print("Running on default backend (asyncio) without uvloop.")
await sleep(0.1)
asyncio.run(main) # Bypasses AnyIO's entry point
run(main) # Implicit backend, no optimizations
```
✅ **GOOD**: Explicit backend selection and performance enhancements.
```python
from anyio import run, sleep
import sniffio
async def main():
backend = sniffio.current_async_library()
print(f"Hello from {backend}!")
await sleep(0.1)
# For production, prefer
© sanjeed5 · CC0-1.0 · sanjeed5/awesome-cursor-rules-mdc