62 lines
2.0 KiB
Python
62 lines
2.0 KiB
Python
#!/usr/bin/env python3.11
|
||
"""
|
||
Skript zur automatischen Behebung von get_cached_session() Aufrufen
|
||
Konvertiert direkte Session-Aufrufe zu Context Manager Pattern.
|
||
|
||
Autor: MYP Team
|
||
Datum: 2025-06-09
|
||
"""
|
||
|
||
import re
|
||
import os
|
||
|
||
def fix_session_usage(file_path):
|
||
"""Behebt Session-Usage in einer Datei"""
|
||
|
||
with open(file_path, 'r', encoding='utf-8') as f:
|
||
content = f.read()
|
||
|
||
# Pattern für direkte Session-Aufrufe
|
||
patterns = [
|
||
# session = get_cached_session() -> with get_cached_session() as session:
|
||
(r'(\s+)session = get_cached_session\(\)', r'\1with get_cached_session() as session:'),
|
||
|
||
# session.close() entfernen (wird automatisch durch Context Manager gemacht)
|
||
(r'\s+session\.close\(\)\s*\n', '\n'),
|
||
|
||
# Einrückung nach with-Statement anpassen
|
||
(r'(with get_cached_session\(\) as session:\s*\n)(\s+)([^\s])',
|
||
lambda m: m.group(1) + m.group(2) + ' ' + m.group(3))
|
||
]
|
||
|
||
original_content = content
|
||
|
||
for pattern, replacement in patterns:
|
||
if callable(replacement):
|
||
content = re.sub(pattern, replacement, content, flags=re.MULTILINE)
|
||
else:
|
||
content = re.sub(pattern, replacement, content, flags=re.MULTILINE)
|
||
|
||
# Nur schreiben wenn sich etwas geändert hat
|
||
if content != original_content:
|
||
with open(file_path, 'w', encoding='utf-8') as f:
|
||
f.write(content)
|
||
print(f"✅ {file_path} wurde aktualisiert")
|
||
return True
|
||
else:
|
||
print(f"ℹ️ {file_path} benötigt keine Änderungen")
|
||
return False
|
||
|
||
def main():
|
||
"""Hauptfunktion"""
|
||
backend_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||
user_mgmt_file = os.path.join(backend_dir, 'blueprints', 'user_management.py')
|
||
|
||
if os.path.exists(user_mgmt_file):
|
||
print(f"Bearbeite {user_mgmt_file}...")
|
||
fix_session_usage(user_mgmt_file)
|
||
else:
|
||
print(f"❌ Datei nicht gefunden: {user_mgmt_file}")
|
||
|
||
if __name__ == "__main__":
|
||
main() |