generator/__init__.py (35 lines of code) (raw):

"""Generate LookML. .. include:: ../README.md .. include:: ../architecture/namespaces_yaml.md """ __docformat__ = "restructuredtext" import sys import warnings import click from google.auth.exceptions import DefaultCredentialsError from google.cloud import bigquery from .lookml import lookml from .namespaces import namespaces from .spoke import update_spoke def is_authenticated(): """Check if the user is authenticated to GCP.""" try: bigquery.Client() except DefaultCredentialsError: return False return True def cli(prog_name=None): """Generate and run CLI.""" if not is_authenticated(): print( "Authentication to GCP required. Run `gcloud auth login --update-adc` " "and check that the project is set correctly." ) sys.exit(1) commands = { "namespaces": namespaces, "lookml": lookml, "update-spoke": update_spoke, } @click.group(commands=commands) def group(): """CLI interface for lookml automation.""" warnings.filterwarnings( "ignore", "Your application has authenticated using end user credentials", module="google.auth._default", ) group(prog_name=prog_name)