Skip to content
This repository was archived by the owner on Sep 4, 2024. It is now read-only.

Commit 5eac6a5

Browse files
author
Mr-Milk
committed
dummy cached_property for py3.7; adopt future typing
1 parent f9fd003 commit 5eac6a5

13 files changed

Lines changed: 65 additions & 52 deletions

File tree

spatialtis/abc.py

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1+
from __future__ import annotations
2+
13
import warnings
24
from ast import literal_eval
35
from collections import Counter
4-
from functools import cached_property
56
from time import time
67
from typing import Any, Dict, List, Optional, Union, Sequence
78

@@ -16,6 +17,16 @@
1617
from spatialtis.utils import df2adata_uns, doc, log_print, pretty_time, read_exp, read_shapes, default_args
1718

1819

20+
# cached_property is only for py3.8+
21+
# create a dummy one to be compatible with py3.7+
22+
# TODO: Remove after deprecation of py3.7
23+
try:
24+
from functools import cached_property
25+
except ImportError:
26+
def cached_property(obj):
27+
return obj
28+
29+
1930
class NeighborsNotFoundError(Exception):
2031
pass
2132

@@ -222,7 +233,7 @@ def _get_wkt_points(self, key):
222233
"try `spatialtis.transform_points`")
223234
return points
224235

225-
def get_centroids(self) -> Union[object, list[list[float, float]]]:
236+
def get_centroids(self) -> object | List:
226237
ckey = self.centroid_key
227238
# determine the type of centroid
228239
# by default, read 'spatial' from .obsm

spatialtis/preprocessing/read_10x.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
from __future__ import annotations
2+
13
import warnings
24
from pathlib import Path
35
from typing import List, Optional
@@ -8,8 +10,6 @@
810
from scipy.io import mmread
911
from scipy.sparse import csr_matrix
1012

11-
from spatialtis.typing import File
12-
1313

1414
def read_10x_h5(h5file):
1515
with h5py.File(h5file) as h:
@@ -68,7 +68,7 @@ def read_10x_spatial(stlist):
6868

6969

7070
def read_visium(
71-
paths: List[File],
71+
paths: List[str | Path],
7272
read_filtered: bool = True, # "filtered" or "raw"
7373
annotations: Optional[pd.DataFrame] = None,
7474
) -> AnnData:

spatialtis/preprocessing/read_images.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
from __future__ import annotations
2+
13
import warnings
24
from pathlib import Path
35
from typing import List, Optional
@@ -8,12 +10,11 @@
810
from scipy.sparse import csr_matrix
911
from spatialtis_core import dumps_points_wkt, dumps_polygons_wkt, points_shapes
1012

11-
from spatialtis.typing import File
1213
from spatialtis.utils import options_guard
1314

1415

