def init(target_directory, view): """ Create a new project and help with onboarding. This guided input walks the user through setting up a new project and also onboards a new developer in an existing project. It scaffolds directories, sets up notebooks, creates a project file, and appends to a `.gitignore` file. """ target_directory = os.path.abspath(target_directory) ge_dir = _get_full_path_to_ge_dir(target_directory) ge_yml = os.path.join(ge_dir, DataContext.GE_YML) cli_message(GREETING) # TODO this should be a property if os.path.isfile(ge_yml): if DataContext.all_uncommitted_directories_exist(ge_dir) and \ DataContext.config_variables_yml_exist(ge_dir): # Ensure the context can be instantiated try: _ = DataContext(ge_dir) cli_message(PROJECT_IS_COMPLETE) except ge_exceptions.DataContextError as e: cli_message("<red>{}</red>".format(e)) exit(5) else: _complete_onboarding(target_directory) try: # if expectations exist, offer to build docs context = DataContext(ge_dir) if context.list_expectation_suite_keys(): if click.confirm(BUILD_DOCS_PROMPT, default=True): context.build_data_docs() context.open_data_docs() except ge_exceptions.DataContextError as e: cli_message("<red>{}</red>".format(e)) else: if not click.confirm(LETS_BEGIN_PROMPT, default=True): cli_message(RUN_INIT_AGAIN) exit(0) context, data_source_name, data_source_type = _create_new_project( target_directory) if not data_source_name: # no datasource was created return profile_datasource(context, data_source_name, open_docs=view, additional_batch_kwargs={"limit": 1000}) cli_message( """\n<cyan>Great Expectations is now set up in your project!</cyan>""" )
def build_docs(directory, site_name, view=True): """Build Data Docs for a project.""" logger.debug("Starting cli.build_docs") try: context = DataContext(directory) build_documentation_impl(context, site_name=site_name) if view: context.open_data_docs() except ge_exceptions.ConfigNotFoundError as err: cli_message("<red>{}</red>".format(err.message)) sys.exit(1) except ge_exceptions.ZeroDotSevenConfigVersionError as err: _offer_to_install_new_template(err, context.root_directory) return except ge_exceptions.PluginModuleNotFoundError as err: cli_message(err.cli_colored_message) sys.exit(1) except ge_exceptions.PluginClassNotFoundError as err: cli_message(err.cli_colored_message) sys.exit(1)