-
Notifications
You must be signed in to change notification settings - Fork 56
Closed
Labels
bugSomething isn't workingSomething isn't working
Milestone
Description
Hi!
I really like your package and would like to use it for my research including WRF output data. Generally, these come without suffixes and the filenames contain colons. I found a recent issue on file suffixes (#582), but nothing on colons in filepaths. Unfortunately, this seems to be an issue, too. Here my findings after adding a '.nc' to a filename:
from virtualizarr import open_virtual_dataset
open_virtual_dataset('wrfout_d01_2024-01-02_01:00:00.nc')
Error:
---------------------------------------------------------------------------
FileNotFoundError Traceback (most recent call last)
Cell In[11], line 2
1 from virtualizarr import open_virtual_dataset
----> 2 open_virtual_dataset('wrfout_d01_2024-01-02_01:00:00')
File ~/.conda/envs/env_virtualizarr/lib/python3.12/site-packages/virtualizarr/backend.py:199, in open_virtual_dataset(filepath, filetype, group, drop_variables, loadable_variables, decode_times, cftime_variables, indexes, virtual_array_class, virtual_backend_kwargs, reader_options, backend)
196 if backend_cls is None:
197 raise NotImplementedError(f"Unsupported file type: {filetype.name}")
--> 199 vds = backend_cls.open_virtual_dataset(
200 filepath,
201 group=group,
202 drop_variables=drop_variables,
203 loadable_variables=loadable_variables,
204 decode_times=decode_times,
205 indexes=indexes,
206 virtual_backend_kwargs=virtual_backend_kwargs,
207 reader_options=reader_options,
208 )
210 return vds
File ~/.conda/envs/env_virtualizarr/lib/python3.12/site-packages/virtualizarr/readers/hdf/hdf.py:86, in HDFVirtualBackend.open_virtual_dataset(filepath, group, drop_variables, loadable_variables, decode_times, indexes, virtual_backend_kwargs, reader_options)
77 drop_variables, loadable_variables = check_for_collisions(
78 drop_variables,
79 loadable_variables,
80 )
82 filepath = validate_and_normalize_path_to_uri(
83 filepath, fs_root=Path.cwd().as_uri()
84 )
---> 86 virtual_vars = HDFVirtualBackend._virtual_vars_from_hdf(
87 path=filepath,
88 group=group,
89 drop_variables=drop_variables + loadable_variables,
90 reader_options=reader_options,
91 )
93 loadable_vars, indexes = maybe_open_loadable_vars_and_indexes(
94 filepath,
95 loadable_variables=loadable_variables,
(...) 100 decode_times=decode_times,
101 )
103 attrs = HDFVirtualBackend._get_group_attrs(
104 path=filepath, reader_options=reader_options, group=group
105 )
File ~/.conda/envs/env_virtualizarr/lib/python3.12/site-packages/virtualizarr/readers/hdf/hdf.py:399, in HDFVirtualBackend._virtual_vars_from_hdf(path, group, drop_variables, reader_options)
394 if drop_variables is None:
395 drop_variables = []
397 open_file = _FsspecFSFromFilepath(
398 filepath=path, reader_options=reader_options
--> 399 ).open_file()
400 f = h5py.File(open_file, mode="r")
402 if group is not None and group != "":
File ~/.conda/envs/env_virtualizarr/lib/python3.12/site-packages/virtualizarr/utils.py:47, in _FsspecFSFromFilepath.open_file(self)
39 def open_file(self) -> OpenFileType:
40 """Calls `.open` on fsspec.Filesystem instantiation using self.filepath as an input.
41
42 Returns
(...) 45 file opened with fsspec
46 """
---> 47 return self.fs.open(self.filepath)
File ~/.conda/envs/env_virtualizarr/lib/python3.12/site-packages/fsspec/spec.py:1310, in AbstractFileSystem.open(self, path, mode, block_size, cache_options, compression, **kwargs)
1308 else:
1309 ac = kwargs.pop("autocommit", not self._intrans)
-> 1310 f = self._open(
1311 path,
1312 mode=mode,
1313 block_size=block_size,
1314 autocommit=ac,
1315 cache_options=cache_options,
1316 **kwargs,
1317 )
1318 if compression is not None:
1319 from fsspec.compression import compr
File ~/.conda/envs/env_virtualizarr/lib/python3.12/site-packages/fsspec/implementations/local.py:201, in LocalFileSystem._open(self, path, mode, block_size, **kwargs)
199 if self.auto_mkdir and "w" in mode:
200 self.makedirs(self._parent(path), exist_ok=True)
--> 201 return LocalFileOpener(path, mode, fs=self, **kwargs)
File ~/.conda/envs/env_virtualizarr/lib/python3.12/site-packages/fsspec/implementations/local.py:365, in LocalFileOpener.__init__(self, path, mode, autocommit, fs, compression, **kwargs)
363 self.compression = get_compression(path, compression)
364 self.blocksize = io.DEFAULT_BUFFER_SIZE
--> 365 self._open()
File ~/.conda/envs/env_virtualizarr/lib/python3.12/site-packages/fsspec/implementations/local.py:370, in LocalFileOpener._open(self)
368 if self.f is None or self.f.closed:
369 if self.autocommit or "w" not in self.mode:
--> 370 self.f = open(self.path, mode=self.mode)
371 if self.compression:
372 compress = compr[self.compression]
FileNotFoundError: [Errno 2] No such file or directory: 'wrfout_d01_2024-01-02_01%3A00%3A00.nc'
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working