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