def _sort_from_lines(fn): # sort 'from' order replacement_str_pair_list = [] raw = SafeFile(fn).read_close() for import_line in ifilter(lambda line: line.startswith('from '), raw.splitlines()): try: _from, _source, _import, _what = import_line.split(None, 3) assert _from == 'from' assert _import == 'import' _comment = None if '#' in _what: _what, _comment = lmap(str.strip, _what.split('#', 1)) import_list = sorted(imap(str.strip, _what.split(','))) new_import_line = 'from %s import %s' % ( _source, str.join(', ', import_list)) if _comment is not None: new_import_line += ' # ' + _comment replacement_str_pair_list.append((import_line, new_import_line)) except: logging.warning('%s: %s', fn, import_line) raise for (old, new) in replacement_str_pair_list: raw = raw.replace(old, new) open(fn, 'w').write(raw)
def __init__(self, config, name, check_executor, cancel_executor): WMS.__init__(self, config, name) for executor in [check_executor, cancel_executor]: executor.setup(self._log) (self._check_executor, self._cancel_executor) = (check_executor, cancel_executor) if self._name != self.__class__.__name__.upper(): self._log.info('Using batch system: %s (%s)', self.__class__.__name__, self._name) else: self._log.info('Using batch system: %s', self._name) self._runlib = config.get_work_path('gc-run.lib') fp = SafeFile(self._runlib, 'w') content = SafeFile(get_path_share('gc-run.lib')).read() fp.write( content.replace('__GC_VERSION__', __import__('grid_control').__version__)) fp.close() self._path_output = config.get_work_path('output') self._path_file_cache = config.get_work_path('files') ensure_dir_exists(self._path_output, 'output directory') self._path_fail = config.get_work_path('fail') # Initialise access token and storage managers # UI -> SE -> WN self._sm_se_in = config.get_plugin('se input manager', 'SEStorageManager', cls=StorageManager, bind_kwargs={'tags': [self]}, pargs=('se', 'se input', 'SE_INPUT')) self._sm_sb_in = config.get_plugin('sb input manager', 'LocalSBStorageManager', cls=StorageManager, bind_kwargs={'tags': [self]}, pargs=('sandbox', 'sandbox', 'SB_INPUT')) # UI <- SE <- WN self._sm_se_out = config.get_plugin('se output manager', 'SEStorageManager', cls=StorageManager, bind_kwargs={'tags': [self]}, pargs=('se', 'se output', 'SE_OUTPUT')) self._sm_sb_out = None self._token = config.get_composited_plugin(['proxy', 'access token'], 'TrivialAccessToken', 'MultiAccessToken', cls=AccessToken, bind_kwargs={ 'inherit': True, 'tags': [self] }) self._output_fn_list = None
def _sort_import_lines(fn): # sort 'import' order replacement_str_pair_list = [] raw = SafeFile(fn).read_close() for import_line in ifilter(lambda line: line.startswith('import '), raw.splitlines()): import_list = sorted(imap( str.strip, import_line.replace('import ', '').split(',')), key=lambda x: (len(x), x)) replacement_str_pair_list.append( (import_line, 'import %s' % str.join(', ', import_list))) for (old, new) in replacement_str_pair_list: raw = raw.replace(old, new) open(fn, 'w').write(raw)
def __init__(self, config, name, check_executor, cancel_executor): WMS.__init__(self, config, name) for executor in [check_executor, cancel_executor]: executor.setup(self._log) (self._check_executor, self._cancel_executor) = (check_executor, cancel_executor) if self._name != self.__class__.__name__.upper(): self._log.info('Using batch system: %s (%s)', self.__class__.__name__, self._name) else: self._log.info('Using batch system: %s', self._name) self._runlib = config.get_work_path('gc-run.lib') fp = SafeFile(self._runlib, 'w') content = SafeFile(get_path_share('gc-run.lib')).read() fp.write(content.replace('__GC_VERSION__', __import__('grid_control').__version__)) fp.close() self._path_output = config.get_work_path('output') self._path_file_cache = config.get_work_path('files') ensure_dir_exists(self._path_output, 'output directory') self._path_fail = config.get_work_path('fail') # Initialise access token and storage managers # UI -> SE -> WN self._sm_se_in = config.get_plugin('se input manager', 'SEStorageManager', cls=StorageManager, bind_kwargs={'tags': [self]}, pargs=('se', 'se input', 'SE_INPUT')) self._sm_sb_in = config.get_plugin('sb input manager', 'LocalSBStorageManager', cls=StorageManager, bind_kwargs={'tags': [self]}, pargs=('sandbox', 'sandbox', 'SB_INPUT')) # UI <- SE <- WN self._sm_se_out = config.get_plugin('se output manager', 'SEStorageManager', cls=StorageManager, bind_kwargs={'tags': [self]}, pargs=('se', 'se output', 'SE_OUTPUT')) self._sm_sb_out = None self._token = config.get_composited_plugin(['proxy', 'access token'], 'TrivialAccessToken', 'MultiAccessToken', cls=AccessToken, bind_kwargs={'inherit': True, 'tags': [self]}) self._output_fn_list = None