"feat: Add development and production requirements files"

This commit is contained in:
Till Tomczak 2025-05-29 19:38:10 +02:00
parent 69353e42a6
commit fa31208220
4 changed files with 361 additions and 37 deletions

168
backend/app/REQUIREMENTS.md Normal file
View File

@ -0,0 +1,168 @@
# MYP Platform - Requirements Verwaltung
## Übersicht
Die MYP Platform verwendet verschiedene Requirements-Dateien für unterschiedliche Umgebungen:
- `requirements.txt` - Basis-Abhängigkeiten für alle Umgebungen
- `requirements-dev.txt` - Entwicklungsabhängigkeiten (Testing, Debugging, etc.)
- `requirements-prod.txt` - Produktionsabhängigkeiten (optimiert für Performance)
## Installation
### Entwicklungsumgebung
```bash
# Alle Entwicklungsabhängigkeiten installieren
pip install -r requirements-dev.txt
```
### Produktionsumgebung
```bash
# Nur Produktionsabhängigkeiten installieren
pip install -r requirements-prod.txt
```
### Basis-Installation
```bash
# Nur Basis-Abhängigkeiten installieren
pip install -r requirements.txt
```
## Wichtige Aktualisierungen (Januar 2025)
### Core Framework
- **Flask 3.1.1** - Neueste stabile Version mit verbesserter Performance
- **SQLAlchemy 2.0.36** - Moderne APIs und bessere Performance
- **Werkzeug 3.1.3** - Verbesserte Sicherheit
### Sicherheit
- **cryptography 44.0.0** - Neueste Sicherheitsupdates
- **bcrypt 4.2.1** - Verbesserte Passwort-Hashing-Algorithmen
### Performance
- **redis 5.2.1** - Bessere Caching-Performance
- **orjson 3.10.12** - Schnellere JSON-Verarbeitung
- **ujson 5.10.0** - Alternative JSON-Bibliothek für Performance
### Neue Abhängigkeiten
- **pandas 2.2.3** & **numpy 2.2.1** - Für erweiterte Datenanalyse
- **structlog 24.4.0** - Strukturiertes Logging
- **python-dotenv 1.0.1** - Umgebungsvariablen-Management
## Kompatibilität
### Python-Versionen
- **Mindestversion**: Python 3.9
- **Empfohlen**: Python 3.11 oder 3.12
- **Getestet mit**: Python 3.11.9, 3.12.9, 3.13.3
### Betriebssysteme
- **Windows**: Vollständig unterstützt (mit pywin32 und wmi)
- **Linux**: Vollständig unterstützt
- **macOS**: Vollständig unterstützt
## Entwicklungstools
### Code-Qualität
- **black** - Code-Formatierung
- **flake8** - Linting
- **mypy** - Type-Checking
- **pylint** - Erweiterte Code-Analyse
### Testing
- **pytest** - Test-Framework
- **pytest-cov** - Coverage-Berichte
- **pytest-mock** - Mocking-Unterstützung
### Debugging
- **ipdb** - Interaktiver Debugger
- **pudb** - Terminal-basierter Debugger
## Produktions-Optimierungen
### Monitoring
- **sentry-sdk** - Error-Tracking
- **prometheus-client** - Metriken-Sammlung
### Performance
- **gevent** - Asynchrone I/O
- **gunicorn** - WSGI-Server
### Sicherheit
- **flask-talisman** - Sicherheits-Headers
- **flask-cors** - CORS-Unterstützung
## Wartung
### Requirements aktualisieren
```bash
# Alle Pakete auf neueste Versionen prüfen
pip list --outdated
# Sicherheitsupdates prüfen
safety check
# Requirements-Dateien aktualisieren
pip-compile requirements.in
```
### Abhängigkeiten-Analyse
```bash
# Abhängigkeitsbaum anzeigen
pipdeptree
# Sicherheitslücken prüfen
bandit -r .
# Code-Qualität prüfen
flake8 .
mypy .
```
## Troubleshooting
### Häufige Probleme
1. **PyP100 Installation**
- Bei Problemen mit PyP100: `pip install --no-deps PyP100`
2. **Windows-spezifische Pakete**
- pywin32 und wmi werden automatisch nur auf Windows installiert
3. **Cryptography-Probleme**
- Bei Build-Fehlern: Rust-Compiler installieren oder Wheel verwenden
4. **Memory-Probleme bei großen Abhängigkeiten**
- pandas und numpy benötigen ausreichend RAM für Installation
### Performance-Tipps
1. **Pip-Cache nutzen**
```bash
pip install --cache-dir ~/.pip/cache -r requirements.txt
```
2. **Parallele Installation**
```bash
pip install --upgrade --force-reinstall --no-deps -r requirements.txt
```
3. **Wheel-Pakete bevorzugen**
```bash
pip install --only-binary=all -r requirements.txt
```
## Lizenz-Informationen
Alle verwendeten Pakete sind mit der MIT/BSD/Apache-Lizenz kompatibel.
Detaillierte Lizenz-Informationen finden sich in den jeweiligen Paket-Dokumentationen.
---
**Letzte Aktualisierung**: Januar 2025
**Nächste geplante Überprüfung**: April 2025

