# Detaillierte Liste: Ungenutzte Imports nach Dateien ## Hauptdateien (Priorität 1) ### app.py (59 ungenutzte Imports) ⚠️ KRITISCH ```python # Flask-Komponenten (ungenutzt) from flask import flash, render_template, session, redirect, url_for, abort, send_from_directory # Flask-Login (redundant/ungenutzt) from flask_login import LoginManager, login_required, logout_user, current_user # Flask-WTF (teilweise ungenutzt) from flask_wtf import CSRFProtect from flask_wtf.csrf import CSRFError, generate_csrf # Blueprint-Imports (viele ungenutzt) from blueprints.admin_unified import admin_blueprint, admin_api_blueprint from blueprints.jobs import jobs_blueprint, start_job, pause_job, resume_job, finish_job from blueprints.printers import printers_blueprint from blueprints.auth import auth_blueprint from blueprints.tapo_control import tapo_blueprint from blueprints.kiosk import kiosk_blueprint from blueprints.api import api_blueprint from blueprints.calendar import calendar_blueprint from blueprints.energy_monitoring import energy_blueprint, energy_api_blueprint from blueprints.legal_pages import legal_bp from blueprints.uploads import uploads_blueprint from blueprints.sessions import sessions_blueprint from blueprints.user_management import users_blueprint from blueprints.guest import guest_blueprint # Utils (viele ungenutzt) from utils.permissions import fix_all_admin_permissions from utils.monitoring_analytics import performance_tracker, get_health_check from utils.hardware_integration import printer_monitor, get_tapo_controller from utils.security_suite import init_security from utils.job_queue_system import queue_manager, start_queue_manager, stop_queue_manager from utils.job_scheduler import JobScheduler, get_job_scheduler from utils.audit_logger import init_audit_logging from utils.ssl_suite import ssl_config from utils.core_system import get_windows_thread_manager from utils.utilities_collection import SESSION_LIFETIME, SECRET_KEY from utils.logging_config import setup_logging, log_startup_info, get_logger # Andere import uuid from contextlib import contextmanager from sqlalchemy import event ``` ### models.py (32 ungenutzte Imports) ⚠️ KRITISCH ```python # SQLAlchemy-Komponenten (ungenutzt) from sqlalchemy import Column, Integer, String, Boolean, DateTime, ForeignKey, Float, Text, func from sqlalchemy.engine import Engine from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import Mapped, mapped_column, relationship, sessionmaker, Session, scoped_session from sqlalchemy.pool import QueuePool, StaticPool from sqlalchemy.create_engine import create_engine from sqlalchemy import event, text # Flask-Login (ungenutzt) from flask_login import UserMixin # Typing (ungenutzt) from typing import Optional, List, Dict, Any # Utils (ungenutzt) from utils.utilities_collection import ensure_database_directory, DATABASE_PATH from utils.database_cleanup import get_cleanup_manager from utils.logging_config import get_logger # Context Manager (ungenutzt) from contextlib import contextmanager ``` ## Blueprint-Dateien (Priorität 2) ### blueprints/jobs.py (17 ungenutzte Imports) ```python # Models (teilweise ungenutzt) from models import Printer, JobOrder, GuestRequest, get_cached_session # Flask (ungenutzt) from flask import jsonify, Blueprint, request, current_app from flask_login import login_required, current_user # Utils (ungenutzt) from utils.job_scheduler import BackgroundTaskScheduler from utils.job_queue_system import conflict_manager from utils.logging_config import get_logger # SQLAlchemy (ungenutzt) from sqlalchemy.orm import joinedload # Andere import functools ``` ### blueprints/guest.py (38 ungenutzte Imports) ```python # WTForms (viele ungenutzt) from wtforms.validators import NumberRange, Optional, DataRequired, Email from wtforms import TextAreaField, IntegerField, StringField, SelectField from flask_wtf import FlaskForm from flask_wtf.file import FileField, FileAllowed # Models (teilweise ungenutzt) from models import User, Printer, Notification, UserPermission, GuestRequest, get_cached_session # Flask (viele ungenutzt) from flask import flash, url_for, jsonify, Blueprint, request, render_template, session, redirect, abort from flask_login import login_required, current_user # Utils (ungenutzt) from utils.permissions import can_approve_jobs, approver_required from utils.job_scheduler import BackgroundTaskScheduler from utils.logging_config import get_logger # Andere import bcrypt, secrets, functools from sqlalchemy import desc from sqlalchemy.orm import joinedload ``` ### blueprints/printers.py (25 ungenutzte Imports) ```python # Models (teilweise ungenutzt) from models import User, Printer, Job # Flask (viele ungenutzt) from flask import jsonify, Blueprint, request, Response, current_app, abort from flask_login import login_required, current_user # SQLAlchemy (ungenutzt) from sqlalchemy import func, desc, asc, exc.SQLAlchemyError # Werkzeug (ungenutzt) from werkzeug.utils import secure_filename from werkzeug.exceptions import NotFound, BadRequest # Typing (ungenutzt) from typing import Tuple, List, Dict, Any, Optional # PyP100 (ungenutzt) from PyP100 import PyP110 ``` ## Utils-Dateien (Priorität 3) ### utils/utilities_collection.py (8 ungenutzte Imports) ```python import json from typing import Optional, List, Dict, Any from utils.logging_config import get_logger from models import Printer, get_db_session ``` ### utils/hardware_integration.py (20 ungenutzte Imports) ```python # Typing (ungenutzt) from typing import Tuple, List, Dict, Any, Optional # Concurrent (ungenutzt) from concurrent.futures import ThreadPoolExecutor, as_completed # Utils (teilweise ungenutzt) from utils.utilities_collection import TAPO_RETRY_COUNT, TAPO_PASSWORD, TAPO_TIMEOUT, TAPO_USERNAME, DEFAULT_TAPO_IPS from utils.logging_config import get_logger # SQLAlchemy (ungenutzt) from sqlalchemy import func from sqlalchemy.orm import Session # Andere import requests from flask import session ``` ### utils/security_suite.py (16 ungenutzte Imports) ```python # Flask (teilweise ungenutzt) from flask import session, g, request, jsonify, abort from flask_login import current_user, login_required # Typing (ungenutzt) from typing import Optional, Set, List, Dict # Andere import functools, enum, hashlib, time from utils.logging_config import get_logger ``` ## Test-/Script-Dateien (Priorität 4) ### scripts/screenshot_tool.py (20 ungenutzte Imports) ```python # Selenium (viele ungenutzt) from selenium.common.exceptions import TimeoutException, WebDriverException, NoSuchElementException from selenium.webdriver.firefox.service import Service as FirefoxService from selenium.webdriver.chrome.service import Service as ChromeService from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.chrome.options import Options as ChromeOptions from selenium.webdriver.firefox.options import Options as FirefoxOptions from selenium import webdriver # Andere import subprocess from urllib.parse import urljoin, urlparse from typing import Set, Tuple, List, Dict, Optional ``` ### template_analysis_tool.py (5 ungenutzte Imports) ```python from typing import Set, Tuple, List, Dict from pathlib import Path ``` ## Empfehlungen pro Datei ### Sofort entfernen (sicher): 1. **Alle `typing` Imports** in Dateien ohne Type-Annotations 2. **Ungenutzte Selenium-Imports** in screenshot_tool.py 3. **WTForms-Imports** in Blueprint-Dateien ohne Formulare 4. **Redundante Flask-Imports** wenn bereits an anderer Stelle importiert ### Vorsichtig prüfen (möglicherweise Template/String-Referenzen): 1. **Blueprint-Registrierungen** in app.py 2. **Model-Imports** für SQLAlchemy-Relationships 3. **Flask-Decorator-Imports** in Blueprint-Dateien 4. **Utils-Imports** die möglicherweise in Templates verwendet werden ### Manuell validieren: 1. **app.py**: Jeder Import einzeln prüfen 2. **models.py**: SQLAlchemy-Imports können für Metadaten erforderlich sein 3. **Admin-Blueprints**: Template-Funktionen prüfen ## Automatische Bereinigung-Scripts ```bash # 1. Nur sichere typing-Imports entfernen autoflake --remove-unused-variables --remove-all-unused-imports --ignore-init-module-imports --in-place $(find . -name "*.py" -path "./utils/*" -o -path "./scripts/*") # 2. Blueprint-Dateien einzeln prüfen autoflake --remove-all-unused-imports --in-place blueprints/guest.py # (Nach Test, dann weitere) # 3. Hauptdateien MANUELL bereinigen # app.py und models.py erfordern manuelle Überprüfung ``` ## Geschätzte Einsparungen - **app.py**: ~59 Zeilen weniger Imports (-50% Import-Sektion) - **models.py**: ~32 Zeilen weniger Imports (-40% Import-Sektion) - **Blueprints**: ~200 Zeilen weniger Imports gesamt - **Utils**: ~150 Zeilen weniger Imports gesamt - **Scripts/Tests**: ~100 Zeilen weniger Imports gesamt **Gesamt**: ~541 Zeilen weniger Import-Code, verbesserte Readability und Performance.