psi package
Subpackages
- psi.application package
- psi.context package
- psi.controller package
- Subpackages
- psi.controller.calibration package
- Submodules
- psi.controller.calibration.acquire module
- psi.controller.calibration.api module
- psi.controller.calibration.calibrate module
- psi.controller.calibration.chirp module
- psi.controller.calibration.click module
- psi.controller.calibration.plugin module
- psi.controller.calibration.tone module
- Module contents
- psi.controller.engines package
- psi.controller.calibration package
- Submodules
- psi.controller.api module
- psi.controller.channel module
- psi.controller.engine module
- psi.controller.experiment_action module
- psi.controller.input module
- psi.controller.output module
- psi.controller.plugin module
- psi.controller.util module
- Module contents
- Subpackages
- psi.core package
- psi.data package
- psi.experiment package
- Submodules
- psi.experiment.api module
- psi.experiment.metadata_item module
- psi.experiment.paradigm_description module
- psi.experiment.plugin module
- psi.experiment.preferences module
- psi.experiment.status_item module
- psi.experiment.util module
- psi.experiment.workbench module
- psi.experiment.workspace module
- Module contents
- psi.templates package
- psi.token package
Submodules
psi.util module
- class psi.util.PSIJsonEncoder(*, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, sort_keys=False, indent=None, separators=None, default=None)[source]
Bases:
JSONEncoder- default(obj)[source]
Implement this method in a subclass such that it returns a serializable object for
o, or calls the base implementation (to raise aTypeError).For example, to support arbitrary iterators, you could implement default like this:
def default(self, o): try: iterable = iter(o) except TypeError: pass else: return list(iterable) # Let the base class default method raise the TypeError return super().default(o)
- class psi.util.SignalBuffer(fs, size, fill_value=nan, dtype=<class 'numpy.float64'>, n_channels=None)[source]
Bases:
object- get_latest(lb, ub=0, fill_value=None)[source]
Returns buffered data relative to the most recently-buffered sample
- Parameters:
lb (float) – Time in seconds relative to the most recently-buffered sample. Usually will be a negative value.
ub (float) – Time in seconds relative to the most recently-buffered sample. Usually will be 0 or a negative value.
Examples
Get the most recent 1 second of buffered data >>> buffer.get_latest(-1)
Get the buffered data from -2 to -1 relative to current time. >>> buffer.get_latest(-2, -1)
- resize(size)[source]
Resize buffer to hold the specified number of time samples
Notes
This does not allow you to add/remove channels.
A request to decrease buffer size is ignored.
- psi.util.declarative_to_dict(value, tag_name, tag_value=True, include_dunder=True, seen_objects=None)[source]
- psi.util.declarative_to_json(filename, value, tag_name, tag_value=True, include_dunder=True, seen_objects=None)[source]
- psi.util.log_with_header(header, info)[source]
Utility function to log multiple lines with a header with a single logging command.
- Parameters:
header (str) – Title to show in header
info (sequence) – List or tuple of strings (one string per line) to put in the logging message.
- psi.util.psi_json_decoder_hook(obj)[source]
This adds support for loading legacy files generated using json-tricks