8.9 KiB
8.9 KiB
Detaillierte Liste: Ungenutzte Imports nach Dateien
Hauptdateien (Priorität 1)
app.py (59 ungenutzte Imports) ⚠️ KRITISCH
# 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
# 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)
# 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)
# 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)
# 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)
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)
# 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)
# 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)
# 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)
from typing import Set, Tuple, List, Dict
from pathlib import Path
Empfehlungen pro Datei
Sofort entfernen (sicher):
- Alle
typing
Imports in Dateien ohne Type-Annotations - Ungenutzte Selenium-Imports in screenshot_tool.py
- WTForms-Imports in Blueprint-Dateien ohne Formulare
- Redundante Flask-Imports wenn bereits an anderer Stelle importiert
Vorsichtig prüfen (möglicherweise Template/String-Referenzen):
- Blueprint-Registrierungen in app.py
- Model-Imports für SQLAlchemy-Relationships
- Flask-Decorator-Imports in Blueprint-Dateien
- Utils-Imports die möglicherweise in Templates verwendet werden
Manuell validieren:
- app.py: Jeder Import einzeln prüfen
- models.py: SQLAlchemy-Imports können für Metadaten erforderlich sein
- Admin-Blueprints: Template-Funktionen prüfen
Automatische Bereinigung-Scripts
# 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.