File: validation.rst

package info (click to toggle)
pynwb 2.8.2-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 44,312 kB
  • sloc: python: 17,501; makefile: 597; sh: 11
file content (65 lines) | stat: -rw-r--r-- 2,400 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
.. _validating:

Validating NWB files
====================

Validating NWB files is handled by a command-line tool available in :py:mod:`~pynwb`.
The validator can be invoked like so:

.. code-block:: bash

  python -m pynwb.validate test.nwb

If the file contains no NWB extensions, then this command will validate the file ``test.nwb`` against the
*core* NWB specification. On success, the output will be:

.. code-block:: text

  Validating test.nwb against cached namespace information using namespace 'core'.
   - no errors found.

and the program exit code is ``0``. On error, the program exit code is ``1`` and the list of errors is outputted.

If the file contains NWB extensions, then the above validation command will validate the file ``test.nwb`` against
all extensions in the file and the core NWB specification.

To validate against only one NWB extension that is cached within the file, use the ``-n`` flag.
For example, the following command will validate against the "ndx-my-extension" namespace that is cached
within the ``test.nwb`` file.

.. code-block:: bash

  python -m pynwb.validate -n ndx-my-extension test.nwb

To validate against the version of the **core** NWB specification that is included with the installed version of
PyNWB, use the ``--no-cached-namespace`` flag. This can be useful in validating files against newer or older versions
of the **core** NWB specification that are installed with newer or older versions of PyNWB.

.. code-block:: bash

  python -m pynwb.validate --no-cached-namespace test.nwb

.. Last updated 8/13/2021
.. code-block:: text

  $python -m pynwb.validate --help
  usage: validate.py [-h] [-n NS] [-lns] [--cached-namespace | --no-cached-namespace] paths [paths ...]

  Validate an NWB file

  positional arguments:
    paths                 NWB file paths

  optional arguments:
    -h, --help            show this help message and exit
    -n NS, --ns NS        the namespace to validate against
    -lns, --list-namespaces
                          List the available namespaces and exit.
    --cached-namespace    Use the cached namespace (default).
    --no-cached-namespace
                          Don't use the cached namespace.

  If --ns is not specified, validate against all namespaces in the NWB file.

Validation against a namespace that is not cached within the schema is not currently possible but is a planned
feature.