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.
This commit is contained in:
2026-04-12 21:02:37 +02:00
parent 823df6f9ee
commit 1dd660afc7
4 changed files with 25 additions and 4 deletions
+6
View File
@@ -11,7 +11,13 @@ import logging
from typing import Dict, List, Optional, Tuple
import numpy as np
try:
import duckdb
except (
Exception
): # pragma: no cover - import-time guard for environments without duckdb
duckdb = None # type: ignore
_logger = logging.getLogger(__name__)
+5
View File
@@ -9,7 +9,12 @@ from __future__ import annotations
import logging
from typing import Dict, List, Set, Tuple
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
+4
View File
@@ -18,7 +18,11 @@ from typing import Dict, List, Optional, Tuple
import numpy as np
from . import trajectory as _trajectory
try:
import duckdb
except Exception: # pragma: no cover - allow importing module in lightweight test envs
duckdb = None # type: ignore
_logger = logging.getLogger(__name__)
+6
View File
@@ -15,7 +15,13 @@ from typing import Dict, List, Optional, Tuple
import numpy as np
import pandas as pd
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