Repository navigation
- Adds the
nxlintandnxvalidatecommand-line tools to lint NXDL files and validate NeXus files against application definitions, respectively. Linting now also checks NXDL files against thenxdl.xsdschema. - Accepts a missing trailing dimension during validation when the NXDL definition marks it as optional (
required="false"). - Detects broken chained internal links during validation.
- Reports malformed NXDL files (XML errors, missing or circular
extends, unnamed elements) as logged errors instead of tracebacks. - Reduces false-positive modification warnings from
NXroot.is_modified()by comparing file size and a checksum of the file header when the modification time changes. - Updates the NeXus definitions to the latest version.
- Fixes crashes in validation of groups with no
NX_class, of<symbols>blocks containing no<symbol>elements, and of groups defined without atype. - Fixes the size check of the last dimension and the handling of
ignoreExtraFields="false"(and the otherignoreExtra*attributes), and makes validation tolerate over-long@axes, scalar axes, and array-valued enumerations. - Fixes Windows
PermissionErrorfailures when releasing or clearing file locks, and closes the temporary file descriptors created byNXfieldmemory files andNXroot.backup. - Records the hostname rather than the
gethostnamefunction in lock files. - Releases locks reliably when closing the lock file fails, and prevents errors when a lock is created with a non-existent lock directory.
- Returns the lock from
with NXLock(...) as lock. - Adds Python 3.14 to the tested versions.
What's Changed
- Fix Windows file-handle errors in locks and temporary files by @rayosborn in #267
- Record the hostname, not its function object, in lock files by @rayosborn in #268
- Reduce false-positive modification warnings using file size and hash by @rayosborn in #270
- Improve validation robustness and add nxlint / nxvalidate tools by @rayosborn in #271
- Handle optional NXDL dimensions during validation by @CAOShurong in #269
- Handle malformed NXDL files without raising exceptions by @rayosborn in #272
- Harden NXLock release and construction by @rayosborn in #273
- Update NeXus definitions and bump version to 2.1.0 by @rayosborn in #274
New Contributors
- @CAOShurong made their first contribution in #269
Full Changelog: v2.0.3...v2.1.0