123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- """
- Module for reading/writing data from/to Python pickle format.
- Class:
- PickleIO
- Supported: Read/Write
- Authors: Andrew Davison
- """
- try:
- import cPickle as pickle # Python 2
- except ImportError:
- import pickle # Python 3
- from neo.io.baseio import BaseIO
- from neo.core import (Block, Segment,
- AnalogSignal, SpikeTrain)
- class PickleIO(BaseIO):
- """
- A class for reading and writing Neo data from/to the Python "pickle" format.
- Note that files in this format may not be readable if using a different version
- of Neo to that used to create the file. It should therefore not be used for
- long-term storage, but rather for intermediate results in a pipeline.
- """
- is_readable = True
- is_writable = True
- has_header = False
- is_streameable = False # TODO - correct spelling to "is_streamable"
- # should extend to other classes.
- supported_objects = [Block, Segment, AnalogSignal, SpikeTrain]
- readable_objects = supported_objects
- writeable_objects = supported_objects
- mode = 'file'
- name = "Python pickle file"
- extensions = ['pkl', 'pickle']
- def read_block(self, lazy=False):
- assert not lazy, 'Do not support lazy'
- with open(self.filename, "rb") as fp:
- block = pickle.load(fp)
- return block
- def write_block(self, block):
- with open(self.filename, "wb") as fp:
- pickle.dump(block, fp)
|