Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def write_recording(recording, save_path, overwrite=False):
assert HAVE_NIXIO, NIXIORecordingExtractor.installation_mesg
if os.path.exists(save_path) and not overwrite:
raise FileExistsError("File exists: {}".format(save_path))
nf = nix.File.open(save_path, nix.FileMode.Overwrite)
# use the file name to name the top-level block
fname = os.path.basename(save_path)
block = nf.create_block(fname, "spikeinterface.recording")
da = block.create_data_array("traces", "spikeinterface.traces",
data=recording.get_traces())
da.unit = "uV"
da.label = "voltage"
labels = recording.get_channel_ids()
if not labels: # channel IDs not specified; just number them
labels = list(range(recording.get_num_channels()))
chandim = da.append_set_dimension()
chandim.labels = labels
sfreq = recording.get_sampling_frequency()
timedim = da.append_sampled_dimension(sampling_interval=1./sfreq)
timedim.unit = "s"
def __init__(self, filename, mode="rw"):
"""
Initialise IO instance and NIX file.
:param filename: Full path to the file
"""
check_nix_version()
BaseIO.__init__(self, filename)
self.filename = filename
if mode == "ro":
filemode = nix.FileMode.ReadOnly
elif mode == "rw":
filemode = nix.FileMode.ReadWrite
elif mode == "ow":
filemode = nix.FileMode.Overwrite
else:
raise ValueError("Invalid mode specified '{}'. "
"Valid modes: 'ro' (ReadOnly)', 'rw' (ReadWrite),"
" 'ow' (Overwrite).".format(mode))
self.nix_file = nix.File.open(self.filename, filemode)
if self.nix_file.mode == nix.FileMode.ReadOnly:
self._file_version = '0.5.2'
if "neo" in self.nix_file.sections:
self._file_version = self.nix_file.sections["neo"]["version"]
elif self.nix_file.mode == nix.FileMode.ReadWrite:
if "neo" in self.nix_file.sections:
self._file_version = self.nix_file.sections["neo"]["version"]
else:
self._file_version = '0.5.2'
filemd = self.nix_file.create_section("neo", "neo.metadata")