src/maverick/skills/maverick_python_async/SKILL.md
Python async/await patterns and asyncio best practices
npx skillsauth add get2knowio/maverick maverick-python-asyncInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Expert guidance for asynchronous Python programming with asyncio.
async def fetch_data(url: str) -> dict:
"""Async function returns a coroutine."""
async with aiohttp.ClientSession() as session:
async with session.get(url) as response:
return await response.json()
import asyncio
# Python 3.7+
asyncio.run(main())
# Or event loop (older style)
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
# gather - run concurrently, wait for all
results = await asyncio.gather(
fetch_data(url1),
fetch_data(url2),
fetch_data(url3),
)
# create_task - run in background
task1 = asyncio.create_task(fetch_data(url1))
task2 = asyncio.create_task(fetch_data(url2))
result1 = await task1
result2 = await task2
try:
result = await asyncio.wait_for(
slow_operation(),
timeout=5.0
)
except asyncio.TimeoutError:
print("Operation timed out")
async with aiohttp.ClientSession() as session:
async with session.get(url) as response:
data = await response.text()
async for item in async_generator():
process(item)
# BAD - blocks event loop
async def bad():
time.sleep(1) # BLOCKS!
response = requests.get(url) # BLOCKS!
# GOOD - use async alternatives
async def good():
await asyncio.sleep(1)
async with aiohttp.ClientSession() as session:
response = await session.get(url)
# BAD - coroutine never executes
async def bad():
fetch_data() # Missing await!
# GOOD
async def good():
await fetch_data()
# BAD - creates 10000 tasks at once
tasks = [asyncio.create_task(fetch(url)) for url in urls]
# GOOD - use semaphore to limit concurrency
async def fetch_with_limit(url, semaphore):
async with semaphore:
return await fetch(url)
semaphore = asyncio.Semaphore(10)
tasks = [fetch_with_limit(url, semaphore) for url in urls]
development
Rust unsafe code, FFI, and safety invariants
development
Rust testing patterns (unit, integration, property-based)
development
Rust performance optimization and zero-cost abstractions
development
Rust ownership, borrowing, and lifetimes