Skip to content

Commit 39263b7

Browse files
committed
fix: pydantic type check
1 parent 373720a commit 39263b7

4 files changed

Lines changed: 109 additions & 96 deletions

File tree

‎mise.toml‎

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,17 @@ CPLUS_INCLUDE_PATH = "{{config_root}}/src/scloop/data"
77
[settings]
88
python.uv_venv_auto = true
99

10+
[tasks.clean]
11+
run = [
12+
"uv cache clean",
13+
"uv cache prune",
14+
"rm -rf .venv",
15+
"rm -rf dist",
16+
"rm -rf ./src/scloop.egg-info",
17+
"rm -f uv.lock",
18+
"find ./src -name '*.so' -type f -delete",
19+
]
20+
1021
[tasks.sync_full]
1122
run = [
1223
"uv cache clean",

‎src/scloop/data/analysis_containers.py‎

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,34 +3,35 @@
33

44
import numpy as np
55
import pandas as pd
6-
from pydantic.dataclasses import dataclass, field
6+
from pydantic.dataclasses import dataclass
7+
from pydantic import Field, ConfigDict
78

89

9-
@dataclass
10+
@dataclass(config=ConfigDict(arbitrary_types_allowed=True))
1011
class BootstrapAnalysis:
11-
loops_eidx_boot: list[list[list[np.ndarray]]] = field(default_factory=list)
12-
persistence_diagram_boot: list[np.ndarray] = field(default_factory=list)
13-
matching_df: list[pd.DataFrame] = field(default_factory=list)
12+
loops_eidx_boot: list[list[list[np.ndarray]]] = Field(default_factory=list)
13+
persistence_diagram_boot: list[np.ndarray] = Field(default_factory=list)
14+
matching_df: list[pd.DataFrame] = Field(default_factory=list)
1415
n_booted: int = 0
15-
loop_rank: pd.DataFrame = field(default_factory=pd.DataFrame)
16-
parameters: dict = field(default_factory=dict)
16+
loop_rank: pd.DataFrame = Field(default_factory=pd.DataFrame)
17+
parameters: dict = Field(default_factory=dict)
1718

18-
@dataclass
19+
@dataclass(config=ConfigDict(arbitrary_types_allowed=True))
1920
class HodgeAnalysis:
2021
loop_id: str
21-
eigenvalues: np.ndarray = field(default_factory=lambda: np.array([]))
22-
eigenvectors: np.ndarray = field(default_factory=lambda: np.array([]))
23-
loops_edges_embedding: list[np.ndarray] = field(default_factory=list)
24-
parameters: dict = field(default_factory=dict)
22+
eigenvalues: np.ndarray = Field(default_factory=lambda: np.array([]))
23+
eigenvectors: np.ndarray = Field(default_factory=lambda: np.array([]))
24+
loops_edges_embedding: list[np.ndarray] = Field(default_factory=list)
25+
parameters: dict = Field(default_factory=dict)
2526

26-
@dataclass
27+
@dataclass(config=ConfigDict(arbitrary_types_allowed=True))
2728
class PseudotimeAnalysis:
28-
edge_pseudotime_deltas: np.ndarray = field(default_factory=lambda: np.array([]))
29+
edge_pseudotime_deltas: np.ndarray = Field(default_factory=lambda: np.array([]))
2930
pseudotime_source: str = ""
30-
parameters: dict = field(default_factory=dict)
31+
parameters: dict = Field(default_factory=dict)
3132

32-
@dataclass
33+
@dataclass(config=ConfigDict(arbitrary_types_allowed=True))
3334
class VelocityAnalysis:
34-
edge_velocity_deltas: np.ndarray = field(default_factory=lambda: np.array([]))
35+
edge_velocity_deltas: np.ndarray = Field(default_factory=lambda: np.array([]))
3536
velocity_source: str = ""
36-
parameters: dict = field(default_factory=dict)
37+
parameters: dict = Field(default_factory=dict)

‎src/scloop/data/containers.py‎

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
# Copyright 2025 Zhiyuan Yu (Heemskerk's lab, University of Michigan)
22
from pydantic.dataclasses import dataclass
3+
from pydantic import ConfigDict
34
from .metadata import ScloopMeta
45
from .analysis_containers import BootstrapAnalysis, HodgeAnalysis
5-
from anndata import Anndata
6+
from anndata import AnnData
67
import numpy as np
78

89
'''
910
store core homology data and associated analysis data
1011
'''
11-
@dataclass
12+
@dataclass(config=ConfigDict(arbitrary_types_allowed=True))
1213
class HomologyData:
1314
meta: ScloopMeta
1415
persistence_diagram: np.ndarray | None = None
@@ -17,7 +18,7 @@ class HomologyData:
1718
bootstrap_data: BootstrapAnalysis | None = None
1819
hodge_data: HodgeAnalysis | None = None
1920

20-
def _compute_homology(self, adata: Anndata, thresh=None):
21+
def _compute_homology(self, adata: AnnData, thresh=None):
2122
pass
2223

2324
def _compute_boundary_matrix(self, thresh=None):

0 commit comments

Comments
 (0)