Skip to content

Commit 3dc01c9

Browse files
committed
use .v attributes for accessing keys for python3.10 compat
1 parent d5d33d6 commit 3dc01c9

File tree

2 files changed

+36
-35
lines changed

2 files changed

+36
-35
lines changed

src/spatialdata_io/_constants/_constants.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -402,6 +402,7 @@ class VisiumHDKeys(ModeEnum):
402402

403403

404404
class G4XKeys(ModeEnum):
405+
"""Keys for G4X formatted dataset."""
405406

406407
# H&E
407408
HE_DIR = "h_and_e"

src/spatialdata_io/readers/g4x.py

Lines changed: 35 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -216,8 +216,8 @@ def g4x_sample(
216216
pbar.set_description(steps[pbar.n])
217217
_write_he(
218218
sdata,
219-
he_dir=input_path / G4XKeys.HE_DIR,
220-
pattern=G4XKeys.HE_PATTERN,
219+
he_dir=input_path / G4XKeys.HE_DIR.v,
220+
pattern=G4XKeys.HE_PATTERN.v,
221221
mode=mode,
222222
)
223223
pbar.update(1)
@@ -226,10 +226,10 @@ def g4x_sample(
226226
pbar.set_description(steps[pbar.n])
227227
_write_segmentation(
228228
sdata,
229-
nuclei_dir=input_path / G4XKeys.SEGMENTATION_DIR,
230-
pattern=G4XKeys.SEGMENTATION_PATTERN,
231-
nuclei_key=G4XKeys.NUCLEI_BOUNDARIES_KEY,
232-
nuclei_exp_key=G4XKeys.CELL_BOUNDARIES_KEY,
229+
nuclei_dir=input_path / G4XKeys.SEGMENTATION_DIR.v,
230+
pattern=G4XKeys.SEGMENTATION_PATTERN.v,
231+
nuclei_key=G4XKeys.NUCLEI_BOUNDARIES_KEY.v,
232+
nuclei_exp_key=G4XKeys.CELL_BOUNDARIES_KEY.v,
233233
mode=mode,
234234
)
235235
pbar.update(1)
@@ -238,8 +238,8 @@ def g4x_sample(
238238
pbar.set_description(steps[pbar.n])
239239
_write_protein_images(
240240
sdata,
241-
protein_dir=input_path / G4XKeys.PROTEIN_DIR,
242-
pattern=G4XKeys.PROTEIN_PATTERN,
241+
protein_dir=input_path / G4XKeys.PROTEIN_DIR.v,
242+
pattern=G4XKeys.PROTEIN_PATTERN.v,
243243
mode=mode,
244244
)
245245
pbar.update(1)
@@ -248,14 +248,14 @@ def g4x_sample(
248248
pbar.set_description(steps[pbar.n])
249249
_write_transcripts(
250250
sdata,
251-
transcripts_dir=input_path / G4XKeys.TRANSCRIPTS_DIR,
252-
pattern=G4XKeys.TRANSCRIPTS_PATTERN,
251+
transcripts_dir=input_path / G4XKeys.TRANSCRIPTS_DIR.v,
252+
pattern=G4XKeys.TRANSCRIPTS_PATTERN.v,
253253
coordinates={
254-
"x": G4XKeys.TRANSCRIPTS_COORD_X,
255-
"y": G4XKeys.TRANSCRIPTS_COORD_Y,
254+
"x": G4XKeys.TRANSCRIPTS_COORD_X.v,
255+
"y": G4XKeys.TRANSCRIPTS_COORD_Y.v,
256256
},
257-
feature_key=G4XKeys.TRANSCRIPTS_FEATURE_KEY,
258-
swap_xy=G4XKeys.TRANSCRIPTS_SWAP_XY == "True",
257+
feature_key=G4XKeys.TRANSCRIPTS_FEATURE_KEY.v,
258+
swap_xy=G4XKeys.TRANSCRIPTS_SWAP_XY.v == "True",
259259
mode=mode,
260260
)
261261
pbar.update(1)
@@ -264,7 +264,7 @@ def g4x_sample(
264264
pbar.set_description(steps[pbar.n])
265265
_write_table(
266266
sdata,
267-
table_path=input_path / G4XKeys.TABLES_DIR / G4XKeys.TABLE_PATTERN,
267+
table_path=input_path / G4XKeys.TABLES_DIR.v / G4XKeys.TABLE_PATTERN.v,
268268
mode=mode,
269269
)
270270
pbar.update(1)
@@ -457,7 +457,7 @@ def _write_segmentation(
457457

458458
# Convert labels to polygons using "label" as index and translating xy coordinates to (almost) match label pixel coordinates
459459
logger.debug("Converting to polygons")
460-
offset = float(G4XKeys.OFFSET)
460+
offset = float(G4XKeys.OFFSET.v)
461461

462462
# Nuclei shapes
463463
sdata[shapes_nuclei_key] = to_polygons(sdata[nuclei_key]).set_index("label")
@@ -528,9 +528,9 @@ def _write_protein_images(
528528
return
529529
elif mode == "overwrite":
530530
logger.debug("Deleting existing protein images")
531-
if G4XKeys.PROTEIN_KEY in sdata:
532-
del sdata[G4XKeys.PROTEIN_KEY]
533-
sdata.delete_element_from_disk(G4XKeys.PROTEIN_KEY)
531+
if G4XKeys.PROTEIN_KEY.v in sdata:
532+
del sdata[G4XKeys.PROTEIN_KEY.v]
533+
sdata.delete_element_from_disk(G4XKeys.PROTEIN_KEY.v)
534534
img_list.sort()
535535

536536
# Get channel names from filenames
@@ -553,12 +553,12 @@ def _write_protein_images(
553553

554554
# Create Image2DModel and write
555555
logger.debug("Converting to Image2DModel")
556-
sdata[G4XKeys.PROTEIN_KEY] = Image2DModel.parse(
556+
sdata[G4XKeys.PROTEIN_KEY.v] = Image2DModel.parse(
557557
protein_stack, c_coords=channel_names, **kwargs
558558
)
559559

560560
logger.debug("Writing protein images")
561-
sdata.write_element(G4XKeys.PROTEIN_KEY)
561+
sdata.write_element(G4XKeys.PROTEIN_KEY.v)
562562

563563

564564
def _write_transcripts(
@@ -601,15 +601,15 @@ def _write_transcripts(
601601
logger.debug("Transcripts skipped...")
602602
return
603603

604-
if f"points/{G4XKeys.TRANSCRIPTS_KEY}" in sdata.elements_paths_on_disk():
604+
if f"points/{G4XKeys.TRANSCRIPTS_KEY.v}" in sdata.elements_paths_on_disk():
605605
if mode == "append":
606606
logger.debug("Transcripts already exist. Skipping...")
607607
return
608608
elif mode == "overwrite":
609609
logger.debug("Deleting existing transcripts")
610-
if G4XKeys.TRANSCRIPTS_KEY in sdata:
611-
del sdata[G4XKeys.TRANSCRIPTS_KEY]
612-
sdata.delete_element_from_disk(G4XKeys.TRANSCRIPTS_KEY)
610+
if G4XKeys.TRANSCRIPTS_KEY.v in sdata:
611+
del sdata[G4XKeys.TRANSCRIPTS_KEY.v]
612+
sdata.delete_element_from_disk(G4XKeys.TRANSCRIPTS_KEY.v)
613613

614614
transcript_dir = Path(transcripts_dir)
615615
with tqdm(total=3, desc="Processing transcripts", leave=False) as pbar:
@@ -633,15 +633,15 @@ def _write_transcripts(
633633
]
634634

635635
pbar.set_description("Converting to PointsModel")
636-
sdata[G4XKeys.TRANSCRIPTS_KEY] = PointsModel.parse(
636+
sdata[G4XKeys.TRANSCRIPTS_KEY.v] = PointsModel.parse(
637637
transcripts,
638638
coordinates=coordinates,
639639
feature_key=feature_key,
640640
)
641641
pbar.update(1)
642642

643643
pbar.set_description("Writing to disk")
644-
sdata.write_element(G4XKeys.TRANSCRIPTS_KEY)
644+
sdata.write_element(G4XKeys.TRANSCRIPTS_KEY.v)
645645
pbar.update(1)
646646

647647

@@ -674,32 +674,32 @@ def _write_table(
674674
logger.debug("Table skipped...")
675675
return
676676

677-
if f"tables/{G4XKeys.TABLE_KEY}" in sdata.elements_paths_on_disk():
677+
if f"tables/{G4XKeys.TABLE_KEY.v}" in sdata.elements_paths_on_disk():
678678
if mode == "append":
679679
logger.debug("Table already exists. Skipping...")
680680
return
681681
elif mode == "overwrite":
682682
logger.debug("Deleting existing table")
683-
if G4XKeys.TABLE_KEY in sdata:
684-
del sdata[G4XKeys.TABLE_KEY]
685-
sdata.delete_element_from_disk(G4XKeys.TABLE_KEY)
683+
if G4XKeys.TABLE_KEY.v in sdata:
684+
del sdata[G4XKeys.TABLE_KEY.v]
685+
sdata.delete_element_from_disk(G4XKeys.TABLE_KEY.v)
686686

687687
adata = read_h5ad(table_path)
688688

689689
# Link table annotations to cell shapes
690-
shape_key = f"{G4XKeys.CELL_BOUNDARIES_KEY}_shapes"
690+
shape_key = f"{G4XKeys.CELL_BOUNDARIES_KEY.v}_shapes"
691691
adata.obs["region"] = shape_key
692692
adata.obs["label"] = adata.obs["cell_id"].str.split("-").str[1]
693-
sdata[G4XKeys.TABLE_KEY] = TableModel.parse(adata)
693+
sdata[G4XKeys.TABLE_KEY.v] = TableModel.parse(adata)
694694
sdata.set_table_annotates_spatialelement(
695-
G4XKeys.TABLE_KEY,
695+
G4XKeys.TABLE_KEY.v,
696696
region=shape_key,
697697
region_key="region",
698698
instance_key="label",
699699
)
700700

701701
logger.debug("Writing table to disk")
702-
sdata.write_element(G4XKeys.TABLE_KEY)
702+
sdata.write_element(G4XKeys.TABLE_KEY.v)
703703

704704

705705
def _deep_update(base_dict, update_dict):

0 commit comments

Comments
 (0)