Skip to content

v2.1.0

Latest

Choose a tag to compare

@rayosborn rayosborn released this 05 Oct 18:39
· 4 commits to main since this release
83c50ea
  • Adds the nxlint and nxvalidate command-line tools to lint NXDL files and validate NeXus files against application definitions, respectively. Linting now also checks NXDL files against the nxdl.xsd schema.
  • 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 a type.
  • Fixes the size check of the last dimension and the handling of ignoreExtraFields="false" (and the other ignoreExtra* attributes), and makes validation tolerate over-long @axes, scalar axes, and array-valued enumerations.
  • Fixes Windows PermissionError failures when releasing or clearing file locks, and closes the temporary file descriptors created by NXfield memory files and NXroot.backup.
  • Records the hostname rather than the gethostname function 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

Full Changelog: v2.0.3...v2.1.0