🎉 Refactor: Renamed and reorganized documentation files for improved clarity and structure. ('📚')
This commit is contained in:
263
backend/DOCS/unused_imports_detailed.md
Normal file
263
backend/DOCS/unused_imports_detailed.md
Normal file
@@ -0,0 +1,263 @@
|
||||
# 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.
|
Reference in New Issue
Block a user