-
Notifications
You must be signed in to change notification settings - Fork 33
Open
Description
with exception tracebacks for every file
❯ datalad clone https://github.com/dandisets/000029
[INFO ] Remote origin not usable by git-annex; setting annex-ignore
[INFO ] https://github.com/dandisets/000029/config download failed: Not Found
[INFO ] access to 2 dataset siblings dandi-dandisets-dropbox, dandiapi not auto-enabled, enable with:
| datalad siblings -d "/tmp/000029" enable -s SIBLING
install(ok): /tmp/000029 (dataset)
❯ dandi validate 000029
[pynwb.GENERIC] /tmp/000029/sub-monk-g/sub-monk-g.nwb — [Errno 2] Unable to synchronously open file (unable to open file: name = '/tmp/000029/sub-monk-g/sub-monk-g.nwb', errno = 2, error message = 'No such file or directory', flags = 0, o_flags = 0)
[NWBI.During io.read() - <class 'ValueError'>: Unable to automatically determine method. Path /tmp/000029/sub-monk-g/sub-monk-g.nwb does not appear to be a URL and is not a file on the local filesystem.] /tmp/000029/sub-monk-g/sub-monk-g.nwb — Traceback (most recent call last):
File "/home/yoh/proj/dandi/dandi-cli-master/venv/dev3/lib/python3.13/site-packages/nwbinspector/_nwb_inspection.py", line 277, in inspect_nwbfile
in_memory_nwbfile = read_nwbfile(nwbfile_path=nwbfile_path)
File "/home/yoh/proj/dandi/dandi-cli-master/venv/dev3/lib/python3.13/site-packages/nwbinspector/tools/_read_nwbfile.py", line 95, in read_nwbfile
nwbfile, _ = _read_nwbfile_helper(nwbfile_path=nwbfile_path, method=method, backend=backend)
~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/yoh/proj/dandi/dandi-cli-master/venv/dev3/lib/python3.13/site-packages/nwbinspector/tools/_read_nwbfile.py", line 143, in _read_nwbfile_helper
method = method or _get_method(nwbfile_path)
~~~~~~~~~~~^^^^^^^^^^^^^^
File "/home/yoh/proj/dandi/dandi-cli-master/venv/dev3/lib/python3.13/site-packages/nwbinspector/tools/_read_nwbfile.py", line 28, in _get_method
raise ValueError(message)
ValueError: Unable to automatically determine method. Path /tmp/000029/sub-monk-g/sub-monk-g.nwb does not appear to be a URL and is not a file on the local filesystem.
[pynwb.GENERIC] /tmp/000029/sub-anm369964/sub-anm369964_behavior+ecephys.nwb — [Errno 2] Unable to synchronously open file (unable to open file: name = '/tmp/000029/sub-anm369964/sub-anm369964_behavior+ecephys.nwb', errno = 2, error message = 'No such file or directory', flags = 0, o_flags = 0)
[NWBI.During io.read() - <class 'ValueError'>: Unable to automatically determine method. Path /tmp/000029/sub-anm369964/sub-anm369964_behavior+ecephys.nwb does not appear to be a URL and is not a file on the local filesystem.] /tmp/000029/sub-anm369964/sub-anm369964_behavior+ecephys.nwb — Traceback (most recent call last):
File "/home/yoh/proj/dandi/dandi-cli-master/venv/dev3/lib/python3.13/site-packages/nwbinspector/_nwb_inspection.py", line 277, in inspect_nwbfile
in_memory_nwbfile = read_nwbfile(nwbfile_path=nwbfile_path)
File "/home/yoh/proj/dandi/dandi-cli-master/venv/dev3/lib/python3.13/site-packages/nwbinspector/tools/_read_nwbfile.py", line 95, in read_nwbfile
nwbfile, _ = _read_nwbfile_helper(nwbfile_path=nwbfile_path, method=method, backend=backend)
~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/yoh/proj/dandi/dandi-cli-master/venv/dev3/lib/python3.13/site-packages/nwbinspector/tools/_read_nwbfile.py", line 143, in _read_nwbfile_helper
method = method or _get_method(nwbfile_path)
~~~~~~~~~~~^^^^^^^^^^^^^^
File "/home/yoh/proj/dandi/dandi-cli-master/venv/dev3/lib/python3.13/site-packages/nwbinspector/tools/_read_nwbfile.py", line 28, in _get_method
raise ValueError(message)
ValueError: Unable to automatically determine method. Path /tmp/000029/sub-anm369964/sub-anm369964_behavior+ecephys.nwb does not appear to be a URL and is not a file on the local filesystem.
[pynwb.GENERIC] /tmp/000029/sub-anm369963/sub-anm369963_behavior+ecephys.nwb — [Errno 2] Unable to synchronously open file (unable to open file: name = '/tmp/000029/sub-anm369963/sub-anm369963_behavior+ecephys.nwb', errno = 2, error message = 'No such file or directory', flags = 0, o_flags = 0)
[NWBI.During io.read() - <class 'ValueError'>: Unable to automatically determine method. Path /tmp/000029/sub-anm369963/sub-anm369963_behavior+ecephys.nwb does not appear to be a URL and is not a file on the local filesystem.] /tmp/000029/sub-anm369963/sub-anm369963_behavior+ecephys.nwb — Traceback (most recent call last):
File "/home/yoh/proj/dandi/dandi-cli-master/venv/dev3/lib/python3.13/site-packages/nwbinspector/_nwb_inspection.py", line 277, in inspect_nwbfile
in_memory_nwbfile = read_nwbfile(nwbfile_path=nwbfile_path)
File "/home/yoh/proj/dandi/dandi-cli-master/venv/dev3/lib/python3.13/site-packages/nwbinspector/tools/_read_nwbfile.py", line 95, in read_nwbfile
nwbfile, _ = _read_nwbfile_helper(nwbfile_path=nwbfile_path, method=method, backend=backend)
~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/yoh/proj/dandi/dandi-cli-master/venv/dev3/lib/python3.13/site-packages/nwbinspector/tools/_read_nwbfile.py", line 143, in _read_nwbfile_helper
method = method or _get_method(nwbfile_path)
~~~~~~~~~~~^^^^^^^^^^^^^^
File "/home/yoh/proj/dandi/dandi-cli-master/venv/dev3/lib/python3.13/site-packages/nwbinspector/tools/_read_nwbfile.py", line 28, in _get_method
raise ValueError(message)
ValueError: Unable to automatically determine method. Path /tmp/000029/sub-anm369963/sub-anm369963_behavior+ecephys.nwb does not appear to be a URL and is not a file on the local filesystem.
[pynwb.GENERIC] /tmp/000029/sub-anm369962/sub-anm369962_behavior+ecephys.nwb — [Errno 2] Unable to synchronously open file (unable to open file: name = '/tmp/000029/sub-anm369962/sub-anm369962_behavior+ecephys.nwb', errno = 2, error message = 'No such file or directory', flags = 0, o_flags = 0)
[NWBI.During io.read() - <class 'ValueError'>: Unable to automatically determine method. Path /tmp/000029/sub-anm369962/sub-anm369962_behavior+ecephys.nwb does not appear to be a URL and is not a file on the local filesystem.] /tmp/000029/sub-anm369962/sub-anm369962_behavior+ecephys.nwb — Traceback (most recent call last):
File "/home/yoh/proj/dandi/dandi-cli-master/venv/dev3/lib/python3.13/site-packages/nwbinspector/_nwb_inspection.py", line 277, in inspect_nwbfile
in_memory_nwbfile = read_nwbfile(nwbfile_path=nwbfile_path)
File "/home/yoh/proj/dandi/dandi-cli-master/venv/dev3/lib/python3.13/site-packages/nwbinspector/tools/_read_nwbfile.py", line 95, in read_nwbfile
nwbfile, _ = _read_nwbfile_helper(nwbfile_path=nwbfile_path, method=method, backend=backend)
~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/yoh/proj/dandi/dandi-cli-master/venv/dev3/lib/python3.13/site-packages/nwbinspector/tools/_read_nwbfile.py", line 143, in _read_nwbfile_helper
method = method or _get_method(nwbfile_path)
~~~~~~~~~~~^^^^^^^^^^^^^^
File "/home/yoh/proj/dandi/dandi-cli-master/venv/dev3/lib/python3.13/site-packages/nwbinspector/tools/_read_nwbfile.py", line 28, in _get_method
raise ValueError(message)
ValueError: Unable to automatically determine method. Path /tmp/000029/sub-anm369962/sub-anm369962_behavior+ecephys.nwb does not appear to be a URL and is not a file on the local filesystem.
[pynwb.GENERIC] /tmp/000029/sub-RAT123/sub-RAT123.nwb — [Errno 2] Unable to synchronously open file (unable to open file: name = '/tmp/000029/sub-RAT123/sub-RAT123.nwb', errno = 2, error message = 'No such file or directory', flags = 0, o_flags = 0)
[NWBI.During io.read() - <class 'ValueError'>: Unable to automatically determine method. Path /tmp/000029/sub-RAT123/sub-RAT123.nwb does not appear to be a URL and is not a file on the local filesystem.] /tmp/000029/sub-RAT123/sub-RAT123.nwb — Traceback (most recent call last):
File "/home/yoh/proj/dandi/dandi-cli-master/venv/dev3/lib/python3.13/site-packages/nwbinspector/_nwb_inspection.py", line 277, in inspect_nwbfile
in_memory_nwbfile = read_nwbfile(nwbfile_path=nwbfile_path)
File "/home/yoh/proj/dandi/dandi-cli-master/venv/dev3/lib/python3.13/site-packages/nwbinspector/tools/_read_nwbfile.py", line 95, in read_nwbfile
nwbfile, _ = _read_nwbfile_helper(nwbfile_path=nwbfile_path, method=method, backend=backend)
~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/yoh/proj/dandi/dandi-cli-master/venv/dev3/lib/python3.13/site-packages/nwbinspector/tools/_read_nwbfile.py", line 143, in _read_nwbfile_helper
method = method or _get_method(nwbfile_path)
~~~~~~~~~~~^^^^^^^^^^^^^^
File "/home/yoh/proj/dandi/dandi-cli-master/venv/dev3/lib/python3.13/site-packages/nwbinspector/tools/_read_nwbfile.py", line 28, in _get_method
raise ValueError(message)
ValueError: Unable to automatically determine method. Path /tmp/000029/sub-RAT123/sub-RAT123.nwb does not appear to be a URL and is not a file on the local filesystem.
2025-04-04 10:47:01,176 [ INFO] Logs saved in /home/yoh/.local/state/dandi-cli/log/2025.04.04-14.47.00Z-548118.log
I think we should embed knowledge that specific validators need content to get files validated. But some might be "mixed" and have no option to validate e.g. only filename without content (like bids-validator has --ignoreNiftiHeaders). So I think we need to
- add
--missing-file-content error,only-non-data,skipoption so we would error (not as verbose) by default for validation of those, withonly-non-datawe would instruct validators (or skip if we know that it only cares about data, like nwb.validate) to check only non-data components, like paths (e.g. by providing--ignoreNiftiHeaderstobids-validator),skip-- skipping that file entirely if no content.- may be control should be configurable per validator... not sure though yet if worthwhile -- we could add some handling for comma-separated list later on
- if any validation was skipped due to use of
only-non-data,skipand encountering broken symlink -- we need to add into validation a WARNING record on that file that it was skipped for that reason (at the end summarization should just state that there were X warnings of those kinds)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels