- Support for Python 3.8 has been removed. #508
- The
inspect_nwb
method has been removed. Please useinspect_nwbfile
orinspect_nwbfile_object
instead. #505
- Added Zarr support. #513
- Removed the
robust_ros3_read
utility helper. #506 - Simplified the
nwbinspector.testing
configuration framework. #509 - Cleaned old references to non-recent PyNWB and HDMF versions. Current policy is that latest NWB Inspector releases should only support compatibility with latest PyNWB and HDMF. #510
- Swapped setup approach to the modern
pyproject.toml
standard. #507 - Added complete annotation typing and integrated Mypy into pre-commit. #520
- Fixed incorrect error message for OptogeneticStimulusSite. #524
- The
driver
argument has been removed frominspect_nwbfile
. Please usenwbinspector.inspect_dandiset
ornwbinspector.inspect_dandi_file_path
instead. #490
- The
stream
andversion_id
arguments have been removed fromnwbinspector.inspect_all
. Please usenwbinspector.inspect_dandiset
instead. #490
- Introduced the
inspect_dandiset
andinspect_dandi_file_path
API functions to replace the functionality innwbinspector --stream
. The new feature usesremfile
instead ofros3
. #490
- Fixed import error when using the CLI with
--config dandi
. #494 - Removed unused imports throughout package. #496
- Certain low-level functions have been marked as private (such as the former
nwbinspector.register_checks.auto_parse
) indicating they should not have been imported by downstream users. #485 - Various inappropriate imports from certain submodules have been hard deprecated (e.g.,
from nwbinspector.inspector_tools import natsorted
). #485
- The
inspector_tools
,register_check
, and `` submodules have been soft deprecated and will be removed in the next major release. #485
- Update util function
is_ascending_series
to discard nan values and addcheck_timestamps_without_nans
fun to check if timestamps contain NaN values #476 - Updated the import structure to match modern Python packaging standards. #485
- Equivocated timezone handling to target fields when checking for past and future dates. #471
- Fixed the suggested rate in
check_regular_timestamps
to be in Hz. #467 - Added a skip for mac sidecar files (._*). #470
- Extended
check_session_start_time_future_date
andcheck_session_start_time_old_date
to be timezone optional as allowed by PyNWB > 2.6.0 versions. #452
- Exposed progress bar control to
inspect_all
andrun_checks
to allow compatibility with more generic visualizations of inspection progress related to the NWB GUIDED. #443 - Added Python 3.12 support. #457
- Pinned action runners to MacOS x64 architecture; removed other deprecated steps of setup and continuous integration testing. #450
- Fixed
--modules
flag innwbinspector
command line interface to allow for import of additional modules in the command line. This was necessary to be able to register new customized checks to the NWB Inspector. #446
- Add safer retrieval of
subject_id
for in vitro protein filtering. #433
- Use cached extension namespaces when calling pynwb validate instead of just the core namespace. #425
- Added automatic suppression of certain subject related checks when inspecting files using the "dandi" configuration that have a
subject_id
that starts with the keyphrase "protein"; e.g., "proteinCaMPARI3" to indicate the in vitro subject of the experiment is a purified CaMPARI3 protein.
- Added
check_rate_is_not_zero
for ensuring non-zero rate value ofTimeSeries
that has more than one frame. #389
- Fixed issue in
check_empty_string_for_optional_attribute
where it would not skip optional non-str
fields. #400
- Support for Python 3.7 has officially been dropped by the NWB Inspector. Please use Python 3.8 and above. #380
-
check_time_interval_time_columns
now only checks forstart_time
withis_ascending_series
. #382 -
is_acending_series
no longer asserts series to be strictly monotonic. #374
- To reduce ambiguity of the new intermediate workflow calls in the API,
inspect_nwb
will be deprecated in the next major release. It is replaced by eitherinspect_nwbfile
(applied to a written file on disk) orinspect_nwbfile_object
(an open object in memory). #364
- Added support for new options to
subject.sex
(XX
orXO
) conditional on thesubject.species
being either "C. elegens" or "Caenorhabditis elegens". #353
- Added an intermediate workflow to the main
nwbinspector
call pattern, namedinspect_nwbfile_object
. #364
- Added a false positive skip condition to
check_binary_columns
when applied to special tables with pre-defined columns, such as theelectrodes
ofUnits
. #349
-
Added a false positive skip condition to
check_timestamps_match_first_dimension
when applied to anImageSeries
that is using anexternal_file
and therefore has an empty array set todata
, but could have non-empty irregulartimestamps
for the video. PR #335 -
Fixed the skip condition for
images
checks that were incorrectly run when using PyNWB v2.0.0. PR #341
- The version of the NWB Inspector can now be returned directly from the CLI via the
--version
flag. PR # 333
- Loosened upper bound of numpy version. PR # 330
- Added check
check_index_series_points_to_image
to additionally about future deprecation ofindexed_timeseries
linked inIndexSeries
. # 322
- Add a special skip condition to
check_timestamps_match_first_dimension
when anIndexSeries
uses anImageSeries
as a target. PR #321
- Added check for unique ids for DynamicTables. PR #316
-
Fix
check_subject_proper_age_range
to parse years. PR #314 -
Write a custom
get_data_shape
method that does not returnmaxshape
, which fixes errors in parsing shape. PR #315
-
Added compression size consideration to
check_image_series_size
. PR #311 -
Added false positive skip condition for
check_image_series_size
forTwoPhotonSeries
neurodata types. PR #301
- Added downstream testing of DANDI to the per-PR suite as a requirement for merging. PR #306
- Fixed issue in
run_checks
following PR #303 that prevented iteration over certain check output types. PR #306
- Fixed an issue with table checks that attempted to retrieve data from on-disk NWB files in a non-lazy manner. Also improved
check_timestamps_match_first_dimension
forTimeSeries
objects, which similarly attempted to load unnecessary data into memory. PR #296 PR #307
- Fix to the assigned
importance
output of configured checks, which was reverting to pre-configuration values. PR #303
- Fix to skip certain tests if optional testing config path was not specified (mostly for conda-forge).
- Allow NCBI taxonomy references for Subject.species. PR #290
- Added PyNWB v2.1.0 specific file generation functions to the
testing
submodule, and altered the tests forImageSeries
to use these pre-existing files when available. Also included automated workflow to push the generated files to a DANDI-staging server for public access. PR #288
- Fixed relative path detection for cross-platform strings in
check_image_series_external_file_relative
PR #288
- Fixed an error with attribute retrieval specific to the
cell_id
of theIntracellularElectrode
neurodata type that occurred with respect to older versions of PyNWB. PR #264
check_subject_sex
,check_subject_species
,check_subject_age
,check_subject_proper_age_range
are now elevated toCRITICAL
importance when using the "DANDI" configuration. Therefore, these are now required for passingdandi validate
.
- Enhanced human-readability of the return message from
check_experimenter_form
. PR #254 - Extended check for
Subject.age
field with estimated age range using '/' separator. PR #247 - Allowed network-dependent tests to be skipped by specifying the
NWBI_SKIP_NETWORK_TESTS
environment variable. PR #261
- Added check for existence of
IntracellularElectrode.cell_id
PR #256 - Added check that bounds of age range for
Subject.age
using the '/' separator are properly increasing. PR #247 - Added check for existence of
IntracellularElectrode.cell_id
PR #256 - Added check for shape consistency between
reference_images
and the x, y, (z) dimensions of theimage_mask
ofPlaneSegmentation
objects. PR #257
- Fixed the folder-wide
identifier
pre-check forinspect_all
to read NWB files with extensions. PR #262