refactor(scripts): improve import handling and path management

This commit is contained in:
Fanilo-Nantenaina 2026-01-20 15:35:06 +03:00
parent 28c8fb3008
commit 82d1d92e58

View file

@ -1,6 +1,40 @@
import sys import sys
import os import os
from pathlib import Path from pathlib import Path
_current_file = Path(__file__).resolve()
_script_dir = _current_file.parent
_app_dir = _script_dir.parent
print(f"DEBUG: Script path: {_current_file}")
print(f"DEBUG: App dir: {_app_dir}")
print(f"DEBUG: Current working dir: {os.getcwd()}")
if str(_app_dir) in sys.path:
sys.path.remove(str(_app_dir))
sys.path.insert(0, str(_app_dir))
os.chdir(str(_app_dir))
print(f"DEBUG: sys.path[0]: {sys.path[0]}")
print(f"DEBUG: New working dir: {os.getcwd()}")
_test_imports = [
"database",
"database.db_config",
"database.models",
"services",
"security",
]
print("\nDEBUG: Vérification des imports...")
for module in _test_imports:
try:
__import__(module)
print(f"{module}")
except ImportError as e:
print(f"{module}: {e}")
import asyncio import asyncio
import argparse import argparse
import logging import logging
@ -8,18 +42,17 @@ from datetime import datetime
from sqlalchemy import select from sqlalchemy import select
from database.db_config import async_session_factory try:
from database.models.user import User from database.db_config import async_session_factory
from database.models.api_key import SwaggerUser, ApiKey from database.models.user import User
from services.api_key import ApiKeyService from database.models.api_key import SwaggerUser, ApiKey
from security.auth import hash_password from services.api_key import ApiKeyService
from security.auth import hash_password
_script_dir = Path(__file__).resolve().parent except ImportError as e:
_app_dir = _script_dir.parent print(f"\n❌ ERREUR D'IMPORT: {e}")
print(f" Vérifiez que vous êtes dans /app")
sys.path.insert(0, str(_app_dir)) print(f" Commande correcte: cd /app && python scripts/manage_security.py ...")
os.chdir(str(_app_dir)) sys.exit(1)
logging.basicConfig(level=logging.INFO, format="%(levelname)s - %(message)s") logging.basicConfig(level=logging.INFO, format="%(levelname)s - %(message)s")
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)