- This pull request resolves the issue of deadlocks and indefinite hangs when
opening Zarr v3 arrays on synchronous fsspec filesystems, by implementing a
fallback to sequential reads for non-concurrency-safe filesystems, ensuring
robust metadata retrieval without sacrificing performance for safe
filesystems. Furthermore
Store._get_manywas modified to retrieve objects concurrently from storage. The previous implementation was sequential, awaiting eachself.get(*req)before proceeding, contrary to the docstring. - Introduced
StorePath.get_many, mimicing the behaviour of StorePath.get. - Use
Store._get_manyandStorePath.get_manyinget_array_metadata. - Implemented
FsspecStore._get_manyto conditionally useasyncio.gatherbased on the concurrency safety of the underlying file system, enhancing compatibility with synchronous file systems by avoiding deadlocks when accessing metadata concurrently. Adding testsLockableFileSystemto test with async/sync behavior.