diff --git a/dbt2looker/cli.py b/dbt2looker/cli.py index a7c0ee4..ad8e294 100644 --- a/dbt2looker/cli.py +++ b/dbt2looker/cli.py @@ -98,20 +98,23 @@ def run(): type=str, ) args = argparser.parse_args() + run_convert(args.target_dir, args.project_dir, args.output_dir, args.tag, args.log_level) + +def run_convert(target_dir='./target', project_dir='./', output_dir=DEFAULT_LOOKML_OUTPUT_DIR, tag=None, log_level='INFO'): logging.basicConfig( - level=getattr(logging, args.log_level), + level=getattr(logging, log_level), format='%(asctime)s %(levelname)-6s %(message)s', datefmt='%H:%M:%S', ) # Load raw manifest file - raw_manifest = get_manifest(prefix=args.target_dir) - raw_catalog = get_catalog(prefix=args.target_dir) - raw_config = get_dbt_project_config(prefix=args.project_dir) + raw_manifest = get_manifest(prefix=target_dir) + raw_catalog = get_catalog(prefix=target_dir) + raw_config = get_dbt_project_config(prefix=project_dir) - # Get dbt models from manifest + # Get dbt models from manifestpo dbt_project_config = parser.parse_dbt_project_config(raw_config) - typed_dbt_models = parser.parse_typed_models(raw_manifest, raw_catalog, tag=args.tag) + typed_dbt_models = parser.parse_typed_models(raw_manifest, raw_catalog, tag=tag) adapter_type = parser.parse_adapter_type(raw_manifest) # Generate lookml views @@ -119,12 +122,12 @@ def run(): generator.lookml_view_from_dbt_model(model, adapter_type) for model in typed_dbt_models ] - pathlib.Path(os.path.join(args.output_dir, 'views')).mkdir(parents=True, exist_ok=True) + pathlib.Path(os.path.join(output_dir, 'views')).mkdir(parents=True, exist_ok=True) for view in lookml_views: - with open(os.path.join(args.output_dir, 'views', view.filename), 'w') as f: + with open(os.path.join(output_dir, 'views', view.filename), 'w') as f: f.write(view.contents) - logging.info(f'Generated {len(lookml_views)} lookml views in {os.path.join(args.output_dir, "views")}') + logging.info(f'Generated {len(lookml_views)} lookml views in {os.path.join(output_dir, "views")}') # Generate Lookml models lookml_models = [ @@ -132,7 +135,8 @@ def run(): for model in typed_dbt_models ] for model in lookml_models: - with open(os.path.join(args.output_dir, model.filename), 'w') as f: + with open(os.path.join(output_dir, model.filename), 'w') as f: f.write(model.contents) - logging.info(f'Generated {len(lookml_models)} lookml models in {args.output_dir}') + logging.info(f'Generated {len(lookml_models)} lookml models in {output_dir}') logging.info('Success') +