def init(project, run, model): """Initialize a new polyaxonfile specification.""" user, project_name = get_project_or_local(project) try: project_config = PolyaxonClients().project.get_project(user, project_name) except (PolyaxonHTTPError, PolyaxonShouldExitError) as e: Printer.print_error('Make sure you have a project with this name `{}`'.format(project)) Printer.print_error('You can a new project with this command: ' 'polyaxon project create --name={} --description=...'.format(project)) Printer.print_error('Error message `{}`.'.format(e)) sys.exit(1) if not any([model, run]) and not all([model, run]): Printer.print_error("You must specify which an init option, " "possible values: `--model` or `--run`.") sys.exit(1) result = False if model: result = create_init_file(constants.INIT_FILE_MODEL) elif run: result = create_init_file(constants.INIT_FILE_RUN) if result: ProjectManager.set_config(project_config, init=True) IgnoreManager.init_config() Printer.print_success( "Project `{}` was initialized and Polyaxonfile was created successfully `{}`".format( project, constants.INIT_FILE)) sys.exit(1) # if we are here the file was not created if not os.path.isfile(constants.INIT_FILE): Printer.print_error( "Something went wrong, init command did not create a file.\n" "Possible reasons: you don't have the write to create the file.") sys.exit(1) # file was already there, let's check if the project passed correspond to this file try: PolyaxonFile(constants.INIT_FILE).specification except (PolyaxonfileError, ValidationError) as e: Printer.print_error( "Something went wrong, init command did not create a file.\n" "Another file already exist with.") Printer.print_error('Error message: `{}`.'.format(e)) sys.exit(1) # At this point we check if we need to re init configurations ProjectManager.set_config(project_config, init=True) IgnoreManager.init_config() Printer.print_success( "Project `{}` was initialized and Polyaxonfile was created successfully `{}`".format( project, constants.INIT_FILE))
def init(project, polyaxonfile): """Initialize a new polyaxonfile specification.""" user, project_name = get_project_or_local(project) try: project_config = PolyaxonClient().project.get_project( user, project_name) except (PolyaxonHTTPError, PolyaxonShouldExitError, PolyaxonClientException) as e: Printer.print_error( 'Make sure you have a project with this name `{}`'.format(project)) Printer.print_error( 'You can a create new project with this command: ' 'polyaxon project create ' '--name={} [--description=...] [--tags=...]'.format(project_name)) Printer.print_error('Error message `{}`.'.format(e)) sys.exit(1) init_project = False if ProjectManager.is_initialized(): local_project = ProjectManager.get_config() click.echo( 'Warning! This project is already initialized with the following project:' ) with clint.textui.indent(4): clint.textui.puts('User: {}'.format(local_project.user)) clint.textui.puts('Project: {}'.format(local_project.name)) if click.confirm('Would you like to override this current config?', default=False): init_project = True else: init_project = True if init_project: ProjectManager.purge() ProjectManager.set_config(project_config, init=True) Printer.print_success('Project was initialized') else: Printer.print_header('Project config was not changed.') init_ignore = False if IgnoreManager.is_initialized(): click.echo('Warning! Found a .polyaxonignore file.') if click.confirm('Would you like to override it?', default=False): init_ignore = True else: init_ignore = True if init_ignore: IgnoreManager.init_config() Printer.print_success('New .polyaxonignore file was created.') else: Printer.print_header('.polyaxonignore file was not changed.') if polyaxonfile: create_polyaxonfile()