apptools.io.h5.file module¶
- class apptools.io.h5.file.H5Attrs(node_attrs)[source]¶
Bases:
MutableMapping
An attributes dictionary for an h5 node.
This intercepts __setitem__ so that python sequences can be converted to numpy arrays. This helps preserve the readability of our HDF5 files by other (non-python) programs.
- class apptools.io.h5.file.H5File(filename, mode='r+', delete_existing=False, auto_groups=True, auto_open=True, h5filters=None)[source]¶
Bases:
Mapping
File object for HDF5 files.
This class wraps PyTables to provide a cleaner, but only implements an interface for accessing arrays.
- Parameters
filename (str or a tables.File instance) – Filename for an HDF5 file, or a PyTables File object.
mode (str) –
Mode to open the file:
’r’ : Read-only ‘w’ : Write; create new file (an existing file would be deleted). ‘a’ : Read and write to file; create if not existing ‘r+’: Read and write to file; must already exist
delete_existing (bool) – If True, an existing node will be deleted when a create_* method is called. Otherwise, a ValueError will be raise.
auto_groups (bool) – If True, create_array will automatically create parent groups.
auto_open (bool) – If True, open the file automatically on initialization. Otherwise, you can call H5File.open() explicitly after initialization.
chunked (bool) – If True, the default behavior of create_array will be a chunked array (see PyTables create_carray).
- create_array(node_path, array_or_shape, dtype=None, chunked=False, extendable=False, **kwargs)[source]¶
Create node to store an array.
- Parameters
node_path (str) – PyTable node path; e.g. ‘/path/to/node’.
array_or_shape (array or shape tuple) – Array or shape tuple for an array. If given a shape tuple, the dtype parameter must also specified.
dtype (str or numpy.dtype) – Data type of array. Only necessary if array_or_shape is a shape.
chunked (bool) – Controls whether the array is chunked.
extendable ({None | bool}) – Controls whether the array is extendable.
kwargs (key/value pairs) – Keyword args passed to PyTables File.create_(c|e)array.
- create_dict(node_path, data=None, **kwargs)[source]¶
Create dict node at the specified path.
- Parameters
node_path (str) – Path to node where data is stored (e.g. ‘/path/to/my_dict’)
data (dict) – Data for initialization, if desired.
- create_group(group_path, **kwargs)[source]¶
Create group.
- Parameters
group_path (str) – PyTable group path; e.g. ‘/path/to/group’.
kwargs (key/value pairs) – Keyword args passed to PyTables File.create_group.
- create_table(node_path, description, **kwargs)[source]¶
Create table node at the specified path.
- Parameters
node_path (str) – Path to node where data is stored (e.g. ‘/path/to/my_dict’)
description (dict or numpy dtype object) – The description of the columns in the table. This is either a dict of column name -> dtype items or a numpy record array dtype. For more information, see the documentation for Table in pytables.
- exists_error = "'{}' exists in '{}'; set `delete_existing` attribute to True to overwrite existing calculations."¶
- property is_open¶
- classmethod join_path(*args)[source]¶
Join parts of an h5 path.
For example, the 3 argmuments ‘path’, ‘to’, ‘node’ will return ‘/path/to/node’.
- Parameters
args (str) – Parts of path to be joined.
- remove_group(group_path, **kwargs)[source]¶
Remove group
- Parameters
group_path (str) – PyTable group path; e.g. ‘/path/to/group’.
- remove_node(node_path)[source]¶
Remove node
- Parameters
node_path (str) – PyTable node path; e.g. ‘/path/to/node’.
- property root¶
- class apptools.io.h5.file.H5Group(pytables_group)[source]¶
Bases:
Mapping
A group node in an H5File.
This is a thin wrapper around PyTables’ Group object to expose attributes and maintain the dict interface of H5File.
- property children_names¶
- create_array(node_subpath, array_or_shape, dtype=None, chunked=False, extendable=False, **kwargs)[source]¶
** H5Group wrapper for H5File.create_array: ** Note that the first argument is a nodepath relative to the group, rather than an absolute path. Below is the original docstring:
Create node to store an array.
- Parameters
node_path (str) – PyTable node path; e.g. ‘/path/to/node’.
array_or_shape (array or shape tuple) – Array or shape tuple for an array. If given a shape tuple, the dtype parameter must also specified.
dtype (str or numpy.dtype) – Data type of array. Only necessary if array_or_shape is a shape.
chunked (bool) – Controls whether the array is chunked.
extendable ({None | bool}) – Controls whether the array is extendable.
kwargs (key/value pairs) – Keyword args passed to PyTables File.create_(c|e)array.
- create_dict(node_subpath, data=None, **kwargs)[source]¶
** H5Group wrapper for H5File.create_dict: ** Note that the first argument is a nodepath relative to the group, rather than an absolute path. Below is the original docstring:
Create dict node at the specified path.
- Parameters
node_path (str) – Path to node where data is stored (e.g. ‘/path/to/my_dict’)
data (dict) – Data for initialization, if desired.
- create_group(group_subpath, delete_existing=False, **kwargs)[source]¶
** H5Group wrapper for H5File.create_group: ** Note that the first argument is a nodepath relative to the group, rather than an absolute path. Below is the original docstring:
Create group.
- Parameters
group_path (str) – PyTable group path; e.g. ‘/path/to/group’.
kwargs (key/value pairs) – Keyword args passed to PyTables File.create_group.
- create_table(node_subpath, description, *args, **kwargs)[source]¶
** H5Group wrapper for H5File.create_table: ** Note that the first argument is a nodepath relative to the group, rather than an absolute path. Below is the original docstring:
Create table node at the specified path.
- Parameters
node_path (str) – Path to node where data is stored (e.g. ‘/path/to/my_dict’)
description (dict or numpy dtype object) – The description of the columns in the table. This is either a dict of column name -> dtype items or a numpy record array dtype. For more information, see the documentation for Table in pytables.
- property filename¶
- property name¶
- property pathname¶
- remove_group(group_subpath, **kwargs)[source]¶
** H5Group wrapper for H5File.remove_group: ** Note that the first argument is a nodepath relative to the group, rather than an absolute path. Below is the original docstring:
Remove group
- Parameters
group_path (str) – PyTable group path; e.g. ‘/path/to/group’.
- remove_node(node_subpath, **kwargs)[source]¶
** H5Group wrapper for H5File.remove_node: ** Note that the first argument is a nodepath relative to the group, rather than an absolute path. Below is the original docstring:
Remove node
- Parameters
node_path (str) – PyTable node path; e.g. ‘/path/to/node’.
- property root¶
- property subgroup_names¶