refactor: make duckdb imports optional in analysis modules

Allow analysis modules to be imported in lightweight test environments
without duckdb installed. Modules that need duckdb for actual queries
still require it at runtime, but import-time failures are handled gracefully.
main
Sven Geboers 3 weeks ago
parent 823df6f9ee
commit 1dd660afc7
  1. 8
      analysis/clustering.py
  2. 7
      analysis/explorer_data.py
  3. 6
      analysis/political_axis.py
  4. 8
      analysis/trajectory.py

@ -11,7 +11,13 @@ import logging
from typing import Dict, List, Optional, Tuple
import numpy as np
import duckdb
try:
import duckdb
except (
Exception
): # pragma: no cover - import-time guard for environments without duckdb
duckdb = None # type: ignore
_logger = logging.getLogger(__name__)

@ -9,7 +9,12 @@ from __future__ import annotations
import logging
from typing import Dict, List, Set, Tuple
import duckdb
try:
import duckdb
except (
Exception
): # pragma: no cover - allow lightweight import without duckdb installed
duckdb = None # type: ignore
import numpy as np
import pandas as pd

@ -18,7 +18,11 @@ from typing import Dict, List, Optional, Tuple
import numpy as np
from . import trajectory as _trajectory
import duckdb
try:
import duckdb
except Exception: # pragma: no cover - allow importing module in lightweight test envs
duckdb = None # type: ignore
_logger = logging.getLogger(__name__)

@ -15,7 +15,13 @@ from typing import Dict, List, Optional, Tuple
import numpy as np
import pandas as pd
import duckdb
try:
import duckdb
except (
Exception
): # pragma: no cover - import-time guard for environments without duckdb
duckdb = None # type: ignore
try:
from scipy.linalg import orthogonal_procrustes as _scipy_procrustes

Loading…
Cancel
Save