TypeError: expected str, bytes or os.PathLike object, not list
gboscagli opened this issue · 2 comments
Hi all,
first of all, I want to express my gratitude for the universe you built around single-cell data analysis.
I'm moving to SpatialData tool and immediately found a problem reproducing this tutorial. I tried to create the path using os, Pathlib or even a list: the issue still arises. I just downloaded the zarr store as indicated in the tutorial, I just changed the tutorial_data folder name because I already had another store named like that.
{
"name": "TypeError",
"message": "expected str, bytes or os.PathLike object, not list",
"stack": "---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
Cell In[13], line 4
2 cosmx_dir = os.path.join(os.path.abspath(os.curdir), \"tutorial_data_sd\", \"nanostring_data\", \"data.zarr\")
3 type(cosmx_dir)
----> 4 sdata = SpatialData.read(\"tutorial_data_sd/nanostring_data/data.zarr\")
File c:\\Users\\Gabriele\\AppData\\Local\\Programs\\Python\\Python39\\lib\\site-packages\\spatialdata\\_core\\spatialdata.py:1160, in SpatialData.read(file_path, selection)
1144 \"\"\"
1145 Read a SpatialData object from a Zarr storage (on-disk or remote).
1146
(...)
1156 The SpatialData object.
1157 \"\"\"
1158 from spatialdata import read_zarr
-> 1160 return read_zarr(file_path, selection=selection)
File c:\\Users\\Gabriele\\AppData\\Local\\Programs\\Python\\Python39\\lib\\site-packages\\spatialdata\\_io\\io_zarr.py:80, in read_zarr(store, selection)
78 f_elem = group[subgroup_name]
79 f_elem_store = os.path.join(f_store_path, f_elem.path)
---> 80 element = _read_multiscale(f_elem_store, raster_type=\"image\")
81 images[subgroup_name] = element
82 count += 1
File c:\\Users\\Gabriele\\AppData\\Local\\Programs\\Python\\Python39\\lib\\site-packages\\spatialdata\\_io\\io_raster.py:70, in _read_multiscale(store, raster_type, fmt)
68 encoded_ngff_transformations = multiscales[0][\"coordinateTransformations\"]
69 transformations = _get_transformations_from_ngff_dict(encoded_ngff_transformations)
---> 70 name = os.path.basename(node.metadata[\"name\"])
71 # if image, read channels metadata
72 channels: Optional[list[Any]] = None
File c:\\Users\\Gabriele\\AppData\\Local\\Programs\\Python\\Python39\\lib\
tpath.py:216, in basename(p)
214 def basename(p):
215 \"\"\"Returns the final component of a pathname\"\"\"
--> 216 return split(p)[1]
File c:\\Users\\Gabriele\\AppData\\Local\\Programs\\Python\\Python39\\lib\
tpath.py:185, in split(p)
180 def split(p):
181 \"\"\"Split a pathname.
182
183 Return tuple (head, tail) where tail is everything after the final slash.
184 Either part may be empty.\"\"\"
--> 185 p = os.fspath(p)
186 seps = _get_bothseps(p)
187 d, p = splitdrive(p)
TypeError: expected str, bytes or os.PathLike object, not list"
}
Now I managed to correctly open the zarr store. It seems it was a problem with /
character in Windows machine, as pinpointed in this issue inside spatialdata-io Github.
I'm closing this, thank you!
Thank you for the feedback and glad that you fixed the issue 😊 We will re-investigate the Windows machine support, tracking this in a new issue: scverse/spatialdata-notebooks#106.