Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug]: File generated with MATNWB 2.4.0 issue #1969

Open
3 tasks done
SPMMER opened this issue Oct 8, 2024 · 3 comments
Open
3 tasks done

[Bug]: File generated with MATNWB 2.4.0 issue #1969

SPMMER opened this issue Oct 8, 2024 · 3 comments
Assignees
Labels
category: bug errors in the code or code behavior

Comments

@SPMMER
Copy link

SPMMER commented Oct 8, 2024

What happened?

We created our NWB files with MATNWB 2.4.0 and now we try to validate it with NWBInspector. It trows the following error:

Steps to Reproduce

(NWBinspector) PS C:\Users\Stefan\PycharmProjects\NWBinspector> nwbinspector C:\Users\Stefan\Desktop\NWBData_Tes
t\
C:\Users\Stefan\.conda\envs\NWBinspector\lib\site-packages\hdmf\spec\namespace.py:535: UserWarning: Ignoring cac
hed namespace 'hdmf-common' version 1.5.0 because version 1.8.0 is already loaded.
  warn("Ignoring cached namespace '%s' version %s because version %s is already loaded."
C:\Users\Stefan\.conda\envs\NWBinspector\lib\site-packages\hdmf\spec\namespace.py:535: UserWarning: Ignoring cac
hed namespace 'core' version 2.4.0 because version 2.7.0 is already loaded.
  warn("Ignoring cached namespace '%s' version %s because version %s is already loaded."
C:\Users\Stefan\.conda\envs\NWBinspector\lib\site-packages\hdmf\spec\namespace.py:535: UserWarning: Ignoring cac
hed namespace 'hdmf-experimental' version 0.1.0 because version 0.5.0 is already loaded.
  warn("Ignoring cached namespace '%s' version %s because version %s is already loaded."
Traceback (most recent call last):
  File "C:\Users\Stefan\.conda\envs\NWBinspector\lib\runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "C:\Users\Stefan\.conda\envs\NWBinspector\lib\runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "C:\Users\Stefan\.conda\envs\NWBinspector\Scripts\nwbinspector.exe\__main__.py", line 7, in <module>     
  File "C:\Users\Stefan\.conda\envs\NWBinspector\lib\site-packages\click\core.py", line 1157, in __call__       
    return self.main(*args, **kwargs)
  File "C:\Users\Stefan\.conda\envs\NWBinspector\lib\site-packages\click\core.py", line 1078, in main
    rv = self.invoke(ctx)
  File "C:\Users\Stefan\.conda\envs\NWBinspector\lib\site-packages\click\core.py", line 1434, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "C:\Users\Stefan\.conda\envs\NWBinspector\lib\site-packages\click\core.py", line 783, in invoke
    return __callback(*args, **kwargs)
  File "C:\Users\Stefan\.conda\envs\NWBinspector\lib\site-packages\nwbinspector\_inspection_cli.py", line 121, i
n _inspect_all_cli
    messages = list(
  File "C:\Users\Stefan\.conda\envs\NWBinspector\lib\site-packages\nwbinspector\_inspection.py", line 139, in in
spect_all
    with pynwb.NWBHDF5IO(path=nwbfile_path, mode="r", load_namespaces=True, driver=driver) as io:
  File "C:\Users\Stefan\.conda\envs\NWBinspector\lib\site-packages\hdmf\utils.py", line 668, in func_call       
    return func(args[0], **pargs)
  File "C:\Users\Stefan\.conda\envs\NWBinspector\lib\site-packages\pynwb\__init__.py", line 309, in __init__    
    super().load_namespaces(tm, path, file=file_obj, driver=driver, aws_region=aws_region)
  File "C:\Users\Stefan\.conda\envs\NWBinspector\lib\site-packages\hdmf\utils.py", line 668, in func_call       
    return func(args[0], **pargs)
  File "C:\Users\Stefan\.conda\envs\NWBinspector\lib\site-packages\hdmf\backends\hdf5\h5tools.py", line 188, in 
load_namespaces
    return cls.__load_namespaces(namespace_catalog, namespaces, open_file_obj)
  File "C:\Users\Stefan\.conda\envs\NWBinspector\lib\site-packages\hdmf\backends\hdf5\h5tools.py", line 222, in 
__load_namespaces
    d.update(namespace_catalog.load_namespaces(cls.__ns_spec_path, reader=reader))
  File "C:\Users\Stefan\.conda\envs\NWBinspector\lib\site-packages\hdmf\utils.py", line 668, in func_call       
    return func(args[0], **pargs)
  File "C:\Users\Stefan\.conda\envs\NWBinspector\lib\site-packages\hdmf\build\manager.py", line 482, in load_nam
espaces
    deps = self.__ns_catalog.load_namespaces(**kwargs)
  File "C:\Users\Stefan\.conda\envs\NWBinspector\lib\site-packages\hdmf\utils.py", line 668, in func_call       
    return func(args[0], **pargs)
  File "C:\Users\Stefan\.conda\envs\NWBinspector\lib\site-packages\hdmf\spec\namespace.py", line 541, in load_na
mespaces
    ret[ns['name']] = self.__load_namespace(ns, reader, resolve=resolve)
  File "C:\Users\Stefan\.conda\envs\NWBinspector\lib\site-packages\hdmf\spec\namespace.py", line 447, in __load_
namespace
    self.__load_spec_file(reader, s['source'], catalog, types_to_load=types_to_load, resolve=resolve)
  File "C:\Users\Stefan\.conda\envs\NWBinspector\lib\site-packages\hdmf\spec\namespace.py", line 396, in __load_
spec_file
    temp_dict = {k: None for k in __reg_spec(self.__dataset_spec_cls, spec_dict)}
  File "C:\Users\Stefan\.conda\envs\NWBinspector\lib\site-packages\hdmf\spec\namespace.py", line 387, in __reg_s
pec
    spec_obj = spec_cls.build_spec(spec_dict)
  File "C:\Users\Stefan\.conda\envs\NWBinspector\lib\site-packages\hdmf\spec\spec.py", line 102, in build_spec  
    return cls(**kwargs)
  File "C:\Users\Stefan\.conda\envs\NWBinspector\lib\site-packages\hdmf\utils.py", line 667, in func_call       
    pargs = _check_args(args, kwargs)
  File "C:\Users\Stefan\.conda\envs\NWBinspector\lib\site-packages\hdmf\utils.py", line 660, in _check_args     
    raise ExceptionType(msg)
TypeError: NWBDatasetSpec.__init__: missing argument 'doc'

Traceback

(NWBinspector) PS C:\Users\Stefan\PycharmProjects\NWBinspector> nwbinspector C:\Users\Stefan\Desktop\NWBData_Tes
t\
C:\Users\Stefan\.conda\envs\NWBinspector\lib\site-packages\hdmf\spec\namespace.py:535: UserWarning: Ignoring cac
hed namespace 'hdmf-common' version 1.5.0 because version 1.8.0 is already loaded.
  warn("Ignoring cached namespace '%s' version %s because version %s is already loaded."
C:\Users\Stefan\.conda\envs\NWBinspector\lib\site-packages\hdmf\spec\namespace.py:535: UserWarning: Ignoring cac
hed namespace 'core' version 2.4.0 because version 2.7.0 is already loaded.
  warn("Ignoring cached namespace '%s' version %s because version %s is already loaded."
C:\Users\Stefan\.conda\envs\NWBinspector\lib\site-packages\hdmf\spec\namespace.py:535: UserWarning: Ignoring cac
hed namespace 'hdmf-experimental' version 0.1.0 because version 0.5.0 is already loaded.
  warn("Ignoring cached namespace '%s' version %s because version %s is already loaded."
Traceback (most recent call last):
  File "C:\Users\Stefan\.conda\envs\NWBinspector\lib\runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "C:\Users\Stefan\.conda\envs\NWBinspector\lib\runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "C:\Users\Stefan\.conda\envs\NWBinspector\Scripts\nwbinspector.exe\__main__.py", line 7, in <module>     
  File "C:\Users\Stefan\.conda\envs\NWBinspector\lib\site-packages\click\core.py", line 1157, in __call__       
    return self.main(*args, **kwargs)
  File "C:\Users\Stefan\.conda\envs\NWBinspector\lib\site-packages\click\core.py", line 1078, in main
    rv = self.invoke(ctx)
  File "C:\Users\Stefan\.conda\envs\NWBinspector\lib\site-packages\click\core.py", line 1434, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "C:\Users\Stefan\.conda\envs\NWBinspector\lib\site-packages\click\core.py", line 783, in invoke
    return __callback(*args, **kwargs)
  File "C:\Users\Stefan\.conda\envs\NWBinspector\lib\site-packages\nwbinspector\_inspection_cli.py", line 121, i
n _inspect_all_cli
    messages = list(
  File "C:\Users\Stefan\.conda\envs\NWBinspector\lib\site-packages\nwbinspector\_inspection.py", line 139, in in
spect_all
    with pynwb.NWBHDF5IO(path=nwbfile_path, mode="r", load_namespaces=True, driver=driver) as io:
  File "C:\Users\Stefan\.conda\envs\NWBinspector\lib\site-packages\hdmf\utils.py", line 668, in func_call       
    return func(args[0], **pargs)
  File "C:\Users\Stefan\.conda\envs\NWBinspector\lib\site-packages\pynwb\__init__.py", line 309, in __init__    
    super().load_namespaces(tm, path, file=file_obj, driver=driver, aws_region=aws_region)
  File "C:\Users\Stefan\.conda\envs\NWBinspector\lib\site-packages\hdmf\utils.py", line 668, in func_call       
    return func(args[0], **pargs)
  File "C:\Users\Stefan\.conda\envs\NWBinspector\lib\site-packages\hdmf\backends\hdf5\h5tools.py", line 188, in 
load_namespaces
    return cls.__load_namespaces(namespace_catalog, namespaces, open_file_obj)
  File "C:\Users\Stefan\.conda\envs\NWBinspector\lib\site-packages\hdmf\backends\hdf5\h5tools.py", line 222, in 
__load_namespaces
    d.update(namespace_catalog.load_namespaces(cls.__ns_spec_path, reader=reader))
  File "C:\Users\Stefan\.conda\envs\NWBinspector\lib\site-packages\hdmf\utils.py", line 668, in func_call       
    return func(args[0], **pargs)
  File "C:\Users\Stefan\.conda\envs\NWBinspector\lib\site-packages\hdmf\build\manager.py", line 482, in load_nam
espaces
    deps = self.__ns_catalog.load_namespaces(**kwargs)
  File "C:\Users\Stefan\.conda\envs\NWBinspector\lib\site-packages\hdmf\utils.py", line 668, in func_call       
    return func(args[0], **pargs)
  File "C:\Users\Stefan\.conda\envs\NWBinspector\lib\site-packages\hdmf\spec\namespace.py", line 541, in load_na
mespaces
    ret[ns['name']] = self.__load_namespace(ns, reader, resolve=resolve)
  File "C:\Users\Stefan\.conda\envs\NWBinspector\lib\site-packages\hdmf\spec\namespace.py", line 447, in __load_
namespace
    self.__load_spec_file(reader, s['source'], catalog, types_to_load=types_to_load, resolve=resolve)
  File "C:\Users\Stefan\.conda\envs\NWBinspector\lib\site-packages\hdmf\spec\namespace.py", line 396, in __load_
spec_file
    temp_dict = {k: None for k in __reg_spec(self.__dataset_spec_cls, spec_dict)}
  File "C:\Users\Stefan\.conda\envs\NWBinspector\lib\site-packages\hdmf\spec\namespace.py", line 387, in __reg_s
pec
    spec_obj = spec_cls.build_spec(spec_dict)
  File "C:\Users\Stefan\.conda\envs\NWBinspector\lib\site-packages\hdmf\spec\spec.py", line 102, in build_spec  
    return cls(**kwargs)
  File "C:\Users\Stefan\.conda\envs\NWBinspector\lib\site-packages\hdmf\utils.py", line 667, in func_call       
    pargs = _check_args(args, kwargs)
  File "C:\Users\Stefan\.conda\envs\NWBinspector\lib\site-packages\hdmf\utils.py", line 660, in _check_args     
    raise ExceptionType(msg)
TypeError: NWBDatasetSpec.__init__: missing argument 'doc'

Operating System

Windows

Python Executable

Conda

Python Version

3.11

Package Versions

No response

Code of Conduct

@rly
Copy link
Contributor

rly commented Oct 8, 2024

@SPMMER Does your file use any NWB extensions? It looks like there is an issue with one of the cached specs. Would you be able to share the file with us to investigate?

Also, what version of nwbinspector are you using? You can run pip show nwbinspector to get that.

@rly rly added the category: bug errors in the code or code behavior label Oct 8, 2024
@SPMMER
Copy link
Author

SPMMER commented Oct 9, 2024

No extensions that I know of. They are made with the nwb 2.4.0 schema using generateCore('2.4.0') command.

The nwb inspector version is 0.5.2.

I shared the file with @mavaylon1 so maybe he can upload that.

@stephprince
Copy link
Contributor

@SPMMER I have the USB flash drive with the data so I can take a closer look after SFN.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category: bug errors in the code or code behavior
Projects
None yet
Development

No branches or pull requests

3 participants