athola/python-async
Async Python patterns via asyncio and aiohttp for I/O-bound concurrency. Use when adding async APIs, handling concurrent I/O, or debugging async code.
npx skills add https://github.com/athola/claude-night-market --skill python-async
asyncio and async/await patterns for Python applications.
import asyncio
async def main():
print("Hello")
await asyncio.sleep(1)
print("World")
asyncio.run(main())
This skill uses progressive loading. Content is organized into focused modules:
modules/basic-patterns.md - Core async/await, gather(), and task managementmodules/concurrency-control.md - Semaphores and locks for rate limitingmodules/error-handling-timeouts.md - Error handling, timeouts, and cancellationmodules/advanced-patterns.md - Context managers, iterators, producer-consumermodules/testing-async.md - Testing with pytest-asynciomodules/real-world-applications.md - Web scraping and database operationsmodules/pitfalls-best-practices.md - Common mistakes and best practicesLoad specific modules based on your needs, or reference all for detailed guidance.
RuntimeError: no current event loop
Use asyncio.run() as the entry point. Avoid get_event_loop() in Python 3.10+.
Blocking call in async context
Move sync I/O to asyncio.to_thread() or loop.run_in_executor().
Tests hang indefinitely
Ensure pytest-asyncio is installed and test functions are decorated with @pytest.mark.asyncio.
Take athola/python-async from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.