superpowers-python-automation
Implements reliable automations in Python for REST APIs: httpx/requests patterns, retries, timeouts, pagination, typing, config, logging, and tests. Use when writing Python scripts/services that call external APIs.
Installation
Pick a client and clone the repository into its skills directory.
Installation
About this skill
Implements reliable automations in Python for REST APIs: httpx/requests patterns, retries, timeouts, pagination, typing, config, logging, and tests. Use when writing Python scripts/services that call external APIs.
How to use
Zainstaluj skill w swoim projekcie Pythona i upewnij się, że masz dostęp do bibliotek httpx (lub requests) oraz pytest. Jeśli projekt jeszcze ich nie używa, dodaj je do requirements.txt.
Utwórz strukturę katalogów zgodnie z architekturą: client.py dla wrappera API (auth, retry'e, paginacja), models.py dla typowanych modeli danych (dataclasses lub pydantic), sync.py dla logiki orkestracji (pobierz → transformuj → zaktualizuj), main.py jako punkt wejścia CLI, oraz katalog tests/ na testy jednostkowe.
W client.py zaimplementuj centralizowaną funkcję do wysyłania żądań HTTP. Zawsze ustaw timeouty (connect i read osobno), nigdy nie loguj sekretów takich jak Authorization headers czy tokeny, a obsługuj retry'e dla błędów sieciowych, timeout'ów, 429 (Retry-After), oraz 500–599. Nie retry'uj błędów 400–499 chyba że operacja jest bezpieczna.
Obsługi paginację poprzez helper, który wspiera co najmniej jeden z wzorców: next URL w odpowiedzi, cursor token lub parametry page/limit. Dodaj hard stop – maksymalną liczbę stron lub rekordów, aby uniknąć nieskończonych pętli.
Napisz testy dla logiki transformacji i zachowania klienta API. Użyj pytest oraz respx do mockowania żądań httpx, aby upewnić się, że retry'e i timeouty działają poprawnie bez rzeczywistych połączeń sieciowych.
Jeśli projekt już używa innych narzędzi (inny HTTP client, inny logger, inne konwencje), postępuj zgodnie z istniejącymi standardami zamiast domyślnych wzorców – spójność z kodem istniejącym ważniejsza niż dogmatyczne stosowanie się do skill'u.