Release notes for pymetadata 0.8.1
Dependencies
pydantic>=2.12instead ofpydantic>=2.13.5(#105). The lower bound was the newest release when the bounds were pinned, not a requirement: the tests pass with pydantic 2.12.0 on python 3.11 and 3.14. The strict bound made pymetadata uninstallable with pip next topydantic-numpy9.0.2 (which requirespydantic~=2.12.5, and is the only release pip can install on python 3.14), e.g. insbmlsim[sciml]throughpetab-sciml.
Fixes
- Processes which load the identifiers.org registry into the same empty cache at the same time, e.g., the workers of pytest-xdist, no longer fail on Windows with
PermissionError: [WinError 5] Access is denied(#102). A cache file which another process has open is retried for about a second, and a cache file which cannot be written is a warning instead of an error, the query returns its result anyway.Registryuses the namespaces it downloaded instead of reading them back from the cache. - Reading a cache file which another process replaces at the same moment is retried on Windows.
- Cache files have the permissions of a regular file again (
0o666minus the umask) instead of being readable only by their owner, so a cache directory can be shared. - A corrupt cached registry is downloaded again instead of failing.
Development
- The lock of the development environment,
uv.lock, is tracked, and continuous integration installs it (#101). - Continuous integration runs with less load (#104).
Your pymetadata team