Skill – Python Scripts
Skill do tworzenia skryptów automatyzacji i narzędzi CLI w Python.
Treść pliku SKILL.md
---
name: python-scripts
description: "Tworzenie skryptów Python – automatyzacja, CLI tools, web scraping, API clients"
---
# Python Scripts Skill
## Środowisko
- Python 3.11+
- Virtual environment: zawsze używaj venv
- Zależności: requirements.txt lub pyproject.toml
## Struktura projektu
```
my-script/
├── main.py ← punkt wejścia
├── src/
│ ├── __init__.py
│ ├── config.py ← konfiguracja
│ └── utils.py ← funkcje pomocnicze
├── tests/
│ └── test_main.py
├── requirements.txt
├── .env.example
└── README.md
```
## Wzorce kodu
### Obsługa błędów
```python
import logging
import sys
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
logger = logging.getLogger(__name__)
def main():
try:
result = process_data()
logger.info(f"Sukces: {result}")
except FileNotFoundError as e:
logger.error(f"Brak pliku: {e}")
sys.exit(1)
except Exception as e:
logger.exception(f"Nieoczekiwany błąd: {e}")
sys.exit(1)
```
### CLI z argparse
```python
import argparse
def parse_args():
parser = argparse.ArgumentParser(description='Opis skryptu')
parser.add_argument('input', help='Plik wejściowy')
parser.add_argument('-o', '--output', default='output.txt', help='Plik wyjściowy')
parser.add_argument('-v', '--verbose', action='store_true', help='Tryb szczegółowy')
return parser.parse_args()
```
### Zmienne środowiskowe
```python
from dotenv import load_dotenv
import os
load_dotenv()
API_KEY = os.getenv('API_KEY')
if not API_KEY:
raise ValueError("Brak API_KEY w zmiennych środowiskowych")
```
## Zasady
- Komentarze w języku polskim
- Type hints dla wszystkich funkcji
- Docstrings dla klas i funkcji publicznych
- Obsługa wyjątków zawsze explicitna (nie `except:`)
- Logowanie zamiast print() dla skryptów produkcyjnych