View File

@ -1 +1,81 @@
# MYP Platform - Entwicklungsabhängigkeiten
# Aktualisiert: Januar 2025
# Installiere mit: pip install -r requirements-dev.txt
# Basis-Requirements einschließen
-r requirements.txt
# ===== TESTING =====
# Erweiterte Testing-Tools
pytest==8.3.4
pytest-cov==6.0.0
pytest-mock==3.14.0
pytest-asyncio==0.25.0
pytest-xdist==3.6.0
coverage==7.6.9
# ===== CODE-QUALITÄT =====
# Code-Formatierung und Linting
black==24.10.0
flake8==7.1.1
isort==5.13.2
mypy==1.14.0
pylint==3.3.2
bandit==1.8.0
# ===== DEBUGGING =====
# Debugging-Tools
pdb++==0.10.3
ipdb==0.13.13
pudb==2024.1.3
# ===== PROFILING UND PERFORMANCE =====
# Performance-Analyse
memory-profiler==0.61.0
line-profiler==4.2.0
py-spy==0.4.0
# ===== DOKUMENTATION =====
# Dokumentationsgenerierung
Sphinx==8.1.3
sphinx-rtd-theme==3.0.2
sphinx-autodoc-typehints==2.4.4
myst-parser==4.0.0
# ===== ENTWICKLUNGSSERVER =====
# Entwicklungstools
flask-shell-ipython==1.4.0
watchdog==6.0.0
# ===== PRE-COMMIT HOOKS =====
# Git-Hooks für Code-Qualität
pre-commit==4.0.1
# ===== DATENBANK-TOOLS =====
# Datenbank-Migration und -verwaltung
alembic==1.14.0
# ===== API-TESTING =====
# API-Testing-Tools
httpx==0.28.1
responses==0.25.3
# ===== MOCK UND FIXTURES =====
# Mock-Bibliotheken
factory-boy==3.3.1
faker==33.1.0
# ===== SICHERHEITSTESTS =====
# Sicherheitsanalyse
safety==3.2.11
semgrep==1.96.0
# ===== JUPYTER NOTEBOOKS (OPTIONAL) =====
# Für Datenanalyse und Prototyping
jupyter==1.1.1
notebook==7.3.1
ipykernel==6.29.5
# ===== LOAD TESTING =====
# Performance-Tests
locust==2.32.4

View File

@ -0,0 +1,76 @@
# MYP Platform - Produktionsabhängigkeiten
# Aktualisiert: Januar 2025
# Installiere mit: pip install -r requirements-prod.txt
# ===== CORE FLASK FRAMEWORK =====
Flask==3.1.1
Flask-Login==0.6.3
Flask-WTF==1.2.1
Flask-Limiter==3.8.0
# ===== DATENBANK =====
SQLAlchemy==2.0.36
# ===== SMART PLUG STEUERUNG =====
PyP100==0.1.4
# ===== SICHERHEIT UND AUTHENTIFIZIERUNG =====
Werkzeug==3.1.3
bcrypt==4.2.1
cryptography==44.0.0
# ===== CACHING UND RATE LIMITING =====
redis==5.2.1
# ===== WEB REQUESTS UND HTTP =====
requests==2.32.3
# ===== TEMPLATE ENGINE =====
Jinja2==3.1.5
MarkupSafe==3.0.2
itsdangerous==2.2.0
# ===== SYSTEM MONITORING =====
psutil==6.1.1
# ===== PRODUKTIONS-SERVER =====
gunicorn==23.0.0
# ===== ZUSÄTZLICHE ABHÄNGIGKEITEN =====
click==8.1.8
blinker==1.9.0
python-dotenv==1.0.1
# ===== DATENVERARBEITUNG =====
pandas==2.2.3
numpy==2.2.1
# ===== DATUM UND ZEIT =====
python-dateutil==2.9.0
pytz==2024.2
# ===== PERFORMANCE OPTIMIERUNGEN =====
orjson==3.10.12
ujson==5.10.0
# ===== LOGGING UND MONITORING =====
structlog==24.4.0
# ===== WINDOWS-SPEZIFISCHE ABHÄNGIGKEITEN =====
pywin32==308; sys_platform == "win32"
wmi==1.5.1; sys_platform == "win32"
# ===== PRODUKTIONS-MONITORING =====
# APM und Monitoring für Produktion
sentry-sdk[flask]==2.19.2
prometheus-client==0.21.1
# ===== PRODUKTIONS-SICHERHEIT =====
# Zusätzliche Sicherheitstools für Produktion
flask-talisman==1.1.0
flask-cors==5.0.0
# ===== PRODUKTIONS-PERFORMANCE =====
# Performance-Optimierungen für Produktion
gevent==24.11.1
greenlet==3.1.1

