Skip to content

ValueError: Protocol not known: 'bids' raised inside pybids/upath when running bids2openminds with a local path #91

@Peyman-N

Description

@Peyman-N

Description
Running bids2openminds on a local BIDS dataset path fails during BIDSLayout initialization due to a protocol mismatch inside upath/fsspec. Although I pass a plain POSIX path, the code later tries to join with a path whose protocol is detected as 'bids', and raises:

ValueError: Protocol not known: 'bids'

P.S.
This behavior did not occur in earlier versions of the stack; it seems to be introduced after updating one or more dependencies (pybids, upath, or fsspec).

Command
bids2openminds '/home/pnajafi/Desktop/data/bids-examples/7t_trt'

Full Traceback

Traceback (most recent call last):
  File "/home/pnajafi/Python_env/bids2openminds/lib/python3.12/site-packages/upath/_protocol.py", line 50, in _fsspec_protocol_equals
    o0 = _fsspec_registry_map[p0]
         ~~~~~~~~~~~~~~~~~~~~^^^^
  File "/usr/local/lib/python3.12/collections/__init__.py", line 1015, in __getitem__
    return self.__missing__(key)            # support subclasses that define __missing__
           ^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/collections/__init__.py", line 1007, in __missing__
    raise KeyError(key)
KeyError: 'bids'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/pnajafi/Python_env/bids2openminds/bin/bids2openminds", line 8, in <module>
    sys.exit(convert_click())
             ^^^^^^^^^^^^^^^
  File "/home/pnajafi/Python_env/bids2openminds/lib/python3.12/site-packages/click/core.py", line 1462, in __call__
    return self.main(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/pnajafi/Python_env/bids2openminds/lib/python3.12/site-packages/click/core.py", line 1383, in main
    rv = self.invoke(ctx)
         ^^^^^^^^^^^^^^^^
  File "/home/pnajafi/Python_env/bids2openminds/lib/python3.12/site-packages/click/core.py", line 1246, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/pnajafi/Python_env/bids2openminds/lib/python3.12/site-packages/click/core.py", line 814, in invoke
    return callback(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/pnajafi/Python_env/bids2openminds/lib/python3.12/site-packages/bids2openminds/converter.py", line 81, in convert_click
    convert(input_path, save_output=True, output_path=output_path,
  File "/home/pnajafi/Python_env/bids2openminds/lib/python3.12/site-packages/bids2openminds/converter.py", line 24, in convert
    bids_layout = BIDSLayout(input_path)
                  ^^^^^^^^^^^^^^^^^^^^^^
  File "/home/pnajafi/Python_env/bids2openminds/lib/python3.12/site-packages/bids/layout/layout.py", line 177, in __init__
    _indexer(self)
  File "/home/pnajafi/Python_env/bids2openminds/lib/python3.12/site-packages/bids/layout/index.py", line 160, in __call__
    self._index_metadata()
  File "/home/pnajafi/Python_env/bids2openminds/lib/python3.12/site-packages/bids/layout/index.py", line 474, in _index_metadata
    target = self._layout._root.joinpath(
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/pnajafi/Python_env/bids2openminds/lib/python3.12/site-packages/upath/implementations/local.py", line 228, in joinpath
    if not compatible_protocol("", *other):
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/pnajafi/Python_env/bids2openminds/lib/python3.12/site-packages/upath/_protocol.py", line 127, in compatible_protocol
    if other_protocol and not _fsspec_protocol_equals(other_protocol, protocol):
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/pnajafi/Python_env/bids2openminds/lib/python3.12/site-packages/upath/_protocol.py", line 52, in _fsspec_protocol_equals
    raise ValueError(f"Protocol not known: {p0!r}")
ValueError: Protocol not known: 'bids'

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions