Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Write/use format specification data to NWB files #44

Closed
4 tasks done
ajtritt opened this issue Jul 28, 2017 · 1 comment
Closed
4 tasks done

Write/use format specification data to NWB files #44

ajtritt opened this issue Jul 28, 2017 · 1 comment
Labels
category: enhancement improvements of code or code behavior priority: high impacts proper operation or use of feature important to most users
Milestone

Comments

@ajtritt
Copy link
Member

ajtritt commented Jul 28, 2017

Originally reported by: Oliver Ruebel (Bitbucket: oruebel, GitHub: oruebel)


NWB files contain a currently freeform area in /general/specifications for storing specifications. To ease use of the specification data it would be useful to:

  • Assign a neurodata_type to /general/specifications and create a custom NWBContainer class to manage specifications
  • Possible create a new neurodata_type to be stored in /general/specifications to structure the storage of namespace and associated specification files rather than requiring that specs be stored in a single dataset
  • Automatically write all specs used by (or registered with) PyNWB to the NWB file when a file is written. This will help ensure that the spec for all objects are always stored in the file.
  • Add ability to use use specifications (including custom extensions) from the HDF5 directly on read. We possibly need an option here to allow the user decide whether to use specs from the HDF5 file or the specs currently registered with PyNWB.

@ajtritt ajtritt added priority: high impacts proper operation or use of feature important to most users category: enhancement improvements of code or code behavior labels Aug 3, 2017
ajtritt added a commit that referenced this issue Aug 9, 2017
Optional spec resolve

Approved-by: Andrew Tritt <AJTritt@lbl.gov>
@oruebel oruebel mentioned this issue Sep 15, 2017
2 tasks
@ajtritt ajtritt added this to the sfn_release milestone Sep 15, 2017
@oruebel oruebel modified the milestones: sfn_release, NWB 2.0 Full Oct 23, 2017
jcfr added a commit that referenced this issue Nov 11, 2017
…d files

NWB files contain a currently freeform area in ``/general/specifications`` for storing
specifications. To ease use of the specification data it is now possible to:

* Assign a neurodata_type to ``/general/specifications`` and create a custom ``NWBContainer``
  class to manage specifications.

* Create a new neurodata_type to be stored in ``/general/specifications`` to structure the
  storage of namespace and associated specification files rather than requiring that specs
  be stored in a single dataset

* Automatically write all specs used by (or registered with) PyNWB to the NWB file when a
  file is written. This will help ensure that the spec for all objects are always stored
  in the file.

* Add ability to use use specifications (including custom extensions) from the HDF5 directly
  on read. We possibly need an option here to allow the user decide whether to use specs from
  the HDF5 file or the specs currently registered with PyNWB.

See #44, #108

More specifically, this commit adds:
* class for loading namespace
* class for writing namespace
* tooling to ``h5tools`` for caching spec to file
* getter for ``FORMIO`` source
* return of registered types to ``SpecCatalog.auto_register``
* tracking of type sources in ``NamespaceCatalog``
* class for building specification files to ``NamespaceBuilder``
* requirement that spec files be in the same directory as namespace file
* getters for ``NamespaceCatalog`` to ``BuildManager``
* tracking of overridden specs
* ability to read/write specs to/from HDF5 file
* reference-to-reference write

* roundtrip test for caching spec to hdf5 file
* add roundtrip test for caching spec

This commit also implements the following changes:
* make dataset fill methods classmethods
* make ``Spec`` and ``Namespace`` catalogs maintain specs and namespaces with OrderedDict
* require parent spec be passed in, rather than parent spec nam
* import ``SpecNamespace`` to ``h5tools``
* fix bug when showing default strings in signature
* allow string to be passed into ``BaseStorageSpec`` when extending
* refactor caching of spec
* import HDF5 spec reader/writer classes to package-level
* use ``unittest2`` instead of ``unittest`` for ``integration.test_io``
* import spec reader/writer abstract classes to ``form.spec`` subpackage
* deploy spec caching feature
jcfr pushed a commit that referenced this issue Nov 11, 2017
…d files

NWB files contain a currently freeform area in ``/general/specifications`` for storing
specifications. To ease use of the specification data it is now possible to:

* Assign a neurodata_type to ``/general/specifications`` and create a custom ``NWBContainer``
  class to manage specifications.

* Create a new neurodata_type to be stored in ``/general/specifications`` to structure the
  storage of namespace and associated specification files rather than requiring that specs
  be stored in a single dataset

* Automatically write all specs used by (or registered with) PyNWB to the NWB file when a
  file is written. This will help ensure that the spec for all objects are always stored
  in the file.

* Add ability to use use specifications (including custom extensions) from the HDF5 directly
  on read. We possibly need an option here to allow the user decide whether to use specs from
  the HDF5 file or the specs currently registered with PyNWB.

See #44, #108

More specifically, this commit adds:
* class for loading namespace
* class for writing namespace
* tooling to ``h5tools`` for caching spec to file
* getter for ``FORMIO`` source
* return of registered types to ``SpecCatalog.auto_register``
* tracking of type sources in ``NamespaceCatalog``
* class for building specification files to ``NamespaceBuilder``
* requirement that spec files be in the same directory as namespace file
* getters for ``NamespaceCatalog`` to ``BuildManager``
* tracking of overridden specs
* ability to read/write specs to/from HDF5 file
* reference-to-reference write
* roundtrip test for caching spec to hdf5 file
* add roundtrip test for caching spec

This commit also implements the following changes:
* make dataset fill methods classmethods
* make ``Spec`` and ``Namespace`` catalogs maintain specs and namespaces with OrderedDict
* require parent spec be passed in, rather than parent spec nam
* import ``SpecNamespace`` to ``h5tools``
* fix bug when showing default strings in signature
* allow string to be passed into ``BaseStorageSpec`` when extending
* refactor caching of spec
* import HDF5 spec reader/writer classes to package-level
* use ``unittest2`` instead of ``unittest`` for ``integration.test_io``
* import spec reader/writer abstract classes to ``form.spec`` subpackage
* deploy spec caching feature
jcfr pushed a commit that referenced this issue Nov 11, 2017
…d files

NWB files contain a currently freeform area in ``/general/specifications`` for storing
specifications. To ease use of the specification data it is now possible to:

* Assign a neurodata_type to ``/general/specifications`` and create a custom ``NWBContainer``
  class to manage specifications.

* Create a new neurodata_type to be stored in ``/general/specifications`` to structure the
  storage of namespace and associated specification files rather than requiring that specs
  be stored in a single dataset

* Automatically write all specs used by (or registered with) PyNWB to the NWB file when a
  file is written. This will help ensure that the spec for all objects are always stored
  in the file.

* Add ability to use use specifications (including custom extensions) from the HDF5 directly
  on read. We possibly need an option here to allow the user decide whether to use specs from
  the HDF5 file or the specs currently registered with PyNWB.

See #44, #108

More specifically, this commit adds:
* class for loading namespace
* class for writing namespace
* tooling to ``h5tools`` for caching spec to file
* getter for ``FORMIO`` source
* return of registered types to ``SpecCatalog.auto_register``
* tracking of type sources in ``NamespaceCatalog``
* class for building specification files to ``NamespaceBuilder``
* requirement that spec files be in the same directory as namespace file
* getters for ``NamespaceCatalog`` to ``BuildManager``
* tracking of overridden specs
* ability to read/write specs to/from HDF5 file
* reference-to-reference write
* roundtrip test for caching spec to hdf5 file
* add roundtrip test for caching spec

This commit also implements the following changes:
* make dataset fill methods classmethods
* make ``Spec`` and ``Namespace`` catalogs maintain specs and namespaces with OrderedDict
* require parent spec be passed in, rather than parent spec nam
* import ``SpecNamespace`` to ``h5tools``
* fix bug when showing default strings in signature
* allow string to be passed into ``BaseStorageSpec`` when extending
* refactor caching of spec
* import HDF5 spec reader/writer classes to package-level
* use ``unittest2`` instead of ``unittest`` for ``integration.test_io``
* import spec reader/writer abstract classes to ``form.spec`` subpackage
* deploy spec caching feature
@jcfr
Copy link
Collaborator

jcfr commented Nov 11, 2017

Closing. This is addressed by #242

Please, re-open or create a more specific issue if it should not have been closed.

@jcfr jcfr closed this as completed Nov 11, 2017
jcfr pushed a commit to jcfr/pynwb that referenced this issue Jan 29, 2019
…d files

NWB files contain a currently freeform area in ``/general/specifications`` for storing
specifications. To ease use of the specification data it is now possible to:

* Assign a neurodata_type to ``/general/specifications`` and create a custom ``NWBContainer``
  class to manage specifications.

* Create a new neurodata_type to be stored in ``/general/specifications`` to structure the
  storage of namespace and associated specification files rather than requiring that specs
  be stored in a single dataset

* Automatically write all specs used by (or registered with) PyNWB to the NWB file when a
  file is written. This will help ensure that the spec for all objects are always stored
  in the file.

* Add ability to use use specifications (including custom extensions) from the HDF5 directly
  on read. We possibly need an option here to allow the user decide whether to use specs from
  the HDF5 file or the specs currently registered with PyNWB.

See NeurodataWithoutBorders#44, NeurodataWithoutBorders#108

More specifically, this commit adds:
* class for loading namespace
* class for writing namespace
* tooling to ``h5tools`` for caching spec to file
* getter for ``FORMIO`` source
* return of registered types to ``SpecCatalog.auto_register``
* tracking of type sources in ``NamespaceCatalog``
* class for building specification files to ``NamespaceBuilder``
* requirement that spec files be in the same directory as namespace file
* getters for ``NamespaceCatalog`` to ``BuildManager``
* tracking of overridden specs
* ability to read/write specs to/from HDF5 file
* reference-to-reference write
* roundtrip test for caching spec to hdf5 file
* add roundtrip test for caching spec

This commit also implements the following changes:
* make dataset fill methods classmethods
* make ``Spec`` and ``Namespace`` catalogs maintain specs and namespaces with OrderedDict
* require parent spec be passed in, rather than parent spec nam
* import ``SpecNamespace`` to ``h5tools``
* fix bug when showing default strings in signature
* allow string to be passed into ``BaseStorageSpec`` when extending
* refactor caching of spec
* import HDF5 spec reader/writer classes to package-level
* use ``unittest2`` instead of ``unittest`` for ``integration.test_io``
* import spec reader/writer abstract classes to ``form.spec`` subpackage
* deploy spec caching feature
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category: enhancement improvements of code or code behavior priority: high impacts proper operation or use of feature important to most users
Projects
None yet
Development

No branches or pull requests

3 participants