From 18f696ee3d312a36ee1727bc53bb4a9547ad946c Mon Sep 17 00:00:00 2001 From: Itamar Hartstein Date: Tue, 28 Feb 2023 15:31:34 +0200 Subject: [PATCH 1/3] config: don't do the dbt debug check if git is not installed --- elementary/config/config.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/elementary/config/config.py b/elementary/config/config.py index 98b524750..4ea61557c 100644 --- a/elementary/config/config.py +++ b/elementary/config/config.py @@ -1,4 +1,5 @@ import os +import subprocess from pathlib import Path from typing import Optional @@ -9,8 +10,11 @@ from elementary.clients.dbt.dbt_runner import DbtRunner from elementary.exceptions.exceptions import InvalidArgumentsError from elementary.monitor import dbt_project_utils +from elementary.utils.log import get_logger from elementary.utils.ordered_yaml import OrderedYaml +logger = get_logger(__name__) + class Config: _SLACK = "slack" @@ -195,6 +199,10 @@ def validate_send_report(self): ) def _validate_internal_dbt_project(self): + # dbt debug relies on git, so don't run it if git is not installed + if not self._is_git_installed(): + return + dbt_runner = DbtRunner( dbt_project_utils.PATH, self.profiles_dir, @@ -203,6 +211,14 @@ def _validate_internal_dbt_project(self): ) dbt_runner.debug(quiet=True) + @staticmethod + def _is_git_installed(): + try: + subprocess.run(["git", "--version"], capture_output=True, check=True) + return True + except Exception: + return False + def _validate_timezone(self): if self.timezone and not tz.gettz(self.timezone): raise InvalidArgumentsError("An invalid timezone was provided.") From 18d3a1a21ede6264b2f8b99a58baabdd9f4029ea Mon Sep 17 00:00:00 2001 From: Itamar Hartstein Date: Tue, 28 Feb 2023 15:33:02 +0200 Subject: [PATCH 2/3] no need for a logger --- elementary/config/config.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/elementary/config/config.py b/elementary/config/config.py index 4ea61557c..6e49ac689 100644 --- a/elementary/config/config.py +++ b/elementary/config/config.py @@ -10,11 +10,8 @@ from elementary.clients.dbt.dbt_runner import DbtRunner from elementary.exceptions.exceptions import InvalidArgumentsError from elementary.monitor import dbt_project_utils -from elementary.utils.log import get_logger from elementary.utils.ordered_yaml import OrderedYaml -logger = get_logger(__name__) - class Config: _SLACK = "slack" From 3183160b496ce62af89fae618e2c81d1dac79cd3 Mon Sep 17 00:00:00 2001 From: Itamar Hartstein Date: Tue, 28 Feb 2023 15:59:59 +0200 Subject: [PATCH 3/3] remove validation --- elementary/config/config.py | 29 ----------------------------- elementary/monitor/cli.py | 1 - 2 files changed, 30 deletions(-) diff --git a/elementary/config/config.py b/elementary/config/config.py index 6e49ac689..16b251c41 100644 --- a/elementary/config/config.py +++ b/elementary/config/config.py @@ -1,5 +1,4 @@ import os -import subprocess from pathlib import Path from typing import Optional @@ -7,9 +6,7 @@ from dateutil import tz from google.auth.exceptions import DefaultCredentialsError -from elementary.clients.dbt.dbt_runner import DbtRunner from elementary.exceptions.exceptions import InvalidArgumentsError -from elementary.monitor import dbt_project_utils from elementary.utils.ordered_yaml import OrderedYaml @@ -178,44 +175,18 @@ def has_gcs(self): return self.gcs_bucket_name and self.has_gcloud def validate_monitor(self): - self._validate_internal_dbt_project() self._validate_timezone() if not self.has_slack: raise InvalidArgumentsError( "Either a Slack token and a channel or a Slack webhook is required." ) - def validate_report(self): - self._validate_internal_dbt_project() - def validate_send_report(self): - self._validate_internal_dbt_project() if not self.has_send_report_platform: raise InvalidArgumentsError( "You must provide a platform to upload the report to (Slack token / S3 / GCS)." ) - def _validate_internal_dbt_project(self): - # dbt debug relies on git, so don't run it if git is not installed - if not self._is_git_installed(): - return - - dbt_runner = DbtRunner( - dbt_project_utils.PATH, - self.profiles_dir, - self.profile_target, - dbt_env_vars=self.dbt_env_vars, - ) - dbt_runner.debug(quiet=True) - - @staticmethod - def _is_git_installed(): - try: - subprocess.run(["git", "--version"], capture_output=True, check=True) - return True - except Exception: - return False - def _validate_timezone(self): if self.timezone and not tz.gettz(self.timezone): raise InvalidArgumentsError("An invalid timezone was provided.") diff --git a/elementary/monitor/cli.py b/elementary/monitor/cli.py index 359406fa1..e5a38e56c 100644 --- a/elementary/monitor/cli.py +++ b/elementary/monitor/cli.py @@ -349,7 +349,6 @@ def report( Command.REPORT, get_cli_properties(), ctx.command.name ) try: - config.validate_report() data_monitoring = DataMonitoringReport( config=config, tracking=anonymous_tracking,