PYME.Acquire.SpoolController module

Created on Sat May 28 20:42:16 2016

@author: david

class PYME.Acquire.SpoolController.SpoolController(scope, defDir='/home/runner/PYMEData/runner/2024_2_26', defSeries='%(day)d_%(month)d_series')

Bases: object

Initialise the spooling controller.

Parameters
scopemicroscope instance

The currently active microscope class (see microscope.py)

defDirstring pattern

The default directory to save data to. Any keys of the form %(<key>) will be substituted using the values defined in PYME.fileUtils.nameUtils.dateDict

defSeriesstring pattern

This specifies a pattern for file naming. Keys will be substituted as for defDir

LaunchAnalysis()

Launch analysis

SetProtocol(protocolName=None, reloadProtocol=True)

Set the current protocol.

Parameters
protocolName: str

path to protocol file including extension

reloadProtocolbool

currently ignored; protocol module is reinitialized regardless.

See also: PYME.Acquire.Protocols.
SetSpoolDir(dirname)

Set the directory we’re spooling into

SetSpoolMethod(method)

Set the spooling method

Parameters
methodstring

One of ‘File’, ‘Queue’, or ‘Cluster’

SpoolStopped(**kwargs)
StopSpooling(**kwargs)

GUI callback to stop spooling.

property autostart_analysis
property available_spool_methods
property dirname
property display_dirname

Returns a relative directory name for display in user interfaces

Returns
dirnamestr

current spool directory, relative to local PYMEData directory (ideally)

get_cluster_dirname(dirname)
get_dirname(subdirectory=None, spoolType=None)

Get the current directory name, including any subdirectories from chunking or additional spec.

Parameters
subdirectorystr, optional

Directory within current set directory to spool this series. The directory will be created if it doesn’t already exist.

spoolTypestr, optional

Used when using get_dirname externally (e.g. in tiling) to over-ride the spool type.

Returns
str

spool directory name

get_free_space()

Get available space in the target spool directory

Returns
free space in GB
get_info()
launch_cluster_analysis()
property seriesName
start_spooling(fn=None, settings={}, preflight_mode='interactive')
Parameters
fnstr, optional

fn can be hardcoded here, otherwise differs to the seriesName property which will create one if need-be.

settingsdict

keys should be SpoolController attributes or properties with setters. Not all keys must be present, and example keys include:

methodstr

One of ‘File’, ‘Cluster’, or ‘Queue’(py2 only)

hdf_compression_level: int

zlib compression level that pytables should use (spool to file and queue)

z_steppedbool

toggle z-stepping during acquisition

z_dwellint

number of frames to acquire at each z level (predicated on SpoolController.z_stepped being True)

cluster_h5bool

Toggle spooling to single h5 file on cluster rather than pzf file per frame. Only applicable to ‘Cluster’ method and preferred for PYMEClusterOfOne.

pzf_compression_settingsdict

Compression settings relevant for ‘Cluster’ method if cluster_h5 is False. See acquisition_backends.ClusterBackend.defaultCompSettings.

protocol_namestr

Note that passing the protocol name will force a (re)load of the protocol file (even if it is already selected).

max_framesint, optional

point at which to end the series automatically, by default sys.maxsize

subdirectorystr, optional

Directory within current set directory to spool this series. The directory will be created if it doesn’t already exist.

extra_metadatadict, optional

metadata to supplement this series for entries known prior to acquisition which do not have handlers to hook start metadata

preflight_modestr (default=’interactive’)

What to do when the preflight check fails. Options are ‘interactive’, ‘warn’, ‘abort’ and ‘skip’ which will display a dialog and prompt the user, log a warning and continue, and log an error and abort, or skip completely. The former is suitable for interactive acquisition, whereas one of the latter modes is likely better for automated spooling via the action manager.

update_settings(settings)

Sets the state of the SpoolController by calling set-methods or by setting attributes.

Parameters
settingsdict

keys should be SpoolController attributes or properties with setters. Not all keys must be present, and example keys include:

methodstr

One of ‘File’, ‘Cluster’, or ‘Queue’(py2 only)

hdf_compression_level: int

zlib compression level that pytables should use (spool to file and queue)

z_steppedbool

toggle z-stepping during acquisition

z_dwellint

number of frames to acquire at each z level (predicated on SpoolController.z_stepped being True)

cluster_h5bool

Toggle spooling to single h5 file on cluster rather than pzf file per frame. Only applicable to ‘Cluster’ method and preferred for PYMEClusterOfOne.

pzf_compression_settingsdict

Compression settings relevant for ‘Cluster’ method if cluster_h5 is False. See acquisition_backends.ClusterBackend.default_compression_settings.

protocol_namestr

Note that passing the protocol name will force a (re)load of the protocol file (even if it is already selected).

Notable keys which are not supported through this method include ‘series_name’, ‘seriesName’ and ‘dirname’.

class PYME.Acquire.SpoolController.SpoolControllerWrapper(spool_controller)

Bases: object

info()
info_longpoll()
settings(body)
start_spooling(body, filename=None, preflight_mode='abort')

See also SpoolController.start_spooling()

Parameters
filenamestr, optional

fn can be hardcoded here, otherwise differs to the seriesName property which will create one if need-be.

preflight_modestr, default == ‘abort’

One of ‘warn’, ‘abort’, ‘skip, or ‘interactive’. Note that ‘interactive’ requires an active wx.App

The majority of parameters are passed in the request body, which should be a json-formatted dictionary with the
the following keys (see also `settings` parameter to `SpoolController.start_spooling`
z_steppedbool, optional

toggle z-stepping during acquisition. By default None, which differs to current SpoolController state.

hdf_comp_levelint, optional

zlib compression level for pytables. Not relevant for Cluster spool method unless cluster_h5 is True. By default None, which differs to current SpoolController state.

z_dwellint, optional

frames per z-step. By default None, which differs to current SpoolController state.

max_framesint, optional

point at which to end the series automatically, by default sys.maxsize

pzf_compression_settingsdict, optional

Compression settings relevant for ‘Cluster’ method if cluster_h5 is False. See acquisition_backends.ClusterBackend.defaultCompSettings. By default None, which defers to current SpoolController state.

cluster_h5bool, optional

Toggle spooling to single h5 file on cluster rather than pzf file per frame. Only applicable to ‘Cluster’ method and preferred for PYMEClusterOfOne. By default None, which differs to current SpoolController state.

protocolstr, optional

path to acquisition protocol. By default None which differs to current SpoolController state.

subdirectorystr, optional

Directory within current set directory to spool this series. The directory will be created if it doesn’t already exist.

extra_metadatadict, optional

metadata to supplement this series for entries known prior to acquisition which do not have handlers to hook start metadata

stack_settingsdict, optional

The stack settings. See PYME.Acquire.stackSettings.StackSettings. By default the global StackSettings instance is used.

stop_spooling()