Skip to content

Commit

Permalink
Merge branch 'dev' into rly-patch-1
Browse files Browse the repository at this point in the history
  • Loading branch information
mavaylon1 authored Nov 18, 2024
2 parents f31dc27 + b69c3e0 commit 7601b85
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 8 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,15 @@
# HDMF-ZARR Changelog

## 1.0.0 (Upcoming)

### Enhancements
* Added support for Pathlib paths. @mavaylon1 [#212](https://github.com/hdmf-dev/hdmf-zarr/pull/212)
* Updated packages used for testing and readthedocs configuration. @mavaylon1, @rly [#214](https://github.com/hdmf-dev/hdmf-zarr/pull/214)
* Add `force_overwite` parameter for `ZarrIO.__init__` to allow overwriting an existing file or directory. @oruebel [#229](https://github.com/hdmf-dev/hdmf-zarr/pull/229)

### Bug Fixes
* Fix reading of cached specs and caching of specs during export. @rly [#232](https://github.com/hdmf-dev/hdmf-zarr/pull/232)

## 0.9.0 (September 16, 2024)
### Enhancements
* Added support for appending a dataset of references. @mavaylon1 [#203](https://github.com/hdmf-dev/hdmf-zarr/pull/203)
Expand Down
1 change: 0 additions & 1 deletion docs/source/installation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@ in a Conda environment. Normally we don't need to install ``hdmf`` directly, but
conda create --name hdmf-zarr-test python=3.9
conda activate hdmf-zarr-test
conda install h5py
git clone --recurse-submodules https://github.com/hdmf-dev/hdmf.git
cd hdmf
Expand Down
7 changes: 7 additions & 0 deletions src/hdmf_zarr/backend.py
Original file line number Diff line number Diff line change
Expand Up @@ -399,6 +399,13 @@ def export(self, **kwargs):
ckwargs['clear_cache'] = True
super().export(**ckwargs)
if cache_spec:
# add any namespaces from the src_io that have not yet been loaded
for namespace in src_io.manager.namespace_catalog.namespaces:
if namespace not in self.manager.namespace_catalog.namespaces:
self.manager.namespace_catalog.add_namespace(
name=namespace,
namespace=src_io.manager.namespace_catalog.get_namespace(namespace)
)
self.__cache_spec()

def get_written(self, builder, check_on_disk=False):
Expand Down
16 changes: 9 additions & 7 deletions src/hdmf_zarr/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import math
import json
import logging
import os
from collections import deque
from collections.abc import Iterable
from typing import Optional, Union, Literal, Tuple, Dict, Any
Expand Down Expand Up @@ -373,12 +374,12 @@ class ZarrSpecReader(SpecReader):
Class to read format specs from Zarr
"""

@docval({'name': 'group', 'type': Group, 'doc': 'the Zarr file to read specs from'},
{'name': 'source', 'type': str, 'doc': 'the path spec files are relative to', 'default': '.'})
@docval({'name': 'group', 'type': Group, 'doc': 'the Zarr file to read specs from'})
def __init__(self, **kwargs):
self.__group, source = getargs('group', 'source', kwargs)
super_kwargs = {'source': source}
super(ZarrSpecReader, self).__init__(**super_kwargs)
self.__group = getargs('group', kwargs)
source = "%s:%s" % (os.path.abspath(self.__group.store.path), self.__group.name)
super().__init__(source=source)
self.__cache = None

def __read(self, path):
s = self.__group[path][0]
Expand All @@ -391,8 +392,9 @@ def read_spec(self, spec_path):

def read_namespace(self, ns_path):
"""Read a namespace from the given path"""
ret = self.__read(ns_path)
ret = ret['namespaces']
if self.__cache is None:
self.__cache = self.__read(ns_path)
ret = self.__cache['namespaces']
return ret


Expand Down

0 comments on commit 7601b85

Please sign in to comment.