15-
def stacked_channels(c_imgs: List[File],
16-
export: File = "stacked.tiff"
16+
def stacked_channels(c_imgs: List[str | Path],
17+
export: str | Path = "stacked.tiff"
1718
):
1819
"""
1920
A helper functions to stack single channel images to multi-channels
@@ -85,8 +86,8 @@ def check_exists(files):
8586

8687

8788
def read_images(
88-
images: List[File],
89-
masks: List[File],
89+
images: List[str | Path],
90+
masks: List[str | Path],
9091
markers: Optional[pd.DataFrame] = None,
9192
annotations: Optional[pd.DataFrame] = None,
9293
image_axes: str = "cyx",

spatialtis/spatial/autocorr.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ def spatial_autocorr(
1515
method: str = "moran_i",
1616
pval: float = 0.05,
1717
two_tailed: bool = True,
18-
layer_key: Optional[str] = None,
18+
layer_key: str = None,
1919
export_key: str = "spatial_autocorr",
2020
**kwargs,
2121
):

spatialtis/spatial/co_expression.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
from spatialtis_core import fast_corr
99

1010
from spatialtis.abc import AnalysisBase, neighbors_pairs
11-
from spatialtis.typing import Number
1211
from spatialtis.utils import doc, pbar_iter, options_guard
1312
from spatialtis.utils.io import read_exp
1413

@@ -19,9 +18,9 @@
1918
def spatial_coexp(data: AnnData,
2019
method: str = "spearman",
2120
use_cell_type: bool = False,
22-
selected_markers: Optional[List[str]] = None,
23-
layer_key: Optional[str] = None,
24-
corr_thresh: Optional[Number] = 0.5,
21+
selected_markers: List[str] = None,
22+
layer_key: str = None,
23+
corr_thresh: float = 0.5,
2524
export_key: str = "spatial_coexp",
2625
**kwargs, ):
2726
"""Identifying spatial co-expression markers using correlation

spatialtis/spatial/distribution.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
1-
from typing import Optional
1+
from typing import Optional, Tuple
22

33
import pandas as pd
44
from anndata import AnnData
55
from spatialtis_core import points_bbox, spatial_distribution_pattern
66

77
from spatialtis.abc import AnalysisBase
8-
from spatialtis.typing import Number, Tuple
98
from spatialtis.utils import doc, options_guard
109

1110

@@ -15,10 +14,10 @@ def cell_dispersion(
1514
method: str = "id",
1615
min_cells: int = 10,
1716
pval: float = 0.01,
18-
r: Optional[Number] = None,
17+
r: float = None,
1918
resample: int = 1000,
20-
quad: Optional[Tuple[int, int]] = None,
21-
rect_size: Optional[Number] = None,
19+
quad: Tuple[int, int] = None,
20+
rect_size: float = None,
2221
export_key: str = "cell_dispersion",
2322
**kwargs,
2423
):

spatialtis/spatial/enrichment.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,22 @@
1+
from __future__ import annotations
2+
13
import warnings
2-
from typing import Optional
4+
from typing import Optional, List
35

46
import numpy as np
57
import pandas as pd
68
from anndata import AnnData
79
from spatialtis_core import comb_bootstrap
810

911
from spatialtis.abc import AnalysisBase
10-
from spatialtis.typing import Array
1112
from spatialtis.utils import doc
1213

1314

1415
@doc
1516
def spatial_enrichment(data: AnnData,
16-
threshold: Optional[float] = None,
17-
layer_key: Optional[str] = None,
18-
selected_markers: Optional[Array] = None,
17+
threshold: float = None,
18+
layer_key: str = None,
19+
selected_markers: List[str] | np.ndarray = None,
1920
resample: int = 500,
2021
pval: float = 0.01,
2122
export_key: str = "spatial_enrichment",

spatialtis/spatial/heterogeneity.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import warnings
2-
from typing import Optional
32

43
import pandas as pd
54
from anndata import AnnData
@@ -13,7 +12,7 @@
1312
@doc
1413
def spatial_heterogeneity(data: AnnData,
1514
method: str = "leibovici",
16-
d: Optional[int] = None,
15+
d: int = None,
1716
cut: int = 3,
1817
export_key: str = "heterogeneity",
1918
**kwargs, ):

spatialtis/spatial/hotspot.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,19 @@
1-
from typing import Optional, Tuple
1+
from __future__ import annotations
22

3+
from typing import Optional, Tuple, List
4+
5+
import numpy as np
36
import pandas as pd
47
from anndata import AnnData
58
from spatialtis_core import getis_ord, points_bbox
69

710
from spatialtis.abc import AnalysisBase
8-
from spatialtis.typing import Array
911
from spatialtis.utils import col2adata, doc
1012

1113

1214
@doc
1315
def hotspot(data: AnnData,
14-
selected_types: Optional[Array] = None,
16+
selected_types: List[str] | np.ndarray = None,
1517
search_level: int = 3,
1618
quad: Optional[Tuple[int, int]] = None,
1719
rect_side: Optional[Tuple[float, float]] = None,

spatialtis/spatial/ncd_markers.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1+
from __future__ import annotations
2+
13
from ast import literal_eval
2-
from typing import Dict, Optional
4+
from typing import Dict, Optional, List
35

46
import numpy as np
57
import pandas as pd
@@ -9,18 +11,17 @@
911
from spatialtis_core import neighbor_components
1012

1113
from spatialtis.abc import AnalysisBase
12-
from spatialtis.typing import Number, Array
1314
from spatialtis.utils import doc, read_exp
1415

1516

1617
@doc
1718
def NCD_marker(data: AnnData,
18-
selected_markers: Optional[Array] = None,
19-
importance_cutoff: Number = 0.5,
20-
layer_key: Optional[str] = None,
21-
tree_kwargs: Optional[Dict] = None,
19+
selected_markers: List[str] | np.ndarray = None,
20+
importance_cutoff: float = 0.5,
21+
layer_key: str = None,
22+
tree_kwargs: Dict = None,
2223
test_method: str = "mannwhitneyu",
23-
pval: Number = 0.01,
24+
pval: float = 0.01,
2425
export_key: str = "ncd_marker",
2526
**kwargs, ):
2627
"""Identify neighbor cells dependent marker

0 commit comments

Comments
 (0)