-
Notifications
You must be signed in to change notification settings - Fork 57
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
remove unused WriteBlocks functions add docs
- Loading branch information
Showing
2 changed files
with
137 additions
and
21 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
""" | ||
Submodule for reading and writing ASDF blocks. | ||
The primary interface to this submodule is ``_block.manager.Manager`` | ||
that in some ways mimics the older ``BlockManager``. An instance | ||
of ``Manager`` will be created by each `asdf.AsdfFile` instance. | ||
Internally, this submodule is broken up into: | ||
- low-level: | ||
- ``io``: functions for reading and writing blocks | ||
- ``key``: ``Key`` used to implement ``Store`` (see below) | ||
- ``store``: ``Store`` special key-value store for indexing blocks | ||
- medium-level: | ||
- ``reader``: ``ReadBlock`` and ``read_blocks`` | ||
- ``writer``: ``WriteBlock`` and ``write_blocks`` | ||
- ``callback``: ``DataCallback`` for reading block data | ||
- ``external``: ``ExternalBlockCache`` for reading external blocks | ||
- ``options``: ``Options`` controlling block storage | ||
- high-level: | ||
- ``manager``: ``Manager`` and associated classes | ||
The low-level ``io`` functions are responsible for reading and writing | ||
bytes compatible with the block format defined in the ASDF standard. | ||
These should be compatible with as wide a variety of file formats as possible | ||
including files that are: | ||
- seekable and non-seekable | ||
- memory mappable | ||
- accessed from a remote server | ||
- stored in memory | ||
- etc | ||
To help organize ASDF block data the ``key`` and ``store`` submodules | ||
provide a special key-value store, ``Store``. ``Store`` uses ``Key`` | ||
instances to tie the lifetime of values to the lifetime of objects | ||
in the ASDF tree (without keeping references to the objects) and | ||
allows non-hashable objects to be used as keys. See the ``key`` | ||
submodule docstring for more details. One usage of ``Store`` is | ||
for managing ASDF block ``Options``. ``Options`` determine where | ||
and how array data will be written and a single ``Options`` instance | ||
might be associated with several arrays within the ASDF tree | ||
(if the arrays share the same base array). By using a ``Key`` generated | ||
with the base array the block ``Options`` can be stored in a ``Store`` | ||
without keeping a reference to the base array and these ``Options`` | ||
will be made unavailable if the base array is garbage collected (so | ||
they are not inapproriately assigned to a new array). | ||
The medium-level submodules ``reader`` and ``writer`` each define | ||
a helper class and function for reading or writing blocks: | ||
- ``ReadBlock`` and ``WriteBlock`` | ||
- ``read_blocks`` and ``write_blocks`` | ||
These abstract some of the complexity of reading and writing blocks | ||
using the low-level API and are the primary means by which the ``Manager`` | ||
reads and writes ASDF blocks. Reading of external blocks by the ``Manager`` | ||
requires some special handling which is contained in the ``external`` | ||
submodule. | ||
To allow for lazy-loading of ASDF block data, ``callback`` defines | ||
``DataCallback`` which allows reading block data even after the blocks | ||
have been rearranged following an update-in-place. | ||
""" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters