Example #1
0
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)
Example #2
0
    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
Example #3
0
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)
Example #4
0
	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