def maybe_run_cnf(cnf, func): """ Runs a function on a configuration, unless results already exist or a lock file indicates that training is already running in another process. Creates a lock file if the function is executed. """ # If results already exist for this configuration, then return them. res_flp = get_partial_results_flp(cnf) if path.exists(res_flp): print(f"Results already exist: {res_flp}") with np.load(res_flp) as fil: return fil[RESULTS_KEY] # If a lock file exists for this configuration, then skip it. out_dir = cnf["out_dir"] if utils.check_lock_file(out_dir): print(f"Configuration running somewhere else: {out_dir}") return None # Otherwise, create a lock file and process the configuration. utils.create_lock_file(out_dir) return func(cnf)
def run(self): _program = 'migasfree upload' parser = optparse.OptionParser( description=_program, prog=self.CMD, version=self.release, usage='%prog options' ) print(_('%(program)s version: %(version)s') % { 'program': _program, 'version': self.release }) # migasfree-upload {-f file [--regular-file] | -d dir [-n name]} # [[-u user] [-p pwd] [--main-project project] [-s store] [--no-create-repo]] parser.add_option( "--file", "-f", action="store", help=_('File to upload at server') ) parser.add_option( "--regular-file", "-r", action="store_true", help=_('File is not a software package') ) parser.add_option( "--dir", "-d", action="store", help=_('Directory with files to upload at server') ) parser.add_option( "--name", "-n", action="store", help=_('Name of the directory at server') ) parser.add_option( "--user", "-u", action="store", help=_('Authorized user to upload at server') ) parser.add_option( "--pwd", "-p", action="store", help=_('User password') ) parser.add_option( "--main-project", "-m", action="store", help=_('Project to upload files') ) parser.add_option( "--store", "-s", action="store", help=_('Store to upload files at server') ) parser.add_option( "--no-create-repo", "-c", action="store_true", help=_('No create repository after upload file at server') ) options, arguments = parser.parse_args() # check restrictions if not options.file and not options.dir: self._usage_examples() parser.error(_('File or Dir options are mandatory!!!')) if options.file and options.dir: self._usage_examples() parser.error(_('File and Dir options are exclusive!!!')) if options.regular_file and options.dir: self._usage_examples() parser.error(_('This option does not apply with Dir option!!!')) if options.name and options.file: self._usage_examples() parser.error(_('This option does not apply with File option!!!')) utils.check_lock_file(self.CMD, self.LOCK_FILE) # assign config options if options.user: self.packager_user = options.user if options.pwd: self.packager_pwd = options.pwd if options.main_project: self.packager_project = options.main_project if options.store: self.packager_store = options.store if options.no_create_repo: self._create_repo = not options.no_create_repo # actions dispatcher if options.file: self._file = options.file self._is_regular_file = (options.regular_file is True) if self._is_regular_file: self._create_repo = False elif options.dir: self._directory = options.dir if options.name: self._server_directory = options.name else: self._server_directory = options.dir else: parser.print_help() self._usage_examples() self._left_parameters() self.auto_register_user = self.packager_user self.auto_register_password = self.packager_pwd self.auto_register_command = 'get_key_packager' self._show_running_options() if self._file: self._upload_file() else: self._upload_set() utils.remove_file(self.LOCK_FILE) sys.exit(os.EX_OK) # no error
def run(self): _program = 'migasfree client' parser = optparse.OptionParser( description=_program, prog=self.CMD, version=__version__, usage='%prog options' ) print(_('%(program)s version: %(version)s') % { 'program': _program, 'version': __version__ }) parser.add_option("--register", "-g", action="store_true", help=_('Register computer at server')) parser.add_option("--update", "-u", action="store_true", help=_('Update system from repositories')) parser.add_option("--search", "-s", action="store", help=_('Search package in repositories')) parser.add_option( "--install", "-i", action="store_true", #help=_('Install package or device') help=_('Install package') ) parser.add_option( "--remove", "-r", action="store_true", #help=_('Remove package or device') help=_('Remove package') ) parser.add_option("--package", "-p", action="store", help=_('Package to install or remove')) #parser.add_option("--device", "-d", action = "store", # help = _('Device to install or remove')) options, arguments = parser.parse_args() # check restrictions if options.register and \ (options.install or options.remove or options.update or options.search): self._usage_examples() parser.error(_('Register option is exclusive!!!')) if options.update and \ (options.install or options.remove or options.search): self._usage_examples() parser.error(_('Update option is exclusive!!!')) if options.search and (options.install or options.remove): self._usage_examples() parser.error(_('Search option is exclusive!!!')) if options.install and options.remove: parser.print_help() self._usage_examples() parser.error(_('Install and remove are exclusive!!!')) if options.install and not (options.package or options.device): self._usage_examples() #parser.error(_('Install needs package or device!!!')) parser.error(_('Install needs a package!!!')) if options.remove and not (options.package or options.device): self._usage_examples() #parser.error(_('Remove needs package or device!!!')) parser.error(_('Remove needs a package!!!')) utils.check_lock_file(self.CMD, self.LOCK_FILE) self._show_running_options() # actions dispatcher if options.update: self._update_system() elif options.register: self._register_computer() elif options.search: self._search(options.search) elif options.install and options.package: self._install_package(options.package) elif options.install and options.device: self._install_device(options.device) elif options.remove and options.package: self._remove_package(options.package) elif options.remove and options.device: self._remove_device(options.device) else: parser.print_help() self._usage_examples() utils.remove_file(self.LOCK_FILE) sys.exit(os.EX_OK) # no error
def run(self): _program = 'migasfree client' parser = optparse.OptionParser(description=_program, prog=self.CMD, version=__version__, usage='%prog options') print( _('%(program)s version: %(version)s') % { 'program': _program, 'version': __version__ }) parser.add_option("--register", "-g", action="store_true", help=_('Register computer at server')) parser.add_option("--update", "-u", action="store_true", help=_('Update system from repositories')) parser.add_option("--search", "-s", action="store", help=_('Search package in repositories')) parser.add_option( "--install", "-i", action="store_true", #help=_('Install package or device') help=_('Install package')) parser.add_option( "--remove", "-r", action="store_true", #help=_('Remove package or device') help=_('Remove package')) parser.add_option("--package", "-p", action="store", help=_('Package to install or remove')) #parser.add_option("--device", "-d", action = "store", # help = _('Device to install or remove')) options, arguments = parser.parse_args() # check restrictions if options.register and \ (options.install or options.remove or options.update or options.search): self._usage_examples() parser.error(_('Register option is exclusive!!!')) if options.update and \ (options.install or options.remove or options.search): self._usage_examples() parser.error(_('Update option is exclusive!!!')) if options.search and (options.install or options.remove): self._usage_examples() parser.error(_('Search option is exclusive!!!')) if options.install and options.remove: parser.print_help() self._usage_examples() parser.error(_('Install and remove are exclusive!!!')) if options.install and not (options.package or options.device): self._usage_examples() #parser.error(_('Install needs package or device!!!')) parser.error(_('Install needs a package!!!')) if options.remove and not (options.package or options.device): self._usage_examples() #parser.error(_('Remove needs package or device!!!')) parser.error(_('Remove needs a package!!!')) utils.check_lock_file(self.CMD, self.LOCK_FILE) self._show_running_options() # actions dispatcher if options.update: self._update_system() elif options.register: self._register_computer() elif options.search: self._search(options.search) elif options.install and options.package: self._install_package(options.package) elif options.install and options.device: self._install_device(options.device) elif options.remove and options.package: self._remove_package(options.package) elif options.remove and options.device: self._remove_device(options.device) else: parser.print_help() self._usage_examples() utils.remove_file(self.LOCK_FILE) sys.exit(os.EX_OK) # no error