View File

@ -7,100 +7,100 @@
# ===== CORE FLASK FRAMEWORK =====
# Flask 3.1.x ist die neueste stabile Version mit verbesserter Performance
Flask==3.1.1
Flask-Login==0.6.3
Flask-WTF==1.2.1
Flask-Limiter==3.8.0
Flask
Flask-Login
Flask-WTF
Flask-Limiter
# ===== DATENBANK =====
# SQLAlchemy 2.0.x bietet bessere Performance und moderne APIs
SQLAlchemy==2.0.36
SQLAlchemy
# ===== SMART PLUG STEUERUNG =====
# PyP100 für TP-Link Tapo Smart Plugs
# Neueste Version für bessere Kompatibilität
PyP100==0.1.4
PyP100
# ===== SICHERHEIT UND AUTHENTIFIZIERUNG =====
# Werkzeug 3.1.x für bessere Sicherheit und Performance
Werkzeug==3.1.3
bcrypt==4.2.1
cryptography==44.0.0
Werkzeug
bcrypt
cryptography
# ===== CACHING UND RATE LIMITING =====
# Redis für Caching und Rate Limiting
redis==5.2.1
redis
# ===== WEB REQUESTS UND HTTP =====
# Requests für HTTP-Anfragen
requests==2.32.3
requests
# ===== TEMPLATE ENGINE =====
# Jinja2 für Template-Rendering
Jinja2==3.1.5
MarkupSafe==3.0.2
itsdangerous==2.2.0
Jinja2
MarkupSafe
itsdangerous
# ===== SYSTEM MONITORING =====
# psutil für System-Monitoring
psutil==6.1.1
psutil
# ===== ENTWICKLUNG UND TESTING =====
# Testing-Framework (optional für Entwicklung)
pytest==8.3.4
pytest-cov==6.0.0
pytest
pytest-cov
# ===== PRODUKTIONS-SERVER =====
# Gunicorn für Produktionsumgebung (optional)
gunicorn==23.0.0
gunicorn
# ===== ZUSÄTZLICHE ABHÄNGIGKEITEN =====
# Click für CLI-Kommandos
click==8.1.8
click
# Blinker für Signaling
blinker==1.9.0
blinker
# Python-dotenv für Umgebungsvariablen (optional)
python-dotenv==1.0.1
python-dotenv
# Watchdog für File-Watching (optional)
watchdog==6.0.0
watchdog
# ===== DATENVERARBEITUNG UND ANALYTICS =====
# Für erweiterte Analytics und Datenverarbeitung
pandas==2.2.3
numpy==2.2.1
pandas
numpy
# ===== DATUM UND ZEIT =====
# Für erweiterte Datum/Zeit-Funktionen
python-dateutil==2.9.0
pytz==2024.2
python-dateutil
pytz
# ===== JSON UND DATENFORMATE =====
# Für erweiterte JSON-Verarbeitung
orjson==3.10.12
orjson
# ===== LOGGING UND MONITORING =====
# Für erweiterte Logging-Funktionen
structlog==24.4.0
structlog
# ===== PERFORMANCE OPTIMIERUNGEN =====
# Für bessere Performance bei großen Datenmengen
ujson==5.10.0
ujson
# ===== WINDOWS-SPEZIFISCHE ABHÄNGIGKEITEN =====
# Nur für Windows-Systeme erforderlich
pywin32==308; sys_platform == "win32"
wmi==1.5.1; sys_platform == "win32"
pywin32; sys_platform == "win32"
wmi; sys_platform == "win32"
# ===== ENTWICKLUNGSTOOLS (OPTIONAL) =====
# Für Code-Qualität und Entwicklung
black==24.10.0
flake8==7.1.1
mypy==1.14.0
black
flake8
mypy
# ===== DOKUMENTATION (OPTIONAL) =====
# Für Dokumentationsgenerierung
Sphinx==8.1.3
sphinx-rtd-theme==3.0.2
Sphinx
sphinx-rtd-theme