def stage_factory(function_factory: FunctionFactoryBase, shape_factory: CeedPaintCanvasBehavior) -> StageFactoryBase: stage_factory = StageFactoryBase(function_factory=function_factory, shape_factory=shape_factory) add_prop_watch(stage_factory, 'on_changed', 'test_changes_count') yield stage_factory
def __init__(self, **kwargs): self.view_controller = ViewSideViewControllerBase() self.ceed_data = CeedDataWriterBase() self.data_serializer = DataSerializerBase() self.function_factory = FunctionFactoryBase() register_all_functions(self.function_factory) self.shape_factory = CeedPaintCanvasBehavior() self.stage_factory = StageFactoryBase( function_factory=self.function_factory, shape_factory=self.shape_factory) super(CeedViewApp, self).__init__(**kwargs)
def load_experiment(self, experiment): self._block = block = self._nix_file.blocks[ CeedDataWriterBase.get_experiment_block_name(experiment)] section = self._nix_file.sections['experiment{}_metadata'.format( experiment)] self.loaded_experiment = experiment self.experiment_stage_name = section['stage'] self.experiment_notes = section['notes'] if 'notes' in section else '' self.experiment_start_time = float( section['save_time']) if 'save_time' in section else 0 config = section.sections['app_config'] config_data = {} for prop in config.props: config_data[prop.name] = yaml_loads(read_nix_prop(prop)) view = self.view_controller = ViewControllerBase() ser = self.data_serializer = DataSerializerBase() func = self.function_factory = FunctionFactoryBase() register_all_functions(func) shape = self.shape_factory = CeedPaintCanvasBehavior() stage = self.stage_factory = StageFactoryBase(function_factory=func, shape_factory=shape) for name, obj in { 'view': view, 'serializer': ser, 'function': func }.items(): if name in config_data['app_settings']: apply_config(obj, config_data['app_settings'][name]) self.populate_config(config_data, shape, func, stage) self.experiment_cam_image = self.read_image_from_block(self._block) data = self.shapes_intensity = {} for item in block.data_arrays: if not item.name.startswith('shape_'): continue data[item.name[6:]] = item self.led_state = block.data_arrays['led_state'] if ('ceed_mcs_alignment' in self._nix_file.blocks and 'experiment_{}'.format(experiment) in self._nix_file.blocks['ceed_mcs_alignment'].data_arrays): self.electrode_intensity_alignment = self._nix_file.blocks[ 'ceed_mcs_alignment'].data_arrays['experiment_{}'.format( experiment)] else: self.electrode_intensity_alignment = None
def __init__(self, open_player_thread=True, **kwargs): self.drag_controller = CeedDragNDrop() self.function_factory = FunctionFactoryBase() register_all_functions(self.function_factory) self.stage_factory = StageFactoryBase( function_factory=self.function_factory, shape_factory=None) self.player = CeedPlayer(open_player_thread=open_player_thread) self.view_controller = ControllerSideViewControllerBase() self.ceed_data = CeedDataWriterBase() self.data_serializer = DataSerializerBase() super(CeedApp, self).__init__(**kwargs) self.load_app_settings_from_file() self.apply_app_settings()
def load_application_data(self): self.app_logs = self.app_notes = '' if 'app_logs' in self._nix_file.sections: self.app_logs = self._nix_file.sections['app_logs']['log_data'] self.app_notes = self._nix_file.sections['app_logs']['notes'] config = self._nix_file.sections['app_config'] config_data = {} for prop in config.props: config_data[prop.name] = yaml_loads(read_nix_prop(prop)) self.ceed_version = config_data.get('ceed_version', '') view = ViewControllerBase() ser = DataSerializerBase() func = FunctionFactoryBase() register_all_functions(func) shape = CeedPaintCanvasBehavior() stage = StageFactoryBase(function_factory=func, shape_factory=shape) for name, obj in { 'view': view, 'serializer': ser, 'function': func }.items(): if name in config_data['app_settings']: apply_config(obj, config_data['app_settings'][name]) self.populate_config(config_data, shape, func, stage) self.app_config = { 'view_controller': view, 'data_serializer': ser, 'function_factory': func, 'shape_factory': shape, 'stage_factory': stage, }