Skip to content

Commit 21bd081

Browse files
Merge pull request #297 from scverse/fix/generic
Small fixes generic reader and cli
2 parents 4cf0f63 + f1d9cf3 commit 21bd081

File tree

3 files changed

+8
-4
lines changed

3 files changed

+8
-4
lines changed

src/spatialdata_io/__main__.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -621,8 +621,8 @@ def macsima_wrapper(
621621
@click.option("--name", "-n", type=str, help="name of the element to be stored")
622622
@click.option(
623623
"--data-axes",
624-
type=click.Choice(["cyx", "czyx"], case_sensitive=False),
625-
help="Axes of the data for image files. Valid values are 'cyx' and 'czyx'.",
624+
type=str,
625+
help="Axes of the data for image files. Valid values are permutations of 'cyx' and 'czyx'.",
626626
)
627627
@click.option(
628628
"--coordinate-system",
@@ -638,6 +638,8 @@ def read_generic_wrapper(
638638
coordinate_system: str | None = None,
639639
) -> None:
640640
"""Read generic data to SpatialData"""
641+
if data_axes is not None and "".join(sorted(data_axes)) not in ["cxy", "cxyz"]:
642+
raise ValueError("data_axes must be a permutation of 'cyx' or 'czyx'.")
641643
generic_to_zarr(input=input, output=output, name=name, data_axes=data_axes, coordinate_system=coordinate_system)
642644

643645

src/spatialdata_io/converters/generic_to_zarr.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,14 +69,14 @@ def generic_to_zarr(
6969
)
7070

7171
if output.exists():
72-
sdata = SpatialData.read_zarr(output)
72+
sdata = SpatialData.read(output)
7373
if name in sdata:
7474
raise ValueError(
7575
f"Name {name} already exists in {output}; please provide a different name or delete the "
7676
f"existing element."
7777
)
7878
sdata[name] = element
79-
sdata.write_element(name, element_name=name)
79+
sdata.write_element(element_name=name)
8080
print(f"Element {name} written to {output}")
8181
else:
8282
sdata = SpatialData.init_from_elements(elements={name: element})

src/spatialdata_io/readers/generic.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@ def generic(
4949
-------
5050
Parsed spatial element.
5151
"""
52+
if isinstance(input, str):
53+
input = Path(input)
5254
if coordinate_system is None:
5355
coordinate_system = DEFAULT_COORDINATE_SYSTEM
5456
if input.suffix in VALID_SHAPE_TYPES:

0 commit comments

Comments
 (0)