def _load_predefined_templates(self): self.debug('load predefined templates') templates = [] user_templates = [] for temp in list_directory2(paths.pipeline_template_dir, extension='.yaml', remove_extension=True): templates.append(temp) self.debug('loaded {} pychron templates'.format(len(templates))) for temp in list_directory2(paths.user_pipeline_template_dir, extension='.yaml', remove_extension=True): user_templates.append(temp) self.debug('loaded {} user templates'.format(len(user_templates))) def formatter(t): return ' '.join(map(str.capitalize, t.split('_'))) templates = map(formatter, templates) user_templates = map(formatter, user_templates) with open(paths.pipeline_template_file, 'r') as rfile: tnames = yaml.load(rfile) ns = [pt for pt in tnames if pt in templates] ns.extend(user_templates) self.available_pipeline_templates = ns
def refresh_stage_map_names(self): sms = list_directory2(self.root, '.txt', remove_extension=True) us = list_directory2(paths.user_points_dir, '.yaml', remove_extension=True) if us: sms.extend(us) self.stage_map_names = sms
def _task_extensions_default(self): def efactory(): return SMenu(id='laser.menu', name='Laser') actions = [SchemaAddition(id='Laser', factory=efactory, path='MenuBar', before='tools.menu', after='view.menu')] exts = [TaskExtension(actions=actions)] actions = [SchemaAddition(factory=ShowMotionConfigureAction, path='MenuBar/laser.menu')] for f in list_directory2(paths.pattern_dir, extension='.lp', remove_extension=True): actions.append(SchemaAddition(id='pattern.{}'.format(f), factory=pattern_action(f, self.application, self.name), path='MenuBar/laser.menu/patterns.menu')) if actions: actions.insert(0, SchemaAddition(id='patterns.menu', factory=lambda: SMenu(name='Execute Patterns', id='patterns.menu'), path='MenuBar/laser.menu')) exts.append(TaskExtension(actions=actions)) else: self.warning('no patterns scripts located in "{}"'.format(paths.pattern_dir)) return exts
def _task_extensions_default(self): def efactory(): return SMenu(id='laser.menu', name='Laser') actions = [ SchemaAddition(id='Laser', factory=efactory, path='MenuBar', before='tools.menu', after='view.menu') ] exts = [TaskExtension(actions=actions)] actions = [ SchemaAddition(factory=ShowMotionConfigureAction, path='MenuBar/laser.menu') ] lactions = [] for f in list_directory2(paths.pattern_dir, extension='.lp', remove_extension=True): actions.append( SchemaAddition(id='pattern.{}'.format(f), factory=pattern_action(f, self.application, self.name), path='MenuBar/laser.menu/patterns.menu')) lactions.append( SchemaAddition(id='pattern.lase.{}'.format(f), factory=pattern_action(f, self.application, self.name, lase=True), path='MenuBar/laser.menu/patterns.lase.menu')) if actions: actions.insert( 0, SchemaAddition(id='patterns.menu', factory=lambda: SMenu(name='Execute Patterns', id='patterns.menu'), path='MenuBar/laser.menu')) lactions.insert( 0, SchemaAddition( id='patterns.lase.menu', factory=lambda: SMenu(name='Execute and Lase Patterns', id='patterns.lase.menu'), path='MenuBar/laser.menu')) exts.append(TaskExtension(actions=lactions)) exts.append(TaskExtension(actions=actions)) else: self.warning('no patterns scripts located in "{}"'.format( paths.pattern_dir)) return exts
def load(self, **kw): names = list_directory2(paths.peak_center_config_dir, remove_extension=True, extension='.p') if 'Default' not in names: item = self.item_klass() item.name = 'Default' self.dump_item(item) names = list_directory2(paths.peak_center_config_dir, remove_extension=True, extension='.p') name = 'Default' p = os.path.join(paths.hidden_dir, add_extension('config', '.p')) if os.path.isfile(p): with open(p, 'rb') as rfile: obj = pickle.load(rfile) name = obj.get('name', 'Default') self.names = names self.active_name = name self.active_item.trait_set(**kw)
def load(self): """ load detectors load setupfiles/spectrometer/config.cfg file load magnet load deflections coefficients :return: """ self.load_detectors() # load local configurations self.spectrometer_configurations = list_directory2(paths.spectrometer_config_dir, remove_extension=True, extension='.cfg') name = get_spectrometer_config_name() sc, _ = os.path.splitext(name) self.spectrometer_configuration = sc p = get_spectrometer_config_path(name) config = self.get_configuration_writer(p) pd = 'Protection' if config.has_section(pd): self.magnet.use_beam_blank = self.config_get(config, pd, 'use_beam_blank', cast='boolean', default=False) self.magnet.use_detector_protection = self.config_get(config, pd, 'use_detector_protection', cast='boolean', default=False) self.magnet.beam_blank_threshold = self.config_get(config, pd, 'beam_blank_threshold', cast='float', default=0.1) # self.magnet.detector_protection_threshold = self.config_get(config, pd, # 'detector_protection_threshold', # cast='float', default=0.1) ds = self.config_get(config, pd, 'detectors') if ds: ds = ds.split(',') self.magnet.protected_detectors = ds for di in ds: self.info('Making protection available for detector "{}"'.format(di)) if config.has_section('Deflections'): if config.has_option('Deflections', 'max'): v = config.getint('Deflections', 'max') if v: self.max_deflection = v self.magnet.load() self.debug('Detectors {}'.format(self.detectors)) for d in self.detectors: d.load_deflection_coefficients()
def _get_nanalyses(self): return len(list_directory2(self.path, extension='.yaml')) # ============= EOF ============================================= # def schema_diff(self, attrs): # """ # show the diff for the given schema keyword `attr` between the working and master # """ # repo = self._repo # master_commit = repo.heads.master.commit # working_commit = repo.heads.working.commit # # ds = working_commit.diff(master_commit, create_patch=True) # # ds = working_commit.diff(master_commit) # # if not isinstance(attrs, (tuple, list)): # attrs = (attrs, ) # # attr_diff = {} # for ci in ds.iter_change_type('M'): # a = ci.a_blob.data_stream # # ayd = yaml.load(a) # # print 'a', a.read() # b = ci.b_blob.data_stream # # byd = yaml.load(b) # for attr in attrs: # # try: # av = ayd[attr] # except KeyError: # av = None # # try: # bv = byd[attr] # except KeyError: # bv = None # # attr_diff[attr] = av == bv, av, bv # # return attr_diff
def _my_task_extensions_default(self): ex = [TaskExtension(actions=[SchemaAddition(id='refresh_canvas', factory=RefreshCanvasAction, path='MenuBar/tools.menu')])] if self.application.get_plugin('pychron.pyscript.plugin'): actions = [] for f in list_directory2(paths.procedures_dir, extension='.py', remove_extension=True): actions.append(SchemaAddition(id='procedure.{}'.format(f), factory=procedure_action(f, self.application), path='MenuBar/procedures.menu')) if actions: actions.insert(0, SchemaAddition(id='procedures.menu', before='window.menu', after='tools.menu', factory=lambda: SMenu(name='Procedures', id='procedures.menu'), path='MenuBar')) ex.append(TaskExtension(actions=actions)) else: logger.warning('no procedure scripts located in "{}"'.format(paths.procedures_dir)) return ex
def _task_extensions_default(self): ex = [ TaskExtension(actions=[ SchemaAddition(id='refresh_canvas', factory=RefreshCanvasAction, path='MenuBar/tools.menu') ]) ] if self.application.get_plugin('pychron.pyscript.plugin'): actions = [] for f in list_directory2(paths.procedures_dir, extension='.py', remove_extension=True): actions.append( SchemaAddition(id='procedure.{}'.format(f), factory=procedure_action( f, self.application), path='MenuBar/procedures.menu')) if actions: actions.insert( 0, SchemaAddition(id='procedures.menu', before='window.menu', after='tools.menu', factory=lambda: SMenu(name='Procedures', id='procedures.menu'), path='MenuBar')) ex.append(TaskExtension(actions=actions)) else: self.warning('no procedure scripts located in "{}"'.format( paths.procedures_dir)) return ex
def _load_queue_conditionals(self): root = paths.queue_conditionals_dir cs = list_directory2(root, remove_extension=True) self.available_conditionals = [NULL_STR] + cs
def _load_names(self): names = list_directory2(paths.peak_center_config_dir, remove_extension=True, extension='.p') self.names = names
def _load_available_names(self): ps = list_directory2(paths.fits_dir, extension='.yaml', remove_extension=True) self.available_names = ps
def _get_available_default_fits(self): return list_directory2(paths.fits_dir, extension='.yaml', remove_extension=True)
def _get_nanalyses(self): return len(list_directory2(self.path, extension='.yaml'))
def get_irradiation_holder_names(self): return list_directory2(os.path.join(paths.meta_root, 'irradiation_holders'), extension='.txt', remove_extension=True)
def _load_blocks(self): p = paths.run_block_dir blocks = list_directory2(p, '.txt', remove_extension=True) self.blocks = blocks
def _get_available_hops(self): return list_directory2(os.path.join(paths.measurement_dir, 'hops'), extension='.txt', remove_extension=True)
def get_irradiation_holder_names(self): return list_directory2(os.path.join(paths.meta_dir, 'irradiation_holders'), extension='.txt', remove_extension=True)
def load(self): """ load detectors load setupfiles/spectrometer/config.cfg file load magnet load deflections coefficients :return: """ self.load_detectors() # load local configurations self.spectrometer_configurations = list_directory2( paths.spectrometer_config_dir, remove_extension=True, extension='.cfg') name = get_spectrometer_config_name() sc, _ = os.path.splitext(name) self.spectrometer_configuration = sc p = get_spectrometer_config_path(name) config = self.get_configuration_writer(p) pd = 'Protection' if config.has_section(pd): self.magnet.use_beam_blank = self.config_get(config, pd, 'use_beam_blank', cast='boolean', default=False) self.magnet.use_detector_protection = self.config_get(config, pd, 'use_detector_protection', cast='boolean', default=False) self.magnet.beam_blank_threshold = self.config_get(config, pd, 'beam_blank_threshold', cast='float', default=0.1) # self.magnet.detector_protection_threshold = self.config_get(config, pd, # 'detector_protection_threshold', # cast='float', default=0.1) ds = self.config_get(config, pd, 'detectors') if ds: ds = ds.split(',') self.magnet.protected_detectors = ds for di in ds: self.info( 'Making protection available for detector "{}"'.format( di)) if config.has_section('Deflections'): if config.has_option('Deflections', 'max'): v = config.getint('Deflections', 'max') if v: self.max_deflection = v self.magnet.load() self.debug('Detectors {}'.format(self.detectors)) for d in self.detectors: d.load_deflection_coefficients()
def _load_names(self): self.names = [ n for n in list_directory2( self.persistence_root, extension='.p', remove_extension=True) if n != 'selected' ]
def _load_names(self): self.names = [n for n in list_directory2(self.persistence_root, extension='.p', remove_extension=True) if n != 'selected']