From 3022f79729ec0734a159ec955023fe0997da5de3 Mon Sep 17 00:00:00 2001 From: Gerda Shank Date: Thu, 14 Dec 2023 12:32:26 -0500 Subject: [PATCH 01/22] Rename UserConfig to ProjectFlags --- core/dbt/cli/flags.py | 22 +- core/dbt/config/__init__.py | 2 +- core/dbt/config/profile.py | 56 ++--- core/dbt/config/runtime.py | 6 +- core/dbt/contracts/connection.py | 4 +- core/dbt/contracts/project.py | 6 +- core/dbt/flags.py | 14 +- core/dbt/tracking.py | 1 - core/dbt/utils.py | 2 +- .../fail_fast/test_fail_fast_run.py | 2 +- tests/unit/test_cli_flags.py | 64 +++--- tests/unit/test_config.py | 36 +-- tests/unit/test_flags.py | 206 +++++++++--------- tests/unit/test_graph_selection.py | 4 +- 14 files changed, 214 insertions(+), 211 deletions(-) diff --git a/core/dbt/cli/flags.py b/core/dbt/cli/flags.py index 2678d53b6dd..da1a60bb74d 100644 --- a/core/dbt/cli/flags.py +++ b/core/dbt/cli/flags.py @@ -11,8 +11,8 @@ from dbt.cli.exceptions import DbtUsageException from dbt.cli.resolvers import default_log_path, default_project_dir from dbt.cli.types import Command as CliCommand -from dbt.config.profile import read_user_config -from dbt.contracts.project import UserConfig +from dbt.config.profile import read_project_flags +from dbt.contracts.project import ProjectFlags from dbt.exceptions import DbtInternalError from dbt.deprecations import renamed_env_var from dbt.helper_types import WarnErrorOptions @@ -24,7 +24,7 @@ FLAGS_DEFAULTS = { "INDIRECT_SELECTION": "eager", "TARGET_PATH": None, - # Cli args without user_config or env var option. + # Cli args without project_flags or env var option. "FULL_REFRESH": False, "STRICT_MODE": False, "STORE_FAILURES": False, @@ -76,7 +76,7 @@ class Flags: """Primary configuration artifact for running dbt""" def __init__( - self, ctx: Optional[Context] = None, user_config: Optional[UserConfig] = None + self, ctx: Optional[Context] = None, project_flags: Optional[ProjectFlags] = None ) -> None: # Set the default flags. @@ -201,23 +201,25 @@ def _assign_params( invoked_subcommand_ctx, params_assigned_from_default, deprecated_env_vars ) - if not user_config: + if not project_flags: profiles_dir = getattr(self, "PROFILES_DIR", None) - user_config = read_user_config(profiles_dir) if profiles_dir else None + project_flags = read_project_flags(profiles_dir) if profiles_dir else None # Add entire invocation command to flags object.__setattr__(self, "INVOCATION_COMMAND", "dbt " + " ".join(sys.argv[1:])) # Overwrite default assignments with user config if available. - if user_config: + if project_flags: param_assigned_from_default_copy = params_assigned_from_default.copy() for param_assigned_from_default in params_assigned_from_default: - user_config_param_value = getattr(user_config, param_assigned_from_default, None) - if user_config_param_value is not None: + project_flags_param_value = getattr( + project_flags, param_assigned_from_default, None + ) + if project_flags_param_value is not None: object.__setattr__( self, param_assigned_from_default.upper(), - convert_config(param_assigned_from_default, user_config_param_value), + convert_config(param_assigned_from_default, project_flags_param_value), ) param_assigned_from_default_copy.remove(param_assigned_from_default) params_assigned_from_default = param_assigned_from_default_copy diff --git a/core/dbt/config/__init__.py b/core/dbt/config/__init__.py index 1fa43bed3a5..60ab7d4dc6f 100644 --- a/core/dbt/config/__init__.py +++ b/core/dbt/config/__init__.py @@ -1,4 +1,4 @@ # all these are just exports, they need "noqa" so flake8 will not complain. -from .profile import Profile, read_user_config # noqa +from .profile import Profile, read_project_flags # noqa from .project import Project, IsFQNResource, PartialProject # noqa from .runtime import RuntimeConfig # noqa diff --git a/core/dbt/config/profile.py b/core/dbt/config/profile.py index acd06e6a8a7..932e130f6f9 100644 --- a/core/dbt/config/profile.py +++ b/core/dbt/config/profile.py @@ -8,7 +8,7 @@ from dbt.clients.system import load_file_contents from dbt.clients.yaml_helper import load_yaml_text from dbt.contracts.connection import Credentials, HasCredentials -from dbt.contracts.project import ProfileConfig, UserConfig +from dbt.contracts.project import ProfileConfig, ProjectFlags from dbt.exceptions import ( CompilationError, DbtProfileError, @@ -51,17 +51,17 @@ def read_profile(profiles_dir: str) -> Dict[str, Any]: return {} -def read_user_config(directory: str) -> UserConfig: +def read_project_flags(directory: str) -> ProjectFlags: try: profile = read_profile(directory) if profile: - user_config = coerce_dict_str(profile.get("config", {})) - if user_config is not None: - UserConfig.validate(user_config) - return UserConfig.from_dict(user_config) + project_flags = coerce_dict_str(profile.get("config", {})) + if project_flags is not None: + ProjectFlags.validate(project_flags) + return ProjectFlags.from_dict(project_flags) except (DbtRuntimeError, ValidationError): pass - return UserConfig() + return ProjectFlags() # The Profile class is included in RuntimeConfig, so any attribute @@ -71,7 +71,7 @@ def read_user_config(directory: str) -> UserConfig: class Profile(HasCredentials): profile_name: str target_name: str - user_config: UserConfig + project_flags: ProjectFlags threads: int credentials: Credentials profile_env_vars: Dict[str, Any] @@ -80,7 +80,7 @@ def __init__( self, profile_name: str, target_name: str, - user_config: UserConfig, + project_flags: ProjectFlags, threads: int, credentials: Credentials, ) -> None: @@ -89,7 +89,7 @@ def __init__( """ self.profile_name = profile_name self.target_name = target_name - self.user_config = user_config + self.project_flags = project_flags self.threads = threads self.credentials = credentials self.profile_env_vars = {} # never available on init @@ -106,12 +106,12 @@ def to_profile_info(self, serialize_credentials: bool = False) -> Dict[str, Any] result = { "profile_name": self.profile_name, "target_name": self.target_name, - "user_config": self.user_config, + "project_flags": self.project_flags, "threads": self.threads, "credentials": self.credentials, } if serialize_credentials: - result["user_config"] = self.user_config.to_dict(omit_none=True) + result["project_flags"] = self.project_flags.to_dict(omit_none=True) result["credentials"] = self.credentials.to_dict(omit_none=True) return result @@ -124,7 +124,7 @@ def to_target_dict(self) -> Dict[str, Any]: "name": self.target_name, "target_name": self.target_name, "profile_name": self.profile_name, - "config": self.user_config.to_dict(omit_none=True), + "config": self.project_flags.to_dict(omit_none=True), } ) return target @@ -246,7 +246,7 @@ def from_credentials( threads: int, profile_name: str, target_name: str, - user_config: Optional[Dict[str, Any]] = None, + project_flags: Optional[Dict[str, Any]] = None, ) -> "Profile": """Create a profile from an existing set of Credentials and the remaining information. @@ -255,20 +255,20 @@ def from_credentials( :param threads: The number of threads to use for connections. :param profile_name: The profile name used for this profile. :param target_name: The target name used for this profile. - :param user_config: The user-level config block from the + :param project_flags: The user-level config block from the raw profiles, if specified. :raises DbtProfileError: If the profile is invalid. :returns: The new Profile object. """ - if user_config is None: - user_config = {} - UserConfig.validate(user_config) - user_config_obj: UserConfig = UserConfig.from_dict(user_config) + if project_flags is None: + project_flags = {} + ProjectFlags.validate(project_flags) + project_flags_obj: ProjectFlags = ProjectFlags.from_dict(project_flags) profile = cls( profile_name=profile_name, target_name=target_name, - user_config=user_config_obj, + project_flags=project_flags_obj, threads=threads, credentials=credentials, ) @@ -316,7 +316,7 @@ def from_raw_profile_info( raw_profile: Dict[str, Any], profile_name: str, renderer: ProfileRenderer, - user_config: Optional[Dict[str, Any]] = None, + project_flags: Optional[Dict[str, Any]] = None, target_override: Optional[str] = None, threads_override: Optional[int] = None, ) -> "Profile": @@ -328,7 +328,7 @@ def from_raw_profile_info( disk as yaml and its values rendered with jinja. :param profile_name: The profile name used. :param renderer: The config renderer. - :param user_config: The global config for the user, if it + :param project_flags: The global config for the user, if it was present. :param target_override: The target to use, if provided on the command line. @@ -338,9 +338,9 @@ def from_raw_profile_info( target could not be found :returns: The new Profile object. """ - # user_config is not rendered. - if user_config is None: - user_config = raw_profile.get("config") + # project_flags is not rendered. + if project_flags is None: + project_flags = raw_profile.get("config") # TODO: should it be, and the values coerced to bool? target_name, profile_data = cls.render_profile( raw_profile, profile_name, target_override, renderer @@ -361,7 +361,7 @@ def from_raw_profile_info( profile_name=profile_name, target_name=target_name, threads=threads, - user_config=user_config, + project_flags=project_flags, ) @classmethod @@ -396,13 +396,13 @@ def from_raw_profiles( if not raw_profile: msg = f"Profile {profile_name} in profiles.yml is empty" raise DbtProfileError(INVALID_PROFILE_MESSAGE.format(error_string=msg)) - user_config = raw_profiles.get("config") + project_flags = raw_profiles.get("config") return cls.from_raw_profile_info( raw_profile=raw_profile, profile_name=profile_name, renderer=renderer, - user_config=user_config, + project_flags=project_flags, target_override=target_override, threads_override=threads_override, ) diff --git a/core/dbt/config/runtime.py b/core/dbt/config/runtime.py index ab92be2f128..97c9c7d8c68 100644 --- a/core/dbt/config/runtime.py +++ b/core/dbt/config/runtime.py @@ -20,7 +20,7 @@ from dbt.config.project import load_raw_project from dbt.contracts.connection import AdapterRequiredConfig, Credentials, HasCredentials from dbt.contracts.graph.manifest import ManifestMetadata -from dbt.contracts.project import Configuration, UserConfig +from dbt.contracts.project import Configuration, ProjectFlags from dbt.contracts.relation import ComponentName from dbt.dataclass_schema import ValidationError from dbt.events.functions import warn_or_error @@ -178,7 +178,7 @@ def from_parts( profile_env_vars=profile.profile_env_vars, profile_name=profile.profile_name, target_name=profile.target_name, - user_config=profile.user_config, + project_flags=profile.project_flags, threads=profile.threads, credentials=profile.credentials, args=args, @@ -432,7 +432,7 @@ def _connection_keys(self): class UnsetProfile(Profile): def __init__(self): self.credentials = UnsetCredentials() - self.user_config = UserConfig() # This will be read in _get_rendered_profile + self.project_flags = ProjectFlags() # This will be read in _get_rendered_profile self.profile_name = "" self.target_name = "" self.threads = -1 diff --git a/core/dbt/contracts/connection.py b/core/dbt/contracts/connection.py index 692f40f71b7..9d7f88ce489 100644 --- a/core/dbt/contracts/connection.py +++ b/core/dbt/contracts/connection.py @@ -178,7 +178,7 @@ def __post_serialize__(self, dct): return dct -class UserConfigContract(Protocol): +class ProjectFlagContract(Protocol): send_anonymous_usage_stats: bool use_colors: Optional[bool] = None partial_parse: Optional[bool] = None @@ -188,7 +188,7 @@ class UserConfigContract(Protocol): class HasCredentials(Protocol): credentials: Credentials profile_name: str - user_config: UserConfigContract + project_flags: ProjectFlagContract target_name: str threads: int diff --git a/core/dbt/contracts/project.py b/core/dbt/contracts/project.py index a19cba4263e..2d90d95c401 100644 --- a/core/dbt/contracts/project.py +++ b/core/dbt/contracts/project.py @@ -1,5 +1,5 @@ from dbt.contracts.util import Replaceable, Mergeable, list_str, Identifier -from dbt.contracts.connection import QueryComment, UserConfigContract +from dbt.contracts.connection import QueryComment from dbt.helper_types import NoValue from dbt.dataclass_schema import ( dbtClassMixin, @@ -283,7 +283,7 @@ def validate(cls, data): @dataclass -class UserConfig(ExtensibleDbtClassMixin, Replaceable, UserConfigContract): +class ProjectFlags(ExtensibleDbtClassMixin, Replaceable): cache_selected_only: Optional[bool] = None debug: Optional[bool] = None fail_fast: Optional[bool] = None @@ -310,7 +310,7 @@ class UserConfig(ExtensibleDbtClassMixin, Replaceable, UserConfigContract): class ProfileConfig(dbtClassMixin, Replaceable): profile_name: str target_name: str - user_config: UserConfig + project_flags: ProjectFlags threads: int # TODO: make this a dynamic union of some kind? credentials: Optional[Dict[str, Any]] diff --git a/core/dbt/flags.py b/core/dbt/flags.py index 891d510f2e1..36bb75015f6 100644 --- a/core/dbt/flags.py +++ b/core/dbt/flags.py @@ -39,23 +39,23 @@ def get_flags(): return GLOBAL_FLAGS -def set_from_args(args: Namespace, user_config): +def set_from_args(args: Namespace, project_flags): global GLOBAL_FLAGS from dbt.cli.main import cli from dbt.cli.flags import Flags, convert_config - # we set attributes of args after initialize the flags, but user_config + # we set attributes of args after initialize the flags, but project_flags # is being read in the Flags constructor, so we need to read it here and pass in - # to make sure we use the correct user_config - if (hasattr(args, "PROFILES_DIR") or hasattr(args, "profiles_dir")) and not user_config: - from dbt.config.profile import read_user_config + # to make sure we use the correct project_flags + if (hasattr(args, "PROFILES_DIR") or hasattr(args, "profiles_dir")) and not project_flags: + from dbt.config.profile import read_project_flags profiles_dir = getattr(args, "PROFILES_DIR", None) or getattr(args, "profiles_dir") - user_config = read_user_config(profiles_dir) + project_flags = read_project_flags(profiles_dir) # make a dummy context to get the flags, totally arbitrary ctx = cli.make_context("run", ["run"]) - flags = Flags(ctx, user_config) + flags = Flags(ctx, project_flags) for arg_name, args_param_value in vars(args).items(): args_param_value = convert_config(arg_name, args_param_value) object.__setattr__(flags, arg_name.upper(), args_param_value) diff --git a/core/dbt/tracking.py b/core/dbt/tracking.py index 88022c93f0f..7febe4acdf6 100644 --- a/core/dbt/tracking.py +++ b/core/dbt/tracking.py @@ -471,7 +471,6 @@ def process(self, record): def initialize_from_flags(send_anonymous_usage_stats, profiles_dir): - # Setting these used to be in UserConfig, but had to be moved here global active_user if send_anonymous_usage_stats: active_user = User(profiles_dir) diff --git a/core/dbt/utils.py b/core/dbt/utils.py index 2386d226aab..fd4162ba35f 100644 --- a/core/dbt/utils.py +++ b/core/dbt/utils.py @@ -631,7 +631,7 @@ def _connection_exception_retry(fn, max_attempts: int, attempt: int = 0): def args_to_dict(args): var_args = vars(args).copy() # update the args with the flags, which could also come from environment - # variables or user_config + # variables or project_flags flag_dict = flags.get_flag_dict() var_args.update(flag_dict) dict_args = {} diff --git a/tests/functional/fail_fast/test_fail_fast_run.py b/tests/functional/fail_fast/test_fail_fast_run.py index ea956a2d540..9f05f418de5 100644 --- a/tests/functional/fail_fast/test_fail_fast_run.py +++ b/tests/functional/fail_fast/test_fail_fast_run.py @@ -52,7 +52,7 @@ def profiles_config_update(self): } } - def test_fail_fast_run_user_config( + def test_fail_fast_run_project_flags( self, project, models, # noqa: F811 diff --git a/tests/unit/test_cli_flags.py b/tests/unit/test_cli_flags.py index 83c0e251deb..7bd8651a1e3 100644 --- a/tests/unit/test_cli_flags.py +++ b/tests/unit/test_cli_flags.py @@ -9,7 +9,7 @@ from dbt.cli.flags import Flags from dbt.cli.main import cli from dbt.cli.types import Command -from dbt.contracts.project import UserConfig +from dbt.contracts.project import ProjectFlags from dbt.exceptions import DbtInternalError from dbt.helper_types import WarnErrorOptions from dbt.tests.util import rm_file, write_file @@ -27,8 +27,8 @@ def run_context(self) -> click.Context: return self.make_dbt_context("run", ["run"]) @pytest.fixture - def user_config(self) -> UserConfig: - return UserConfig() + def project_flags(self) -> ProjectFlags: + return ProjectFlags() def test_which(self, run_context): flags = Flags(run_context) @@ -110,35 +110,35 @@ def test_anonymous_usage_state( flags = Flags(run_context) assert flags.SEND_ANONYMOUS_USAGE_STATS == expected_anonymous_usage_stats - def test_empty_user_config_uses_default(self, run_context, user_config): - flags = Flags(run_context, user_config) + def test_empty_project_flags_uses_default(self, run_context, project_flags): + flags = Flags(run_context, project_flags) assert flags.USE_COLORS == run_context.params["use_colors"] - def test_none_user_config_uses_default(self, run_context): + def test_none_project_flags_uses_default(self, run_context): flags = Flags(run_context, None) assert flags.USE_COLORS == run_context.params["use_colors"] - def test_prefer_user_config_to_default(self, run_context, user_config): - user_config.use_colors = False + def test_prefer_project_flags_to_default(self, run_context, project_flags): + project_flags.use_colors = False # ensure default value is not the same as user config - assert run_context.params["use_colors"] is not user_config.use_colors + assert run_context.params["use_colors"] is not project_flags.use_colors - flags = Flags(run_context, user_config) - assert flags.USE_COLORS == user_config.use_colors + flags = Flags(run_context, project_flags) + assert flags.USE_COLORS == project_flags.use_colors - def test_prefer_param_value_to_user_config(self): - user_config = UserConfig(use_colors=False) + def test_prefer_param_value_to_project_flags(self): + project_flags = ProjectFlags(use_colors=False) context = self.make_dbt_context("run", ["--use-colors", "True", "run"]) - flags = Flags(context, user_config) + flags = Flags(context, project_flags) assert flags.USE_COLORS - def test_prefer_env_to_user_config(self, monkeypatch, user_config): - user_config.use_colors = False + def test_prefer_env_to_project_flags(self, monkeypatch, project_flags): + project_flags.use_colors = False monkeypatch.setenv("DBT_USE_COLORS", "True") context = self.make_dbt_context("run", ["run"]) - flags = Flags(context, user_config) + flags = Flags(context, project_flags) assert flags.USE_COLORS def test_mutually_exclusive_options_passed_separately(self): @@ -163,14 +163,14 @@ def test_mutually_exclusive_options_from_cli(self): Flags(context) @pytest.mark.parametrize("warn_error", [True, False]) - def test_mutually_exclusive_options_from_user_config(self, warn_error, user_config): - user_config.warn_error = warn_error + def test_mutually_exclusive_options_from_project_flags(self, warn_error, project_flags): + project_flags.warn_error = warn_error context = self.make_dbt_context( "run", ["--warn-error-options", '{"include": "all"}', "run"] ) with pytest.raises(DbtUsageException): - Flags(context, user_config) + Flags(context, project_flags) @pytest.mark.parametrize("warn_error", ["True", "False"]) def test_mutually_exclusive_options_from_envvar(self, warn_error, monkeypatch): @@ -182,14 +182,16 @@ def test_mutually_exclusive_options_from_envvar(self, warn_error, monkeypatch): Flags(context) @pytest.mark.parametrize("warn_error", [True, False]) - def test_mutually_exclusive_options_from_cli_and_user_config(self, warn_error, user_config): - user_config.warn_error = warn_error + def test_mutually_exclusive_options_from_cli_and_project_flags( + self, warn_error, project_flags + ): + project_flags.warn_error = warn_error context = self.make_dbt_context( "run", ["--warn-error-options", '{"include": "all"}', "run"] ) with pytest.raises(DbtUsageException): - Flags(context, user_config) + Flags(context, project_flags) @pytest.mark.parametrize("warn_error", ["True", "False"]) def test_mutually_exclusive_options_from_cli_and_envvar(self, warn_error, monkeypatch): @@ -202,15 +204,15 @@ def test_mutually_exclusive_options_from_cli_and_envvar(self, warn_error, monkey Flags(context) @pytest.mark.parametrize("warn_error", ["True", "False"]) - def test_mutually_exclusive_options_from_user_config_and_envvar( - self, user_config, warn_error, monkeypatch + def test_mutually_exclusive_options_from_project_flags_and_envvar( + self, project_flags, warn_error, monkeypatch ): - user_config.warn_error = warn_error + project_flags.warn_error = warn_error monkeypatch.setenv("DBT_WARN_ERROR_OPTIONS", '{"include": "all"}') context = self.make_dbt_context("run", ["run"]) with pytest.raises(DbtUsageException): - Flags(context, user_config) + Flags(context, project_flags) @pytest.mark.parametrize( "cli_colors,cli_colors_file,flag_colors,flag_colors_file", @@ -319,10 +321,10 @@ def test_log_format_interaction( assert flags.LOG_FORMAT_FILE == flag_log_format_file def test_log_settings_from_config(self): - """Test that values set in UserConfig for log settings will set flags as expected""" + """Test that values set in ProjectFlags for log settings will set flags as expected""" context = self.make_dbt_context("run", ["run"]) - config = UserConfig(log_format="json", log_level="warn", use_colors=False) + config = ProjectFlags(log_format="json", log_level="warn", use_colors=False) flags = Flags(context, config) @@ -334,11 +336,11 @@ def test_log_settings_from_config(self): assert flags.USE_COLORS_FILE is False def test_log_file_settings_from_config(self): - """Test that values set in UserConfig for log *file* settings will set flags as expected, leaving the console + """Test that values set in ProjectFlags for log *file* settings will set flags as expected, leaving the console logging flags with their default values""" context = self.make_dbt_context("run", ["run"]) - config = UserConfig(log_format_file="json", log_level_file="warn", use_colors_file=False) + config = ProjectFlags(log_format_file="json", log_level_file="warn", use_colors_file=False) flags = Flags(context, config) diff --git a/tests/unit/test_config.py b/tests/unit/test_config.py index 38516fdea0a..63b48a565af 100644 --- a/tests/unit/test_config.py +++ b/tests/unit/test_config.py @@ -262,8 +262,8 @@ def test_from_raw_profiles(self): self.assertEqual(profile.profile_name, "default") self.assertEqual(profile.target_name, "postgres") self.assertEqual(profile.threads, 7) - self.assertTrue(profile.user_config.send_anonymous_usage_stats) - self.assertIsNone(profile.user_config.use_colors) + self.assertTrue(profile.project_flags.send_anonymous_usage_stats) + self.assertIsNone(profile.project_flags.use_colors) self.assertTrue(isinstance(profile.credentials, PostgresCredentials)) self.assertEqual(profile.credentials.type, "postgres") self.assertEqual(profile.credentials.host, "postgres-db-hostname") @@ -281,8 +281,8 @@ def test_config_override(self): profile = self.from_raw_profiles() self.assertEqual(profile.profile_name, "default") self.assertEqual(profile.target_name, "postgres") - self.assertFalse(profile.user_config.send_anonymous_usage_stats) - self.assertFalse(profile.user_config.use_colors) + self.assertFalse(profile.project_flags.send_anonymous_usage_stats) + self.assertFalse(profile.project_flags.use_colors) def test_partial_config_override(self): self.default_profile_data["config"] = { @@ -292,9 +292,9 @@ def test_partial_config_override(self): profile = self.from_raw_profiles() self.assertEqual(profile.profile_name, "default") self.assertEqual(profile.target_name, "postgres") - self.assertFalse(profile.user_config.send_anonymous_usage_stats) - self.assertIsNone(profile.user_config.use_colors) - self.assertEqual(profile.user_config.printer_width, 60) + self.assertFalse(profile.project_flags.send_anonymous_usage_stats) + self.assertIsNone(profile.project_flags.use_colors) + self.assertEqual(profile.project_flags.printer_width, 60) def test_missing_type(self): del self.default_profile_data["default"]["outputs"]["postgres"]["type"] @@ -438,8 +438,8 @@ def test_profile_simple(self): self.assertEqual(profile.profile_name, "default") self.assertEqual(profile.target_name, "postgres") self.assertEqual(profile.threads, 7) - self.assertTrue(profile.user_config.send_anonymous_usage_stats) - self.assertIsNone(profile.user_config.use_colors) + self.assertTrue(profile.project_flags.send_anonymous_usage_stats) + self.assertIsNone(profile.project_flags.use_colors) self.assertTrue(isinstance(profile.credentials, PostgresCredentials)) self.assertEqual(profile.credentials.type, "postgres") self.assertEqual(profile.credentials.host, "postgres-db-hostname") @@ -464,8 +464,8 @@ def test_profile_override(self): self.assertEqual(profile.profile_name, "other") self.assertEqual(profile.target_name, "other-postgres") self.assertEqual(profile.threads, 3) - self.assertTrue(profile.user_config.send_anonymous_usage_stats) - self.assertIsNone(profile.user_config.use_colors) + self.assertTrue(profile.project_flags.send_anonymous_usage_stats) + self.assertIsNone(profile.project_flags.use_colors) self.assertTrue(isinstance(profile.credentials, PostgresCredentials)) self.assertEqual(profile.credentials.type, "postgres") self.assertEqual(profile.credentials.host, "other-postgres-db-hostname") @@ -485,8 +485,8 @@ def test_env_vars(self): self.assertEqual(profile.profile_name, "default") self.assertEqual(profile.target_name, "with-vars") self.assertEqual(profile.threads, 1) - self.assertTrue(profile.user_config.send_anonymous_usage_stats) - self.assertIsNone(profile.user_config.use_colors) + self.assertTrue(profile.project_flags.send_anonymous_usage_stats) + self.assertIsNone(profile.project_flags.use_colors) self.assertEqual(profile.credentials.type, "postgres") self.assertEqual(profile.credentials.host, "env-postgres-host") self.assertEqual(profile.credentials.port, 6543) @@ -505,8 +505,8 @@ def test_env_vars_env_target(self): self.assertEqual(profile.profile_name, "default") self.assertEqual(profile.target_name, "with-vars") self.assertEqual(profile.threads, 1) - self.assertTrue(profile.user_config.send_anonymous_usage_stats) - self.assertIsNone(profile.user_config.use_colors) + self.assertTrue(profile.project_flags.send_anonymous_usage_stats) + self.assertIsNone(profile.project_flags.use_colors) self.assertEqual(profile.credentials.type, "postgres") self.assertEqual(profile.credentials.host, "env-postgres-host") self.assertEqual(profile.credentials.port, 6543) @@ -537,8 +537,8 @@ def test_cli_and_env_vars(self): self.assertEqual(profile.profile_name, "default") self.assertEqual(profile.target_name, "cli-and-env-vars") self.assertEqual(profile.threads, 1) - self.assertTrue(profile.user_config.send_anonymous_usage_stats) - self.assertIsNone(profile.user_config.use_colors) + self.assertTrue(profile.project_flags.send_anonymous_usage_stats) + self.assertIsNone(profile.project_flags.use_colors) self.assertEqual(profile.credentials.type, "postgres") self.assertEqual(profile.credentials.host, "cli-postgres-host") self.assertEqual(profile.credentials.port, 6543) @@ -1083,7 +1083,7 @@ def test_validate_fails(self): project = self.get_project() profile = self.get_profile() # invalid - must be boolean - profile.user_config.use_colors = 100 + profile.project_flags.use_colors = 100 with self.assertRaises(dbt.exceptions.DbtProjectError): dbt.config.RuntimeConfig.from_parts(project, profile, {}) diff --git a/tests/unit/test_flags.py b/tests/unit/test_flags.py index 69d8913b675..5db2c13d96a 100644 --- a/tests/unit/test_flags.py +++ b/tests/unit/test_flags.py @@ -4,7 +4,7 @@ import pytest from dbt import flags -from dbt.contracts.project import UserConfig +from dbt.contracts.project import ProjectFlags from dbt.graph.selector_spec import IndirectSelection from dbt.helper_types import WarnErrorOptions @@ -15,188 +15,188 @@ class TestFlags(TestCase): def setUp(self): self.args = Namespace() - self.user_config = UserConfig() + self.project_flags = ProjectFlags() def test__flags(self): # use_experimental_parser - self.user_config.use_experimental_parser = True - flags.set_from_args(self.args, self.user_config) + self.project_flags.use_experimental_parser = True + flags.set_from_args(self.args, self.project_flags) self.assertEqual(flags.USE_EXPERIMENTAL_PARSER, True) os.environ["DBT_USE_EXPERIMENTAL_PARSER"] = "false" - flags.set_from_args(self.args, self.user_config) + flags.set_from_args(self.args, self.project_flags) self.assertEqual(flags.USE_EXPERIMENTAL_PARSER, False) setattr(self.args, "use_experimental_parser", True) - flags.set_from_args(self.args, self.user_config) + flags.set_from_args(self.args, self.project_flags) self.assertEqual(flags.USE_EXPERIMENTAL_PARSER, True) # cleanup os.environ.pop("DBT_USE_EXPERIMENTAL_PARSER") delattr(self.args, "use_experimental_parser") flags.USE_EXPERIMENTAL_PARSER = False - self.user_config.use_experimental_parser = None + self.project_flags.use_experimental_parser = None # static_parser - self.user_config.static_parser = False - flags.set_from_args(self.args, self.user_config) + self.project_flags.static_parser = False + flags.set_from_args(self.args, self.project_flags) self.assertEqual(flags.STATIC_PARSER, False) os.environ["DBT_STATIC_PARSER"] = "true" - flags.set_from_args(self.args, self.user_config) + flags.set_from_args(self.args, self.project_flags) self.assertEqual(flags.STATIC_PARSER, True) setattr(self.args, "static_parser", False) - flags.set_from_args(self.args, self.user_config) + flags.set_from_args(self.args, self.project_flags) self.assertEqual(flags.STATIC_PARSER, False) # cleanup os.environ.pop("DBT_STATIC_PARSER") delattr(self.args, "static_parser") flags.STATIC_PARSER = True - self.user_config.static_parser = None + self.project_flags.static_parser = None # warn_error - self.user_config.warn_error = False - flags.set_from_args(self.args, self.user_config) + self.project_flags.warn_error = False + flags.set_from_args(self.args, self.project_flags) self.assertEqual(flags.WARN_ERROR, False) os.environ["DBT_WARN_ERROR"] = "true" - flags.set_from_args(self.args, self.user_config) + flags.set_from_args(self.args, self.project_flags) self.assertEqual(flags.WARN_ERROR, True) setattr(self.args, "warn_error", False) - flags.set_from_args(self.args, self.user_config) + flags.set_from_args(self.args, self.project_flags) self.assertEqual(flags.WARN_ERROR, False) # cleanup os.environ.pop("DBT_WARN_ERROR") delattr(self.args, "warn_error") flags.WARN_ERROR = False - self.user_config.warn_error = None + self.project_flags.warn_error = None # warn_error_options - self.user_config.warn_error_options = '{"include": "all"}' - flags.set_from_args(self.args, self.user_config) + self.project_flags.warn_error_options = '{"include": "all"}' + flags.set_from_args(self.args, self.project_flags) self.assertEqual(flags.WARN_ERROR_OPTIONS, WarnErrorOptions(include="all")) os.environ["DBT_WARN_ERROR_OPTIONS"] = '{"include": []}' - flags.set_from_args(self.args, self.user_config) + flags.set_from_args(self.args, self.project_flags) self.assertEqual(flags.WARN_ERROR_OPTIONS, WarnErrorOptions(include=[])) setattr(self.args, "warn_error_options", '{"include": "all"}') - flags.set_from_args(self.args, self.user_config) + flags.set_from_args(self.args, self.project_flags) self.assertEqual(flags.WARN_ERROR_OPTIONS, WarnErrorOptions(include="all")) # cleanup os.environ.pop("DBT_WARN_ERROR_OPTIONS") delattr(self.args, "warn_error_options") - self.user_config.warn_error_options = None + self.project_flags.warn_error_options = None # write_json - self.user_config.write_json = True - flags.set_from_args(self.args, self.user_config) + self.project_flags.write_json = True + flags.set_from_args(self.args, self.project_flags) self.assertEqual(flags.WRITE_JSON, True) os.environ["DBT_WRITE_JSON"] = "false" - flags.set_from_args(self.args, self.user_config) + flags.set_from_args(self.args, self.project_flags) self.assertEqual(flags.WRITE_JSON, False) setattr(self.args, "write_json", True) - flags.set_from_args(self.args, self.user_config) + flags.set_from_args(self.args, self.project_flags) self.assertEqual(flags.WRITE_JSON, True) # cleanup os.environ.pop("DBT_WRITE_JSON") delattr(self.args, "write_json") # partial_parse - self.user_config.partial_parse = True - flags.set_from_args(self.args, self.user_config) + self.project_flags.partial_parse = True + flags.set_from_args(self.args, self.project_flags) self.assertEqual(flags.PARTIAL_PARSE, True) os.environ["DBT_PARTIAL_PARSE"] = "false" - flags.set_from_args(self.args, self.user_config) + flags.set_from_args(self.args, self.project_flags) self.assertEqual(flags.PARTIAL_PARSE, False) setattr(self.args, "partial_parse", True) - flags.set_from_args(self.args, self.user_config) + flags.set_from_args(self.args, self.project_flags) self.assertEqual(flags.PARTIAL_PARSE, True) # cleanup os.environ.pop("DBT_PARTIAL_PARSE") delattr(self.args, "partial_parse") - self.user_config.partial_parse = False + self.project_flags.partial_parse = False # use_colors - self.user_config.use_colors = True - flags.set_from_args(self.args, self.user_config) + self.project_flags.use_colors = True + flags.set_from_args(self.args, self.project_flags) self.assertEqual(flags.USE_COLORS, True) os.environ["DBT_USE_COLORS"] = "false" - flags.set_from_args(self.args, self.user_config) + flags.set_from_args(self.args, self.project_flags) self.assertEqual(flags.USE_COLORS, False) setattr(self.args, "use_colors", True) - flags.set_from_args(self.args, self.user_config) + flags.set_from_args(self.args, self.project_flags) self.assertEqual(flags.USE_COLORS, True) # cleanup os.environ.pop("DBT_USE_COLORS") delattr(self.args, "use_colors") # debug - self.user_config.debug = True - flags.set_from_args(self.args, self.user_config) + self.project_flags.debug = True + flags.set_from_args(self.args, self.project_flags) self.assertEqual(flags.DEBUG, True) os.environ["DBT_DEBUG"] = "True" - flags.set_from_args(self.args, self.user_config) + flags.set_from_args(self.args, self.project_flags) self.assertEqual(flags.DEBUG, True) os.environ["DBT_DEBUG"] = "False" setattr(self.args, "debug", True) - flags.set_from_args(self.args, self.user_config) + flags.set_from_args(self.args, self.project_flags) self.assertEqual(flags.DEBUG, True) # cleanup os.environ.pop("DBT_DEBUG") delattr(self.args, "debug") - self.user_config.debug = None + self.project_flags.debug = None # log_format -- text, json, default - self.user_config.log_format = "text" - flags.set_from_args(self.args, self.user_config) + self.project_flags.log_format = "text" + flags.set_from_args(self.args, self.project_flags) self.assertEqual(flags.LOG_FORMAT, "text") os.environ["DBT_LOG_FORMAT"] = "json" - flags.set_from_args(self.args, self.user_config) + flags.set_from_args(self.args, self.project_flags) self.assertEqual(flags.LOG_FORMAT, "json") setattr(self.args, "log_format", "text") - flags.set_from_args(self.args, self.user_config) + flags.set_from_args(self.args, self.project_flags) self.assertEqual(flags.LOG_FORMAT, "text") # cleanup os.environ.pop("DBT_LOG_FORMAT") delattr(self.args, "log_format") - self.user_config.log_format = None + self.project_flags.log_format = None # version_check - self.user_config.version_check = True - flags.set_from_args(self.args, self.user_config) + self.project_flags.version_check = True + flags.set_from_args(self.args, self.project_flags) self.assertEqual(flags.VERSION_CHECK, True) os.environ["DBT_VERSION_CHECK"] = "false" - flags.set_from_args(self.args, self.user_config) + flags.set_from_args(self.args, self.project_flags) self.assertEqual(flags.VERSION_CHECK, False) setattr(self.args, "version_check", True) - flags.set_from_args(self.args, self.user_config) + flags.set_from_args(self.args, self.project_flags) self.assertEqual(flags.VERSION_CHECK, True) # cleanup os.environ.pop("DBT_VERSION_CHECK") delattr(self.args, "version_check") # fail_fast - self.user_config.fail_fast = True - flags.set_from_args(self.args, self.user_config) + self.project_flags.fail_fast = True + flags.set_from_args(self.args, self.project_flags) self.assertEqual(flags.FAIL_FAST, True) os.environ["DBT_FAIL_FAST"] = "false" - flags.set_from_args(self.args, self.user_config) + flags.set_from_args(self.args, self.project_flags) self.assertEqual(flags.FAIL_FAST, False) setattr(self.args, "fail_fast", True) - flags.set_from_args(self.args, self.user_config) + flags.set_from_args(self.args, self.project_flags) self.assertEqual(flags.FAIL_FAST, True) # cleanup os.environ.pop("DBT_FAIL_FAST") delattr(self.args, "fail_fast") - self.user_config.fail_fast = False + self.project_flags.fail_fast = False # send_anonymous_usage_stats - self.user_config.send_anonymous_usage_stats = True - flags.set_from_args(self.args, self.user_config) + self.project_flags.send_anonymous_usage_stats = True + flags.set_from_args(self.args, self.project_flags) self.assertEqual(flags.SEND_ANONYMOUS_USAGE_STATS, True) os.environ["DBT_SEND_ANONYMOUS_USAGE_STATS"] = "false" - flags.set_from_args(self.args, self.user_config) + flags.set_from_args(self.args, self.project_flags) self.assertEqual(flags.SEND_ANONYMOUS_USAGE_STATS, False) setattr(self.args, "send_anonymous_usage_stats", True) - flags.set_from_args(self.args, self.user_config) + flags.set_from_args(self.args, self.project_flags) self.assertEqual(flags.SEND_ANONYMOUS_USAGE_STATS, True) os.environ["DO_NOT_TRACK"] = "1" - flags.set_from_args(self.args, self.user_config) + flags.set_from_args(self.args, self.project_flags) self.assertEqual(flags.SEND_ANONYMOUS_USAGE_STATS, False) # cleanup os.environ.pop("DBT_SEND_ANONYMOUS_USAGE_STATS") @@ -204,81 +204,81 @@ def test__flags(self): delattr(self.args, "send_anonymous_usage_stats") # printer_width - self.user_config.printer_width = 100 - flags.set_from_args(self.args, self.user_config) + self.project_flags.printer_width = 100 + flags.set_from_args(self.args, self.project_flags) self.assertEqual(flags.PRINTER_WIDTH, 100) os.environ["DBT_PRINTER_WIDTH"] = "80" - flags.set_from_args(self.args, self.user_config) + flags.set_from_args(self.args, self.project_flags) self.assertEqual(flags.PRINTER_WIDTH, 80) setattr(self.args, "printer_width", "120") - flags.set_from_args(self.args, self.user_config) + flags.set_from_args(self.args, self.project_flags) self.assertEqual(flags.PRINTER_WIDTH, 120) # cleanup os.environ.pop("DBT_PRINTER_WIDTH") delattr(self.args, "printer_width") - self.user_config.printer_width = None + self.project_flags.printer_width = None # indirect_selection - self.user_config.indirect_selection = "eager" - flags.set_from_args(self.args, self.user_config) + self.project_flags.indirect_selection = "eager" + flags.set_from_args(self.args, self.project_flags) self.assertEqual(flags.INDIRECT_SELECTION, IndirectSelection.Eager) - self.user_config.indirect_selection = "cautious" - flags.set_from_args(self.args, self.user_config) + self.project_flags.indirect_selection = "cautious" + flags.set_from_args(self.args, self.project_flags) self.assertEqual(flags.INDIRECT_SELECTION, IndirectSelection.Cautious) - self.user_config.indirect_selection = "buildable" - flags.set_from_args(self.args, self.user_config) + self.project_flags.indirect_selection = "buildable" + flags.set_from_args(self.args, self.project_flags) self.assertEqual(flags.INDIRECT_SELECTION, IndirectSelection.Buildable) - self.user_config.indirect_selection = None - flags.set_from_args(self.args, self.user_config) + self.project_flags.indirect_selection = None + flags.set_from_args(self.args, self.project_flags) self.assertEqual(flags.INDIRECT_SELECTION, IndirectSelection.Eager) os.environ["DBT_INDIRECT_SELECTION"] = "cautious" - flags.set_from_args(self.args, self.user_config) + flags.set_from_args(self.args, self.project_flags) self.assertEqual(flags.INDIRECT_SELECTION, IndirectSelection.Cautious) setattr(self.args, "indirect_selection", "cautious") - flags.set_from_args(self.args, self.user_config) + flags.set_from_args(self.args, self.project_flags) self.assertEqual(flags.INDIRECT_SELECTION, IndirectSelection.Cautious) # cleanup os.environ.pop("DBT_INDIRECT_SELECTION") delattr(self.args, "indirect_selection") - self.user_config.indirect_selection = None + self.project_flags.indirect_selection = None # quiet - self.user_config.quiet = True - flags.set_from_args(self.args, self.user_config) + self.project_flags.quiet = True + flags.set_from_args(self.args, self.project_flags) self.assertEqual(flags.QUIET, True) # cleanup - self.user_config.quiet = None + self.project_flags.quiet = None # no_print - self.user_config.no_print = True - flags.set_from_args(self.args, self.user_config) + self.project_flags.no_print = True + flags.set_from_args(self.args, self.project_flags) self.assertEqual(flags.NO_PRINT, True) # cleanup - self.user_config.no_print = None + self.project_flags.no_print = None # cache_selected_only - self.user_config.cache_selected_only = True - flags.set_from_args(self.args, self.user_config) + self.project_flags.cache_selected_only = True + flags.set_from_args(self.args, self.project_flags) self.assertEqual(flags.CACHE_SELECTED_ONLY, True) os.environ["DBT_CACHE_SELECTED_ONLY"] = "false" - flags.set_from_args(self.args, self.user_config) + flags.set_from_args(self.args, self.project_flags) self.assertEqual(flags.CACHE_SELECTED_ONLY, False) setattr(self.args, "cache_selected_only", True) - flags.set_from_args(self.args, self.user_config) + flags.set_from_args(self.args, self.project_flags) self.assertEqual(flags.CACHE_SELECTED_ONLY, True) # cleanup os.environ.pop("DBT_CACHE_SELECTED_ONLY") delattr(self.args, "cache_selected_only") - self.user_config.cache_selected_only = False + self.project_flags.cache_selected_only = False # target_path/log_path - flags.set_from_args(self.args, self.user_config) + flags.set_from_args(self.args, self.project_flags) self.assertIsNone(flags.LOG_PATH) os.environ["DBT_LOG_PATH"] = "a/b/c" - flags.set_from_args(self.args, self.user_config) + flags.set_from_args(self.args, self.project_flags) self.assertEqual(flags.LOG_PATH, "a/b/c") setattr(self.args, "log_path", "d/e/f") - flags.set_from_args(self.args, self.user_config) + flags.set_from_args(self.args, self.project_flags) self.assertEqual(flags.LOG_PATH, "d/e/f") # cleanup os.environ.pop("DBT_LOG_PATH") @@ -286,19 +286,19 @@ def test__flags(self): def test__flags_are_mutually_exclusive(self): # options from user config - self.user_config.warn_error = False - self.user_config.warn_error_options = '{"include":"all"}' + self.project_flags.warn_error = False + self.project_flags.warn_error_options = '{"include":"all"}' with pytest.raises(ValueError): - flags.set_from_args(self.args, self.user_config) + flags.set_from_args(self.args, self.project_flags) # cleanup - self.user_config.warn_error = None - self.user_config.warn_error_options = None + self.project_flags.warn_error = None + self.project_flags.warn_error_options = None # options from args setattr(self.args, "warn_error", False) setattr(self.args, "warn_error_options", '{"include":"all"}') with pytest.raises(ValueError): - flags.set_from_args(self.args, self.user_config) + flags.set_from_args(self.args, self.project_flags) # cleanup delattr(self.args, "warn_error") delattr(self.args, "warn_error_options") @@ -307,34 +307,34 @@ def test__flags_are_mutually_exclusive(self): os.environ["DBT_WARN_ERROR"] = "false" os.environ["DBT_WARN_ERROR_OPTIONS"] = '{"include": []}' with pytest.raises(ValueError): - flags.set_from_args(self.args, self.user_config) + flags.set_from_args(self.args, self.project_flags) # cleanup os.environ.pop("DBT_WARN_ERROR") os.environ.pop("DBT_WARN_ERROR_OPTIONS") # options from user config + args - self.user_config.warn_error = False + self.project_flags.warn_error = False setattr(self.args, "warn_error_options", '{"include":"all"}') with pytest.raises(ValueError): - flags.set_from_args(self.args, self.user_config) + flags.set_from_args(self.args, self.project_flags) # cleanup - self.user_config.warn_error = None + self.project_flags.warn_error = None delattr(self.args, "warn_error_options") # options from user config + environ - self.user_config.warn_error = False + self.project_flags.warn_error = False os.environ["DBT_WARN_ERROR_OPTIONS"] = '{"include": []}' with pytest.raises(ValueError): - flags.set_from_args(self.args, self.user_config) + flags.set_from_args(self.args, self.project_flags) # cleanup - self.user_config.warn_error = None + self.project_flags.warn_error = None os.environ.pop("DBT_WARN_ERROR_OPTIONS") # options from args + environ setattr(self.args, "warn_error", False) os.environ["DBT_WARN_ERROR_OPTIONS"] = '{"include": []}' with pytest.raises(ValueError): - flags.set_from_args(self.args, self.user_config) + flags.set_from_args(self.args, self.project_flags) # cleanup delattr(self.args, "warn_error") os.environ.pop("DBT_WARN_ERROR_OPTIONS") diff --git a/tests/unit/test_graph_selection.py b/tests/unit/test_graph_selection.py index 572c8fed10d..5700cba6606 100644 --- a/tests/unit/test_graph_selection.py +++ b/tests/unit/test_graph_selection.py @@ -13,9 +13,9 @@ from dbt import flags from argparse import Namespace -from dbt.contracts.project import UserConfig +from dbt.contracts.project import ProjectFlags -flags.set_from_args(Namespace(), UserConfig()) +flags.set_from_args(Namespace(), ProjectFlags()) def _get_graph(): From 3daa17805f20330236985ec41ac1795159c00877 Mon Sep 17 00:00:00 2001 From: Gerda Shank Date: Fri, 15 Dec 2023 18:31:54 -0500 Subject: [PATCH 02/22] Reorganize a bunch of ProjectFlags. failing test_cli_flags.py --- core/dbt/cli/flags.py | 22 +++++++++++---- core/dbt/config/__init__.py | 2 +- core/dbt/config/profile.py | 39 +------------------------- core/dbt/config/project.py | 48 ++++++++++++++++++++++++++++---- core/dbt/config/runtime.py | 4 +-- core/dbt/contracts/connection.py | 8 ------ core/dbt/contracts/project.py | 1 - core/dbt/flags.py | 14 +++++++--- tests/unit/test_config.py | 25 ----------------- 9 files changed, 73 insertions(+), 90 deletions(-) diff --git a/core/dbt/cli/flags.py b/core/dbt/cli/flags.py index da1a60bb74d..ac828fa70f5 100644 --- a/core/dbt/cli/flags.py +++ b/core/dbt/cli/flags.py @@ -3,6 +3,7 @@ from dataclasses import dataclass from importlib import import_module from multiprocessing import get_context +from pathlib import Path from pprint import pformat as pf from typing import Any, Callable, Dict, List, Optional, Set, Union @@ -11,7 +12,7 @@ from dbt.cli.exceptions import DbtUsageException from dbt.cli.resolvers import default_log_path, default_project_dir from dbt.cli.types import Command as CliCommand -from dbt.config.profile import read_project_flags +from dbt.config.project import read_project_flags from dbt.contracts.project import ProjectFlags from dbt.exceptions import DbtInternalError from dbt.deprecations import renamed_env_var @@ -202,8 +203,17 @@ def _assign_params( ) if not project_flags: - profiles_dir = getattr(self, "PROFILES_DIR", None) - project_flags = read_project_flags(profiles_dir) if profiles_dir else None + project_dir = str(getattr(self, "PROJECT_DIR", str(default_project_dir()))) + if not project_dir: + print("*** project_dir not available in Flags.__init__") + profiles_dir = str(getattr(self, "PROFILES_DIR", None)) + if not profiles_dir: + print("*** profiles_dir not available in Flags.__init__") + if profiles_dir and project_dir: + project_flags = read_project_flags(project_dir, profiles_dir) + else: + print("*** project_dir and profiles_dir do not both exist in Flags.__init__") + project_flags = None # Add entire invocation command to flags object.__setattr__(self, "INVOCATION_COMMAND", "dbt " + " ".join(sys.argv[1:])) @@ -237,9 +247,11 @@ def _assign_params( # Starting in v1.5, if `log-path` is set in `dbt_project.yml`, it will raise a deprecation warning, # with the possibility of removing it in a future release. if getattr(self, "LOG_PATH", None) is None: - project_dir = getattr(self, "PROJECT_DIR", default_project_dir()) + project_dir = getattr(self, "PROJECT_DIR", str(default_project_dir())) version_check = getattr(self, "VERSION_CHECK", True) - object.__setattr__(self, "LOG_PATH", default_log_path(project_dir, version_check)) + object.__setattr__( + self, "LOG_PATH", default_log_path(Path(project_dir), version_check) + ) # Support console DO NOT TRACK initiative. if os.getenv("DO_NOT_TRACK", "").lower() in ("1", "t", "true", "y", "yes"): diff --git a/core/dbt/config/__init__.py b/core/dbt/config/__init__.py index 60ab7d4dc6f..767901c84eb 100644 --- a/core/dbt/config/__init__.py +++ b/core/dbt/config/__init__.py @@ -1,4 +1,4 @@ # all these are just exports, they need "noqa" so flake8 will not complain. -from .profile import Profile, read_project_flags # noqa +from .profile import Profile # noqa from .project import Project, IsFQNResource, PartialProject # noqa from .runtime import RuntimeConfig # noqa diff --git a/core/dbt/config/profile.py b/core/dbt/config/profile.py index 932e130f6f9..740c0bfe5e9 100644 --- a/core/dbt/config/profile.py +++ b/core/dbt/config/profile.py @@ -8,7 +8,7 @@ from dbt.clients.system import load_file_contents from dbt.clients.yaml_helper import load_yaml_text from dbt.contracts.connection import Credentials, HasCredentials -from dbt.contracts.project import ProfileConfig, ProjectFlags +from dbt.contracts.project import ProfileConfig from dbt.exceptions import ( CompilationError, DbtProfileError, @@ -19,7 +19,6 @@ ) from dbt.events.types import MissingProfileTarget from dbt.events.functions import fire_event -from dbt.utils import coerce_dict_str from .renderer import ProfileRenderer @@ -51,19 +50,6 @@ def read_profile(profiles_dir: str) -> Dict[str, Any]: return {} -def read_project_flags(directory: str) -> ProjectFlags: - try: - profile = read_profile(directory) - if profile: - project_flags = coerce_dict_str(profile.get("config", {})) - if project_flags is not None: - ProjectFlags.validate(project_flags) - return ProjectFlags.from_dict(project_flags) - except (DbtRuntimeError, ValidationError): - pass - return ProjectFlags() - - # The Profile class is included in RuntimeConfig, so any attribute # additions must also be set where the RuntimeConfig class is created # `init=False` is a workaround for https://bugs.python.org/issue45081 @@ -71,7 +57,6 @@ def read_project_flags(directory: str) -> ProjectFlags: class Profile(HasCredentials): profile_name: str target_name: str - project_flags: ProjectFlags threads: int credentials: Credentials profile_env_vars: Dict[str, Any] @@ -80,7 +65,6 @@ def __init__( self, profile_name: str, target_name: str, - project_flags: ProjectFlags, threads: int, credentials: Credentials, ) -> None: @@ -89,7 +73,6 @@ def __init__( """ self.profile_name = profile_name self.target_name = target_name - self.project_flags = project_flags self.threads = threads self.credentials = credentials self.profile_env_vars = {} # never available on init @@ -106,12 +89,10 @@ def to_profile_info(self, serialize_credentials: bool = False) -> Dict[str, Any] result = { "profile_name": self.profile_name, "target_name": self.target_name, - "project_flags": self.project_flags, "threads": self.threads, "credentials": self.credentials, } if serialize_credentials: - result["project_flags"] = self.project_flags.to_dict(omit_none=True) result["credentials"] = self.credentials.to_dict(omit_none=True) return result @@ -124,7 +105,6 @@ def to_target_dict(self) -> Dict[str, Any]: "name": self.target_name, "target_name": self.target_name, "profile_name": self.profile_name, - "config": self.project_flags.to_dict(omit_none=True), } ) return target @@ -246,7 +226,6 @@ def from_credentials( threads: int, profile_name: str, target_name: str, - project_flags: Optional[Dict[str, Any]] = None, ) -> "Profile": """Create a profile from an existing set of Credentials and the remaining information. @@ -255,20 +234,13 @@ def from_credentials( :param threads: The number of threads to use for connections. :param profile_name: The profile name used for this profile. :param target_name: The target name used for this profile. - :param project_flags: The user-level config block from the - raw profiles, if specified. :raises DbtProfileError: If the profile is invalid. :returns: The new Profile object. """ - if project_flags is None: - project_flags = {} - ProjectFlags.validate(project_flags) - project_flags_obj: ProjectFlags = ProjectFlags.from_dict(project_flags) profile = cls( profile_name=profile_name, target_name=target_name, - project_flags=project_flags_obj, threads=threads, credentials=credentials, ) @@ -316,7 +288,6 @@ def from_raw_profile_info( raw_profile: Dict[str, Any], profile_name: str, renderer: ProfileRenderer, - project_flags: Optional[Dict[str, Any]] = None, target_override: Optional[str] = None, threads_override: Optional[int] = None, ) -> "Profile": @@ -328,8 +299,6 @@ def from_raw_profile_info( disk as yaml and its values rendered with jinja. :param profile_name: The profile name used. :param renderer: The config renderer. - :param project_flags: The global config for the user, if it - was present. :param target_override: The target to use, if provided on the command line. :param threads_override: The thread count to use, if @@ -338,9 +307,6 @@ def from_raw_profile_info( target could not be found :returns: The new Profile object. """ - # project_flags is not rendered. - if project_flags is None: - project_flags = raw_profile.get("config") # TODO: should it be, and the values coerced to bool? target_name, profile_data = cls.render_profile( raw_profile, profile_name, target_override, renderer @@ -361,7 +327,6 @@ def from_raw_profile_info( profile_name=profile_name, target_name=target_name, threads=threads, - project_flags=project_flags, ) @classmethod @@ -396,13 +361,11 @@ def from_raw_profiles( if not raw_profile: msg = f"Profile {profile_name} in profiles.yml is empty" raise DbtProfileError(INVALID_PROFILE_MESSAGE.format(error_string=msg)) - project_flags = raw_profiles.get("config") return cls.from_raw_profile_info( raw_profile=raw_profile, profile_name=profile_name, renderer=renderer, - project_flags=project_flags, target_override=target_override, threads_override=threads_override, ) diff --git a/core/dbt/config/project.py b/core/dbt/config/project.py index 696e2668762..782d616a59d 100644 --- a/core/dbt/config/project.py +++ b/core/dbt/config/project.py @@ -35,12 +35,13 @@ from dbt.helper_types import NoValue from dbt.semver import VersionSpecifier, versions_compatible from dbt.version import get_installed_version -from dbt.utils import MultiDict, md5 +from dbt.utils import MultiDict, md5, coerce_dict_str from dbt.node_types import NodeType from dbt.config.selectors import SelectorDict from dbt.contracts.project import ( Project as ProjectContract, SemverString, + ProjectFlags, ) from dbt.contracts.project import PackageConfig, ProjectPackageMetadata from dbt.dataclass_schema import ValidationError @@ -323,7 +324,7 @@ def get_rendered( selectors_dict=rendered_selectors, ) - # Called by Project.from_project_root (not PartialProject.from_project_root!) + # Called by Project.from_project_root which first calls PartialProject.from_project_root def render(self, renderer: DbtProjectYamlRenderer) -> "Project": try: rendered = self.get_rendered(renderer) @@ -420,11 +421,11 @@ def create_project(self, rendered: RenderComponents) -> "Project": docs_paths: List[str] = value_or(cfg.docs_paths, all_source_paths) asset_paths: List[str] = value_or(cfg.asset_paths, []) - flags = get_flags() + global_flags = get_flags() - flag_target_path = str(flags.TARGET_PATH) if flags.TARGET_PATH else None + flag_target_path = str(global_flags.TARGET_PATH) if global_flags.TARGET_PATH else None target_path: str = flag_or(flag_target_path, cfg.target_path, "target") - log_path: str = str(flags.LOG_PATH) + log_path: str = str(global_flags.LOG_PATH) clean_targets: List[str] = value_or(cfg.clean_targets, [target_path]) packages_install_path: str = value_or(cfg.packages_install_path, "dbt_packages") @@ -569,6 +570,11 @@ def from_project_root( ) = package_and_project_data_from_root(project_root) selectors_dict = selector_data_from_root(project_root) + if "flags" in project_dict: + # We don't want to include "flags" in the Project, + # it goes in ProjectFlags + project_dict.pop("flags") + return cls.from_dicts( project_root=project_root, project_dict=project_dict, @@ -773,3 +779,35 @@ def get_macro_search_order(self, macro_namespace: str): def project_target_path(self): # If target_path is absolute, project_root will not be included return os.path.join(self.project_root, self.target_path) + + +def read_project_flags(project_dir: str, profiles_dir: str) -> ProjectFlags: + try: + project_flags: Dict[str, Any] = {} + # Read project_flags from dbt_project.yml first + project_root = os.path.normpath(project_dir) + project_dict = load_raw_project(project_root) + if "flags" in project_dict: + project_flags == project_dict.pop("flags") + + from dbt.config.profile import read_profile + + profile = read_profile(profiles_dir) + if profile: + profile_project_flags = coerce_dict_str(profile.get("config", {})) + + if project_flags and profile_project_flags: + raise ValidationError( + "Do not specify both 'config' in profiles.yml and 'flags' in dbt_project.yml" + ) + + if profile_project_flags: + # Raise deprecation warning + project_flags = profile_project_flags + + if project_flags is not None: + ProjectFlags.validate(project_flags) + return ProjectFlags.from_dict(project_flags) + except (DbtRuntimeError, ValidationError): + pass + return ProjectFlags() diff --git a/core/dbt/config/runtime.py b/core/dbt/config/runtime.py index 97c9c7d8c68..913fed53cd8 100644 --- a/core/dbt/config/runtime.py +++ b/core/dbt/config/runtime.py @@ -20,7 +20,7 @@ from dbt.config.project import load_raw_project from dbt.contracts.connection import AdapterRequiredConfig, Credentials, HasCredentials from dbt.contracts.graph.manifest import ManifestMetadata -from dbt.contracts.project import Configuration, ProjectFlags +from dbt.contracts.project import Configuration from dbt.contracts.relation import ComponentName from dbt.dataclass_schema import ValidationError from dbt.events.functions import warn_or_error @@ -178,7 +178,6 @@ def from_parts( profile_env_vars=profile.profile_env_vars, profile_name=profile.profile_name, target_name=profile.target_name, - project_flags=profile.project_flags, threads=profile.threads, credentials=profile.credentials, args=args, @@ -432,7 +431,6 @@ def _connection_keys(self): class UnsetProfile(Profile): def __init__(self): self.credentials = UnsetCredentials() - self.project_flags = ProjectFlags() # This will be read in _get_rendered_profile self.profile_name = "" self.target_name = "" self.threads = -1 diff --git a/core/dbt/contracts/connection.py b/core/dbt/contracts/connection.py index 9d7f88ce489..b4e4b086612 100644 --- a/core/dbt/contracts/connection.py +++ b/core/dbt/contracts/connection.py @@ -178,17 +178,9 @@ def __post_serialize__(self, dct): return dct -class ProjectFlagContract(Protocol): - send_anonymous_usage_stats: bool - use_colors: Optional[bool] = None - partial_parse: Optional[bool] = None - printer_width: Optional[int] = None - - class HasCredentials(Protocol): credentials: Credentials profile_name: str - project_flags: ProjectFlagContract target_name: str threads: int diff --git a/core/dbt/contracts/project.py b/core/dbt/contracts/project.py index 2d90d95c401..1442c5bd6ed 100644 --- a/core/dbt/contracts/project.py +++ b/core/dbt/contracts/project.py @@ -310,7 +310,6 @@ class ProjectFlags(ExtensibleDbtClassMixin, Replaceable): class ProfileConfig(dbtClassMixin, Replaceable): profile_name: str target_name: str - project_flags: ProjectFlags threads: int # TODO: make this a dynamic union of some kind? credentials: Optional[Dict[str, Any]] diff --git a/core/dbt/flags.py b/core/dbt/flags.py index 36bb75015f6..ad0baa9cf58 100644 --- a/core/dbt/flags.py +++ b/core/dbt/flags.py @@ -47,11 +47,17 @@ def set_from_args(args: Namespace, project_flags): # we set attributes of args after initialize the flags, but project_flags # is being read in the Flags constructor, so we need to read it here and pass in # to make sure we use the correct project_flags - if (hasattr(args, "PROFILES_DIR") or hasattr(args, "profiles_dir")) and not project_flags: - from dbt.config.profile import read_project_flags + profiles_dir = getattr(args, "PROFILES_DIR", None) or getattr(args, "profiles_dir", None) + if not profiles_dir: + print("*** No profiles_dir in set_from_args") + project_dir = getattr(args, "PROJECT_DIR", None) or getattr(args, "project_dir", None) + if not project_dir: + print("*** No project_dir in set_from_args") - profiles_dir = getattr(args, "PROFILES_DIR", None) or getattr(args, "profiles_dir") - project_flags = read_project_flags(profiles_dir) + if profiles_dir and project_dir: + from dbt.config.project import read_project_flags + + project_flags = read_project_flags(project_dir, profiles_dir) # make a dummy context to get the flags, totally arbitrary ctx = cli.make_context("run", ["run"]) diff --git a/tests/unit/test_config.py b/tests/unit/test_config.py index 63b48a565af..3f136e24db0 100644 --- a/tests/unit/test_config.py +++ b/tests/unit/test_config.py @@ -262,8 +262,6 @@ def test_from_raw_profiles(self): self.assertEqual(profile.profile_name, "default") self.assertEqual(profile.target_name, "postgres") self.assertEqual(profile.threads, 7) - self.assertTrue(profile.project_flags.send_anonymous_usage_stats) - self.assertIsNone(profile.project_flags.use_colors) self.assertTrue(isinstance(profile.credentials, PostgresCredentials)) self.assertEqual(profile.credentials.type, "postgres") self.assertEqual(profile.credentials.host, "postgres-db-hostname") @@ -281,8 +279,6 @@ def test_config_override(self): profile = self.from_raw_profiles() self.assertEqual(profile.profile_name, "default") self.assertEqual(profile.target_name, "postgres") - self.assertFalse(profile.project_flags.send_anonymous_usage_stats) - self.assertFalse(profile.project_flags.use_colors) def test_partial_config_override(self): self.default_profile_data["config"] = { @@ -292,9 +288,6 @@ def test_partial_config_override(self): profile = self.from_raw_profiles() self.assertEqual(profile.profile_name, "default") self.assertEqual(profile.target_name, "postgres") - self.assertFalse(profile.project_flags.send_anonymous_usage_stats) - self.assertIsNone(profile.project_flags.use_colors) - self.assertEqual(profile.project_flags.printer_width, 60) def test_missing_type(self): del self.default_profile_data["default"]["outputs"]["postgres"]["type"] @@ -438,8 +431,6 @@ def test_profile_simple(self): self.assertEqual(profile.profile_name, "default") self.assertEqual(profile.target_name, "postgres") self.assertEqual(profile.threads, 7) - self.assertTrue(profile.project_flags.send_anonymous_usage_stats) - self.assertIsNone(profile.project_flags.use_colors) self.assertTrue(isinstance(profile.credentials, PostgresCredentials)) self.assertEqual(profile.credentials.type, "postgres") self.assertEqual(profile.credentials.host, "postgres-db-hostname") @@ -464,8 +455,6 @@ def test_profile_override(self): self.assertEqual(profile.profile_name, "other") self.assertEqual(profile.target_name, "other-postgres") self.assertEqual(profile.threads, 3) - self.assertTrue(profile.project_flags.send_anonymous_usage_stats) - self.assertIsNone(profile.project_flags.use_colors) self.assertTrue(isinstance(profile.credentials, PostgresCredentials)) self.assertEqual(profile.credentials.type, "postgres") self.assertEqual(profile.credentials.host, "other-postgres-db-hostname") @@ -485,8 +474,6 @@ def test_env_vars(self): self.assertEqual(profile.profile_name, "default") self.assertEqual(profile.target_name, "with-vars") self.assertEqual(profile.threads, 1) - self.assertTrue(profile.project_flags.send_anonymous_usage_stats) - self.assertIsNone(profile.project_flags.use_colors) self.assertEqual(profile.credentials.type, "postgres") self.assertEqual(profile.credentials.host, "env-postgres-host") self.assertEqual(profile.credentials.port, 6543) @@ -505,8 +492,6 @@ def test_env_vars_env_target(self): self.assertEqual(profile.profile_name, "default") self.assertEqual(profile.target_name, "with-vars") self.assertEqual(profile.threads, 1) - self.assertTrue(profile.project_flags.send_anonymous_usage_stats) - self.assertIsNone(profile.project_flags.use_colors) self.assertEqual(profile.credentials.type, "postgres") self.assertEqual(profile.credentials.host, "env-postgres-host") self.assertEqual(profile.credentials.port, 6543) @@ -537,8 +522,6 @@ def test_cli_and_env_vars(self): self.assertEqual(profile.profile_name, "default") self.assertEqual(profile.target_name, "cli-and-env-vars") self.assertEqual(profile.threads, 1) - self.assertTrue(profile.project_flags.send_anonymous_usage_stats) - self.assertIsNone(profile.project_flags.use_colors) self.assertEqual(profile.credentials.type, "postgres") self.assertEqual(profile.credentials.host, "cli-postgres-host") self.assertEqual(profile.credentials.port, 6543) @@ -1079,14 +1062,6 @@ def test_str(self): # to make sure nothing terrible happens str(config) - def test_validate_fails(self): - project = self.get_project() - profile = self.get_profile() - # invalid - must be boolean - profile.project_flags.use_colors = 100 - with self.assertRaises(dbt.exceptions.DbtProjectError): - dbt.config.RuntimeConfig.from_parts(project, profile, {}) - def test_supported_version(self): self.default_project_data["require-dbt-version"] = ">0.0.0" conf = self.from_parts() From 5375282c8c34f8f875eb32861890aa7a9e68f5c3 Mon Sep 17 00:00:00 2001 From: Gerda Shank Date: Mon, 18 Dec 2023 19:57:38 -0500 Subject: [PATCH 03/22] initialize profile_project_flags --- core/dbt/config/project.py | 1 + 1 file changed, 1 insertion(+) diff --git a/core/dbt/config/project.py b/core/dbt/config/project.py index 782d616a59d..aac36b3dcbe 100644 --- a/core/dbt/config/project.py +++ b/core/dbt/config/project.py @@ -793,6 +793,7 @@ def read_project_flags(project_dir: str, profiles_dir: str) -> ProjectFlags: from dbt.config.profile import read_profile profile = read_profile(profiles_dir) + profile_project_flags: Optional[Dict[str, Any]] = {} if profile: profile_project_flags = coerce_dict_str(profile.get("config", {})) From a5819cfd657e52afe188761251c41677acb9d066 Mon Sep 17 00:00:00 2001 From: Gerda Shank Date: Mon, 18 Dec 2023 19:59:00 -0500 Subject: [PATCH 04/22] changie --- .changes/unreleased/Features-20231218-195854.yaml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .changes/unreleased/Features-20231218-195854.yaml diff --git a/.changes/unreleased/Features-20231218-195854.yaml b/.changes/unreleased/Features-20231218-195854.yaml new file mode 100644 index 00000000000..2a78826aff0 --- /dev/null +++ b/.changes/unreleased/Features-20231218-195854.yaml @@ -0,0 +1,6 @@ +kind: Features +body: Move flags from UserConfig in profiles.yml to flags in dbt_project.yml +time: 2023-12-18T19:58:54.075811-05:00 +custom: + Author: gshank + Issue: "9183" From a583db6469c2109b76eeb5aa2de30f8b6559adf4 Mon Sep 17 00:00:00 2001 From: Gerda Shank Date: Mon, 18 Dec 2023 20:41:31 -0500 Subject: [PATCH 05/22] Switch project fixture to flags in dbt_project --- core/dbt/tests/fixtures/project.py | 1 + tests/functional/basic/test_project.py | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/core/dbt/tests/fixtures/project.py b/core/dbt/tests/fixtures/project.py index 1b7ef899bd0..dde5836f812 100644 --- a/core/dbt/tests/fixtures/project.py +++ b/core/dbt/tests/fixtures/project.py @@ -181,6 +181,7 @@ def dbt_project_yml(project_root, project_config_update): project_config = { "name": "test", "profile": "test", + "flags": {"send_anonymous_usage_stats": False}, } if project_config_update: if isinstance(project_config_update, dict): diff --git a/tests/functional/basic/test_project.py b/tests/functional/basic/test_project.py index 080c5d591d0..6602c5e300f 100644 --- a/tests/functional/basic/test_project.py +++ b/tests/functional/basic/test_project.py @@ -77,11 +77,16 @@ def test_dbt_cloud(self, project): conf = yaml.safe_load( Path(os.path.join(project.project_root, "dbt_project.yml")).read_text() ) - assert conf == {"name": "test", "profile": "test"} + assert conf == { + "name": "test", + "profile": "test", + "flags": {"send_anonymous_usage_stats": False}, + } config = { "name": "test", "profile": "test", + "flags": {"send_anonymous_usage_stats": False}, "dbt-cloud": { "account_id": "123", "application": "test", From 85614e2ce21d4a6c18d679811657665a70ec85fa Mon Sep 17 00:00:00 2001 From: Gerda Shank Date: Mon, 18 Dec 2023 21:38:22 -0500 Subject: [PATCH 06/22] Do not stringify profiles_dir and project_dir --- core/dbt/cli/flags.py | 9 ++------- tests/unit/test_cli_flags.py | 25 ------------------------- 2 files changed, 2 insertions(+), 32 deletions(-) diff --git a/core/dbt/cli/flags.py b/core/dbt/cli/flags.py index ac828fa70f5..a90b54eae88 100644 --- a/core/dbt/cli/flags.py +++ b/core/dbt/cli/flags.py @@ -203,16 +203,11 @@ def _assign_params( ) if not project_flags: - project_dir = str(getattr(self, "PROJECT_DIR", str(default_project_dir()))) - if not project_dir: - print("*** project_dir not available in Flags.__init__") - profiles_dir = str(getattr(self, "PROFILES_DIR", None)) - if not profiles_dir: - print("*** profiles_dir not available in Flags.__init__") + project_dir = getattr(self, "PROJECT_DIR", str(default_project_dir())) + profiles_dir = getattr(self, "PROFILES_DIR", None) if profiles_dir and project_dir: project_flags = read_project_flags(project_dir, profiles_dir) else: - print("*** project_dir and profiles_dir do not both exist in Flags.__init__") project_flags = None # Add entire invocation command to flags diff --git a/tests/unit/test_cli_flags.py b/tests/unit/test_cli_flags.py index 7bd8651a1e3..64dbdb8ed20 100644 --- a/tests/unit/test_cli_flags.py +++ b/tests/unit/test_cli_flags.py @@ -65,31 +65,6 @@ def test_log_file_max_size_default(self, run_context): @pytest.mark.parametrize( "set_stats_param,do_not_track,expected_anonymous_usage_stats", [ - # set_stats_param = default, DNT = True, expected = False - ("default", "1", False), - ("default", "t", False), - ("default", "true", False), - ("default", "y", False), - ("default", "yes", False), - # set_stats_param = default, DNT = false, expected = True - ("default", "false", True), - ("default", "anything", True), - # set_stats_param = True, DNT = True, expected = False - (True, "1", False), - (True, "t", False), - (True, "true", False), - (True, "y", False), - (True, "yes", False), - # set_stats_param = True, DNT = false, expected = True - (True, "false", True), - (True, "anything", True), - (True, "2", True), - # set_stats_param = False, DNT = True, expected = False - (False, "1", False), - (False, "t", False), - (False, "true", False), - (False, "y", False), - (False, "yes", False), # set_stats_param = False, DNT = False, expected = False (False, "false", False), (False, "anything", False), From 88f246b1d97e62eb75f1111a66212af2db8388ca Mon Sep 17 00:00:00 2001 From: Gerda Shank Date: Tue, 19 Dec 2023 10:02:35 -0500 Subject: [PATCH 07/22] Add deprecation events and classes --- core/dbt/deprecations.py | 5 + core/dbt/events/types.proto | 9 + core/dbt/events/types.py | 12 + core/dbt/events/types_pb2.py | 1522 +++++++++++++++++----------------- 4 files changed, 789 insertions(+), 759 deletions(-) diff --git a/core/dbt/deprecations.py b/core/dbt/deprecations.py index d69b166043d..1fd4031445d 100644 --- a/core/dbt/deprecations.py +++ b/core/dbt/deprecations.py @@ -96,6 +96,11 @@ class CollectFreshnessReturnSignature(DBTDeprecation): _event = "CollectFreshnessReturnSignature" +class ProjectFlagsMovedDeprecation(DBTDeprecation): + _name = "project-flags-moved" + _event = "ProjectFlagsMovedDeprecation" + + def renamed_env_var(old_name: str, new_name: str): class EnvironmentVariableRenamed(DBTDeprecation): _name = f"environment-variable-renamed:{old_name}" diff --git a/core/dbt/events/types.proto b/core/dbt/events/types.proto index fbf3ca2c74d..fab3eda2dbf 100644 --- a/core/dbt/events/types.proto +++ b/core/dbt/events/types.proto @@ -415,6 +415,15 @@ message CollectFreshnessReturnSignatureMsg { CollectFreshnessReturnSignature data = 2; } +// D013 +message ProjectFlagsMovedDeprecation { +} + +message ProjectFlagsMovedDeprecationMsg { + EventInfo info = 1; + ProjectFlagsMovedDeprecation data = 2; +} + // E - DB Adapter // E001 diff --git a/core/dbt/events/types.py b/core/dbt/events/types.py index 32ab0c3429f..d03d97731d0 100644 --- a/core/dbt/events/types.py +++ b/core/dbt/events/types.py @@ -420,6 +420,18 @@ def message(self) -> str: return line_wrap_message(warning_tag(f"Deprecated functionality\n\n{description}")) +class ProjectFlagsMovedDeprecation(WarnLevel): + def code(self) -> str: + return "D013" + + def message(self) -> str: + description = ( + "User config should be moved from the 'config' key in profiles.yml to the 'flags' " + "key in dbt_project.yml." + ) + return line_wrap_message(warning_tag(f"Deprecated functionality\n\n{description}")) + + # ======================================================= # E - DB Adapter # ======================================================= diff --git a/core/dbt/events/types_pb2.py b/core/dbt/events/types_pb2.py index 8ed3fe0aff4..ac67fca2937 100644 --- a/core/dbt/events/types_pb2.py +++ b/core/dbt/events/types_pb2.py @@ -15,7 +15,7 @@ from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0btypes.proto\x12\x0bproto_types\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1cgoogle/protobuf/struct.proto\"\x91\x02\n\tEventInfo\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04\x63ode\x18\x02 \x01(\t\x12\x0b\n\x03msg\x18\x03 \x01(\t\x12\r\n\x05level\x18\x04 \x01(\t\x12\x15\n\rinvocation_id\x18\x05 \x01(\t\x12\x0b\n\x03pid\x18\x06 \x01(\x05\x12\x0e\n\x06thread\x18\x07 \x01(\t\x12&\n\x02ts\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x30\n\x05\x65xtra\x18\t \x03(\x0b\x32!.proto_types.EventInfo.ExtraEntry\x12\x10\n\x08\x63\x61tegory\x18\n \x01(\t\x1a,\n\nExtraEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x7f\n\rTimingInfoMsg\x12\x0c\n\x04name\x18\x01 \x01(\t\x12.\n\nstarted_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x30\n\x0c\x63ompleted_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"V\n\x0cNodeRelation\x12\x10\n\x08\x64\x61tabase\x18\n \x01(\t\x12\x0e\n\x06schema\x18\x0b \x01(\t\x12\r\n\x05\x61lias\x18\x0c \x01(\t\x12\x15\n\rrelation_name\x18\r \x01(\t\"\x91\x02\n\x08NodeInfo\x12\x11\n\tnode_path\x18\x01 \x01(\t\x12\x11\n\tnode_name\x18\x02 \x01(\t\x12\x11\n\tunique_id\x18\x03 \x01(\t\x12\x15\n\rresource_type\x18\x04 \x01(\t\x12\x14\n\x0cmaterialized\x18\x05 \x01(\t\x12\x13\n\x0bnode_status\x18\x06 \x01(\t\x12\x17\n\x0fnode_started_at\x18\x07 \x01(\t\x12\x18\n\x10node_finished_at\x18\x08 \x01(\t\x12%\n\x04meta\x18\t \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x30\n\rnode_relation\x18\n \x01(\x0b\x32\x19.proto_types.NodeRelation\"\xd1\x01\n\x0cRunResultMsg\x12\x0e\n\x06status\x18\x01 \x01(\t\x12\x0f\n\x07message\x18\x02 \x01(\t\x12/\n\x0btiming_info\x18\x03 \x03(\x0b\x32\x1a.proto_types.TimingInfoMsg\x12\x0e\n\x06thread\x18\x04 \x01(\t\x12\x16\n\x0e\x65xecution_time\x18\x05 \x01(\x02\x12\x31\n\x10\x61\x64\x61pter_response\x18\x06 \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x14\n\x0cnum_failures\x18\x07 \x01(\x05\"G\n\x0fReferenceKeyMsg\x12\x10\n\x08\x64\x61tabase\x18\x01 \x01(\t\x12\x0e\n\x06schema\x18\x02 \x01(\t\x12\x12\n\nidentifier\x18\x03 \x01(\t\"\\\n\nColumnType\x12\x13\n\x0b\x63olumn_name\x18\x01 \x01(\t\x12\x1c\n\x14previous_column_type\x18\x02 \x01(\t\x12\x1b\n\x13\x63urrent_column_type\x18\x03 \x01(\t\"Y\n\x10\x43olumnConstraint\x12\x13\n\x0b\x63olumn_name\x18\x01 \x01(\t\x12\x17\n\x0f\x63onstraint_name\x18\x02 \x01(\t\x12\x17\n\x0f\x63onstraint_type\x18\x03 \x01(\t\"T\n\x0fModelConstraint\x12\x17\n\x0f\x63onstraint_name\x18\x01 \x01(\t\x12\x17\n\x0f\x63onstraint_type\x18\x02 \x01(\t\x12\x0f\n\x07\x63olumns\x18\x03 \x03(\t\"6\n\x0eGenericMessage\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\"9\n\x11MainReportVersion\x12\x0f\n\x07version\x18\x01 \x01(\t\x12\x13\n\x0blog_version\x18\x02 \x01(\x05\"j\n\x14MainReportVersionMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12,\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1e.proto_types.MainReportVersion\"r\n\x0eMainReportArgs\x12\x33\n\x04\x61rgs\x18\x01 \x03(\x0b\x32%.proto_types.MainReportArgs.ArgsEntry\x1a+\n\tArgsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"d\n\x11MainReportArgsMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.MainReportArgs\"+\n\x15MainTrackingUserState\x12\x12\n\nuser_state\x18\x01 \x01(\t\"r\n\x18MainTrackingUserStateMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x30\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\".proto_types.MainTrackingUserState\"5\n\x0fMergedFromState\x12\x12\n\nnum_merged\x18\x01 \x01(\x05\x12\x0e\n\x06sample\x18\x02 \x03(\t\"f\n\x12MergedFromStateMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12*\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1c.proto_types.MergedFromState\"A\n\x14MissingProfileTarget\x12\x14\n\x0cprofile_name\x18\x01 \x01(\t\x12\x13\n\x0btarget_name\x18\x02 \x01(\t\"p\n\x17MissingProfileTargetMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12/\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32!.proto_types.MissingProfileTarget\"(\n\x11InvalidOptionYAML\x12\x13\n\x0boption_name\x18\x01 \x01(\t\"j\n\x14InvalidOptionYAMLMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12,\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1e.proto_types.InvalidOptionYAML\"!\n\x12LogDbtProjectError\x12\x0b\n\x03\x65xc\x18\x01 \x01(\t\"l\n\x15LogDbtProjectErrorMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.LogDbtProjectError\"3\n\x12LogDbtProfileError\x12\x0b\n\x03\x65xc\x18\x01 \x01(\t\x12\x10\n\x08profiles\x18\x02 \x03(\t\"l\n\x15LogDbtProfileErrorMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.LogDbtProfileError\"!\n\x12StarterProjectPath\x12\x0b\n\x03\x64ir\x18\x01 \x01(\t\"l\n\x15StarterProjectPathMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.StarterProjectPath\"$\n\x15\x43onfigFolderDirectory\x12\x0b\n\x03\x64ir\x18\x01 \x01(\t\"r\n\x18\x43onfigFolderDirectoryMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x30\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\".proto_types.ConfigFolderDirectory\"\'\n\x14NoSampleProfileFound\x12\x0f\n\x07\x61\x64\x61pter\x18\x01 \x01(\t\"p\n\x17NoSampleProfileFoundMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12/\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32!.proto_types.NoSampleProfileFound\"6\n\x18ProfileWrittenWithSample\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\t\"x\n\x1bProfileWrittenWithSampleMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x33\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32%.proto_types.ProfileWrittenWithSample\"B\n$ProfileWrittenWithTargetTemplateYAML\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\t\"\x90\x01\n\'ProfileWrittenWithTargetTemplateYAMLMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12?\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x31.proto_types.ProfileWrittenWithTargetTemplateYAML\"C\n%ProfileWrittenWithProjectTemplateYAML\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\t\"\x92\x01\n(ProfileWrittenWithProjectTemplateYAMLMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12@\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x32.proto_types.ProfileWrittenWithProjectTemplateYAML\"\x12\n\x10SettingUpProfile\"h\n\x13SettingUpProfileMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12+\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1d.proto_types.SettingUpProfile\"\x1c\n\x1aInvalidProfileTemplateYAML\"|\n\x1dInvalidProfileTemplateYAMLMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x35\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\'.proto_types.InvalidProfileTemplateYAML\"(\n\x18ProjectNameAlreadyExists\x12\x0c\n\x04name\x18\x01 \x01(\t\"x\n\x1bProjectNameAlreadyExistsMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x33\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32%.proto_types.ProjectNameAlreadyExists\"K\n\x0eProjectCreated\x12\x14\n\x0cproject_name\x18\x01 \x01(\t\x12\x10\n\x08\x64ocs_url\x18\x02 \x01(\t\x12\x11\n\tslack_url\x18\x03 \x01(\t\"d\n\x11ProjectCreatedMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.ProjectCreated\"@\n\x1aPackageRedirectDeprecation\x12\x10\n\x08old_name\x18\x01 \x01(\t\x12\x10\n\x08new_name\x18\x02 \x01(\t\"|\n\x1dPackageRedirectDeprecationMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x35\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\'.proto_types.PackageRedirectDeprecation\"\x1f\n\x1dPackageInstallPathDeprecation\"\x82\x01\n PackageInstallPathDeprecationMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x38\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32*.proto_types.PackageInstallPathDeprecation\"H\n\x1b\x43onfigSourcePathDeprecation\x12\x17\n\x0f\x64\x65precated_path\x18\x01 \x01(\t\x12\x10\n\x08\x65xp_path\x18\x02 \x01(\t\"~\n\x1e\x43onfigSourcePathDeprecationMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x36\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32(.proto_types.ConfigSourcePathDeprecation\"F\n\x19\x43onfigDataPathDeprecation\x12\x17\n\x0f\x64\x65precated_path\x18\x01 \x01(\t\x12\x10\n\x08\x65xp_path\x18\x02 \x01(\t\"z\n\x1c\x43onfigDataPathDeprecationMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x34\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32&.proto_types.ConfigDataPathDeprecation\"?\n\x19\x41\x64\x61pterDeprecationWarning\x12\x10\n\x08old_name\x18\x01 \x01(\t\x12\x10\n\x08new_name\x18\x02 \x01(\t\"z\n\x1c\x41\x64\x61pterDeprecationWarningMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x34\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32&.proto_types.AdapterDeprecationWarning\".\n\x17MetricAttributesRenamed\x12\x13\n\x0bmetric_name\x18\x01 \x01(\t\"v\n\x1aMetricAttributesRenamedMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x32\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32$.proto_types.MetricAttributesRenamed\"+\n\x17\x45xposureNameDeprecation\x12\x10\n\x08\x65xposure\x18\x01 \x01(\t\"v\n\x1a\x45xposureNameDeprecationMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x32\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32$.proto_types.ExposureNameDeprecation\"^\n\x13InternalDeprecation\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0e\n\x06reason\x18\x02 \x01(\t\x12\x18\n\x10suggested_action\x18\x03 \x01(\t\x12\x0f\n\x07version\x18\x04 \x01(\t\"n\n\x16InternalDeprecationMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12.\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32 .proto_types.InternalDeprecation\"@\n\x1a\x45nvironmentVariableRenamed\x12\x10\n\x08old_name\x18\x01 \x01(\t\x12\x10\n\x08new_name\x18\x02 \x01(\t\"|\n\x1d\x45nvironmentVariableRenamedMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x35\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\'.proto_types.EnvironmentVariableRenamed\"3\n\x18\x43onfigLogPathDeprecation\x12\x17\n\x0f\x64\x65precated_path\x18\x01 \x01(\t\"x\n\x1b\x43onfigLogPathDeprecationMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x33\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32%.proto_types.ConfigLogPathDeprecation\"6\n\x1b\x43onfigTargetPathDeprecation\x12\x17\n\x0f\x64\x65precated_path\x18\x01 \x01(\t\"~\n\x1e\x43onfigTargetPathDeprecationMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x36\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32(.proto_types.ConfigTargetPathDeprecation\"!\n\x1f\x43ollectFreshnessReturnSignature\"\x86\x01\n\"CollectFreshnessReturnSignatureMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12:\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32,.proto_types.CollectFreshnessReturnSignature\"\x87\x01\n\x11\x41\x64\x61pterEventDebug\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x10\n\x08\x62\x61se_msg\x18\x03 \x01(\t\x12(\n\x04\x61rgs\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.ListValue\"j\n\x14\x41\x64\x61pterEventDebugMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12,\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1e.proto_types.AdapterEventDebug\"\x86\x01\n\x10\x41\x64\x61pterEventInfo\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x10\n\x08\x62\x61se_msg\x18\x03 \x01(\t\x12(\n\x04\x61rgs\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.ListValue\"h\n\x13\x41\x64\x61pterEventInfoMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12+\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1d.proto_types.AdapterEventInfo\"\x89\x01\n\x13\x41\x64\x61pterEventWarning\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x10\n\x08\x62\x61se_msg\x18\x03 \x01(\t\x12(\n\x04\x61rgs\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.ListValue\"n\n\x16\x41\x64\x61pterEventWarningMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12.\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32 .proto_types.AdapterEventWarning\"\x99\x01\n\x11\x41\x64\x61pterEventError\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x10\n\x08\x62\x61se_msg\x18\x03 \x01(\t\x12(\n\x04\x61rgs\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.ListValue\x12\x10\n\x08\x65xc_info\x18\x05 \x01(\t\"j\n\x14\x41\x64\x61pterEventErrorMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12,\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1e.proto_types.AdapterEventError\"_\n\rNewConnection\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x11\n\tconn_type\x18\x02 \x01(\t\x12\x11\n\tconn_name\x18\x03 \x01(\t\"b\n\x10NewConnectionMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12(\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1a.proto_types.NewConnection\"=\n\x10\x43onnectionReused\x12\x11\n\tconn_name\x18\x01 \x01(\t\x12\x16\n\x0eorig_conn_name\x18\x02 \x01(\t\"h\n\x13\x43onnectionReusedMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12+\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1d.proto_types.ConnectionReused\"0\n\x1b\x43onnectionLeftOpenInCleanup\x12\x11\n\tconn_name\x18\x01 \x01(\t\"~\n\x1e\x43onnectionLeftOpenInCleanupMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x36\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32(.proto_types.ConnectionLeftOpenInCleanup\".\n\x19\x43onnectionClosedInCleanup\x12\x11\n\tconn_name\x18\x01 \x01(\t\"z\n\x1c\x43onnectionClosedInCleanupMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x34\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32&.proto_types.ConnectionClosedInCleanup\"_\n\x0eRollbackFailed\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x11\n\tconn_name\x18\x02 \x01(\t\x12\x10\n\x08\x65xc_info\x18\x03 \x01(\t\"d\n\x11RollbackFailedMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.RollbackFailed\"O\n\x10\x43onnectionClosed\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x11\n\tconn_name\x18\x02 \x01(\t\"h\n\x13\x43onnectionClosedMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12+\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1d.proto_types.ConnectionClosed\"Q\n\x12\x43onnectionLeftOpen\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x11\n\tconn_name\x18\x02 \x01(\t\"l\n\x15\x43onnectionLeftOpenMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.ConnectionLeftOpen\"G\n\x08Rollback\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x11\n\tconn_name\x18\x02 \x01(\t\"X\n\x0bRollbackMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12#\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x15.proto_types.Rollback\"@\n\tCacheMiss\x12\x11\n\tconn_name\x18\x01 \x01(\t\x12\x10\n\x08\x64\x61tabase\x18\x02 \x01(\t\x12\x0e\n\x06schema\x18\x03 \x01(\t\"Z\n\x0c\x43\x61\x63heMissMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12$\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x16.proto_types.CacheMiss\"b\n\rListRelations\x12\x10\n\x08\x64\x61tabase\x18\x01 \x01(\t\x12\x0e\n\x06schema\x18\x02 \x01(\t\x12/\n\trelations\x18\x03 \x03(\x0b\x32\x1c.proto_types.ReferenceKeyMsg\"b\n\x10ListRelationsMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12(\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1a.proto_types.ListRelations\"`\n\x0e\x43onnectionUsed\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x11\n\tconn_type\x18\x02 \x01(\t\x12\x11\n\tconn_name\x18\x03 \x01(\t\"d\n\x11\x43onnectionUsedMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.ConnectionUsed\"T\n\x08SQLQuery\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x11\n\tconn_name\x18\x02 \x01(\t\x12\x0b\n\x03sql\x18\x03 \x01(\t\"X\n\x0bSQLQueryMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12#\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x15.proto_types.SQLQuery\"[\n\x0eSQLQueryStatus\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x0e\n\x06status\x18\x02 \x01(\t\x12\x0f\n\x07\x65lapsed\x18\x03 \x01(\x02\"d\n\x11SQLQueryStatusMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.SQLQueryStatus\"H\n\tSQLCommit\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x11\n\tconn_name\x18\x02 \x01(\t\"Z\n\x0cSQLCommitMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12$\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x16.proto_types.SQLCommit\"a\n\rColTypeChange\x12\x11\n\torig_type\x18\x01 \x01(\t\x12\x10\n\x08new_type\x18\x02 \x01(\t\x12+\n\x05table\x18\x03 \x01(\x0b\x32\x1c.proto_types.ReferenceKeyMsg\"b\n\x10\x43olTypeChangeMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12(\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1a.proto_types.ColTypeChange\"@\n\x0eSchemaCreation\x12.\n\x08relation\x18\x01 \x01(\x0b\x32\x1c.proto_types.ReferenceKeyMsg\"d\n\x11SchemaCreationMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.SchemaCreation\"<\n\nSchemaDrop\x12.\n\x08relation\x18\x01 \x01(\x0b\x32\x1c.proto_types.ReferenceKeyMsg\"\\\n\rSchemaDropMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12%\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x17.proto_types.SchemaDrop\"\xde\x01\n\x0b\x43\x61\x63heAction\x12\x0e\n\x06\x61\x63tion\x18\x01 \x01(\t\x12-\n\x07ref_key\x18\x02 \x01(\x0b\x32\x1c.proto_types.ReferenceKeyMsg\x12/\n\tref_key_2\x18\x03 \x01(\x0b\x32\x1c.proto_types.ReferenceKeyMsg\x12/\n\tref_key_3\x18\x04 \x01(\x0b\x32\x1c.proto_types.ReferenceKeyMsg\x12.\n\x08ref_list\x18\x05 \x03(\x0b\x32\x1c.proto_types.ReferenceKeyMsg\"^\n\x0e\x43\x61\x63heActionMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12&\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x18.proto_types.CacheAction\"\x98\x01\n\x0e\x43\x61\x63heDumpGraph\x12\x33\n\x04\x64ump\x18\x01 \x03(\x0b\x32%.proto_types.CacheDumpGraph.DumpEntry\x12\x14\n\x0c\x62\x65\x66ore_after\x18\x02 \x01(\t\x12\x0e\n\x06\x61\x63tion\x18\x03 \x01(\t\x1a+\n\tDumpEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"d\n\x11\x43\x61\x63heDumpGraphMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.CacheDumpGraph\"B\n\x11\x41\x64\x61pterRegistered\x12\x14\n\x0c\x61\x64\x61pter_name\x18\x01 \x01(\t\x12\x17\n\x0f\x61\x64\x61pter_version\x18\x02 \x01(\t\"j\n\x14\x41\x64\x61pterRegisteredMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12,\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1e.proto_types.AdapterRegistered\"!\n\x12\x41\x64\x61pterImportError\x12\x0b\n\x03\x65xc\x18\x01 \x01(\t\"l\n\x15\x41\x64\x61pterImportErrorMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.AdapterImportError\"#\n\x0fPluginLoadError\x12\x10\n\x08\x65xc_info\x18\x01 \x01(\t\"f\n\x12PluginLoadErrorMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12*\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1c.proto_types.PluginLoadError\"Z\n\x14NewConnectionOpening\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x18\n\x10\x63onnection_state\x18\x02 \x01(\t\"p\n\x17NewConnectionOpeningMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12/\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32!.proto_types.NewConnectionOpening\"8\n\rCodeExecution\x12\x11\n\tconn_name\x18\x01 \x01(\t\x12\x14\n\x0c\x63ode_content\x18\x02 \x01(\t\"b\n\x10\x43odeExecutionMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12(\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1a.proto_types.CodeExecution\"6\n\x13\x43odeExecutionStatus\x12\x0e\n\x06status\x18\x01 \x01(\t\x12\x0f\n\x07\x65lapsed\x18\x02 \x01(\x02\"n\n\x16\x43odeExecutionStatusMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12.\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32 .proto_types.CodeExecutionStatus\"%\n\x16\x43\x61talogGenerationError\x12\x0b\n\x03\x65xc\x18\x01 \x01(\t\"t\n\x19\x43\x61talogGenerationErrorMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x31\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32#.proto_types.CatalogGenerationError\"-\n\x13WriteCatalogFailure\x12\x16\n\x0enum_exceptions\x18\x01 \x01(\x05\"n\n\x16WriteCatalogFailureMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12.\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32 .proto_types.WriteCatalogFailure\"\x1e\n\x0e\x43\x61talogWritten\x12\x0c\n\x04path\x18\x01 \x01(\t\"d\n\x11\x43\x61talogWrittenMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.CatalogWritten\"\x14\n\x12\x43\x61nnotGenerateDocs\"l\n\x15\x43\x61nnotGenerateDocsMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.CannotGenerateDocs\"\x11\n\x0f\x42uildingCatalog\"f\n\x12\x42uildingCatalogMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12*\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1c.proto_types.BuildingCatalog\"-\n\x18\x44\x61tabaseErrorRunningHook\x12\x11\n\thook_type\x18\x01 \x01(\t\"x\n\x1b\x44\x61tabaseErrorRunningHookMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x33\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32%.proto_types.DatabaseErrorRunningHook\"4\n\x0cHooksRunning\x12\x11\n\tnum_hooks\x18\x01 \x01(\x05\x12\x11\n\thook_type\x18\x02 \x01(\t\"`\n\x0fHooksRunningMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\'\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x19.proto_types.HooksRunning\"T\n\x14\x46inishedRunningStats\x12\x11\n\tstat_line\x18\x01 \x01(\t\x12\x11\n\texecution\x18\x02 \x01(\t\x12\x16\n\x0e\x65xecution_time\x18\x03 \x01(\x02\"p\n\x17\x46inishedRunningStatsMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12/\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32!.proto_types.FinishedRunningStats\"<\n\x15\x43onstraintNotEnforced\x12\x12\n\nconstraint\x18\x01 \x01(\t\x12\x0f\n\x07\x61\x64\x61pter\x18\x02 \x01(\t\"r\n\x18\x43onstraintNotEnforcedMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x30\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\".proto_types.ConstraintNotEnforced\"=\n\x16\x43onstraintNotSupported\x12\x12\n\nconstraint\x18\x01 \x01(\t\x12\x0f\n\x07\x61\x64\x61pter\x18\x02 \x01(\t\"t\n\x19\x43onstraintNotSupportedMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x31\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32#.proto_types.ConstraintNotSupported\"7\n\x12InputFileDiffError\x12\x10\n\x08\x63\x61tegory\x18\x01 \x01(\t\x12\x0f\n\x07\x66ile_id\x18\x02 \x01(\t\"l\n\x15InputFileDiffErrorMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.InputFileDiffError\"?\n\x14InvalidValueForField\x12\x12\n\nfield_name\x18\x01 \x01(\t\x12\x13\n\x0b\x66ield_value\x18\x02 \x01(\t\"p\n\x17InvalidValueForFieldMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12/\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32!.proto_types.InvalidValueForField\"Q\n\x11ValidationWarning\x12\x15\n\rresource_type\x18\x01 \x01(\t\x12\x12\n\nfield_name\x18\x02 \x01(\t\x12\x11\n\tnode_name\x18\x03 \x01(\t\"j\n\x14ValidationWarningMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12,\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1e.proto_types.ValidationWarning\"!\n\x11ParsePerfInfoPath\x12\x0c\n\x04path\x18\x01 \x01(\t\"j\n\x14ParsePerfInfoPathMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12,\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1e.proto_types.ParsePerfInfoPath\"1\n!PartialParsingErrorProcessingFile\x12\x0c\n\x04\x66ile\x18\x01 \x01(\t\"\x8a\x01\n$PartialParsingErrorProcessingFileMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12<\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32..proto_types.PartialParsingErrorProcessingFile\"\x86\x01\n\x13PartialParsingError\x12?\n\x08\x65xc_info\x18\x01 \x03(\x0b\x32-.proto_types.PartialParsingError.ExcInfoEntry\x1a.\n\x0c\x45xcInfoEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"n\n\x16PartialParsingErrorMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12.\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32 .proto_types.PartialParsingError\"\x1b\n\x19PartialParsingSkipParsing\"z\n\x1cPartialParsingSkipParsingMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x34\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32&.proto_types.PartialParsingSkipParsing\"&\n\x14UnableToPartialParse\x12\x0e\n\x06reason\x18\x01 \x01(\t\"p\n\x17UnableToPartialParseMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12/\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32!.proto_types.UnableToPartialParse\"f\n\x12StateCheckVarsHash\x12\x10\n\x08\x63hecksum\x18\x01 \x01(\t\x12\x0c\n\x04vars\x18\x02 \x01(\t\x12\x0f\n\x07profile\x18\x03 \x01(\t\x12\x0e\n\x06target\x18\x04 \x01(\t\x12\x0f\n\x07version\x18\x05 \x01(\t\"l\n\x15StateCheckVarsHashMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.StateCheckVarsHash\"\x1a\n\x18PartialParsingNotEnabled\"x\n\x1bPartialParsingNotEnabledMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x33\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32%.proto_types.PartialParsingNotEnabled\"C\n\x14ParsedFileLoadFailed\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x0b\n\x03\x65xc\x18\x02 \x01(\t\x12\x10\n\x08\x65xc_info\x18\x03 \x01(\t\"p\n\x17ParsedFileLoadFailedMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12/\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32!.proto_types.ParsedFileLoadFailed\"H\n\x15PartialParsingEnabled\x12\x0f\n\x07\x64\x65leted\x18\x01 \x01(\x05\x12\r\n\x05\x61\x64\x64\x65\x64\x18\x02 \x01(\x05\x12\x0f\n\x07\x63hanged\x18\x03 \x01(\x05\"r\n\x18PartialParsingEnabledMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x30\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\".proto_types.PartialParsingEnabled\"8\n\x12PartialParsingFile\x12\x0f\n\x07\x66ile_id\x18\x01 \x01(\t\x12\x11\n\toperation\x18\x02 \x01(\t\"l\n\x15PartialParsingFileMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.PartialParsingFile\"\xaf\x01\n\x1fInvalidDisabledTargetInTestNode\x12\x1b\n\x13resource_type_title\x18\x01 \x01(\t\x12\x11\n\tunique_id\x18\x02 \x01(\t\x12\x1a\n\x12original_file_path\x18\x03 \x01(\t\x12\x13\n\x0btarget_kind\x18\x04 \x01(\t\x12\x13\n\x0btarget_name\x18\x05 \x01(\t\x12\x16\n\x0etarget_package\x18\x06 \x01(\t\"\x86\x01\n\"InvalidDisabledTargetInTestNodeMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12:\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32,.proto_types.InvalidDisabledTargetInTestNode\"7\n\x18UnusedResourceConfigPath\x12\x1b\n\x13unused_config_paths\x18\x01 \x03(\t\"x\n\x1bUnusedResourceConfigPathMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x33\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32%.proto_types.UnusedResourceConfigPath\"3\n\rSeedIncreased\x12\x14\n\x0cpackage_name\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"b\n\x10SeedIncreasedMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12(\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1a.proto_types.SeedIncreased\">\n\x18SeedExceedsLimitSamePath\x12\x14\n\x0cpackage_name\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"x\n\x1bSeedExceedsLimitSamePathMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x33\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32%.proto_types.SeedExceedsLimitSamePath\"D\n\x1eSeedExceedsLimitAndPathChanged\x12\x14\n\x0cpackage_name\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"\x84\x01\n!SeedExceedsLimitAndPathChangedMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x39\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32+.proto_types.SeedExceedsLimitAndPathChanged\"\\\n\x1fSeedExceedsLimitChecksumChanged\x12\x14\n\x0cpackage_name\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x15\n\rchecksum_name\x18\x03 \x01(\t\"\x86\x01\n\"SeedExceedsLimitChecksumChangedMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12:\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32,.proto_types.SeedExceedsLimitChecksumChanged\"%\n\x0cUnusedTables\x12\x15\n\runused_tables\x18\x01 \x03(\t\"`\n\x0fUnusedTablesMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\'\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x19.proto_types.UnusedTables\"\x87\x01\n\x17WrongResourceSchemaFile\x12\x12\n\npatch_name\x18\x01 \x01(\t\x12\x15\n\rresource_type\x18\x02 \x01(\t\x12\x1c\n\x14plural_resource_type\x18\x03 \x01(\t\x12\x10\n\x08yaml_key\x18\x04 \x01(\t\x12\x11\n\tfile_path\x18\x05 \x01(\t\"v\n\x1aWrongResourceSchemaFileMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x32\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32$.proto_types.WrongResourceSchemaFile\"K\n\x10NoNodeForYamlKey\x12\x12\n\npatch_name\x18\x01 \x01(\t\x12\x10\n\x08yaml_key\x18\x02 \x01(\t\x12\x11\n\tfile_path\x18\x03 \x01(\t\"h\n\x13NoNodeForYamlKeyMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12+\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1d.proto_types.NoNodeForYamlKey\"+\n\x15MacroNotFoundForPatch\x12\x12\n\npatch_name\x18\x01 \x01(\t\"r\n\x18MacroNotFoundForPatchMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x30\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\".proto_types.MacroNotFoundForPatch\"\xb8\x01\n\x16NodeNotFoundOrDisabled\x12\x1a\n\x12original_file_path\x18\x01 \x01(\t\x12\x11\n\tunique_id\x18\x02 \x01(\t\x12\x1b\n\x13resource_type_title\x18\x03 \x01(\t\x12\x13\n\x0btarget_name\x18\x04 \x01(\t\x12\x13\n\x0btarget_kind\x18\x05 \x01(\t\x12\x16\n\x0etarget_package\x18\x06 \x01(\t\x12\x10\n\x08\x64isabled\x18\x07 \x01(\t\"t\n\x19NodeNotFoundOrDisabledMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x31\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32#.proto_types.NodeNotFoundOrDisabled\"H\n\x0fJinjaLogWarning\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x0b\n\x03msg\x18\x02 \x01(\t\"f\n\x12JinjaLogWarningMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12*\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1c.proto_types.JinjaLogWarning\"E\n\x0cJinjaLogInfo\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x0b\n\x03msg\x18\x02 \x01(\t\"`\n\x0fJinjaLogInfoMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\'\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x19.proto_types.JinjaLogInfo\"F\n\rJinjaLogDebug\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x0b\n\x03msg\x18\x02 \x01(\t\"b\n\x10JinjaLogDebugMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12(\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1a.proto_types.JinjaLogDebug\"\xae\x01\n\x1eUnpinnedRefNewVersionAvailable\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x15\n\rref_node_name\x18\x02 \x01(\t\x12\x18\n\x10ref_node_package\x18\x03 \x01(\t\x12\x18\n\x10ref_node_version\x18\x04 \x01(\t\x12\x17\n\x0fref_max_version\x18\x05 \x01(\t\"\x84\x01\n!UnpinnedRefNewVersionAvailableMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x39\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32+.proto_types.UnpinnedRefNewVersionAvailable\"V\n\x0f\x44\x65precatedModel\x12\x12\n\nmodel_name\x18\x01 \x01(\t\x12\x15\n\rmodel_version\x18\x02 \x01(\t\x12\x18\n\x10\x64\x65precation_date\x18\x03 \x01(\t\"f\n\x12\x44\x65precatedModelMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12*\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1c.proto_types.DeprecatedModel\"\xc6\x01\n\x1cUpcomingReferenceDeprecation\x12\x12\n\nmodel_name\x18\x01 \x01(\t\x12\x19\n\x11ref_model_package\x18\x02 \x01(\t\x12\x16\n\x0eref_model_name\x18\x03 \x01(\t\x12\x19\n\x11ref_model_version\x18\x04 \x01(\t\x12 \n\x18ref_model_latest_version\x18\x05 \x01(\t\x12\"\n\x1aref_model_deprecation_date\x18\x06 \x01(\t\"\x80\x01\n\x1fUpcomingReferenceDeprecationMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x37\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32).proto_types.UpcomingReferenceDeprecation\"\xbd\x01\n\x13\x44\x65precatedReference\x12\x12\n\nmodel_name\x18\x01 \x01(\t\x12\x19\n\x11ref_model_package\x18\x02 \x01(\t\x12\x16\n\x0eref_model_name\x18\x03 \x01(\t\x12\x19\n\x11ref_model_version\x18\x04 \x01(\t\x12 \n\x18ref_model_latest_version\x18\x05 \x01(\t\x12\"\n\x1aref_model_deprecation_date\x18\x06 \x01(\t\"n\n\x16\x44\x65precatedReferenceMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12.\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32 .proto_types.DeprecatedReference\"<\n$UnsupportedConstraintMaterialization\x12\x14\n\x0cmaterialized\x18\x01 \x01(\t\"\x90\x01\n\'UnsupportedConstraintMaterializationMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12?\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x31.proto_types.UnsupportedConstraintMaterialization\"M\n\x14ParseInlineNodeError\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x0b\n\x03\x65xc\x18\x02 \x01(\t\"p\n\x17ParseInlineNodeErrorMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12/\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32!.proto_types.ParseInlineNodeError\"(\n\x19SemanticValidationFailure\x12\x0b\n\x03msg\x18\x02 \x01(\t\"z\n\x1cSemanticValidationFailureMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x34\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32&.proto_types.SemanticValidationFailure\"\x8a\x03\n\x19UnversionedBreakingChange\x12\x18\n\x10\x62reaking_changes\x18\x01 \x03(\t\x12\x12\n\nmodel_name\x18\x02 \x01(\t\x12\x17\n\x0fmodel_file_path\x18\x03 \x01(\t\x12\"\n\x1a\x63ontract_enforced_disabled\x18\x04 \x01(\x08\x12\x17\n\x0f\x63olumns_removed\x18\x05 \x03(\t\x12\x34\n\x13\x63olumn_type_changes\x18\x06 \x03(\x0b\x32\x17.proto_types.ColumnType\x12I\n\"enforced_column_constraint_removed\x18\x07 \x03(\x0b\x32\x1d.proto_types.ColumnConstraint\x12G\n!enforced_model_constraint_removed\x18\x08 \x03(\x0b\x32\x1c.proto_types.ModelConstraint\x12\x1f\n\x17materialization_changed\x18\t \x03(\t\"z\n\x1cUnversionedBreakingChangeMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x34\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32&.proto_types.UnversionedBreakingChange\"*\n\x14WarnStateTargetEqual\x12\x12\n\nstate_path\x18\x01 \x01(\t\"p\n\x17WarnStateTargetEqualMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12/\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32!.proto_types.WarnStateTargetEqual\"%\n\x16\x46reshnessConfigProblem\x12\x0b\n\x03msg\x18\x01 \x01(\t\"t\n\x19\x46reshnessConfigProblemMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x31\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32#.proto_types.FreshnessConfigProblem\"/\n\x1dGitSparseCheckoutSubdirectory\x12\x0e\n\x06subdir\x18\x01 \x01(\t\"\x82\x01\n GitSparseCheckoutSubdirectoryMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x38\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32*.proto_types.GitSparseCheckoutSubdirectory\"/\n\x1bGitProgressCheckoutRevision\x12\x10\n\x08revision\x18\x01 \x01(\t\"~\n\x1eGitProgressCheckoutRevisionMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x36\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32(.proto_types.GitProgressCheckoutRevision\"4\n%GitProgressUpdatingExistingDependency\x12\x0b\n\x03\x64ir\x18\x01 \x01(\t\"\x92\x01\n(GitProgressUpdatingExistingDependencyMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12@\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x32.proto_types.GitProgressUpdatingExistingDependency\".\n\x1fGitProgressPullingNewDependency\x12\x0b\n\x03\x64ir\x18\x01 \x01(\t\"\x86\x01\n\"GitProgressPullingNewDependencyMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12:\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32,.proto_types.GitProgressPullingNewDependency\"\x1d\n\x0eGitNothingToDo\x12\x0b\n\x03sha\x18\x01 \x01(\t\"d\n\x11GitNothingToDoMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.GitNothingToDo\"E\n\x1fGitProgressUpdatedCheckoutRange\x12\x11\n\tstart_sha\x18\x01 \x01(\t\x12\x0f\n\x07\x65nd_sha\x18\x02 \x01(\t\"\x86\x01\n\"GitProgressUpdatedCheckoutRangeMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12:\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32,.proto_types.GitProgressUpdatedCheckoutRange\"*\n\x17GitProgressCheckedOutAt\x12\x0f\n\x07\x65nd_sha\x18\x01 \x01(\t\"v\n\x1aGitProgressCheckedOutAtMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x32\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32$.proto_types.GitProgressCheckedOutAt\")\n\x1aRegistryProgressGETRequest\x12\x0b\n\x03url\x18\x01 \x01(\t\"|\n\x1dRegistryProgressGETRequestMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x35\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\'.proto_types.RegistryProgressGETRequest\"=\n\x1bRegistryProgressGETResponse\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x11\n\tresp_code\x18\x02 \x01(\x05\"~\n\x1eRegistryProgressGETResponseMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x36\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32(.proto_types.RegistryProgressGETResponse\"_\n\x1dSelectorReportInvalidSelector\x12\x17\n\x0fvalid_selectors\x18\x01 \x01(\t\x12\x13\n\x0bspec_method\x18\x02 \x01(\t\x12\x10\n\x08raw_spec\x18\x03 \x01(\t\"\x82\x01\n SelectorReportInvalidSelectorMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x38\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32*.proto_types.SelectorReportInvalidSelector\"\x15\n\x13\x44\x65psNoPackagesFound\"n\n\x16\x44\x65psNoPackagesFoundMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12.\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32 .proto_types.DepsNoPackagesFound\"/\n\x17\x44\x65psStartPackageInstall\x12\x14\n\x0cpackage_name\x18\x01 \x01(\t\"v\n\x1a\x44\x65psStartPackageInstallMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x32\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32$.proto_types.DepsStartPackageInstall\"\'\n\x0f\x44\x65psInstallInfo\x12\x14\n\x0cversion_name\x18\x01 \x01(\t\"f\n\x12\x44\x65psInstallInfoMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12*\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1c.proto_types.DepsInstallInfo\"-\n\x13\x44\x65psUpdateAvailable\x12\x16\n\x0eversion_latest\x18\x01 \x01(\t\"n\n\x16\x44\x65psUpdateAvailableMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12.\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32 .proto_types.DepsUpdateAvailable\"\x0e\n\x0c\x44\x65psUpToDate\"`\n\x0f\x44\x65psUpToDateMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\'\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x19.proto_types.DepsUpToDate\",\n\x14\x44\x65psListSubdirectory\x12\x14\n\x0csubdirectory\x18\x01 \x01(\t\"p\n\x17\x44\x65psListSubdirectoryMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12/\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32!.proto_types.DepsListSubdirectory\".\n\x1a\x44\x65psNotifyUpdatesAvailable\x12\x10\n\x08packages\x18\x01 \x03(\t\"|\n\x1d\x44\x65psNotifyUpdatesAvailableMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x35\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\'.proto_types.DepsNotifyUpdatesAvailable\"1\n\x11RetryExternalCall\x12\x0f\n\x07\x61ttempt\x18\x01 \x01(\x05\x12\x0b\n\x03max\x18\x02 \x01(\x05\"j\n\x14RetryExternalCallMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12,\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1e.proto_types.RetryExternalCall\"#\n\x14RecordRetryException\x12\x0b\n\x03\x65xc\x18\x01 \x01(\t\"p\n\x17RecordRetryExceptionMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12/\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32!.proto_types.RecordRetryException\".\n\x1fRegistryIndexProgressGETRequest\x12\x0b\n\x03url\x18\x01 \x01(\t\"\x86\x01\n\"RegistryIndexProgressGETRequestMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12:\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32,.proto_types.RegistryIndexProgressGETRequest\"B\n RegistryIndexProgressGETResponse\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x11\n\tresp_code\x18\x02 \x01(\x05\"\x88\x01\n#RegistryIndexProgressGETResponseMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12;\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32-.proto_types.RegistryIndexProgressGETResponse\"2\n\x1eRegistryResponseUnexpectedType\x12\x10\n\x08response\x18\x01 \x01(\t\"\x84\x01\n!RegistryResponseUnexpectedTypeMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x39\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32+.proto_types.RegistryResponseUnexpectedType\"2\n\x1eRegistryResponseMissingTopKeys\x12\x10\n\x08response\x18\x01 \x01(\t\"\x84\x01\n!RegistryResponseMissingTopKeysMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x39\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32+.proto_types.RegistryResponseMissingTopKeys\"5\n!RegistryResponseMissingNestedKeys\x12\x10\n\x08response\x18\x01 \x01(\t\"\x8a\x01\n$RegistryResponseMissingNestedKeysMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12<\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32..proto_types.RegistryResponseMissingNestedKeys\"3\n\x1fRegistryResponseExtraNestedKeys\x12\x10\n\x08response\x18\x01 \x01(\t\"\x86\x01\n\"RegistryResponseExtraNestedKeysMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12:\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32,.proto_types.RegistryResponseExtraNestedKeys\"(\n\x18\x44\x65psSetDownloadDirectory\x12\x0c\n\x04path\x18\x01 \x01(\t\"x\n\x1b\x44\x65psSetDownloadDirectoryMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x33\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32%.proto_types.DepsSetDownloadDirectory\"-\n\x0c\x44\x65psUnpinned\x12\x10\n\x08revision\x18\x01 \x01(\t\x12\x0b\n\x03git\x18\x02 \x01(\t\"`\n\x0f\x44\x65psUnpinnedMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\'\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x19.proto_types.DepsUnpinned\"/\n\x1bNoNodesForSelectionCriteria\x12\x10\n\x08spec_raw\x18\x01 \x01(\t\"~\n\x1eNoNodesForSelectionCriteriaMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x36\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32(.proto_types.NoNodesForSelectionCriteria\")\n\x10\x44\x65psLockUpdating\x12\x15\n\rlock_filepath\x18\x01 \x01(\t\"h\n\x13\x44\x65psLockUpdatingMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12+\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1d.proto_types.DepsLockUpdating\"R\n\x0e\x44\x65psAddPackage\x12\x14\n\x0cpackage_name\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\t\x12\x19\n\x11packages_filepath\x18\x03 \x01(\t\"d\n\x11\x44\x65psAddPackageMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.DepsAddPackage\"\xa7\x01\n\x19\x44\x65psFoundDuplicatePackage\x12S\n\x0fremoved_package\x18\x01 \x03(\x0b\x32:.proto_types.DepsFoundDuplicatePackage.RemovedPackageEntry\x1a\x35\n\x13RemovedPackageEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"z\n\x1c\x44\x65psFoundDuplicatePackageMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x34\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32&.proto_types.DepsFoundDuplicatePackage\"$\n\x12\x44\x65psVersionMissing\x12\x0e\n\x06source\x18\x01 \x01(\t\"l\n\x15\x44\x65psVersionMissingMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.DepsVersionMissing\"/\n\x17\x44\x65psScrubbedPackageName\x12\x14\n\x0cpackage_name\x18\x01 \x01(\t\"v\n\x1a\x44\x65psScrubbedPackageNameMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x32\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32$.proto_types.DepsScrubbedPackageName\"*\n\x1bRunningOperationCaughtError\x12\x0b\n\x03\x65xc\x18\x01 \x01(\t\"~\n\x1eRunningOperationCaughtErrorMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x36\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32(.proto_types.RunningOperationCaughtError\"\x11\n\x0f\x43ompileComplete\"f\n\x12\x43ompileCompleteMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12*\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1c.proto_types.CompileComplete\"\x18\n\x16\x46reshnessCheckComplete\"t\n\x19\x46reshnessCheckCompleteMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x31\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32#.proto_types.FreshnessCheckComplete\"\x1c\n\nSeedHeader\x12\x0e\n\x06header\x18\x01 \x01(\t\"\\\n\rSeedHeaderMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12%\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x17.proto_types.SeedHeader\"3\n\x12SQLRunnerException\x12\x0b\n\x03\x65xc\x18\x01 \x01(\t\x12\x10\n\x08\x65xc_info\x18\x02 \x01(\t\"l\n\x15SQLRunnerExceptionMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.SQLRunnerException\"\xa8\x01\n\rLogTestResult\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0e\n\x06status\x18\x03 \x01(\t\x12\r\n\x05index\x18\x04 \x01(\x05\x12\x12\n\nnum_models\x18\x05 \x01(\x05\x12\x16\n\x0e\x65xecution_time\x18\x06 \x01(\x02\x12\x14\n\x0cnum_failures\x18\x07 \x01(\x05\"b\n\x10LogTestResultMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12(\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1a.proto_types.LogTestResult\"k\n\x0cLogStartLine\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\r\n\x05index\x18\x03 \x01(\x05\x12\r\n\x05total\x18\x04 \x01(\x05\"`\n\x0fLogStartLineMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\'\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x19.proto_types.LogStartLine\"\x95\x01\n\x0eLogModelResult\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x0e\n\x06status\x18\x03 \x01(\t\x12\r\n\x05index\x18\x04 \x01(\x05\x12\r\n\x05total\x18\x05 \x01(\x05\x12\x16\n\x0e\x65xecution_time\x18\x06 \x01(\x02\"d\n\x11LogModelResultMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.LogModelResult\"\x92\x02\n\x11LogSnapshotResult\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x0e\n\x06status\x18\x03 \x01(\t\x12\r\n\x05index\x18\x04 \x01(\x05\x12\r\n\x05total\x18\x05 \x01(\x05\x12\x16\n\x0e\x65xecution_time\x18\x06 \x01(\x02\x12\x34\n\x03\x63\x66g\x18\x07 \x03(\x0b\x32\'.proto_types.LogSnapshotResult.CfgEntry\x12\x16\n\x0eresult_message\x18\x08 \x01(\t\x1a*\n\x08\x43\x66gEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"j\n\x14LogSnapshotResultMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12,\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1e.proto_types.LogSnapshotResult\"\xb9\x01\n\rLogSeedResult\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x0e\n\x06status\x18\x02 \x01(\t\x12\x16\n\x0eresult_message\x18\x03 \x01(\t\x12\r\n\x05index\x18\x04 \x01(\x05\x12\r\n\x05total\x18\x05 \x01(\x05\x12\x16\n\x0e\x65xecution_time\x18\x06 \x01(\x02\x12\x0e\n\x06schema\x18\x07 \x01(\t\x12\x10\n\x08relation\x18\x08 \x01(\t\"b\n\x10LogSeedResultMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12(\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1a.proto_types.LogSeedResult\"\xad\x01\n\x12LogFreshnessResult\x12\x0e\n\x06status\x18\x01 \x01(\t\x12(\n\tnode_info\x18\x02 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\r\n\x05index\x18\x03 \x01(\x05\x12\r\n\x05total\x18\x04 \x01(\x05\x12\x16\n\x0e\x65xecution_time\x18\x05 \x01(\x02\x12\x13\n\x0bsource_name\x18\x06 \x01(\t\x12\x12\n\ntable_name\x18\x07 \x01(\t\"l\n\x15LogFreshnessResultMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.LogFreshnessResult\"\"\n\rLogCancelLine\x12\x11\n\tconn_name\x18\x01 \x01(\t\"b\n\x10LogCancelLineMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12(\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1a.proto_types.LogCancelLine\"\x1f\n\x0f\x44\x65\x66\x61ultSelector\x12\x0c\n\x04name\x18\x01 \x01(\t\"f\n\x12\x44\x65\x66\x61ultSelectorMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12*\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1c.proto_types.DefaultSelector\"5\n\tNodeStart\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\"Z\n\x0cNodeStartMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12$\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x16.proto_types.NodeStart\"g\n\x0cNodeFinished\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12-\n\nrun_result\x18\x02 \x01(\x0b\x32\x19.proto_types.RunResultMsg\"`\n\x0fNodeFinishedMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\'\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x19.proto_types.NodeFinished\"+\n\x1bQueryCancelationUnsupported\x12\x0c\n\x04type\x18\x01 \x01(\t\"~\n\x1eQueryCancelationUnsupportedMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x36\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32(.proto_types.QueryCancelationUnsupported\"O\n\x0f\x43oncurrencyLine\x12\x13\n\x0bnum_threads\x18\x01 \x01(\x05\x12\x13\n\x0btarget_name\x18\x02 \x01(\t\x12\x12\n\nnode_count\x18\x03 \x01(\x05\"f\n\x12\x43oncurrencyLineMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12*\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1c.proto_types.ConcurrencyLine\"E\n\x19WritingInjectedSQLForNode\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\"z\n\x1cWritingInjectedSQLForNodeMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x34\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32&.proto_types.WritingInjectedSQLForNode\"9\n\rNodeCompiling\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\"b\n\x10NodeCompilingMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12(\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1a.proto_types.NodeCompiling\"9\n\rNodeExecuting\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\"b\n\x10NodeExecutingMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12(\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1a.proto_types.NodeExecuting\"m\n\x10LogHookStartLine\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x11\n\tstatement\x18\x02 \x01(\t\x12\r\n\x05index\x18\x03 \x01(\x05\x12\r\n\x05total\x18\x04 \x01(\x05\"h\n\x13LogHookStartLineMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12+\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1d.proto_types.LogHookStartLine\"\x93\x01\n\x0eLogHookEndLine\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x11\n\tstatement\x18\x02 \x01(\t\x12\x0e\n\x06status\x18\x03 \x01(\t\x12\r\n\x05index\x18\x04 \x01(\x05\x12\r\n\x05total\x18\x05 \x01(\x05\x12\x16\n\x0e\x65xecution_time\x18\x06 \x01(\x02\"d\n\x11LogHookEndLineMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.LogHookEndLine\"\x93\x01\n\x0fSkippingDetails\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x15\n\rresource_type\x18\x02 \x01(\t\x12\x0e\n\x06schema\x18\x03 \x01(\t\x12\x11\n\tnode_name\x18\x04 \x01(\t\x12\r\n\x05index\x18\x05 \x01(\x05\x12\r\n\x05total\x18\x06 \x01(\x05\"f\n\x12SkippingDetailsMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12*\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1c.proto_types.SkippingDetails\"\r\n\x0bNothingToDo\"^\n\x0eNothingToDoMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12&\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x18.proto_types.NothingToDo\",\n\x1dRunningOperationUncaughtError\x12\x0b\n\x03\x65xc\x18\x01 \x01(\t\"\x82\x01\n RunningOperationUncaughtErrorMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x38\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32*.proto_types.RunningOperationUncaughtError\"\x93\x01\n\x0c\x45ndRunResult\x12*\n\x07results\x18\x01 \x03(\x0b\x32\x19.proto_types.RunResultMsg\x12\x14\n\x0c\x65lapsed_time\x18\x02 \x01(\x02\x12\x30\n\x0cgenerated_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0f\n\x07success\x18\x04 \x01(\x08\"`\n\x0f\x45ndRunResultMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\'\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x19.proto_types.EndRunResult\"\x11\n\x0fNoNodesSelected\"f\n\x12NoNodesSelectedMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12*\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1c.proto_types.NoNodesSelected\"w\n\x10\x43ommandCompleted\x12\x0f\n\x07\x63ommand\x18\x01 \x01(\t\x12\x0f\n\x07success\x18\x02 \x01(\x08\x12\x30\n\x0c\x63ompleted_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0f\n\x07\x65lapsed\x18\x04 \x01(\x02\"h\n\x13\x43ommandCompletedMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12+\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1d.proto_types.CommandCompleted\"k\n\x08ShowNode\x12\x11\n\tnode_name\x18\x01 \x01(\t\x12\x0f\n\x07preview\x18\x02 \x01(\t\x12\x11\n\tis_inline\x18\x03 \x01(\x08\x12\x15\n\routput_format\x18\x04 \x01(\t\x12\x11\n\tunique_id\x18\x05 \x01(\t\"X\n\x0bShowNodeMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12#\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x15.proto_types.ShowNode\"p\n\x0c\x43ompiledNode\x12\x11\n\tnode_name\x18\x01 \x01(\t\x12\x10\n\x08\x63ompiled\x18\x02 \x01(\t\x12\x11\n\tis_inline\x18\x03 \x01(\x08\x12\x15\n\routput_format\x18\x04 \x01(\t\x12\x11\n\tunique_id\x18\x05 \x01(\t\"`\n\x0f\x43ompiledNodeMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\'\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x19.proto_types.CompiledNode\"b\n\x17\x43\x61tchableExceptionOnRun\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x0b\n\x03\x65xc\x18\x02 \x01(\t\x12\x10\n\x08\x65xc_info\x18\x03 \x01(\t\"v\n\x1a\x43\x61tchableExceptionOnRunMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x32\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32$.proto_types.CatchableExceptionOnRun\"5\n\x12InternalErrorOnRun\x12\x12\n\nbuild_path\x18\x01 \x01(\t\x12\x0b\n\x03\x65xc\x18\x02 \x01(\t\"l\n\x15InternalErrorOnRunMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.InternalErrorOnRun\"K\n\x15GenericExceptionOnRun\x12\x12\n\nbuild_path\x18\x01 \x01(\t\x12\x11\n\tunique_id\x18\x02 \x01(\t\x12\x0b\n\x03\x65xc\x18\x03 \x01(\t\"r\n\x18GenericExceptionOnRunMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x30\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\".proto_types.GenericExceptionOnRun\"N\n\x1aNodeConnectionReleaseError\x12\x11\n\tnode_name\x18\x01 \x01(\t\x12\x0b\n\x03\x65xc\x18\x02 \x01(\t\x12\x10\n\x08\x65xc_info\x18\x03 \x01(\t\"|\n\x1dNodeConnectionReleaseErrorMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x35\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\'.proto_types.NodeConnectionReleaseError\"\x1f\n\nFoundStats\x12\x11\n\tstat_line\x18\x01 \x01(\t\"\\\n\rFoundStatsMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12%\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x17.proto_types.FoundStats\"\x17\n\x15MainKeyboardInterrupt\"r\n\x18MainKeyboardInterruptMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x30\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\".proto_types.MainKeyboardInterrupt\"#\n\x14MainEncounteredError\x12\x0b\n\x03\x65xc\x18\x01 \x01(\t\"p\n\x17MainEncounteredErrorMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12/\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32!.proto_types.MainEncounteredError\"%\n\x0eMainStackTrace\x12\x13\n\x0bstack_trace\x18\x01 \x01(\t\"d\n\x11MainStackTraceMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.MainStackTrace\"@\n\x13SystemCouldNotWrite\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x0e\n\x06reason\x18\x02 \x01(\t\x12\x0b\n\x03\x65xc\x18\x03 \x01(\t\"n\n\x16SystemCouldNotWriteMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12.\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32 .proto_types.SystemCouldNotWrite\"!\n\x12SystemExecutingCmd\x12\x0b\n\x03\x63md\x18\x01 \x03(\t\"l\n\x15SystemExecutingCmdMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.SystemExecutingCmd\"\x1c\n\x0cSystemStdOut\x12\x0c\n\x04\x62msg\x18\x01 \x01(\t\"`\n\x0fSystemStdOutMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\'\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x19.proto_types.SystemStdOut\"\x1c\n\x0cSystemStdErr\x12\x0c\n\x04\x62msg\x18\x01 \x01(\t\"`\n\x0fSystemStdErrMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\'\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x19.proto_types.SystemStdErr\",\n\x16SystemReportReturnCode\x12\x12\n\nreturncode\x18\x01 \x01(\x05\"t\n\x19SystemReportReturnCodeMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x31\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32#.proto_types.SystemReportReturnCode\"p\n\x13TimingInfoCollected\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12/\n\x0btiming_info\x18\x02 \x01(\x0b\x32\x1a.proto_types.TimingInfoMsg\"n\n\x16TimingInfoCollectedMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12.\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32 .proto_types.TimingInfoCollected\"&\n\x12LogDebugStackTrace\x12\x10\n\x08\x65xc_info\x18\x01 \x01(\t\"l\n\x15LogDebugStackTraceMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.LogDebugStackTrace\"\x1e\n\x0e\x43heckCleanPath\x12\x0c\n\x04path\x18\x01 \x01(\t\"d\n\x11\x43heckCleanPathMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.CheckCleanPath\" \n\x10\x43onfirmCleanPath\x12\x0c\n\x04path\x18\x01 \x01(\t\"h\n\x13\x43onfirmCleanPathMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12+\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1d.proto_types.ConfirmCleanPath\"\"\n\x12ProtectedCleanPath\x12\x0c\n\x04path\x18\x01 \x01(\t\"l\n\x15ProtectedCleanPathMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.ProtectedCleanPath\"\x14\n\x12\x46inishedCleanPaths\"l\n\x15\x46inishedCleanPathsMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.FinishedCleanPaths\"5\n\x0bOpenCommand\x12\x10\n\x08open_cmd\x18\x01 \x01(\t\x12\x14\n\x0cprofiles_dir\x18\x02 \x01(\t\"^\n\x0eOpenCommandMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12&\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x18.proto_types.OpenCommand\"\x19\n\nFormatting\x12\x0b\n\x03msg\x18\x01 \x01(\t\"\\\n\rFormattingMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12%\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x17.proto_types.Formatting\"0\n\x0fServingDocsPort\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x0c\n\x04port\x18\x02 \x01(\x05\"f\n\x12ServingDocsPortMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12*\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1c.proto_types.ServingDocsPort\"%\n\x15ServingDocsAccessInfo\x12\x0c\n\x04port\x18\x01 \x01(\t\"r\n\x18ServingDocsAccessInfoMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x30\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\".proto_types.ServingDocsAccessInfo\"\x15\n\x13ServingDocsExitInfo\"n\n\x16ServingDocsExitInfoMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12.\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32 .proto_types.ServingDocsExitInfo\"J\n\x10RunResultWarning\x12\x15\n\rresource_type\x18\x01 \x01(\t\x12\x11\n\tnode_name\x18\x02 \x01(\t\x12\x0c\n\x04path\x18\x03 \x01(\t\"h\n\x13RunResultWarningMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12+\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1d.proto_types.RunResultWarning\"J\n\x10RunResultFailure\x12\x15\n\rresource_type\x18\x01 \x01(\t\x12\x11\n\tnode_name\x18\x02 \x01(\t\x12\x0c\n\x04path\x18\x03 \x01(\t\"h\n\x13RunResultFailureMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12+\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1d.proto_types.RunResultFailure\"k\n\tStatsLine\x12\x30\n\x05stats\x18\x01 \x03(\x0b\x32!.proto_types.StatsLine.StatsEntry\x1a,\n\nStatsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\"Z\n\x0cStatsLineMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12$\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x16.proto_types.StatsLine\"\x1d\n\x0eRunResultError\x12\x0b\n\x03msg\x18\x01 \x01(\t\"d\n\x11RunResultErrorMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.RunResultError\")\n\x17RunResultErrorNoMessage\x12\x0e\n\x06status\x18\x01 \x01(\t\"v\n\x1aRunResultErrorNoMessageMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x32\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32$.proto_types.RunResultErrorNoMessage\"\x1f\n\x0fSQLCompiledPath\x12\x0c\n\x04path\x18\x01 \x01(\t\"f\n\x12SQLCompiledPathMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12*\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1c.proto_types.SQLCompiledPath\"-\n\x14\x43heckNodeTestFailure\x12\x15\n\rrelation_name\x18\x01 \x01(\t\"p\n\x17\x43heckNodeTestFailureMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12/\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32!.proto_types.CheckNodeTestFailure\"W\n\x0f\x45ndOfRunSummary\x12\x12\n\nnum_errors\x18\x01 \x01(\x05\x12\x14\n\x0cnum_warnings\x18\x02 \x01(\x05\x12\x1a\n\x12keyboard_interrupt\x18\x03 \x01(\x08\"f\n\x12\x45ndOfRunSummaryMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12*\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1c.proto_types.EndOfRunSummary\"U\n\x13LogSkipBecauseError\x12\x0e\n\x06schema\x18\x01 \x01(\t\x12\x10\n\x08relation\x18\x02 \x01(\t\x12\r\n\x05index\x18\x03 \x01(\x05\x12\r\n\x05total\x18\x04 \x01(\x05\"n\n\x16LogSkipBecauseErrorMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12.\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32 .proto_types.LogSkipBecauseError\"\x14\n\x12\x45nsureGitInstalled\"l\n\x15\x45nsureGitInstalledMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.EnsureGitInstalled\"\x1a\n\x18\x44\x65psCreatingLocalSymlink\"x\n\x1b\x44\x65psCreatingLocalSymlinkMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x33\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32%.proto_types.DepsCreatingLocalSymlink\"\x19\n\x17\x44\x65psSymlinkNotAvailable\"v\n\x1a\x44\x65psSymlinkNotAvailableMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x32\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32$.proto_types.DepsSymlinkNotAvailable\"\x11\n\x0f\x44isableTracking\"f\n\x12\x44isableTrackingMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12*\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1c.proto_types.DisableTracking\"\x1e\n\x0cSendingEvent\x12\x0e\n\x06kwargs\x18\x01 \x01(\t\"`\n\x0fSendingEventMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\'\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x19.proto_types.SendingEvent\"\x12\n\x10SendEventFailure\"h\n\x13SendEventFailureMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12+\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1d.proto_types.SendEventFailure\"\r\n\x0b\x46lushEvents\"^\n\x0e\x46lushEventsMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12&\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x18.proto_types.FlushEvents\"\x14\n\x12\x46lushEventsFailure\"l\n\x15\x46lushEventsFailureMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.FlushEventsFailure\"-\n\x19TrackingInitializeFailure\x12\x10\n\x08\x65xc_info\x18\x01 \x01(\t\"z\n\x1cTrackingInitializeFailureMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x34\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32&.proto_types.TrackingInitializeFailure\"&\n\x17RunResultWarningMessage\x12\x0b\n\x03msg\x18\x01 \x01(\t\"v\n\x1aRunResultWarningMessageMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x32\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32$.proto_types.RunResultWarningMessage\"\x1a\n\x0b\x44\x65\x62ugCmdOut\x12\x0b\n\x03msg\x18\x01 \x01(\t\"^\n\x0e\x44\x65\x62ugCmdOutMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12&\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x18.proto_types.DebugCmdOut\"\x1d\n\x0e\x44\x65\x62ugCmdResult\x12\x0b\n\x03msg\x18\x01 \x01(\t\"d\n\x11\x44\x65\x62ugCmdResultMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.DebugCmdResult\"\x19\n\nListCmdOut\x12\x0b\n\x03msg\x18\x01 \x01(\t\"\\\n\rListCmdOutMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12%\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x17.proto_types.ListCmdOut\"\x13\n\x04Note\x12\x0b\n\x03msg\x18\x01 \x01(\t\"P\n\x07NoteMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x1f\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x11.proto_types.Note\"\xec\x01\n\x0eResourceReport\x12\x14\n\x0c\x63ommand_name\x18\x02 \x01(\t\x12\x17\n\x0f\x63ommand_success\x18\x03 \x01(\x08\x12\x1f\n\x17\x63ommand_wall_clock_time\x18\x04 \x01(\x02\x12\x19\n\x11process_user_time\x18\x05 \x01(\x02\x12\x1b\n\x13process_kernel_time\x18\x06 \x01(\x02\x12\x1b\n\x13process_mem_max_rss\x18\x07 \x01(\x03\x12\x19\n\x11process_in_blocks\x18\x08 \x01(\x03\x12\x1a\n\x12process_out_blocks\x18\t \x01(\x03\"d\n\x11ResourceReportMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.ResourceReportb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0btypes.proto\x12\x0bproto_types\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1cgoogle/protobuf/struct.proto\"\x91\x02\n\tEventInfo\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04\x63ode\x18\x02 \x01(\t\x12\x0b\n\x03msg\x18\x03 \x01(\t\x12\r\n\x05level\x18\x04 \x01(\t\x12\x15\n\rinvocation_id\x18\x05 \x01(\t\x12\x0b\n\x03pid\x18\x06 \x01(\x05\x12\x0e\n\x06thread\x18\x07 \x01(\t\x12&\n\x02ts\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x30\n\x05\x65xtra\x18\t \x03(\x0b\x32!.proto_types.EventInfo.ExtraEntry\x12\x10\n\x08\x63\x61tegory\x18\n \x01(\t\x1a,\n\nExtraEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x7f\n\rTimingInfoMsg\x12\x0c\n\x04name\x18\x01 \x01(\t\x12.\n\nstarted_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x30\n\x0c\x63ompleted_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"V\n\x0cNodeRelation\x12\x10\n\x08\x64\x61tabase\x18\n \x01(\t\x12\x0e\n\x06schema\x18\x0b \x01(\t\x12\r\n\x05\x61lias\x18\x0c \x01(\t\x12\x15\n\rrelation_name\x18\r \x01(\t\"\x91\x02\n\x08NodeInfo\x12\x11\n\tnode_path\x18\x01 \x01(\t\x12\x11\n\tnode_name\x18\x02 \x01(\t\x12\x11\n\tunique_id\x18\x03 \x01(\t\x12\x15\n\rresource_type\x18\x04 \x01(\t\x12\x14\n\x0cmaterialized\x18\x05 \x01(\t\x12\x13\n\x0bnode_status\x18\x06 \x01(\t\x12\x17\n\x0fnode_started_at\x18\x07 \x01(\t\x12\x18\n\x10node_finished_at\x18\x08 \x01(\t\x12%\n\x04meta\x18\t \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x30\n\rnode_relation\x18\n \x01(\x0b\x32\x19.proto_types.NodeRelation\"\xd1\x01\n\x0cRunResultMsg\x12\x0e\n\x06status\x18\x01 \x01(\t\x12\x0f\n\x07message\x18\x02 \x01(\t\x12/\n\x0btiming_info\x18\x03 \x03(\x0b\x32\x1a.proto_types.TimingInfoMsg\x12\x0e\n\x06thread\x18\x04 \x01(\t\x12\x16\n\x0e\x65xecution_time\x18\x05 \x01(\x02\x12\x31\n\x10\x61\x64\x61pter_response\x18\x06 \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x14\n\x0cnum_failures\x18\x07 \x01(\x05\"G\n\x0fReferenceKeyMsg\x12\x10\n\x08\x64\x61tabase\x18\x01 \x01(\t\x12\x0e\n\x06schema\x18\x02 \x01(\t\x12\x12\n\nidentifier\x18\x03 \x01(\t\"\\\n\nColumnType\x12\x13\n\x0b\x63olumn_name\x18\x01 \x01(\t\x12\x1c\n\x14previous_column_type\x18\x02 \x01(\t\x12\x1b\n\x13\x63urrent_column_type\x18\x03 \x01(\t\"Y\n\x10\x43olumnConstraint\x12\x13\n\x0b\x63olumn_name\x18\x01 \x01(\t\x12\x17\n\x0f\x63onstraint_name\x18\x02 \x01(\t\x12\x17\n\x0f\x63onstraint_type\x18\x03 \x01(\t\"T\n\x0fModelConstraint\x12\x17\n\x0f\x63onstraint_name\x18\x01 \x01(\t\x12\x17\n\x0f\x63onstraint_type\x18\x02 \x01(\t\x12\x0f\n\x07\x63olumns\x18\x03 \x03(\t\"6\n\x0eGenericMessage\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\"9\n\x11MainReportVersion\x12\x0f\n\x07version\x18\x01 \x01(\t\x12\x13\n\x0blog_version\x18\x02 \x01(\x05\"j\n\x14MainReportVersionMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12,\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1e.proto_types.MainReportVersion\"r\n\x0eMainReportArgs\x12\x33\n\x04\x61rgs\x18\x01 \x03(\x0b\x32%.proto_types.MainReportArgs.ArgsEntry\x1a+\n\tArgsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"d\n\x11MainReportArgsMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.MainReportArgs\"+\n\x15MainTrackingUserState\x12\x12\n\nuser_state\x18\x01 \x01(\t\"r\n\x18MainTrackingUserStateMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x30\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\".proto_types.MainTrackingUserState\"5\n\x0fMergedFromState\x12\x12\n\nnum_merged\x18\x01 \x01(\x05\x12\x0e\n\x06sample\x18\x02 \x03(\t\"f\n\x12MergedFromStateMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12*\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1c.proto_types.MergedFromState\"A\n\x14MissingProfileTarget\x12\x14\n\x0cprofile_name\x18\x01 \x01(\t\x12\x13\n\x0btarget_name\x18\x02 \x01(\t\"p\n\x17MissingProfileTargetMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12/\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32!.proto_types.MissingProfileTarget\"(\n\x11InvalidOptionYAML\x12\x13\n\x0boption_name\x18\x01 \x01(\t\"j\n\x14InvalidOptionYAMLMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12,\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1e.proto_types.InvalidOptionYAML\"!\n\x12LogDbtProjectError\x12\x0b\n\x03\x65xc\x18\x01 \x01(\t\"l\n\x15LogDbtProjectErrorMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.LogDbtProjectError\"3\n\x12LogDbtProfileError\x12\x0b\n\x03\x65xc\x18\x01 \x01(\t\x12\x10\n\x08profiles\x18\x02 \x03(\t\"l\n\x15LogDbtProfileErrorMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.LogDbtProfileError\"!\n\x12StarterProjectPath\x12\x0b\n\x03\x64ir\x18\x01 \x01(\t\"l\n\x15StarterProjectPathMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.StarterProjectPath\"$\n\x15\x43onfigFolderDirectory\x12\x0b\n\x03\x64ir\x18\x01 \x01(\t\"r\n\x18\x43onfigFolderDirectoryMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x30\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\".proto_types.ConfigFolderDirectory\"\'\n\x14NoSampleProfileFound\x12\x0f\n\x07\x61\x64\x61pter\x18\x01 \x01(\t\"p\n\x17NoSampleProfileFoundMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12/\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32!.proto_types.NoSampleProfileFound\"6\n\x18ProfileWrittenWithSample\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\t\"x\n\x1bProfileWrittenWithSampleMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x33\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32%.proto_types.ProfileWrittenWithSample\"B\n$ProfileWrittenWithTargetTemplateYAML\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\t\"\x90\x01\n\'ProfileWrittenWithTargetTemplateYAMLMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12?\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x31.proto_types.ProfileWrittenWithTargetTemplateYAML\"C\n%ProfileWrittenWithProjectTemplateYAML\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\t\"\x92\x01\n(ProfileWrittenWithProjectTemplateYAMLMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12@\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x32.proto_types.ProfileWrittenWithProjectTemplateYAML\"\x12\n\x10SettingUpProfile\"h\n\x13SettingUpProfileMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12+\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1d.proto_types.SettingUpProfile\"\x1c\n\x1aInvalidProfileTemplateYAML\"|\n\x1dInvalidProfileTemplateYAMLMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x35\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\'.proto_types.InvalidProfileTemplateYAML\"(\n\x18ProjectNameAlreadyExists\x12\x0c\n\x04name\x18\x01 \x01(\t\"x\n\x1bProjectNameAlreadyExistsMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x33\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32%.proto_types.ProjectNameAlreadyExists\"K\n\x0eProjectCreated\x12\x14\n\x0cproject_name\x18\x01 \x01(\t\x12\x10\n\x08\x64ocs_url\x18\x02 \x01(\t\x12\x11\n\tslack_url\x18\x03 \x01(\t\"d\n\x11ProjectCreatedMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.ProjectCreated\"@\n\x1aPackageRedirectDeprecation\x12\x10\n\x08old_name\x18\x01 \x01(\t\x12\x10\n\x08new_name\x18\x02 \x01(\t\"|\n\x1dPackageRedirectDeprecationMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x35\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\'.proto_types.PackageRedirectDeprecation\"\x1f\n\x1dPackageInstallPathDeprecation\"\x82\x01\n PackageInstallPathDeprecationMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x38\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32*.proto_types.PackageInstallPathDeprecation\"H\n\x1b\x43onfigSourcePathDeprecation\x12\x17\n\x0f\x64\x65precated_path\x18\x01 \x01(\t\x12\x10\n\x08\x65xp_path\x18\x02 \x01(\t\"~\n\x1e\x43onfigSourcePathDeprecationMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x36\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32(.proto_types.ConfigSourcePathDeprecation\"F\n\x19\x43onfigDataPathDeprecation\x12\x17\n\x0f\x64\x65precated_path\x18\x01 \x01(\t\x12\x10\n\x08\x65xp_path\x18\x02 \x01(\t\"z\n\x1c\x43onfigDataPathDeprecationMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x34\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32&.proto_types.ConfigDataPathDeprecation\"?\n\x19\x41\x64\x61pterDeprecationWarning\x12\x10\n\x08old_name\x18\x01 \x01(\t\x12\x10\n\x08new_name\x18\x02 \x01(\t\"z\n\x1c\x41\x64\x61pterDeprecationWarningMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x34\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32&.proto_types.AdapterDeprecationWarning\".\n\x17MetricAttributesRenamed\x12\x13\n\x0bmetric_name\x18\x01 \x01(\t\"v\n\x1aMetricAttributesRenamedMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x32\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32$.proto_types.MetricAttributesRenamed\"+\n\x17\x45xposureNameDeprecation\x12\x10\n\x08\x65xposure\x18\x01 \x01(\t\"v\n\x1a\x45xposureNameDeprecationMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x32\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32$.proto_types.ExposureNameDeprecation\"^\n\x13InternalDeprecation\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0e\n\x06reason\x18\x02 \x01(\t\x12\x18\n\x10suggested_action\x18\x03 \x01(\t\x12\x0f\n\x07version\x18\x04 \x01(\t\"n\n\x16InternalDeprecationMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12.\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32 .proto_types.InternalDeprecation\"@\n\x1a\x45nvironmentVariableRenamed\x12\x10\n\x08old_name\x18\x01 \x01(\t\x12\x10\n\x08new_name\x18\x02 \x01(\t\"|\n\x1d\x45nvironmentVariableRenamedMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x35\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\'.proto_types.EnvironmentVariableRenamed\"3\n\x18\x43onfigLogPathDeprecation\x12\x17\n\x0f\x64\x65precated_path\x18\x01 \x01(\t\"x\n\x1b\x43onfigLogPathDeprecationMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x33\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32%.proto_types.ConfigLogPathDeprecation\"6\n\x1b\x43onfigTargetPathDeprecation\x12\x17\n\x0f\x64\x65precated_path\x18\x01 \x01(\t\"~\n\x1e\x43onfigTargetPathDeprecationMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x36\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32(.proto_types.ConfigTargetPathDeprecation\"!\n\x1f\x43ollectFreshnessReturnSignature\"\x86\x01\n\"CollectFreshnessReturnSignatureMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12:\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32,.proto_types.CollectFreshnessReturnSignature\"\x1e\n\x1cProjectFlagsMovedDeprecation\"\x80\x01\n\x1fProjectFlagsMovedDeprecationMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x37\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32).proto_types.ProjectFlagsMovedDeprecation\"\x87\x01\n\x11\x41\x64\x61pterEventDebug\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x10\n\x08\x62\x61se_msg\x18\x03 \x01(\t\x12(\n\x04\x61rgs\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.ListValue\"j\n\x14\x41\x64\x61pterEventDebugMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12,\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1e.proto_types.AdapterEventDebug\"\x86\x01\n\x10\x41\x64\x61pterEventInfo\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x10\n\x08\x62\x61se_msg\x18\x03 \x01(\t\x12(\n\x04\x61rgs\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.ListValue\"h\n\x13\x41\x64\x61pterEventInfoMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12+\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1d.proto_types.AdapterEventInfo\"\x89\x01\n\x13\x41\x64\x61pterEventWarning\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x10\n\x08\x62\x61se_msg\x18\x03 \x01(\t\x12(\n\x04\x61rgs\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.ListValue\"n\n\x16\x41\x64\x61pterEventWarningMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12.\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32 .proto_types.AdapterEventWarning\"\x99\x01\n\x11\x41\x64\x61pterEventError\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x10\n\x08\x62\x61se_msg\x18\x03 \x01(\t\x12(\n\x04\x61rgs\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.ListValue\x12\x10\n\x08\x65xc_info\x18\x05 \x01(\t\"j\n\x14\x41\x64\x61pterEventErrorMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12,\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1e.proto_types.AdapterEventError\"_\n\rNewConnection\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x11\n\tconn_type\x18\x02 \x01(\t\x12\x11\n\tconn_name\x18\x03 \x01(\t\"b\n\x10NewConnectionMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12(\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1a.proto_types.NewConnection\"=\n\x10\x43onnectionReused\x12\x11\n\tconn_name\x18\x01 \x01(\t\x12\x16\n\x0eorig_conn_name\x18\x02 \x01(\t\"h\n\x13\x43onnectionReusedMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12+\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1d.proto_types.ConnectionReused\"0\n\x1b\x43onnectionLeftOpenInCleanup\x12\x11\n\tconn_name\x18\x01 \x01(\t\"~\n\x1e\x43onnectionLeftOpenInCleanupMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x36\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32(.proto_types.ConnectionLeftOpenInCleanup\".\n\x19\x43onnectionClosedInCleanup\x12\x11\n\tconn_name\x18\x01 \x01(\t\"z\n\x1c\x43onnectionClosedInCleanupMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x34\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32&.proto_types.ConnectionClosedInCleanup\"_\n\x0eRollbackFailed\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x11\n\tconn_name\x18\x02 \x01(\t\x12\x10\n\x08\x65xc_info\x18\x03 \x01(\t\"d\n\x11RollbackFailedMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.RollbackFailed\"O\n\x10\x43onnectionClosed\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x11\n\tconn_name\x18\x02 \x01(\t\"h\n\x13\x43onnectionClosedMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12+\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1d.proto_types.ConnectionClosed\"Q\n\x12\x43onnectionLeftOpen\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x11\n\tconn_name\x18\x02 \x01(\t\"l\n\x15\x43onnectionLeftOpenMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.ConnectionLeftOpen\"G\n\x08Rollback\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x11\n\tconn_name\x18\x02 \x01(\t\"X\n\x0bRollbackMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12#\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x15.proto_types.Rollback\"@\n\tCacheMiss\x12\x11\n\tconn_name\x18\x01 \x01(\t\x12\x10\n\x08\x64\x61tabase\x18\x02 \x01(\t\x12\x0e\n\x06schema\x18\x03 \x01(\t\"Z\n\x0c\x43\x61\x63heMissMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12$\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x16.proto_types.CacheMiss\"b\n\rListRelations\x12\x10\n\x08\x64\x61tabase\x18\x01 \x01(\t\x12\x0e\n\x06schema\x18\x02 \x01(\t\x12/\n\trelations\x18\x03 \x03(\x0b\x32\x1c.proto_types.ReferenceKeyMsg\"b\n\x10ListRelationsMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12(\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1a.proto_types.ListRelations\"`\n\x0e\x43onnectionUsed\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x11\n\tconn_type\x18\x02 \x01(\t\x12\x11\n\tconn_name\x18\x03 \x01(\t\"d\n\x11\x43onnectionUsedMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.ConnectionUsed\"T\n\x08SQLQuery\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x11\n\tconn_name\x18\x02 \x01(\t\x12\x0b\n\x03sql\x18\x03 \x01(\t\"X\n\x0bSQLQueryMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12#\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x15.proto_types.SQLQuery\"[\n\x0eSQLQueryStatus\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x0e\n\x06status\x18\x02 \x01(\t\x12\x0f\n\x07\x65lapsed\x18\x03 \x01(\x02\"d\n\x11SQLQueryStatusMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.SQLQueryStatus\"H\n\tSQLCommit\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x11\n\tconn_name\x18\x02 \x01(\t\"Z\n\x0cSQLCommitMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12$\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x16.proto_types.SQLCommit\"a\n\rColTypeChange\x12\x11\n\torig_type\x18\x01 \x01(\t\x12\x10\n\x08new_type\x18\x02 \x01(\t\x12+\n\x05table\x18\x03 \x01(\x0b\x32\x1c.proto_types.ReferenceKeyMsg\"b\n\x10\x43olTypeChangeMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12(\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1a.proto_types.ColTypeChange\"@\n\x0eSchemaCreation\x12.\n\x08relation\x18\x01 \x01(\x0b\x32\x1c.proto_types.ReferenceKeyMsg\"d\n\x11SchemaCreationMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.SchemaCreation\"<\n\nSchemaDrop\x12.\n\x08relation\x18\x01 \x01(\x0b\x32\x1c.proto_types.ReferenceKeyMsg\"\\\n\rSchemaDropMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12%\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x17.proto_types.SchemaDrop\"\xde\x01\n\x0b\x43\x61\x63heAction\x12\x0e\n\x06\x61\x63tion\x18\x01 \x01(\t\x12-\n\x07ref_key\x18\x02 \x01(\x0b\x32\x1c.proto_types.ReferenceKeyMsg\x12/\n\tref_key_2\x18\x03 \x01(\x0b\x32\x1c.proto_types.ReferenceKeyMsg\x12/\n\tref_key_3\x18\x04 \x01(\x0b\x32\x1c.proto_types.ReferenceKeyMsg\x12.\n\x08ref_list\x18\x05 \x03(\x0b\x32\x1c.proto_types.ReferenceKeyMsg\"^\n\x0e\x43\x61\x63heActionMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12&\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x18.proto_types.CacheAction\"\x98\x01\n\x0e\x43\x61\x63heDumpGraph\x12\x33\n\x04\x64ump\x18\x01 \x03(\x0b\x32%.proto_types.CacheDumpGraph.DumpEntry\x12\x14\n\x0c\x62\x65\x66ore_after\x18\x02 \x01(\t\x12\x0e\n\x06\x61\x63tion\x18\x03 \x01(\t\x1a+\n\tDumpEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"d\n\x11\x43\x61\x63heDumpGraphMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.CacheDumpGraph\"B\n\x11\x41\x64\x61pterRegistered\x12\x14\n\x0c\x61\x64\x61pter_name\x18\x01 \x01(\t\x12\x17\n\x0f\x61\x64\x61pter_version\x18\x02 \x01(\t\"j\n\x14\x41\x64\x61pterRegisteredMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12,\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1e.proto_types.AdapterRegistered\"!\n\x12\x41\x64\x61pterImportError\x12\x0b\n\x03\x65xc\x18\x01 \x01(\t\"l\n\x15\x41\x64\x61pterImportErrorMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.AdapterImportError\"#\n\x0fPluginLoadError\x12\x10\n\x08\x65xc_info\x18\x01 \x01(\t\"f\n\x12PluginLoadErrorMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12*\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1c.proto_types.PluginLoadError\"Z\n\x14NewConnectionOpening\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x18\n\x10\x63onnection_state\x18\x02 \x01(\t\"p\n\x17NewConnectionOpeningMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12/\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32!.proto_types.NewConnectionOpening\"8\n\rCodeExecution\x12\x11\n\tconn_name\x18\x01 \x01(\t\x12\x14\n\x0c\x63ode_content\x18\x02 \x01(\t\"b\n\x10\x43odeExecutionMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12(\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1a.proto_types.CodeExecution\"6\n\x13\x43odeExecutionStatus\x12\x0e\n\x06status\x18\x01 \x01(\t\x12\x0f\n\x07\x65lapsed\x18\x02 \x01(\x02\"n\n\x16\x43odeExecutionStatusMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12.\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32 .proto_types.CodeExecutionStatus\"%\n\x16\x43\x61talogGenerationError\x12\x0b\n\x03\x65xc\x18\x01 \x01(\t\"t\n\x19\x43\x61talogGenerationErrorMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x31\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32#.proto_types.CatalogGenerationError\"-\n\x13WriteCatalogFailure\x12\x16\n\x0enum_exceptions\x18\x01 \x01(\x05\"n\n\x16WriteCatalogFailureMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12.\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32 .proto_types.WriteCatalogFailure\"\x1e\n\x0e\x43\x61talogWritten\x12\x0c\n\x04path\x18\x01 \x01(\t\"d\n\x11\x43\x61talogWrittenMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.CatalogWritten\"\x14\n\x12\x43\x61nnotGenerateDocs\"l\n\x15\x43\x61nnotGenerateDocsMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.CannotGenerateDocs\"\x11\n\x0f\x42uildingCatalog\"f\n\x12\x42uildingCatalogMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12*\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1c.proto_types.BuildingCatalog\"-\n\x18\x44\x61tabaseErrorRunningHook\x12\x11\n\thook_type\x18\x01 \x01(\t\"x\n\x1b\x44\x61tabaseErrorRunningHookMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x33\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32%.proto_types.DatabaseErrorRunningHook\"4\n\x0cHooksRunning\x12\x11\n\tnum_hooks\x18\x01 \x01(\x05\x12\x11\n\thook_type\x18\x02 \x01(\t\"`\n\x0fHooksRunningMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\'\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x19.proto_types.HooksRunning\"T\n\x14\x46inishedRunningStats\x12\x11\n\tstat_line\x18\x01 \x01(\t\x12\x11\n\texecution\x18\x02 \x01(\t\x12\x16\n\x0e\x65xecution_time\x18\x03 \x01(\x02\"p\n\x17\x46inishedRunningStatsMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12/\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32!.proto_types.FinishedRunningStats\"<\n\x15\x43onstraintNotEnforced\x12\x12\n\nconstraint\x18\x01 \x01(\t\x12\x0f\n\x07\x61\x64\x61pter\x18\x02 \x01(\t\"r\n\x18\x43onstraintNotEnforcedMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x30\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\".proto_types.ConstraintNotEnforced\"=\n\x16\x43onstraintNotSupported\x12\x12\n\nconstraint\x18\x01 \x01(\t\x12\x0f\n\x07\x61\x64\x61pter\x18\x02 \x01(\t\"t\n\x19\x43onstraintNotSupportedMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x31\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32#.proto_types.ConstraintNotSupported\"7\n\x12InputFileDiffError\x12\x10\n\x08\x63\x61tegory\x18\x01 \x01(\t\x12\x0f\n\x07\x66ile_id\x18\x02 \x01(\t\"l\n\x15InputFileDiffErrorMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.InputFileDiffError\"?\n\x14InvalidValueForField\x12\x12\n\nfield_name\x18\x01 \x01(\t\x12\x13\n\x0b\x66ield_value\x18\x02 \x01(\t\"p\n\x17InvalidValueForFieldMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12/\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32!.proto_types.InvalidValueForField\"Q\n\x11ValidationWarning\x12\x15\n\rresource_type\x18\x01 \x01(\t\x12\x12\n\nfield_name\x18\x02 \x01(\t\x12\x11\n\tnode_name\x18\x03 \x01(\t\"j\n\x14ValidationWarningMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12,\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1e.proto_types.ValidationWarning\"!\n\x11ParsePerfInfoPath\x12\x0c\n\x04path\x18\x01 \x01(\t\"j\n\x14ParsePerfInfoPathMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12,\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1e.proto_types.ParsePerfInfoPath\"1\n!PartialParsingErrorProcessingFile\x12\x0c\n\x04\x66ile\x18\x01 \x01(\t\"\x8a\x01\n$PartialParsingErrorProcessingFileMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12<\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32..proto_types.PartialParsingErrorProcessingFile\"\x86\x01\n\x13PartialParsingError\x12?\n\x08\x65xc_info\x18\x01 \x03(\x0b\x32-.proto_types.PartialParsingError.ExcInfoEntry\x1a.\n\x0c\x45xcInfoEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"n\n\x16PartialParsingErrorMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12.\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32 .proto_types.PartialParsingError\"\x1b\n\x19PartialParsingSkipParsing\"z\n\x1cPartialParsingSkipParsingMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x34\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32&.proto_types.PartialParsingSkipParsing\"&\n\x14UnableToPartialParse\x12\x0e\n\x06reason\x18\x01 \x01(\t\"p\n\x17UnableToPartialParseMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12/\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32!.proto_types.UnableToPartialParse\"f\n\x12StateCheckVarsHash\x12\x10\n\x08\x63hecksum\x18\x01 \x01(\t\x12\x0c\n\x04vars\x18\x02 \x01(\t\x12\x0f\n\x07profile\x18\x03 \x01(\t\x12\x0e\n\x06target\x18\x04 \x01(\t\x12\x0f\n\x07version\x18\x05 \x01(\t\"l\n\x15StateCheckVarsHashMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.StateCheckVarsHash\"\x1a\n\x18PartialParsingNotEnabled\"x\n\x1bPartialParsingNotEnabledMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x33\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32%.proto_types.PartialParsingNotEnabled\"C\n\x14ParsedFileLoadFailed\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x0b\n\x03\x65xc\x18\x02 \x01(\t\x12\x10\n\x08\x65xc_info\x18\x03 \x01(\t\"p\n\x17ParsedFileLoadFailedMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12/\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32!.proto_types.ParsedFileLoadFailed\"H\n\x15PartialParsingEnabled\x12\x0f\n\x07\x64\x65leted\x18\x01 \x01(\x05\x12\r\n\x05\x61\x64\x64\x65\x64\x18\x02 \x01(\x05\x12\x0f\n\x07\x63hanged\x18\x03 \x01(\x05\"r\n\x18PartialParsingEnabledMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x30\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\".proto_types.PartialParsingEnabled\"8\n\x12PartialParsingFile\x12\x0f\n\x07\x66ile_id\x18\x01 \x01(\t\x12\x11\n\toperation\x18\x02 \x01(\t\"l\n\x15PartialParsingFileMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.PartialParsingFile\"\xaf\x01\n\x1fInvalidDisabledTargetInTestNode\x12\x1b\n\x13resource_type_title\x18\x01 \x01(\t\x12\x11\n\tunique_id\x18\x02 \x01(\t\x12\x1a\n\x12original_file_path\x18\x03 \x01(\t\x12\x13\n\x0btarget_kind\x18\x04 \x01(\t\x12\x13\n\x0btarget_name\x18\x05 \x01(\t\x12\x16\n\x0etarget_package\x18\x06 \x01(\t\"\x86\x01\n\"InvalidDisabledTargetInTestNodeMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12:\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32,.proto_types.InvalidDisabledTargetInTestNode\"7\n\x18UnusedResourceConfigPath\x12\x1b\n\x13unused_config_paths\x18\x01 \x03(\t\"x\n\x1bUnusedResourceConfigPathMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x33\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32%.proto_types.UnusedResourceConfigPath\"3\n\rSeedIncreased\x12\x14\n\x0cpackage_name\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"b\n\x10SeedIncreasedMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12(\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1a.proto_types.SeedIncreased\">\n\x18SeedExceedsLimitSamePath\x12\x14\n\x0cpackage_name\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"x\n\x1bSeedExceedsLimitSamePathMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x33\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32%.proto_types.SeedExceedsLimitSamePath\"D\n\x1eSeedExceedsLimitAndPathChanged\x12\x14\n\x0cpackage_name\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"\x84\x01\n!SeedExceedsLimitAndPathChangedMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x39\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32+.proto_types.SeedExceedsLimitAndPathChanged\"\\\n\x1fSeedExceedsLimitChecksumChanged\x12\x14\n\x0cpackage_name\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x15\n\rchecksum_name\x18\x03 \x01(\t\"\x86\x01\n\"SeedExceedsLimitChecksumChangedMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12:\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32,.proto_types.SeedExceedsLimitChecksumChanged\"%\n\x0cUnusedTables\x12\x15\n\runused_tables\x18\x01 \x03(\t\"`\n\x0fUnusedTablesMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\'\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x19.proto_types.UnusedTables\"\x87\x01\n\x17WrongResourceSchemaFile\x12\x12\n\npatch_name\x18\x01 \x01(\t\x12\x15\n\rresource_type\x18\x02 \x01(\t\x12\x1c\n\x14plural_resource_type\x18\x03 \x01(\t\x12\x10\n\x08yaml_key\x18\x04 \x01(\t\x12\x11\n\tfile_path\x18\x05 \x01(\t\"v\n\x1aWrongResourceSchemaFileMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x32\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32$.proto_types.WrongResourceSchemaFile\"K\n\x10NoNodeForYamlKey\x12\x12\n\npatch_name\x18\x01 \x01(\t\x12\x10\n\x08yaml_key\x18\x02 \x01(\t\x12\x11\n\tfile_path\x18\x03 \x01(\t\"h\n\x13NoNodeForYamlKeyMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12+\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1d.proto_types.NoNodeForYamlKey\"+\n\x15MacroNotFoundForPatch\x12\x12\n\npatch_name\x18\x01 \x01(\t\"r\n\x18MacroNotFoundForPatchMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x30\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\".proto_types.MacroNotFoundForPatch\"\xb8\x01\n\x16NodeNotFoundOrDisabled\x12\x1a\n\x12original_file_path\x18\x01 \x01(\t\x12\x11\n\tunique_id\x18\x02 \x01(\t\x12\x1b\n\x13resource_type_title\x18\x03 \x01(\t\x12\x13\n\x0btarget_name\x18\x04 \x01(\t\x12\x13\n\x0btarget_kind\x18\x05 \x01(\t\x12\x16\n\x0etarget_package\x18\x06 \x01(\t\x12\x10\n\x08\x64isabled\x18\x07 \x01(\t\"t\n\x19NodeNotFoundOrDisabledMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x31\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32#.proto_types.NodeNotFoundOrDisabled\"H\n\x0fJinjaLogWarning\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x0b\n\x03msg\x18\x02 \x01(\t\"f\n\x12JinjaLogWarningMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12*\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1c.proto_types.JinjaLogWarning\"E\n\x0cJinjaLogInfo\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x0b\n\x03msg\x18\x02 \x01(\t\"`\n\x0fJinjaLogInfoMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\'\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x19.proto_types.JinjaLogInfo\"F\n\rJinjaLogDebug\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x0b\n\x03msg\x18\x02 \x01(\t\"b\n\x10JinjaLogDebugMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12(\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1a.proto_types.JinjaLogDebug\"\xae\x01\n\x1eUnpinnedRefNewVersionAvailable\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x15\n\rref_node_name\x18\x02 \x01(\t\x12\x18\n\x10ref_node_package\x18\x03 \x01(\t\x12\x18\n\x10ref_node_version\x18\x04 \x01(\t\x12\x17\n\x0fref_max_version\x18\x05 \x01(\t\"\x84\x01\n!UnpinnedRefNewVersionAvailableMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x39\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32+.proto_types.UnpinnedRefNewVersionAvailable\"V\n\x0f\x44\x65precatedModel\x12\x12\n\nmodel_name\x18\x01 \x01(\t\x12\x15\n\rmodel_version\x18\x02 \x01(\t\x12\x18\n\x10\x64\x65precation_date\x18\x03 \x01(\t\"f\n\x12\x44\x65precatedModelMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12*\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1c.proto_types.DeprecatedModel\"\xc6\x01\n\x1cUpcomingReferenceDeprecation\x12\x12\n\nmodel_name\x18\x01 \x01(\t\x12\x19\n\x11ref_model_package\x18\x02 \x01(\t\x12\x16\n\x0eref_model_name\x18\x03 \x01(\t\x12\x19\n\x11ref_model_version\x18\x04 \x01(\t\x12 \n\x18ref_model_latest_version\x18\x05 \x01(\t\x12\"\n\x1aref_model_deprecation_date\x18\x06 \x01(\t\"\x80\x01\n\x1fUpcomingReferenceDeprecationMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x37\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32).proto_types.UpcomingReferenceDeprecation\"\xbd\x01\n\x13\x44\x65precatedReference\x12\x12\n\nmodel_name\x18\x01 \x01(\t\x12\x19\n\x11ref_model_package\x18\x02 \x01(\t\x12\x16\n\x0eref_model_name\x18\x03 \x01(\t\x12\x19\n\x11ref_model_version\x18\x04 \x01(\t\x12 \n\x18ref_model_latest_version\x18\x05 \x01(\t\x12\"\n\x1aref_model_deprecation_date\x18\x06 \x01(\t\"n\n\x16\x44\x65precatedReferenceMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12.\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32 .proto_types.DeprecatedReference\"<\n$UnsupportedConstraintMaterialization\x12\x14\n\x0cmaterialized\x18\x01 \x01(\t\"\x90\x01\n\'UnsupportedConstraintMaterializationMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12?\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x31.proto_types.UnsupportedConstraintMaterialization\"M\n\x14ParseInlineNodeError\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x0b\n\x03\x65xc\x18\x02 \x01(\t\"p\n\x17ParseInlineNodeErrorMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12/\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32!.proto_types.ParseInlineNodeError\"(\n\x19SemanticValidationFailure\x12\x0b\n\x03msg\x18\x02 \x01(\t\"z\n\x1cSemanticValidationFailureMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x34\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32&.proto_types.SemanticValidationFailure\"\x8a\x03\n\x19UnversionedBreakingChange\x12\x18\n\x10\x62reaking_changes\x18\x01 \x03(\t\x12\x12\n\nmodel_name\x18\x02 \x01(\t\x12\x17\n\x0fmodel_file_path\x18\x03 \x01(\t\x12\"\n\x1a\x63ontract_enforced_disabled\x18\x04 \x01(\x08\x12\x17\n\x0f\x63olumns_removed\x18\x05 \x03(\t\x12\x34\n\x13\x63olumn_type_changes\x18\x06 \x03(\x0b\x32\x17.proto_types.ColumnType\x12I\n\"enforced_column_constraint_removed\x18\x07 \x03(\x0b\x32\x1d.proto_types.ColumnConstraint\x12G\n!enforced_model_constraint_removed\x18\x08 \x03(\x0b\x32\x1c.proto_types.ModelConstraint\x12\x1f\n\x17materialization_changed\x18\t \x03(\t\"z\n\x1cUnversionedBreakingChangeMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x34\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32&.proto_types.UnversionedBreakingChange\"*\n\x14WarnStateTargetEqual\x12\x12\n\nstate_path\x18\x01 \x01(\t\"p\n\x17WarnStateTargetEqualMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12/\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32!.proto_types.WarnStateTargetEqual\"%\n\x16\x46reshnessConfigProblem\x12\x0b\n\x03msg\x18\x01 \x01(\t\"t\n\x19\x46reshnessConfigProblemMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x31\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32#.proto_types.FreshnessConfigProblem\"/\n\x1dGitSparseCheckoutSubdirectory\x12\x0e\n\x06subdir\x18\x01 \x01(\t\"\x82\x01\n GitSparseCheckoutSubdirectoryMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x38\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32*.proto_types.GitSparseCheckoutSubdirectory\"/\n\x1bGitProgressCheckoutRevision\x12\x10\n\x08revision\x18\x01 \x01(\t\"~\n\x1eGitProgressCheckoutRevisionMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x36\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32(.proto_types.GitProgressCheckoutRevision\"4\n%GitProgressUpdatingExistingDependency\x12\x0b\n\x03\x64ir\x18\x01 \x01(\t\"\x92\x01\n(GitProgressUpdatingExistingDependencyMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12@\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x32.proto_types.GitProgressUpdatingExistingDependency\".\n\x1fGitProgressPullingNewDependency\x12\x0b\n\x03\x64ir\x18\x01 \x01(\t\"\x86\x01\n\"GitProgressPullingNewDependencyMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12:\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32,.proto_types.GitProgressPullingNewDependency\"\x1d\n\x0eGitNothingToDo\x12\x0b\n\x03sha\x18\x01 \x01(\t\"d\n\x11GitNothingToDoMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.GitNothingToDo\"E\n\x1fGitProgressUpdatedCheckoutRange\x12\x11\n\tstart_sha\x18\x01 \x01(\t\x12\x0f\n\x07\x65nd_sha\x18\x02 \x01(\t\"\x86\x01\n\"GitProgressUpdatedCheckoutRangeMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12:\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32,.proto_types.GitProgressUpdatedCheckoutRange\"*\n\x17GitProgressCheckedOutAt\x12\x0f\n\x07\x65nd_sha\x18\x01 \x01(\t\"v\n\x1aGitProgressCheckedOutAtMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x32\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32$.proto_types.GitProgressCheckedOutAt\")\n\x1aRegistryProgressGETRequest\x12\x0b\n\x03url\x18\x01 \x01(\t\"|\n\x1dRegistryProgressGETRequestMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x35\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\'.proto_types.RegistryProgressGETRequest\"=\n\x1bRegistryProgressGETResponse\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x11\n\tresp_code\x18\x02 \x01(\x05\"~\n\x1eRegistryProgressGETResponseMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x36\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32(.proto_types.RegistryProgressGETResponse\"_\n\x1dSelectorReportInvalidSelector\x12\x17\n\x0fvalid_selectors\x18\x01 \x01(\t\x12\x13\n\x0bspec_method\x18\x02 \x01(\t\x12\x10\n\x08raw_spec\x18\x03 \x01(\t\"\x82\x01\n SelectorReportInvalidSelectorMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x38\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32*.proto_types.SelectorReportInvalidSelector\"\x15\n\x13\x44\x65psNoPackagesFound\"n\n\x16\x44\x65psNoPackagesFoundMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12.\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32 .proto_types.DepsNoPackagesFound\"/\n\x17\x44\x65psStartPackageInstall\x12\x14\n\x0cpackage_name\x18\x01 \x01(\t\"v\n\x1a\x44\x65psStartPackageInstallMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x32\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32$.proto_types.DepsStartPackageInstall\"\'\n\x0f\x44\x65psInstallInfo\x12\x14\n\x0cversion_name\x18\x01 \x01(\t\"f\n\x12\x44\x65psInstallInfoMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12*\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1c.proto_types.DepsInstallInfo\"-\n\x13\x44\x65psUpdateAvailable\x12\x16\n\x0eversion_latest\x18\x01 \x01(\t\"n\n\x16\x44\x65psUpdateAvailableMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12.\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32 .proto_types.DepsUpdateAvailable\"\x0e\n\x0c\x44\x65psUpToDate\"`\n\x0f\x44\x65psUpToDateMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\'\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x19.proto_types.DepsUpToDate\",\n\x14\x44\x65psListSubdirectory\x12\x14\n\x0csubdirectory\x18\x01 \x01(\t\"p\n\x17\x44\x65psListSubdirectoryMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12/\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32!.proto_types.DepsListSubdirectory\".\n\x1a\x44\x65psNotifyUpdatesAvailable\x12\x10\n\x08packages\x18\x01 \x03(\t\"|\n\x1d\x44\x65psNotifyUpdatesAvailableMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x35\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\'.proto_types.DepsNotifyUpdatesAvailable\"1\n\x11RetryExternalCall\x12\x0f\n\x07\x61ttempt\x18\x01 \x01(\x05\x12\x0b\n\x03max\x18\x02 \x01(\x05\"j\n\x14RetryExternalCallMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12,\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1e.proto_types.RetryExternalCall\"#\n\x14RecordRetryException\x12\x0b\n\x03\x65xc\x18\x01 \x01(\t\"p\n\x17RecordRetryExceptionMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12/\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32!.proto_types.RecordRetryException\".\n\x1fRegistryIndexProgressGETRequest\x12\x0b\n\x03url\x18\x01 \x01(\t\"\x86\x01\n\"RegistryIndexProgressGETRequestMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12:\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32,.proto_types.RegistryIndexProgressGETRequest\"B\n RegistryIndexProgressGETResponse\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x11\n\tresp_code\x18\x02 \x01(\x05\"\x88\x01\n#RegistryIndexProgressGETResponseMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12;\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32-.proto_types.RegistryIndexProgressGETResponse\"2\n\x1eRegistryResponseUnexpectedType\x12\x10\n\x08response\x18\x01 \x01(\t\"\x84\x01\n!RegistryResponseUnexpectedTypeMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x39\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32+.proto_types.RegistryResponseUnexpectedType\"2\n\x1eRegistryResponseMissingTopKeys\x12\x10\n\x08response\x18\x01 \x01(\t\"\x84\x01\n!RegistryResponseMissingTopKeysMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x39\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32+.proto_types.RegistryResponseMissingTopKeys\"5\n!RegistryResponseMissingNestedKeys\x12\x10\n\x08response\x18\x01 \x01(\t\"\x8a\x01\n$RegistryResponseMissingNestedKeysMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12<\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32..proto_types.RegistryResponseMissingNestedKeys\"3\n\x1fRegistryResponseExtraNestedKeys\x12\x10\n\x08response\x18\x01 \x01(\t\"\x86\x01\n\"RegistryResponseExtraNestedKeysMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12:\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32,.proto_types.RegistryResponseExtraNestedKeys\"(\n\x18\x44\x65psSetDownloadDirectory\x12\x0c\n\x04path\x18\x01 \x01(\t\"x\n\x1b\x44\x65psSetDownloadDirectoryMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x33\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32%.proto_types.DepsSetDownloadDirectory\"-\n\x0c\x44\x65psUnpinned\x12\x10\n\x08revision\x18\x01 \x01(\t\x12\x0b\n\x03git\x18\x02 \x01(\t\"`\n\x0f\x44\x65psUnpinnedMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\'\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x19.proto_types.DepsUnpinned\"/\n\x1bNoNodesForSelectionCriteria\x12\x10\n\x08spec_raw\x18\x01 \x01(\t\"~\n\x1eNoNodesForSelectionCriteriaMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x36\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32(.proto_types.NoNodesForSelectionCriteria\")\n\x10\x44\x65psLockUpdating\x12\x15\n\rlock_filepath\x18\x01 \x01(\t\"h\n\x13\x44\x65psLockUpdatingMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12+\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1d.proto_types.DepsLockUpdating\"R\n\x0e\x44\x65psAddPackage\x12\x14\n\x0cpackage_name\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\t\x12\x19\n\x11packages_filepath\x18\x03 \x01(\t\"d\n\x11\x44\x65psAddPackageMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.DepsAddPackage\"\xa7\x01\n\x19\x44\x65psFoundDuplicatePackage\x12S\n\x0fremoved_package\x18\x01 \x03(\x0b\x32:.proto_types.DepsFoundDuplicatePackage.RemovedPackageEntry\x1a\x35\n\x13RemovedPackageEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"z\n\x1c\x44\x65psFoundDuplicatePackageMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x34\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32&.proto_types.DepsFoundDuplicatePackage\"$\n\x12\x44\x65psVersionMissing\x12\x0e\n\x06source\x18\x01 \x01(\t\"l\n\x15\x44\x65psVersionMissingMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.DepsVersionMissing\"/\n\x17\x44\x65psScrubbedPackageName\x12\x14\n\x0cpackage_name\x18\x01 \x01(\t\"v\n\x1a\x44\x65psScrubbedPackageNameMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x32\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32$.proto_types.DepsScrubbedPackageName\"*\n\x1bRunningOperationCaughtError\x12\x0b\n\x03\x65xc\x18\x01 \x01(\t\"~\n\x1eRunningOperationCaughtErrorMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x36\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32(.proto_types.RunningOperationCaughtError\"\x11\n\x0f\x43ompileComplete\"f\n\x12\x43ompileCompleteMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12*\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1c.proto_types.CompileComplete\"\x18\n\x16\x46reshnessCheckComplete\"t\n\x19\x46reshnessCheckCompleteMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x31\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32#.proto_types.FreshnessCheckComplete\"\x1c\n\nSeedHeader\x12\x0e\n\x06header\x18\x01 \x01(\t\"\\\n\rSeedHeaderMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12%\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x17.proto_types.SeedHeader\"3\n\x12SQLRunnerException\x12\x0b\n\x03\x65xc\x18\x01 \x01(\t\x12\x10\n\x08\x65xc_info\x18\x02 \x01(\t\"l\n\x15SQLRunnerExceptionMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.SQLRunnerException\"\xa8\x01\n\rLogTestResult\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0e\n\x06status\x18\x03 \x01(\t\x12\r\n\x05index\x18\x04 \x01(\x05\x12\x12\n\nnum_models\x18\x05 \x01(\x05\x12\x16\n\x0e\x65xecution_time\x18\x06 \x01(\x02\x12\x14\n\x0cnum_failures\x18\x07 \x01(\x05\"b\n\x10LogTestResultMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12(\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1a.proto_types.LogTestResult\"k\n\x0cLogStartLine\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\r\n\x05index\x18\x03 \x01(\x05\x12\r\n\x05total\x18\x04 \x01(\x05\"`\n\x0fLogStartLineMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\'\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x19.proto_types.LogStartLine\"\x95\x01\n\x0eLogModelResult\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x0e\n\x06status\x18\x03 \x01(\t\x12\r\n\x05index\x18\x04 \x01(\x05\x12\r\n\x05total\x18\x05 \x01(\x05\x12\x16\n\x0e\x65xecution_time\x18\x06 \x01(\x02\"d\n\x11LogModelResultMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.LogModelResult\"\x92\x02\n\x11LogSnapshotResult\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x0e\n\x06status\x18\x03 \x01(\t\x12\r\n\x05index\x18\x04 \x01(\x05\x12\r\n\x05total\x18\x05 \x01(\x05\x12\x16\n\x0e\x65xecution_time\x18\x06 \x01(\x02\x12\x34\n\x03\x63\x66g\x18\x07 \x03(\x0b\x32\'.proto_types.LogSnapshotResult.CfgEntry\x12\x16\n\x0eresult_message\x18\x08 \x01(\t\x1a*\n\x08\x43\x66gEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"j\n\x14LogSnapshotResultMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12,\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1e.proto_types.LogSnapshotResult\"\xb9\x01\n\rLogSeedResult\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x0e\n\x06status\x18\x02 \x01(\t\x12\x16\n\x0eresult_message\x18\x03 \x01(\t\x12\r\n\x05index\x18\x04 \x01(\x05\x12\r\n\x05total\x18\x05 \x01(\x05\x12\x16\n\x0e\x65xecution_time\x18\x06 \x01(\x02\x12\x0e\n\x06schema\x18\x07 \x01(\t\x12\x10\n\x08relation\x18\x08 \x01(\t\"b\n\x10LogSeedResultMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12(\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1a.proto_types.LogSeedResult\"\xad\x01\n\x12LogFreshnessResult\x12\x0e\n\x06status\x18\x01 \x01(\t\x12(\n\tnode_info\x18\x02 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\r\n\x05index\x18\x03 \x01(\x05\x12\r\n\x05total\x18\x04 \x01(\x05\x12\x16\n\x0e\x65xecution_time\x18\x05 \x01(\x02\x12\x13\n\x0bsource_name\x18\x06 \x01(\t\x12\x12\n\ntable_name\x18\x07 \x01(\t\"l\n\x15LogFreshnessResultMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.LogFreshnessResult\"\"\n\rLogCancelLine\x12\x11\n\tconn_name\x18\x01 \x01(\t\"b\n\x10LogCancelLineMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12(\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1a.proto_types.LogCancelLine\"\x1f\n\x0f\x44\x65\x66\x61ultSelector\x12\x0c\n\x04name\x18\x01 \x01(\t\"f\n\x12\x44\x65\x66\x61ultSelectorMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12*\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1c.proto_types.DefaultSelector\"5\n\tNodeStart\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\"Z\n\x0cNodeStartMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12$\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x16.proto_types.NodeStart\"g\n\x0cNodeFinished\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12-\n\nrun_result\x18\x02 \x01(\x0b\x32\x19.proto_types.RunResultMsg\"`\n\x0fNodeFinishedMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\'\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x19.proto_types.NodeFinished\"+\n\x1bQueryCancelationUnsupported\x12\x0c\n\x04type\x18\x01 \x01(\t\"~\n\x1eQueryCancelationUnsupportedMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x36\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32(.proto_types.QueryCancelationUnsupported\"O\n\x0f\x43oncurrencyLine\x12\x13\n\x0bnum_threads\x18\x01 \x01(\x05\x12\x13\n\x0btarget_name\x18\x02 \x01(\t\x12\x12\n\nnode_count\x18\x03 \x01(\x05\"f\n\x12\x43oncurrencyLineMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12*\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1c.proto_types.ConcurrencyLine\"E\n\x19WritingInjectedSQLForNode\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\"z\n\x1cWritingInjectedSQLForNodeMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x34\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32&.proto_types.WritingInjectedSQLForNode\"9\n\rNodeCompiling\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\"b\n\x10NodeCompilingMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12(\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1a.proto_types.NodeCompiling\"9\n\rNodeExecuting\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\"b\n\x10NodeExecutingMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12(\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1a.proto_types.NodeExecuting\"m\n\x10LogHookStartLine\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x11\n\tstatement\x18\x02 \x01(\t\x12\r\n\x05index\x18\x03 \x01(\x05\x12\r\n\x05total\x18\x04 \x01(\x05\"h\n\x13LogHookStartLineMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12+\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1d.proto_types.LogHookStartLine\"\x93\x01\n\x0eLogHookEndLine\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x11\n\tstatement\x18\x02 \x01(\t\x12\x0e\n\x06status\x18\x03 \x01(\t\x12\r\n\x05index\x18\x04 \x01(\x05\x12\r\n\x05total\x18\x05 \x01(\x05\x12\x16\n\x0e\x65xecution_time\x18\x06 \x01(\x02\"d\n\x11LogHookEndLineMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.LogHookEndLine\"\x93\x01\n\x0fSkippingDetails\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x15\n\rresource_type\x18\x02 \x01(\t\x12\x0e\n\x06schema\x18\x03 \x01(\t\x12\x11\n\tnode_name\x18\x04 \x01(\t\x12\r\n\x05index\x18\x05 \x01(\x05\x12\r\n\x05total\x18\x06 \x01(\x05\"f\n\x12SkippingDetailsMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12*\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1c.proto_types.SkippingDetails\"\r\n\x0bNothingToDo\"^\n\x0eNothingToDoMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12&\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x18.proto_types.NothingToDo\",\n\x1dRunningOperationUncaughtError\x12\x0b\n\x03\x65xc\x18\x01 \x01(\t\"\x82\x01\n RunningOperationUncaughtErrorMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x38\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32*.proto_types.RunningOperationUncaughtError\"\x93\x01\n\x0c\x45ndRunResult\x12*\n\x07results\x18\x01 \x03(\x0b\x32\x19.proto_types.RunResultMsg\x12\x14\n\x0c\x65lapsed_time\x18\x02 \x01(\x02\x12\x30\n\x0cgenerated_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0f\n\x07success\x18\x04 \x01(\x08\"`\n\x0f\x45ndRunResultMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\'\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x19.proto_types.EndRunResult\"\x11\n\x0fNoNodesSelected\"f\n\x12NoNodesSelectedMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12*\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1c.proto_types.NoNodesSelected\"w\n\x10\x43ommandCompleted\x12\x0f\n\x07\x63ommand\x18\x01 \x01(\t\x12\x0f\n\x07success\x18\x02 \x01(\x08\x12\x30\n\x0c\x63ompleted_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0f\n\x07\x65lapsed\x18\x04 \x01(\x02\"h\n\x13\x43ommandCompletedMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12+\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1d.proto_types.CommandCompleted\"k\n\x08ShowNode\x12\x11\n\tnode_name\x18\x01 \x01(\t\x12\x0f\n\x07preview\x18\x02 \x01(\t\x12\x11\n\tis_inline\x18\x03 \x01(\x08\x12\x15\n\routput_format\x18\x04 \x01(\t\x12\x11\n\tunique_id\x18\x05 \x01(\t\"X\n\x0bShowNodeMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12#\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x15.proto_types.ShowNode\"p\n\x0c\x43ompiledNode\x12\x11\n\tnode_name\x18\x01 \x01(\t\x12\x10\n\x08\x63ompiled\x18\x02 \x01(\t\x12\x11\n\tis_inline\x18\x03 \x01(\x08\x12\x15\n\routput_format\x18\x04 \x01(\t\x12\x11\n\tunique_id\x18\x05 \x01(\t\"`\n\x0f\x43ompiledNodeMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\'\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x19.proto_types.CompiledNode\"b\n\x17\x43\x61tchableExceptionOnRun\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x0b\n\x03\x65xc\x18\x02 \x01(\t\x12\x10\n\x08\x65xc_info\x18\x03 \x01(\t\"v\n\x1a\x43\x61tchableExceptionOnRunMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x32\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32$.proto_types.CatchableExceptionOnRun\"5\n\x12InternalErrorOnRun\x12\x12\n\nbuild_path\x18\x01 \x01(\t\x12\x0b\n\x03\x65xc\x18\x02 \x01(\t\"l\n\x15InternalErrorOnRunMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.InternalErrorOnRun\"K\n\x15GenericExceptionOnRun\x12\x12\n\nbuild_path\x18\x01 \x01(\t\x12\x11\n\tunique_id\x18\x02 \x01(\t\x12\x0b\n\x03\x65xc\x18\x03 \x01(\t\"r\n\x18GenericExceptionOnRunMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x30\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\".proto_types.GenericExceptionOnRun\"N\n\x1aNodeConnectionReleaseError\x12\x11\n\tnode_name\x18\x01 \x01(\t\x12\x0b\n\x03\x65xc\x18\x02 \x01(\t\x12\x10\n\x08\x65xc_info\x18\x03 \x01(\t\"|\n\x1dNodeConnectionReleaseErrorMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x35\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\'.proto_types.NodeConnectionReleaseError\"\x1f\n\nFoundStats\x12\x11\n\tstat_line\x18\x01 \x01(\t\"\\\n\rFoundStatsMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12%\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x17.proto_types.FoundStats\"\x17\n\x15MainKeyboardInterrupt\"r\n\x18MainKeyboardInterruptMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x30\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\".proto_types.MainKeyboardInterrupt\"#\n\x14MainEncounteredError\x12\x0b\n\x03\x65xc\x18\x01 \x01(\t\"p\n\x17MainEncounteredErrorMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12/\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32!.proto_types.MainEncounteredError\"%\n\x0eMainStackTrace\x12\x13\n\x0bstack_trace\x18\x01 \x01(\t\"d\n\x11MainStackTraceMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.MainStackTrace\"@\n\x13SystemCouldNotWrite\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x0e\n\x06reason\x18\x02 \x01(\t\x12\x0b\n\x03\x65xc\x18\x03 \x01(\t\"n\n\x16SystemCouldNotWriteMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12.\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32 .proto_types.SystemCouldNotWrite\"!\n\x12SystemExecutingCmd\x12\x0b\n\x03\x63md\x18\x01 \x03(\t\"l\n\x15SystemExecutingCmdMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.SystemExecutingCmd\"\x1c\n\x0cSystemStdOut\x12\x0c\n\x04\x62msg\x18\x01 \x01(\t\"`\n\x0fSystemStdOutMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\'\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x19.proto_types.SystemStdOut\"\x1c\n\x0cSystemStdErr\x12\x0c\n\x04\x62msg\x18\x01 \x01(\t\"`\n\x0fSystemStdErrMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\'\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x19.proto_types.SystemStdErr\",\n\x16SystemReportReturnCode\x12\x12\n\nreturncode\x18\x01 \x01(\x05\"t\n\x19SystemReportReturnCodeMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x31\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32#.proto_types.SystemReportReturnCode\"p\n\x13TimingInfoCollected\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12/\n\x0btiming_info\x18\x02 \x01(\x0b\x32\x1a.proto_types.TimingInfoMsg\"n\n\x16TimingInfoCollectedMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12.\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32 .proto_types.TimingInfoCollected\"&\n\x12LogDebugStackTrace\x12\x10\n\x08\x65xc_info\x18\x01 \x01(\t\"l\n\x15LogDebugStackTraceMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.LogDebugStackTrace\"\x1e\n\x0e\x43heckCleanPath\x12\x0c\n\x04path\x18\x01 \x01(\t\"d\n\x11\x43heckCleanPathMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.CheckCleanPath\" \n\x10\x43onfirmCleanPath\x12\x0c\n\x04path\x18\x01 \x01(\t\"h\n\x13\x43onfirmCleanPathMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12+\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1d.proto_types.ConfirmCleanPath\"\"\n\x12ProtectedCleanPath\x12\x0c\n\x04path\x18\x01 \x01(\t\"l\n\x15ProtectedCleanPathMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.ProtectedCleanPath\"\x14\n\x12\x46inishedCleanPaths\"l\n\x15\x46inishedCleanPathsMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.FinishedCleanPaths\"5\n\x0bOpenCommand\x12\x10\n\x08open_cmd\x18\x01 \x01(\t\x12\x14\n\x0cprofiles_dir\x18\x02 \x01(\t\"^\n\x0eOpenCommandMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12&\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x18.proto_types.OpenCommand\"\x19\n\nFormatting\x12\x0b\n\x03msg\x18\x01 \x01(\t\"\\\n\rFormattingMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12%\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x17.proto_types.Formatting\"0\n\x0fServingDocsPort\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x0c\n\x04port\x18\x02 \x01(\x05\"f\n\x12ServingDocsPortMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12*\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1c.proto_types.ServingDocsPort\"%\n\x15ServingDocsAccessInfo\x12\x0c\n\x04port\x18\x01 \x01(\t\"r\n\x18ServingDocsAccessInfoMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x30\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\".proto_types.ServingDocsAccessInfo\"\x15\n\x13ServingDocsExitInfo\"n\n\x16ServingDocsExitInfoMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12.\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32 .proto_types.ServingDocsExitInfo\"J\n\x10RunResultWarning\x12\x15\n\rresource_type\x18\x01 \x01(\t\x12\x11\n\tnode_name\x18\x02 \x01(\t\x12\x0c\n\x04path\x18\x03 \x01(\t\"h\n\x13RunResultWarningMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12+\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1d.proto_types.RunResultWarning\"J\n\x10RunResultFailure\x12\x15\n\rresource_type\x18\x01 \x01(\t\x12\x11\n\tnode_name\x18\x02 \x01(\t\x12\x0c\n\x04path\x18\x03 \x01(\t\"h\n\x13RunResultFailureMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12+\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1d.proto_types.RunResultFailure\"k\n\tStatsLine\x12\x30\n\x05stats\x18\x01 \x03(\x0b\x32!.proto_types.StatsLine.StatsEntry\x1a,\n\nStatsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\"Z\n\x0cStatsLineMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12$\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x16.proto_types.StatsLine\"\x1d\n\x0eRunResultError\x12\x0b\n\x03msg\x18\x01 \x01(\t\"d\n\x11RunResultErrorMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.RunResultError\")\n\x17RunResultErrorNoMessage\x12\x0e\n\x06status\x18\x01 \x01(\t\"v\n\x1aRunResultErrorNoMessageMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x32\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32$.proto_types.RunResultErrorNoMessage\"\x1f\n\x0fSQLCompiledPath\x12\x0c\n\x04path\x18\x01 \x01(\t\"f\n\x12SQLCompiledPathMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12*\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1c.proto_types.SQLCompiledPath\"-\n\x14\x43heckNodeTestFailure\x12\x15\n\rrelation_name\x18\x01 \x01(\t\"p\n\x17\x43heckNodeTestFailureMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12/\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32!.proto_types.CheckNodeTestFailure\"W\n\x0f\x45ndOfRunSummary\x12\x12\n\nnum_errors\x18\x01 \x01(\x05\x12\x14\n\x0cnum_warnings\x18\x02 \x01(\x05\x12\x1a\n\x12keyboard_interrupt\x18\x03 \x01(\x08\"f\n\x12\x45ndOfRunSummaryMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12*\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1c.proto_types.EndOfRunSummary\"U\n\x13LogSkipBecauseError\x12\x0e\n\x06schema\x18\x01 \x01(\t\x12\x10\n\x08relation\x18\x02 \x01(\t\x12\r\n\x05index\x18\x03 \x01(\x05\x12\r\n\x05total\x18\x04 \x01(\x05\"n\n\x16LogSkipBecauseErrorMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12.\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32 .proto_types.LogSkipBecauseError\"\x14\n\x12\x45nsureGitInstalled\"l\n\x15\x45nsureGitInstalledMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.EnsureGitInstalled\"\x1a\n\x18\x44\x65psCreatingLocalSymlink\"x\n\x1b\x44\x65psCreatingLocalSymlinkMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x33\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32%.proto_types.DepsCreatingLocalSymlink\"\x19\n\x17\x44\x65psSymlinkNotAvailable\"v\n\x1a\x44\x65psSymlinkNotAvailableMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x32\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32$.proto_types.DepsSymlinkNotAvailable\"\x11\n\x0f\x44isableTracking\"f\n\x12\x44isableTrackingMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12*\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1c.proto_types.DisableTracking\"\x1e\n\x0cSendingEvent\x12\x0e\n\x06kwargs\x18\x01 \x01(\t\"`\n\x0fSendingEventMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\'\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x19.proto_types.SendingEvent\"\x12\n\x10SendEventFailure\"h\n\x13SendEventFailureMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12+\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1d.proto_types.SendEventFailure\"\r\n\x0b\x46lushEvents\"^\n\x0e\x46lushEventsMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12&\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x18.proto_types.FlushEvents\"\x14\n\x12\x46lushEventsFailure\"l\n\x15\x46lushEventsFailureMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.FlushEventsFailure\"-\n\x19TrackingInitializeFailure\x12\x10\n\x08\x65xc_info\x18\x01 \x01(\t\"z\n\x1cTrackingInitializeFailureMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x34\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32&.proto_types.TrackingInitializeFailure\"&\n\x17RunResultWarningMessage\x12\x0b\n\x03msg\x18\x01 \x01(\t\"v\n\x1aRunResultWarningMessageMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x32\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32$.proto_types.RunResultWarningMessage\"\x1a\n\x0b\x44\x65\x62ugCmdOut\x12\x0b\n\x03msg\x18\x01 \x01(\t\"^\n\x0e\x44\x65\x62ugCmdOutMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12&\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x18.proto_types.DebugCmdOut\"\x1d\n\x0e\x44\x65\x62ugCmdResult\x12\x0b\n\x03msg\x18\x01 \x01(\t\"d\n\x11\x44\x65\x62ugCmdResultMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.DebugCmdResult\"\x19\n\nListCmdOut\x12\x0b\n\x03msg\x18\x01 \x01(\t\"\\\n\rListCmdOutMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12%\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x17.proto_types.ListCmdOut\"\x13\n\x04Note\x12\x0b\n\x03msg\x18\x01 \x01(\t\"P\n\x07NoteMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12\x1f\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x11.proto_types.Note\"\xec\x01\n\x0eResourceReport\x12\x14\n\x0c\x63ommand_name\x18\x02 \x01(\t\x12\x17\n\x0f\x63ommand_success\x18\x03 \x01(\x08\x12\x1f\n\x17\x63ommand_wall_clock_time\x18\x04 \x01(\x02\x12\x19\n\x11process_user_time\x18\x05 \x01(\x02\x12\x1b\n\x13process_kernel_time\x18\x06 \x01(\x02\x12\x1b\n\x13process_mem_max_rss\x18\x07 \x01(\x03\x12\x19\n\x11process_in_blocks\x18\x08 \x01(\x03\x12\x1a\n\x12process_out_blocks\x18\t \x01(\x03\"d\n\x11ResourceReportMsg\x12$\n\x04info\x18\x01 \x01(\x0b\x32\x16.proto_types.EventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.ResourceReportb\x06proto3') _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'types_pb2', globals()) @@ -180,762 +180,766 @@ _COLLECTFRESHNESSRETURNSIGNATURE._serialized_end=6576 _COLLECTFRESHNESSRETURNSIGNATUREMSG._serialized_start=6579 _COLLECTFRESHNESSRETURNSIGNATUREMSG._serialized_end=6713 - _ADAPTEREVENTDEBUG._serialized_start=6716 - _ADAPTEREVENTDEBUG._serialized_end=6851 - _ADAPTEREVENTDEBUGMSG._serialized_start=6853 - _ADAPTEREVENTDEBUGMSG._serialized_end=6959 - _ADAPTEREVENTINFO._serialized_start=6962 - _ADAPTEREVENTINFO._serialized_end=7096 - _ADAPTEREVENTINFOMSG._serialized_start=7098 - _ADAPTEREVENTINFOMSG._serialized_end=7202 - _ADAPTEREVENTWARNING._serialized_start=7205 - _ADAPTEREVENTWARNING._serialized_end=7342 - _ADAPTEREVENTWARNINGMSG._serialized_start=7344 - _ADAPTEREVENTWARNINGMSG._serialized_end=7454 - _ADAPTEREVENTERROR._serialized_start=7457 - _ADAPTEREVENTERROR._serialized_end=7610 - _ADAPTEREVENTERRORMSG._serialized_start=7612 - _ADAPTEREVENTERRORMSG._serialized_end=7718 - _NEWCONNECTION._serialized_start=7720 - _NEWCONNECTION._serialized_end=7815 - _NEWCONNECTIONMSG._serialized_start=7817 - _NEWCONNECTIONMSG._serialized_end=7915 - _CONNECTIONREUSED._serialized_start=7917 - _CONNECTIONREUSED._serialized_end=7978 - _CONNECTIONREUSEDMSG._serialized_start=7980 - _CONNECTIONREUSEDMSG._serialized_end=8084 - _CONNECTIONLEFTOPENINCLEANUP._serialized_start=8086 - _CONNECTIONLEFTOPENINCLEANUP._serialized_end=8134 - _CONNECTIONLEFTOPENINCLEANUPMSG._serialized_start=8136 - _CONNECTIONLEFTOPENINCLEANUPMSG._serialized_end=8262 - _CONNECTIONCLOSEDINCLEANUP._serialized_start=8264 - _CONNECTIONCLOSEDINCLEANUP._serialized_end=8310 - _CONNECTIONCLOSEDINCLEANUPMSG._serialized_start=8312 - _CONNECTIONCLOSEDINCLEANUPMSG._serialized_end=8434 - _ROLLBACKFAILED._serialized_start=8436 - _ROLLBACKFAILED._serialized_end=8531 - _ROLLBACKFAILEDMSG._serialized_start=8533 - _ROLLBACKFAILEDMSG._serialized_end=8633 - _CONNECTIONCLOSED._serialized_start=8635 - _CONNECTIONCLOSED._serialized_end=8714 - _CONNECTIONCLOSEDMSG._serialized_start=8716 - _CONNECTIONCLOSEDMSG._serialized_end=8820 - _CONNECTIONLEFTOPEN._serialized_start=8822 - _CONNECTIONLEFTOPEN._serialized_end=8903 - _CONNECTIONLEFTOPENMSG._serialized_start=8905 - _CONNECTIONLEFTOPENMSG._serialized_end=9013 - _ROLLBACK._serialized_start=9015 - _ROLLBACK._serialized_end=9086 - _ROLLBACKMSG._serialized_start=9088 - _ROLLBACKMSG._serialized_end=9176 - _CACHEMISS._serialized_start=9178 - _CACHEMISS._serialized_end=9242 - _CACHEMISSMSG._serialized_start=9244 - _CACHEMISSMSG._serialized_end=9334 - _LISTRELATIONS._serialized_start=9336 - _LISTRELATIONS._serialized_end=9434 - _LISTRELATIONSMSG._serialized_start=9436 - _LISTRELATIONSMSG._serialized_end=9534 - _CONNECTIONUSED._serialized_start=9536 - _CONNECTIONUSED._serialized_end=9632 - _CONNECTIONUSEDMSG._serialized_start=9634 - _CONNECTIONUSEDMSG._serialized_end=9734 - _SQLQUERY._serialized_start=9736 - _SQLQUERY._serialized_end=9820 - _SQLQUERYMSG._serialized_start=9822 - _SQLQUERYMSG._serialized_end=9910 - _SQLQUERYSTATUS._serialized_start=9912 - _SQLQUERYSTATUS._serialized_end=10003 - _SQLQUERYSTATUSMSG._serialized_start=10005 - _SQLQUERYSTATUSMSG._serialized_end=10105 - _SQLCOMMIT._serialized_start=10107 - _SQLCOMMIT._serialized_end=10179 - _SQLCOMMITMSG._serialized_start=10181 - _SQLCOMMITMSG._serialized_end=10271 - _COLTYPECHANGE._serialized_start=10273 - _COLTYPECHANGE._serialized_end=10370 - _COLTYPECHANGEMSG._serialized_start=10372 - _COLTYPECHANGEMSG._serialized_end=10470 - _SCHEMACREATION._serialized_start=10472 - _SCHEMACREATION._serialized_end=10536 - _SCHEMACREATIONMSG._serialized_start=10538 - _SCHEMACREATIONMSG._serialized_end=10638 - _SCHEMADROP._serialized_start=10640 - _SCHEMADROP._serialized_end=10700 - _SCHEMADROPMSG._serialized_start=10702 - _SCHEMADROPMSG._serialized_end=10794 - _CACHEACTION._serialized_start=10797 - _CACHEACTION._serialized_end=11019 - _CACHEACTIONMSG._serialized_start=11021 - _CACHEACTIONMSG._serialized_end=11115 - _CACHEDUMPGRAPH._serialized_start=11118 - _CACHEDUMPGRAPH._serialized_end=11270 - _CACHEDUMPGRAPH_DUMPENTRY._serialized_start=11227 - _CACHEDUMPGRAPH_DUMPENTRY._serialized_end=11270 - _CACHEDUMPGRAPHMSG._serialized_start=11272 - _CACHEDUMPGRAPHMSG._serialized_end=11372 - _ADAPTERREGISTERED._serialized_start=11374 - _ADAPTERREGISTERED._serialized_end=11440 - _ADAPTERREGISTEREDMSG._serialized_start=11442 - _ADAPTERREGISTEREDMSG._serialized_end=11548 - _ADAPTERIMPORTERROR._serialized_start=11550 - _ADAPTERIMPORTERROR._serialized_end=11583 - _ADAPTERIMPORTERRORMSG._serialized_start=11585 - _ADAPTERIMPORTERRORMSG._serialized_end=11693 - _PLUGINLOADERROR._serialized_start=11695 - _PLUGINLOADERROR._serialized_end=11730 - _PLUGINLOADERRORMSG._serialized_start=11732 - _PLUGINLOADERRORMSG._serialized_end=11834 - _NEWCONNECTIONOPENING._serialized_start=11836 - _NEWCONNECTIONOPENING._serialized_end=11926 - _NEWCONNECTIONOPENINGMSG._serialized_start=11928 - _NEWCONNECTIONOPENINGMSG._serialized_end=12040 - _CODEEXECUTION._serialized_start=12042 - _CODEEXECUTION._serialized_end=12098 - _CODEEXECUTIONMSG._serialized_start=12100 - _CODEEXECUTIONMSG._serialized_end=12198 - _CODEEXECUTIONSTATUS._serialized_start=12200 - _CODEEXECUTIONSTATUS._serialized_end=12254 - _CODEEXECUTIONSTATUSMSG._serialized_start=12256 - _CODEEXECUTIONSTATUSMSG._serialized_end=12366 - _CATALOGGENERATIONERROR._serialized_start=12368 - _CATALOGGENERATIONERROR._serialized_end=12405 - _CATALOGGENERATIONERRORMSG._serialized_start=12407 - _CATALOGGENERATIONERRORMSG._serialized_end=12523 - _WRITECATALOGFAILURE._serialized_start=12525 - _WRITECATALOGFAILURE._serialized_end=12570 - _WRITECATALOGFAILUREMSG._serialized_start=12572 - _WRITECATALOGFAILUREMSG._serialized_end=12682 - _CATALOGWRITTEN._serialized_start=12684 - _CATALOGWRITTEN._serialized_end=12714 - _CATALOGWRITTENMSG._serialized_start=12716 - _CATALOGWRITTENMSG._serialized_end=12816 - _CANNOTGENERATEDOCS._serialized_start=12818 - _CANNOTGENERATEDOCS._serialized_end=12838 - _CANNOTGENERATEDOCSMSG._serialized_start=12840 - _CANNOTGENERATEDOCSMSG._serialized_end=12948 - _BUILDINGCATALOG._serialized_start=12950 - _BUILDINGCATALOG._serialized_end=12967 - _BUILDINGCATALOGMSG._serialized_start=12969 - _BUILDINGCATALOGMSG._serialized_end=13071 - _DATABASEERRORRUNNINGHOOK._serialized_start=13073 - _DATABASEERRORRUNNINGHOOK._serialized_end=13118 - _DATABASEERRORRUNNINGHOOKMSG._serialized_start=13120 - _DATABASEERRORRUNNINGHOOKMSG._serialized_end=13240 - _HOOKSRUNNING._serialized_start=13242 - _HOOKSRUNNING._serialized_end=13294 - _HOOKSRUNNINGMSG._serialized_start=13296 - _HOOKSRUNNINGMSG._serialized_end=13392 - _FINISHEDRUNNINGSTATS._serialized_start=13394 - _FINISHEDRUNNINGSTATS._serialized_end=13478 - _FINISHEDRUNNINGSTATSMSG._serialized_start=13480 - _FINISHEDRUNNINGSTATSMSG._serialized_end=13592 - _CONSTRAINTNOTENFORCED._serialized_start=13594 - _CONSTRAINTNOTENFORCED._serialized_end=13654 - _CONSTRAINTNOTENFORCEDMSG._serialized_start=13656 - _CONSTRAINTNOTENFORCEDMSG._serialized_end=13770 - _CONSTRAINTNOTSUPPORTED._serialized_start=13772 - _CONSTRAINTNOTSUPPORTED._serialized_end=13833 - _CONSTRAINTNOTSUPPORTEDMSG._serialized_start=13835 - _CONSTRAINTNOTSUPPORTEDMSG._serialized_end=13951 - _INPUTFILEDIFFERROR._serialized_start=13953 - _INPUTFILEDIFFERROR._serialized_end=14008 - _INPUTFILEDIFFERRORMSG._serialized_start=14010 - _INPUTFILEDIFFERRORMSG._serialized_end=14118 - _INVALIDVALUEFORFIELD._serialized_start=14120 - _INVALIDVALUEFORFIELD._serialized_end=14183 - _INVALIDVALUEFORFIELDMSG._serialized_start=14185 - _INVALIDVALUEFORFIELDMSG._serialized_end=14297 - _VALIDATIONWARNING._serialized_start=14299 - _VALIDATIONWARNING._serialized_end=14380 - _VALIDATIONWARNINGMSG._serialized_start=14382 - _VALIDATIONWARNINGMSG._serialized_end=14488 - _PARSEPERFINFOPATH._serialized_start=14490 - _PARSEPERFINFOPATH._serialized_end=14523 - _PARSEPERFINFOPATHMSG._serialized_start=14525 - _PARSEPERFINFOPATHMSG._serialized_end=14631 - _PARTIALPARSINGERRORPROCESSINGFILE._serialized_start=14633 - _PARTIALPARSINGERRORPROCESSINGFILE._serialized_end=14682 - _PARTIALPARSINGERRORPROCESSINGFILEMSG._serialized_start=14685 - _PARTIALPARSINGERRORPROCESSINGFILEMSG._serialized_end=14823 - _PARTIALPARSINGERROR._serialized_start=14826 - _PARTIALPARSINGERROR._serialized_end=14960 - _PARTIALPARSINGERROR_EXCINFOENTRY._serialized_start=14914 - _PARTIALPARSINGERROR_EXCINFOENTRY._serialized_end=14960 - _PARTIALPARSINGERRORMSG._serialized_start=14962 - _PARTIALPARSINGERRORMSG._serialized_end=15072 - _PARTIALPARSINGSKIPPARSING._serialized_start=15074 - _PARTIALPARSINGSKIPPARSING._serialized_end=15101 - _PARTIALPARSINGSKIPPARSINGMSG._serialized_start=15103 - _PARTIALPARSINGSKIPPARSINGMSG._serialized_end=15225 - _UNABLETOPARTIALPARSE._serialized_start=15227 - _UNABLETOPARTIALPARSE._serialized_end=15265 - _UNABLETOPARTIALPARSEMSG._serialized_start=15267 - _UNABLETOPARTIALPARSEMSG._serialized_end=15379 - _STATECHECKVARSHASH._serialized_start=15381 - _STATECHECKVARSHASH._serialized_end=15483 - _STATECHECKVARSHASHMSG._serialized_start=15485 - _STATECHECKVARSHASHMSG._serialized_end=15593 - _PARTIALPARSINGNOTENABLED._serialized_start=15595 - _PARTIALPARSINGNOTENABLED._serialized_end=15621 - _PARTIALPARSINGNOTENABLEDMSG._serialized_start=15623 - _PARTIALPARSINGNOTENABLEDMSG._serialized_end=15743 - _PARSEDFILELOADFAILED._serialized_start=15745 - _PARSEDFILELOADFAILED._serialized_end=15812 - _PARSEDFILELOADFAILEDMSG._serialized_start=15814 - _PARSEDFILELOADFAILEDMSG._serialized_end=15926 - _PARTIALPARSINGENABLED._serialized_start=15928 - _PARTIALPARSINGENABLED._serialized_end=16000 - _PARTIALPARSINGENABLEDMSG._serialized_start=16002 - _PARTIALPARSINGENABLEDMSG._serialized_end=16116 - _PARTIALPARSINGFILE._serialized_start=16118 - _PARTIALPARSINGFILE._serialized_end=16174 - _PARTIALPARSINGFILEMSG._serialized_start=16176 - _PARTIALPARSINGFILEMSG._serialized_end=16284 - _INVALIDDISABLEDTARGETINTESTNODE._serialized_start=16287 - _INVALIDDISABLEDTARGETINTESTNODE._serialized_end=16462 - _INVALIDDISABLEDTARGETINTESTNODEMSG._serialized_start=16465 - _INVALIDDISABLEDTARGETINTESTNODEMSG._serialized_end=16599 - _UNUSEDRESOURCECONFIGPATH._serialized_start=16601 - _UNUSEDRESOURCECONFIGPATH._serialized_end=16656 - _UNUSEDRESOURCECONFIGPATHMSG._serialized_start=16658 - _UNUSEDRESOURCECONFIGPATHMSG._serialized_end=16778 - _SEEDINCREASED._serialized_start=16780 - _SEEDINCREASED._serialized_end=16831 - _SEEDINCREASEDMSG._serialized_start=16833 - _SEEDINCREASEDMSG._serialized_end=16931 - _SEEDEXCEEDSLIMITSAMEPATH._serialized_start=16933 - _SEEDEXCEEDSLIMITSAMEPATH._serialized_end=16995 - _SEEDEXCEEDSLIMITSAMEPATHMSG._serialized_start=16997 - _SEEDEXCEEDSLIMITSAMEPATHMSG._serialized_end=17117 - _SEEDEXCEEDSLIMITANDPATHCHANGED._serialized_start=17119 - _SEEDEXCEEDSLIMITANDPATHCHANGED._serialized_end=17187 - _SEEDEXCEEDSLIMITANDPATHCHANGEDMSG._serialized_start=17190 - _SEEDEXCEEDSLIMITANDPATHCHANGEDMSG._serialized_end=17322 - _SEEDEXCEEDSLIMITCHECKSUMCHANGED._serialized_start=17324 - _SEEDEXCEEDSLIMITCHECKSUMCHANGED._serialized_end=17416 - _SEEDEXCEEDSLIMITCHECKSUMCHANGEDMSG._serialized_start=17419 - _SEEDEXCEEDSLIMITCHECKSUMCHANGEDMSG._serialized_end=17553 - _UNUSEDTABLES._serialized_start=17555 - _UNUSEDTABLES._serialized_end=17592 - _UNUSEDTABLESMSG._serialized_start=17594 - _UNUSEDTABLESMSG._serialized_end=17690 - _WRONGRESOURCESCHEMAFILE._serialized_start=17693 - _WRONGRESOURCESCHEMAFILE._serialized_end=17828 - _WRONGRESOURCESCHEMAFILEMSG._serialized_start=17830 - _WRONGRESOURCESCHEMAFILEMSG._serialized_end=17948 - _NONODEFORYAMLKEY._serialized_start=17950 - _NONODEFORYAMLKEY._serialized_end=18025 - _NONODEFORYAMLKEYMSG._serialized_start=18027 - _NONODEFORYAMLKEYMSG._serialized_end=18131 - _MACRONOTFOUNDFORPATCH._serialized_start=18133 - _MACRONOTFOUNDFORPATCH._serialized_end=18176 - _MACRONOTFOUNDFORPATCHMSG._serialized_start=18178 - _MACRONOTFOUNDFORPATCHMSG._serialized_end=18292 - _NODENOTFOUNDORDISABLED._serialized_start=18295 - _NODENOTFOUNDORDISABLED._serialized_end=18479 - _NODENOTFOUNDORDISABLEDMSG._serialized_start=18481 - _NODENOTFOUNDORDISABLEDMSG._serialized_end=18597 - _JINJALOGWARNING._serialized_start=18599 - _JINJALOGWARNING._serialized_end=18671 - _JINJALOGWARNINGMSG._serialized_start=18673 - _JINJALOGWARNINGMSG._serialized_end=18775 - _JINJALOGINFO._serialized_start=18777 - _JINJALOGINFO._serialized_end=18846 - _JINJALOGINFOMSG._serialized_start=18848 - _JINJALOGINFOMSG._serialized_end=18944 - _JINJALOGDEBUG._serialized_start=18946 - _JINJALOGDEBUG._serialized_end=19016 - _JINJALOGDEBUGMSG._serialized_start=19018 - _JINJALOGDEBUGMSG._serialized_end=19116 - _UNPINNEDREFNEWVERSIONAVAILABLE._serialized_start=19119 - _UNPINNEDREFNEWVERSIONAVAILABLE._serialized_end=19293 - _UNPINNEDREFNEWVERSIONAVAILABLEMSG._serialized_start=19296 - _UNPINNEDREFNEWVERSIONAVAILABLEMSG._serialized_end=19428 - _DEPRECATEDMODEL._serialized_start=19430 - _DEPRECATEDMODEL._serialized_end=19516 - _DEPRECATEDMODELMSG._serialized_start=19518 - _DEPRECATEDMODELMSG._serialized_end=19620 - _UPCOMINGREFERENCEDEPRECATION._serialized_start=19623 - _UPCOMINGREFERENCEDEPRECATION._serialized_end=19821 - _UPCOMINGREFERENCEDEPRECATIONMSG._serialized_start=19824 - _UPCOMINGREFERENCEDEPRECATIONMSG._serialized_end=19952 - _DEPRECATEDREFERENCE._serialized_start=19955 - _DEPRECATEDREFERENCE._serialized_end=20144 - _DEPRECATEDREFERENCEMSG._serialized_start=20146 - _DEPRECATEDREFERENCEMSG._serialized_end=20256 - _UNSUPPORTEDCONSTRAINTMATERIALIZATION._serialized_start=20258 - _UNSUPPORTEDCONSTRAINTMATERIALIZATION._serialized_end=20318 - _UNSUPPORTEDCONSTRAINTMATERIALIZATIONMSG._serialized_start=20321 - _UNSUPPORTEDCONSTRAINTMATERIALIZATIONMSG._serialized_end=20465 - _PARSEINLINENODEERROR._serialized_start=20467 - _PARSEINLINENODEERROR._serialized_end=20544 - _PARSEINLINENODEERRORMSG._serialized_start=20546 - _PARSEINLINENODEERRORMSG._serialized_end=20658 - _SEMANTICVALIDATIONFAILURE._serialized_start=20660 - _SEMANTICVALIDATIONFAILURE._serialized_end=20700 - _SEMANTICVALIDATIONFAILUREMSG._serialized_start=20702 - _SEMANTICVALIDATIONFAILUREMSG._serialized_end=20824 - _UNVERSIONEDBREAKINGCHANGE._serialized_start=20827 - _UNVERSIONEDBREAKINGCHANGE._serialized_end=21221 - _UNVERSIONEDBREAKINGCHANGEMSG._serialized_start=21223 - _UNVERSIONEDBREAKINGCHANGEMSG._serialized_end=21345 - _WARNSTATETARGETEQUAL._serialized_start=21347 - _WARNSTATETARGETEQUAL._serialized_end=21389 - _WARNSTATETARGETEQUALMSG._serialized_start=21391 - _WARNSTATETARGETEQUALMSG._serialized_end=21503 - _FRESHNESSCONFIGPROBLEM._serialized_start=21505 - _FRESHNESSCONFIGPROBLEM._serialized_end=21542 - _FRESHNESSCONFIGPROBLEMMSG._serialized_start=21544 - _FRESHNESSCONFIGPROBLEMMSG._serialized_end=21660 - _GITSPARSECHECKOUTSUBDIRECTORY._serialized_start=21662 - _GITSPARSECHECKOUTSUBDIRECTORY._serialized_end=21709 - _GITSPARSECHECKOUTSUBDIRECTORYMSG._serialized_start=21712 - _GITSPARSECHECKOUTSUBDIRECTORYMSG._serialized_end=21842 - _GITPROGRESSCHECKOUTREVISION._serialized_start=21844 - _GITPROGRESSCHECKOUTREVISION._serialized_end=21891 - _GITPROGRESSCHECKOUTREVISIONMSG._serialized_start=21893 - _GITPROGRESSCHECKOUTREVISIONMSG._serialized_end=22019 - _GITPROGRESSUPDATINGEXISTINGDEPENDENCY._serialized_start=22021 - _GITPROGRESSUPDATINGEXISTINGDEPENDENCY._serialized_end=22073 - _GITPROGRESSUPDATINGEXISTINGDEPENDENCYMSG._serialized_start=22076 - _GITPROGRESSUPDATINGEXISTINGDEPENDENCYMSG._serialized_end=22222 - _GITPROGRESSPULLINGNEWDEPENDENCY._serialized_start=22224 - _GITPROGRESSPULLINGNEWDEPENDENCY._serialized_end=22270 - _GITPROGRESSPULLINGNEWDEPENDENCYMSG._serialized_start=22273 - _GITPROGRESSPULLINGNEWDEPENDENCYMSG._serialized_end=22407 - _GITNOTHINGTODO._serialized_start=22409 - _GITNOTHINGTODO._serialized_end=22438 - _GITNOTHINGTODOMSG._serialized_start=22440 - _GITNOTHINGTODOMSG._serialized_end=22540 - _GITPROGRESSUPDATEDCHECKOUTRANGE._serialized_start=22542 - _GITPROGRESSUPDATEDCHECKOUTRANGE._serialized_end=22611 - _GITPROGRESSUPDATEDCHECKOUTRANGEMSG._serialized_start=22614 - _GITPROGRESSUPDATEDCHECKOUTRANGEMSG._serialized_end=22748 - _GITPROGRESSCHECKEDOUTAT._serialized_start=22750 - _GITPROGRESSCHECKEDOUTAT._serialized_end=22792 - _GITPROGRESSCHECKEDOUTATMSG._serialized_start=22794 - _GITPROGRESSCHECKEDOUTATMSG._serialized_end=22912 - _REGISTRYPROGRESSGETREQUEST._serialized_start=22914 - _REGISTRYPROGRESSGETREQUEST._serialized_end=22955 - _REGISTRYPROGRESSGETREQUESTMSG._serialized_start=22957 - _REGISTRYPROGRESSGETREQUESTMSG._serialized_end=23081 - _REGISTRYPROGRESSGETRESPONSE._serialized_start=23083 - _REGISTRYPROGRESSGETRESPONSE._serialized_end=23144 - _REGISTRYPROGRESSGETRESPONSEMSG._serialized_start=23146 - _REGISTRYPROGRESSGETRESPONSEMSG._serialized_end=23272 - _SELECTORREPORTINVALIDSELECTOR._serialized_start=23274 - _SELECTORREPORTINVALIDSELECTOR._serialized_end=23369 - _SELECTORREPORTINVALIDSELECTORMSG._serialized_start=23372 - _SELECTORREPORTINVALIDSELECTORMSG._serialized_end=23502 - _DEPSNOPACKAGESFOUND._serialized_start=23504 - _DEPSNOPACKAGESFOUND._serialized_end=23525 - _DEPSNOPACKAGESFOUNDMSG._serialized_start=23527 - _DEPSNOPACKAGESFOUNDMSG._serialized_end=23637 - _DEPSSTARTPACKAGEINSTALL._serialized_start=23639 - _DEPSSTARTPACKAGEINSTALL._serialized_end=23686 - _DEPSSTARTPACKAGEINSTALLMSG._serialized_start=23688 - _DEPSSTARTPACKAGEINSTALLMSG._serialized_end=23806 - _DEPSINSTALLINFO._serialized_start=23808 - _DEPSINSTALLINFO._serialized_end=23847 - _DEPSINSTALLINFOMSG._serialized_start=23849 - _DEPSINSTALLINFOMSG._serialized_end=23951 - _DEPSUPDATEAVAILABLE._serialized_start=23953 - _DEPSUPDATEAVAILABLE._serialized_end=23998 - _DEPSUPDATEAVAILABLEMSG._serialized_start=24000 - _DEPSUPDATEAVAILABLEMSG._serialized_end=24110 - _DEPSUPTODATE._serialized_start=24112 - _DEPSUPTODATE._serialized_end=24126 - _DEPSUPTODATEMSG._serialized_start=24128 - _DEPSUPTODATEMSG._serialized_end=24224 - _DEPSLISTSUBDIRECTORY._serialized_start=24226 - _DEPSLISTSUBDIRECTORY._serialized_end=24270 - _DEPSLISTSUBDIRECTORYMSG._serialized_start=24272 - _DEPSLISTSUBDIRECTORYMSG._serialized_end=24384 - _DEPSNOTIFYUPDATESAVAILABLE._serialized_start=24386 - _DEPSNOTIFYUPDATESAVAILABLE._serialized_end=24432 - _DEPSNOTIFYUPDATESAVAILABLEMSG._serialized_start=24434 - _DEPSNOTIFYUPDATESAVAILABLEMSG._serialized_end=24558 - _RETRYEXTERNALCALL._serialized_start=24560 - _RETRYEXTERNALCALL._serialized_end=24609 - _RETRYEXTERNALCALLMSG._serialized_start=24611 - _RETRYEXTERNALCALLMSG._serialized_end=24717 - _RECORDRETRYEXCEPTION._serialized_start=24719 - _RECORDRETRYEXCEPTION._serialized_end=24754 - _RECORDRETRYEXCEPTIONMSG._serialized_start=24756 - _RECORDRETRYEXCEPTIONMSG._serialized_end=24868 - _REGISTRYINDEXPROGRESSGETREQUEST._serialized_start=24870 - _REGISTRYINDEXPROGRESSGETREQUEST._serialized_end=24916 - _REGISTRYINDEXPROGRESSGETREQUESTMSG._serialized_start=24919 - _REGISTRYINDEXPROGRESSGETREQUESTMSG._serialized_end=25053 - _REGISTRYINDEXPROGRESSGETRESPONSE._serialized_start=25055 - _REGISTRYINDEXPROGRESSGETRESPONSE._serialized_end=25121 - _REGISTRYINDEXPROGRESSGETRESPONSEMSG._serialized_start=25124 - _REGISTRYINDEXPROGRESSGETRESPONSEMSG._serialized_end=25260 - _REGISTRYRESPONSEUNEXPECTEDTYPE._serialized_start=25262 - _REGISTRYRESPONSEUNEXPECTEDTYPE._serialized_end=25312 - _REGISTRYRESPONSEUNEXPECTEDTYPEMSG._serialized_start=25315 - _REGISTRYRESPONSEUNEXPECTEDTYPEMSG._serialized_end=25447 - _REGISTRYRESPONSEMISSINGTOPKEYS._serialized_start=25449 - _REGISTRYRESPONSEMISSINGTOPKEYS._serialized_end=25499 - _REGISTRYRESPONSEMISSINGTOPKEYSMSG._serialized_start=25502 - _REGISTRYRESPONSEMISSINGTOPKEYSMSG._serialized_end=25634 - _REGISTRYRESPONSEMISSINGNESTEDKEYS._serialized_start=25636 - _REGISTRYRESPONSEMISSINGNESTEDKEYS._serialized_end=25689 - _REGISTRYRESPONSEMISSINGNESTEDKEYSMSG._serialized_start=25692 - _REGISTRYRESPONSEMISSINGNESTEDKEYSMSG._serialized_end=25830 - _REGISTRYRESPONSEEXTRANESTEDKEYS._serialized_start=25832 - _REGISTRYRESPONSEEXTRANESTEDKEYS._serialized_end=25883 - _REGISTRYRESPONSEEXTRANESTEDKEYSMSG._serialized_start=25886 - _REGISTRYRESPONSEEXTRANESTEDKEYSMSG._serialized_end=26020 - _DEPSSETDOWNLOADDIRECTORY._serialized_start=26022 - _DEPSSETDOWNLOADDIRECTORY._serialized_end=26062 - _DEPSSETDOWNLOADDIRECTORYMSG._serialized_start=26064 - _DEPSSETDOWNLOADDIRECTORYMSG._serialized_end=26184 - _DEPSUNPINNED._serialized_start=26186 - _DEPSUNPINNED._serialized_end=26231 - _DEPSUNPINNEDMSG._serialized_start=26233 - _DEPSUNPINNEDMSG._serialized_end=26329 - _NONODESFORSELECTIONCRITERIA._serialized_start=26331 - _NONODESFORSELECTIONCRITERIA._serialized_end=26378 - _NONODESFORSELECTIONCRITERIAMSG._serialized_start=26380 - _NONODESFORSELECTIONCRITERIAMSG._serialized_end=26506 - _DEPSLOCKUPDATING._serialized_start=26508 - _DEPSLOCKUPDATING._serialized_end=26549 - _DEPSLOCKUPDATINGMSG._serialized_start=26551 - _DEPSLOCKUPDATINGMSG._serialized_end=26655 - _DEPSADDPACKAGE._serialized_start=26657 - _DEPSADDPACKAGE._serialized_end=26739 - _DEPSADDPACKAGEMSG._serialized_start=26741 - _DEPSADDPACKAGEMSG._serialized_end=26841 - _DEPSFOUNDDUPLICATEPACKAGE._serialized_start=26844 - _DEPSFOUNDDUPLICATEPACKAGE._serialized_end=27011 - _DEPSFOUNDDUPLICATEPACKAGE_REMOVEDPACKAGEENTRY._serialized_start=26958 - _DEPSFOUNDDUPLICATEPACKAGE_REMOVEDPACKAGEENTRY._serialized_end=27011 - _DEPSFOUNDDUPLICATEPACKAGEMSG._serialized_start=27013 - _DEPSFOUNDDUPLICATEPACKAGEMSG._serialized_end=27135 - _DEPSVERSIONMISSING._serialized_start=27137 - _DEPSVERSIONMISSING._serialized_end=27173 - _DEPSVERSIONMISSINGMSG._serialized_start=27175 - _DEPSVERSIONMISSINGMSG._serialized_end=27283 - _DEPSSCRUBBEDPACKAGENAME._serialized_start=27285 - _DEPSSCRUBBEDPACKAGENAME._serialized_end=27332 - _DEPSSCRUBBEDPACKAGENAMEMSG._serialized_start=27334 - _DEPSSCRUBBEDPACKAGENAMEMSG._serialized_end=27452 - _RUNNINGOPERATIONCAUGHTERROR._serialized_start=27454 - _RUNNINGOPERATIONCAUGHTERROR._serialized_end=27496 - _RUNNINGOPERATIONCAUGHTERRORMSG._serialized_start=27498 - _RUNNINGOPERATIONCAUGHTERRORMSG._serialized_end=27624 - _COMPILECOMPLETE._serialized_start=27626 - _COMPILECOMPLETE._serialized_end=27643 - _COMPILECOMPLETEMSG._serialized_start=27645 - _COMPILECOMPLETEMSG._serialized_end=27747 - _FRESHNESSCHECKCOMPLETE._serialized_start=27749 - _FRESHNESSCHECKCOMPLETE._serialized_end=27773 - _FRESHNESSCHECKCOMPLETEMSG._serialized_start=27775 - _FRESHNESSCHECKCOMPLETEMSG._serialized_end=27891 - _SEEDHEADER._serialized_start=27893 - _SEEDHEADER._serialized_end=27921 - _SEEDHEADERMSG._serialized_start=27923 - _SEEDHEADERMSG._serialized_end=28015 - _SQLRUNNEREXCEPTION._serialized_start=28017 - _SQLRUNNEREXCEPTION._serialized_end=28068 - _SQLRUNNEREXCEPTIONMSG._serialized_start=28070 - _SQLRUNNEREXCEPTIONMSG._serialized_end=28178 - _LOGTESTRESULT._serialized_start=28181 - _LOGTESTRESULT._serialized_end=28349 - _LOGTESTRESULTMSG._serialized_start=28351 - _LOGTESTRESULTMSG._serialized_end=28449 - _LOGSTARTLINE._serialized_start=28451 - _LOGSTARTLINE._serialized_end=28558 - _LOGSTARTLINEMSG._serialized_start=28560 - _LOGSTARTLINEMSG._serialized_end=28656 - _LOGMODELRESULT._serialized_start=28659 - _LOGMODELRESULT._serialized_end=28808 - _LOGMODELRESULTMSG._serialized_start=28810 - _LOGMODELRESULTMSG._serialized_end=28910 - _LOGSNAPSHOTRESULT._serialized_start=28913 - _LOGSNAPSHOTRESULT._serialized_end=29187 - _LOGSNAPSHOTRESULT_CFGENTRY._serialized_start=29145 - _LOGSNAPSHOTRESULT_CFGENTRY._serialized_end=29187 - _LOGSNAPSHOTRESULTMSG._serialized_start=29189 - _LOGSNAPSHOTRESULTMSG._serialized_end=29295 - _LOGSEEDRESULT._serialized_start=29298 - _LOGSEEDRESULT._serialized_end=29483 - _LOGSEEDRESULTMSG._serialized_start=29485 - _LOGSEEDRESULTMSG._serialized_end=29583 - _LOGFRESHNESSRESULT._serialized_start=29586 - _LOGFRESHNESSRESULT._serialized_end=29759 - _LOGFRESHNESSRESULTMSG._serialized_start=29761 - _LOGFRESHNESSRESULTMSG._serialized_end=29869 - _LOGCANCELLINE._serialized_start=29871 - _LOGCANCELLINE._serialized_end=29905 - _LOGCANCELLINEMSG._serialized_start=29907 - _LOGCANCELLINEMSG._serialized_end=30005 - _DEFAULTSELECTOR._serialized_start=30007 - _DEFAULTSELECTOR._serialized_end=30038 - _DEFAULTSELECTORMSG._serialized_start=30040 - _DEFAULTSELECTORMSG._serialized_end=30142 - _NODESTART._serialized_start=30144 - _NODESTART._serialized_end=30197 - _NODESTARTMSG._serialized_start=30199 - _NODESTARTMSG._serialized_end=30289 - _NODEFINISHED._serialized_start=30291 - _NODEFINISHED._serialized_end=30394 - _NODEFINISHEDMSG._serialized_start=30396 - _NODEFINISHEDMSG._serialized_end=30492 - _QUERYCANCELATIONUNSUPPORTED._serialized_start=30494 - _QUERYCANCELATIONUNSUPPORTED._serialized_end=30537 - _QUERYCANCELATIONUNSUPPORTEDMSG._serialized_start=30539 - _QUERYCANCELATIONUNSUPPORTEDMSG._serialized_end=30665 - _CONCURRENCYLINE._serialized_start=30667 - _CONCURRENCYLINE._serialized_end=30746 - _CONCURRENCYLINEMSG._serialized_start=30748 - _CONCURRENCYLINEMSG._serialized_end=30850 - _WRITINGINJECTEDSQLFORNODE._serialized_start=30852 - _WRITINGINJECTEDSQLFORNODE._serialized_end=30921 - _WRITINGINJECTEDSQLFORNODEMSG._serialized_start=30923 - _WRITINGINJECTEDSQLFORNODEMSG._serialized_end=31045 - _NODECOMPILING._serialized_start=31047 - _NODECOMPILING._serialized_end=31104 - _NODECOMPILINGMSG._serialized_start=31106 - _NODECOMPILINGMSG._serialized_end=31204 - _NODEEXECUTING._serialized_start=31206 - _NODEEXECUTING._serialized_end=31263 - _NODEEXECUTINGMSG._serialized_start=31265 - _NODEEXECUTINGMSG._serialized_end=31363 - _LOGHOOKSTARTLINE._serialized_start=31365 - _LOGHOOKSTARTLINE._serialized_end=31474 - _LOGHOOKSTARTLINEMSG._serialized_start=31476 - _LOGHOOKSTARTLINEMSG._serialized_end=31580 - _LOGHOOKENDLINE._serialized_start=31583 - _LOGHOOKENDLINE._serialized_end=31730 - _LOGHOOKENDLINEMSG._serialized_start=31732 - _LOGHOOKENDLINEMSG._serialized_end=31832 - _SKIPPINGDETAILS._serialized_start=31835 - _SKIPPINGDETAILS._serialized_end=31982 - _SKIPPINGDETAILSMSG._serialized_start=31984 - _SKIPPINGDETAILSMSG._serialized_end=32086 - _NOTHINGTODO._serialized_start=32088 - _NOTHINGTODO._serialized_end=32101 - _NOTHINGTODOMSG._serialized_start=32103 - _NOTHINGTODOMSG._serialized_end=32197 - _RUNNINGOPERATIONUNCAUGHTERROR._serialized_start=32199 - _RUNNINGOPERATIONUNCAUGHTERROR._serialized_end=32243 - _RUNNINGOPERATIONUNCAUGHTERRORMSG._serialized_start=32246 - _RUNNINGOPERATIONUNCAUGHTERRORMSG._serialized_end=32376 - _ENDRUNRESULT._serialized_start=32379 - _ENDRUNRESULT._serialized_end=32526 - _ENDRUNRESULTMSG._serialized_start=32528 - _ENDRUNRESULTMSG._serialized_end=32624 - _NONODESSELECTED._serialized_start=32626 - _NONODESSELECTED._serialized_end=32643 - _NONODESSELECTEDMSG._serialized_start=32645 - _NONODESSELECTEDMSG._serialized_end=32747 - _COMMANDCOMPLETED._serialized_start=32749 - _COMMANDCOMPLETED._serialized_end=32868 - _COMMANDCOMPLETEDMSG._serialized_start=32870 - _COMMANDCOMPLETEDMSG._serialized_end=32974 - _SHOWNODE._serialized_start=32976 - _SHOWNODE._serialized_end=33083 - _SHOWNODEMSG._serialized_start=33085 - _SHOWNODEMSG._serialized_end=33173 - _COMPILEDNODE._serialized_start=33175 - _COMPILEDNODE._serialized_end=33287 - _COMPILEDNODEMSG._serialized_start=33289 - _COMPILEDNODEMSG._serialized_end=33385 - _CATCHABLEEXCEPTIONONRUN._serialized_start=33387 - _CATCHABLEEXCEPTIONONRUN._serialized_end=33485 - _CATCHABLEEXCEPTIONONRUNMSG._serialized_start=33487 - _CATCHABLEEXCEPTIONONRUNMSG._serialized_end=33605 - _INTERNALERRORONRUN._serialized_start=33607 - _INTERNALERRORONRUN._serialized_end=33660 - _INTERNALERRORONRUNMSG._serialized_start=33662 - _INTERNALERRORONRUNMSG._serialized_end=33770 - _GENERICEXCEPTIONONRUN._serialized_start=33772 - _GENERICEXCEPTIONONRUN._serialized_end=33847 - _GENERICEXCEPTIONONRUNMSG._serialized_start=33849 - _GENERICEXCEPTIONONRUNMSG._serialized_end=33963 - _NODECONNECTIONRELEASEERROR._serialized_start=33965 - _NODECONNECTIONRELEASEERROR._serialized_end=34043 - _NODECONNECTIONRELEASEERRORMSG._serialized_start=34045 - _NODECONNECTIONRELEASEERRORMSG._serialized_end=34169 - _FOUNDSTATS._serialized_start=34171 - _FOUNDSTATS._serialized_end=34202 - _FOUNDSTATSMSG._serialized_start=34204 - _FOUNDSTATSMSG._serialized_end=34296 - _MAINKEYBOARDINTERRUPT._serialized_start=34298 - _MAINKEYBOARDINTERRUPT._serialized_end=34321 - _MAINKEYBOARDINTERRUPTMSG._serialized_start=34323 - _MAINKEYBOARDINTERRUPTMSG._serialized_end=34437 - _MAINENCOUNTEREDERROR._serialized_start=34439 - _MAINENCOUNTEREDERROR._serialized_end=34474 - _MAINENCOUNTEREDERRORMSG._serialized_start=34476 - _MAINENCOUNTEREDERRORMSG._serialized_end=34588 - _MAINSTACKTRACE._serialized_start=34590 - _MAINSTACKTRACE._serialized_end=34627 - _MAINSTACKTRACEMSG._serialized_start=34629 - _MAINSTACKTRACEMSG._serialized_end=34729 - _SYSTEMCOULDNOTWRITE._serialized_start=34731 - _SYSTEMCOULDNOTWRITE._serialized_end=34795 - _SYSTEMCOULDNOTWRITEMSG._serialized_start=34797 - _SYSTEMCOULDNOTWRITEMSG._serialized_end=34907 - _SYSTEMEXECUTINGCMD._serialized_start=34909 - _SYSTEMEXECUTINGCMD._serialized_end=34942 - _SYSTEMEXECUTINGCMDMSG._serialized_start=34944 - _SYSTEMEXECUTINGCMDMSG._serialized_end=35052 - _SYSTEMSTDOUT._serialized_start=35054 - _SYSTEMSTDOUT._serialized_end=35082 - _SYSTEMSTDOUTMSG._serialized_start=35084 - _SYSTEMSTDOUTMSG._serialized_end=35180 - _SYSTEMSTDERR._serialized_start=35182 - _SYSTEMSTDERR._serialized_end=35210 - _SYSTEMSTDERRMSG._serialized_start=35212 - _SYSTEMSTDERRMSG._serialized_end=35308 - _SYSTEMREPORTRETURNCODE._serialized_start=35310 - _SYSTEMREPORTRETURNCODE._serialized_end=35354 - _SYSTEMREPORTRETURNCODEMSG._serialized_start=35356 - _SYSTEMREPORTRETURNCODEMSG._serialized_end=35472 - _TIMINGINFOCOLLECTED._serialized_start=35474 - _TIMINGINFOCOLLECTED._serialized_end=35586 - _TIMINGINFOCOLLECTEDMSG._serialized_start=35588 - _TIMINGINFOCOLLECTEDMSG._serialized_end=35698 - _LOGDEBUGSTACKTRACE._serialized_start=35700 - _LOGDEBUGSTACKTRACE._serialized_end=35738 - _LOGDEBUGSTACKTRACEMSG._serialized_start=35740 - _LOGDEBUGSTACKTRACEMSG._serialized_end=35848 - _CHECKCLEANPATH._serialized_start=35850 - _CHECKCLEANPATH._serialized_end=35880 - _CHECKCLEANPATHMSG._serialized_start=35882 - _CHECKCLEANPATHMSG._serialized_end=35982 - _CONFIRMCLEANPATH._serialized_start=35984 - _CONFIRMCLEANPATH._serialized_end=36016 - _CONFIRMCLEANPATHMSG._serialized_start=36018 - _CONFIRMCLEANPATHMSG._serialized_end=36122 - _PROTECTEDCLEANPATH._serialized_start=36124 - _PROTECTEDCLEANPATH._serialized_end=36158 - _PROTECTEDCLEANPATHMSG._serialized_start=36160 - _PROTECTEDCLEANPATHMSG._serialized_end=36268 - _FINISHEDCLEANPATHS._serialized_start=36270 - _FINISHEDCLEANPATHS._serialized_end=36290 - _FINISHEDCLEANPATHSMSG._serialized_start=36292 - _FINISHEDCLEANPATHSMSG._serialized_end=36400 - _OPENCOMMAND._serialized_start=36402 - _OPENCOMMAND._serialized_end=36455 - _OPENCOMMANDMSG._serialized_start=36457 - _OPENCOMMANDMSG._serialized_end=36551 - _FORMATTING._serialized_start=36553 - _FORMATTING._serialized_end=36578 - _FORMATTINGMSG._serialized_start=36580 - _FORMATTINGMSG._serialized_end=36672 - _SERVINGDOCSPORT._serialized_start=36674 - _SERVINGDOCSPORT._serialized_end=36722 - _SERVINGDOCSPORTMSG._serialized_start=36724 - _SERVINGDOCSPORTMSG._serialized_end=36826 - _SERVINGDOCSACCESSINFO._serialized_start=36828 - _SERVINGDOCSACCESSINFO._serialized_end=36865 - _SERVINGDOCSACCESSINFOMSG._serialized_start=36867 - _SERVINGDOCSACCESSINFOMSG._serialized_end=36981 - _SERVINGDOCSEXITINFO._serialized_start=36983 - _SERVINGDOCSEXITINFO._serialized_end=37004 - _SERVINGDOCSEXITINFOMSG._serialized_start=37006 - _SERVINGDOCSEXITINFOMSG._serialized_end=37116 - _RUNRESULTWARNING._serialized_start=37118 - _RUNRESULTWARNING._serialized_end=37192 - _RUNRESULTWARNINGMSG._serialized_start=37194 - _RUNRESULTWARNINGMSG._serialized_end=37298 - _RUNRESULTFAILURE._serialized_start=37300 - _RUNRESULTFAILURE._serialized_end=37374 - _RUNRESULTFAILUREMSG._serialized_start=37376 - _RUNRESULTFAILUREMSG._serialized_end=37480 - _STATSLINE._serialized_start=37482 - _STATSLINE._serialized_end=37589 - _STATSLINE_STATSENTRY._serialized_start=37545 - _STATSLINE_STATSENTRY._serialized_end=37589 - _STATSLINEMSG._serialized_start=37591 - _STATSLINEMSG._serialized_end=37681 - _RUNRESULTERROR._serialized_start=37683 - _RUNRESULTERROR._serialized_end=37712 - _RUNRESULTERRORMSG._serialized_start=37714 - _RUNRESULTERRORMSG._serialized_end=37814 - _RUNRESULTERRORNOMESSAGE._serialized_start=37816 - _RUNRESULTERRORNOMESSAGE._serialized_end=37857 - _RUNRESULTERRORNOMESSAGEMSG._serialized_start=37859 - _RUNRESULTERRORNOMESSAGEMSG._serialized_end=37977 - _SQLCOMPILEDPATH._serialized_start=37979 - _SQLCOMPILEDPATH._serialized_end=38010 - _SQLCOMPILEDPATHMSG._serialized_start=38012 - _SQLCOMPILEDPATHMSG._serialized_end=38114 - _CHECKNODETESTFAILURE._serialized_start=38116 - _CHECKNODETESTFAILURE._serialized_end=38161 - _CHECKNODETESTFAILUREMSG._serialized_start=38163 - _CHECKNODETESTFAILUREMSG._serialized_end=38275 - _ENDOFRUNSUMMARY._serialized_start=38277 - _ENDOFRUNSUMMARY._serialized_end=38364 - _ENDOFRUNSUMMARYMSG._serialized_start=38366 - _ENDOFRUNSUMMARYMSG._serialized_end=38468 - _LOGSKIPBECAUSEERROR._serialized_start=38470 - _LOGSKIPBECAUSEERROR._serialized_end=38555 - _LOGSKIPBECAUSEERRORMSG._serialized_start=38557 - _LOGSKIPBECAUSEERRORMSG._serialized_end=38667 - _ENSUREGITINSTALLED._serialized_start=38669 - _ENSUREGITINSTALLED._serialized_end=38689 - _ENSUREGITINSTALLEDMSG._serialized_start=38691 - _ENSUREGITINSTALLEDMSG._serialized_end=38799 - _DEPSCREATINGLOCALSYMLINK._serialized_start=38801 - _DEPSCREATINGLOCALSYMLINK._serialized_end=38827 - _DEPSCREATINGLOCALSYMLINKMSG._serialized_start=38829 - _DEPSCREATINGLOCALSYMLINKMSG._serialized_end=38949 - _DEPSSYMLINKNOTAVAILABLE._serialized_start=38951 - _DEPSSYMLINKNOTAVAILABLE._serialized_end=38976 - _DEPSSYMLINKNOTAVAILABLEMSG._serialized_start=38978 - _DEPSSYMLINKNOTAVAILABLEMSG._serialized_end=39096 - _DISABLETRACKING._serialized_start=39098 - _DISABLETRACKING._serialized_end=39115 - _DISABLETRACKINGMSG._serialized_start=39117 - _DISABLETRACKINGMSG._serialized_end=39219 - _SENDINGEVENT._serialized_start=39221 - _SENDINGEVENT._serialized_end=39251 - _SENDINGEVENTMSG._serialized_start=39253 - _SENDINGEVENTMSG._serialized_end=39349 - _SENDEVENTFAILURE._serialized_start=39351 - _SENDEVENTFAILURE._serialized_end=39369 - _SENDEVENTFAILUREMSG._serialized_start=39371 - _SENDEVENTFAILUREMSG._serialized_end=39475 - _FLUSHEVENTS._serialized_start=39477 - _FLUSHEVENTS._serialized_end=39490 - _FLUSHEVENTSMSG._serialized_start=39492 - _FLUSHEVENTSMSG._serialized_end=39586 - _FLUSHEVENTSFAILURE._serialized_start=39588 - _FLUSHEVENTSFAILURE._serialized_end=39608 - _FLUSHEVENTSFAILUREMSG._serialized_start=39610 - _FLUSHEVENTSFAILUREMSG._serialized_end=39718 - _TRACKINGINITIALIZEFAILURE._serialized_start=39720 - _TRACKINGINITIALIZEFAILURE._serialized_end=39765 - _TRACKINGINITIALIZEFAILUREMSG._serialized_start=39767 - _TRACKINGINITIALIZEFAILUREMSG._serialized_end=39889 - _RUNRESULTWARNINGMESSAGE._serialized_start=39891 - _RUNRESULTWARNINGMESSAGE._serialized_end=39929 - _RUNRESULTWARNINGMESSAGEMSG._serialized_start=39931 - _RUNRESULTWARNINGMESSAGEMSG._serialized_end=40049 - _DEBUGCMDOUT._serialized_start=40051 - _DEBUGCMDOUT._serialized_end=40077 - _DEBUGCMDOUTMSG._serialized_start=40079 - _DEBUGCMDOUTMSG._serialized_end=40173 - _DEBUGCMDRESULT._serialized_start=40175 - _DEBUGCMDRESULT._serialized_end=40204 - _DEBUGCMDRESULTMSG._serialized_start=40206 - _DEBUGCMDRESULTMSG._serialized_end=40306 - _LISTCMDOUT._serialized_start=40308 - _LISTCMDOUT._serialized_end=40333 - _LISTCMDOUTMSG._serialized_start=40335 - _LISTCMDOUTMSG._serialized_end=40427 - _NOTE._serialized_start=40429 - _NOTE._serialized_end=40448 - _NOTEMSG._serialized_start=40450 - _NOTEMSG._serialized_end=40530 - _RESOURCEREPORT._serialized_start=40533 - _RESOURCEREPORT._serialized_end=40769 - _RESOURCEREPORTMSG._serialized_start=40771 - _RESOURCEREPORTMSG._serialized_end=40871 + _PROJECTFLAGSMOVEDDEPRECATION._serialized_start=6715 + _PROJECTFLAGSMOVEDDEPRECATION._serialized_end=6745 + _PROJECTFLAGSMOVEDDEPRECATIONMSG._serialized_start=6748 + _PROJECTFLAGSMOVEDDEPRECATIONMSG._serialized_end=6876 + _ADAPTEREVENTDEBUG._serialized_start=6879 + _ADAPTEREVENTDEBUG._serialized_end=7014 + _ADAPTEREVENTDEBUGMSG._serialized_start=7016 + _ADAPTEREVENTDEBUGMSG._serialized_end=7122 + _ADAPTEREVENTINFO._serialized_start=7125 + _ADAPTEREVENTINFO._serialized_end=7259 + _ADAPTEREVENTINFOMSG._serialized_start=7261 + _ADAPTEREVENTINFOMSG._serialized_end=7365 + _ADAPTEREVENTWARNING._serialized_start=7368 + _ADAPTEREVENTWARNING._serialized_end=7505 + _ADAPTEREVENTWARNINGMSG._serialized_start=7507 + _ADAPTEREVENTWARNINGMSG._serialized_end=7617 + _ADAPTEREVENTERROR._serialized_start=7620 + _ADAPTEREVENTERROR._serialized_end=7773 + _ADAPTEREVENTERRORMSG._serialized_start=7775 + _ADAPTEREVENTERRORMSG._serialized_end=7881 + _NEWCONNECTION._serialized_start=7883 + _NEWCONNECTION._serialized_end=7978 + _NEWCONNECTIONMSG._serialized_start=7980 + _NEWCONNECTIONMSG._serialized_end=8078 + _CONNECTIONREUSED._serialized_start=8080 + _CONNECTIONREUSED._serialized_end=8141 + _CONNECTIONREUSEDMSG._serialized_start=8143 + _CONNECTIONREUSEDMSG._serialized_end=8247 + _CONNECTIONLEFTOPENINCLEANUP._serialized_start=8249 + _CONNECTIONLEFTOPENINCLEANUP._serialized_end=8297 + _CONNECTIONLEFTOPENINCLEANUPMSG._serialized_start=8299 + _CONNECTIONLEFTOPENINCLEANUPMSG._serialized_end=8425 + _CONNECTIONCLOSEDINCLEANUP._serialized_start=8427 + _CONNECTIONCLOSEDINCLEANUP._serialized_end=8473 + _CONNECTIONCLOSEDINCLEANUPMSG._serialized_start=8475 + _CONNECTIONCLOSEDINCLEANUPMSG._serialized_end=8597 + _ROLLBACKFAILED._serialized_start=8599 + _ROLLBACKFAILED._serialized_end=8694 + _ROLLBACKFAILEDMSG._serialized_start=8696 + _ROLLBACKFAILEDMSG._serialized_end=8796 + _CONNECTIONCLOSED._serialized_start=8798 + _CONNECTIONCLOSED._serialized_end=8877 + _CONNECTIONCLOSEDMSG._serialized_start=8879 + _CONNECTIONCLOSEDMSG._serialized_end=8983 + _CONNECTIONLEFTOPEN._serialized_start=8985 + _CONNECTIONLEFTOPEN._serialized_end=9066 + _CONNECTIONLEFTOPENMSG._serialized_start=9068 + _CONNECTIONLEFTOPENMSG._serialized_end=9176 + _ROLLBACK._serialized_start=9178 + _ROLLBACK._serialized_end=9249 + _ROLLBACKMSG._serialized_start=9251 + _ROLLBACKMSG._serialized_end=9339 + _CACHEMISS._serialized_start=9341 + _CACHEMISS._serialized_end=9405 + _CACHEMISSMSG._serialized_start=9407 + _CACHEMISSMSG._serialized_end=9497 + _LISTRELATIONS._serialized_start=9499 + _LISTRELATIONS._serialized_end=9597 + _LISTRELATIONSMSG._serialized_start=9599 + _LISTRELATIONSMSG._serialized_end=9697 + _CONNECTIONUSED._serialized_start=9699 + _CONNECTIONUSED._serialized_end=9795 + _CONNECTIONUSEDMSG._serialized_start=9797 + _CONNECTIONUSEDMSG._serialized_end=9897 + _SQLQUERY._serialized_start=9899 + _SQLQUERY._serialized_end=9983 + _SQLQUERYMSG._serialized_start=9985 + _SQLQUERYMSG._serialized_end=10073 + _SQLQUERYSTATUS._serialized_start=10075 + _SQLQUERYSTATUS._serialized_end=10166 + _SQLQUERYSTATUSMSG._serialized_start=10168 + _SQLQUERYSTATUSMSG._serialized_end=10268 + _SQLCOMMIT._serialized_start=10270 + _SQLCOMMIT._serialized_end=10342 + _SQLCOMMITMSG._serialized_start=10344 + _SQLCOMMITMSG._serialized_end=10434 + _COLTYPECHANGE._serialized_start=10436 + _COLTYPECHANGE._serialized_end=10533 + _COLTYPECHANGEMSG._serialized_start=10535 + _COLTYPECHANGEMSG._serialized_end=10633 + _SCHEMACREATION._serialized_start=10635 + _SCHEMACREATION._serialized_end=10699 + _SCHEMACREATIONMSG._serialized_start=10701 + _SCHEMACREATIONMSG._serialized_end=10801 + _SCHEMADROP._serialized_start=10803 + _SCHEMADROP._serialized_end=10863 + _SCHEMADROPMSG._serialized_start=10865 + _SCHEMADROPMSG._serialized_end=10957 + _CACHEACTION._serialized_start=10960 + _CACHEACTION._serialized_end=11182 + _CACHEACTIONMSG._serialized_start=11184 + _CACHEACTIONMSG._serialized_end=11278 + _CACHEDUMPGRAPH._serialized_start=11281 + _CACHEDUMPGRAPH._serialized_end=11433 + _CACHEDUMPGRAPH_DUMPENTRY._serialized_start=11390 + _CACHEDUMPGRAPH_DUMPENTRY._serialized_end=11433 + _CACHEDUMPGRAPHMSG._serialized_start=11435 + _CACHEDUMPGRAPHMSG._serialized_end=11535 + _ADAPTERREGISTERED._serialized_start=11537 + _ADAPTERREGISTERED._serialized_end=11603 + _ADAPTERREGISTEREDMSG._serialized_start=11605 + _ADAPTERREGISTEREDMSG._serialized_end=11711 + _ADAPTERIMPORTERROR._serialized_start=11713 + _ADAPTERIMPORTERROR._serialized_end=11746 + _ADAPTERIMPORTERRORMSG._serialized_start=11748 + _ADAPTERIMPORTERRORMSG._serialized_end=11856 + _PLUGINLOADERROR._serialized_start=11858 + _PLUGINLOADERROR._serialized_end=11893 + _PLUGINLOADERRORMSG._serialized_start=11895 + _PLUGINLOADERRORMSG._serialized_end=11997 + _NEWCONNECTIONOPENING._serialized_start=11999 + _NEWCONNECTIONOPENING._serialized_end=12089 + _NEWCONNECTIONOPENINGMSG._serialized_start=12091 + _NEWCONNECTIONOPENINGMSG._serialized_end=12203 + _CODEEXECUTION._serialized_start=12205 + _CODEEXECUTION._serialized_end=12261 + _CODEEXECUTIONMSG._serialized_start=12263 + _CODEEXECUTIONMSG._serialized_end=12361 + _CODEEXECUTIONSTATUS._serialized_start=12363 + _CODEEXECUTIONSTATUS._serialized_end=12417 + _CODEEXECUTIONSTATUSMSG._serialized_start=12419 + _CODEEXECUTIONSTATUSMSG._serialized_end=12529 + _CATALOGGENERATIONERROR._serialized_start=12531 + _CATALOGGENERATIONERROR._serialized_end=12568 + _CATALOGGENERATIONERRORMSG._serialized_start=12570 + _CATALOGGENERATIONERRORMSG._serialized_end=12686 + _WRITECATALOGFAILURE._serialized_start=12688 + _WRITECATALOGFAILURE._serialized_end=12733 + _WRITECATALOGFAILUREMSG._serialized_start=12735 + _WRITECATALOGFAILUREMSG._serialized_end=12845 + _CATALOGWRITTEN._serialized_start=12847 + _CATALOGWRITTEN._serialized_end=12877 + _CATALOGWRITTENMSG._serialized_start=12879 + _CATALOGWRITTENMSG._serialized_end=12979 + _CANNOTGENERATEDOCS._serialized_start=12981 + _CANNOTGENERATEDOCS._serialized_end=13001 + _CANNOTGENERATEDOCSMSG._serialized_start=13003 + _CANNOTGENERATEDOCSMSG._serialized_end=13111 + _BUILDINGCATALOG._serialized_start=13113 + _BUILDINGCATALOG._serialized_end=13130 + _BUILDINGCATALOGMSG._serialized_start=13132 + _BUILDINGCATALOGMSG._serialized_end=13234 + _DATABASEERRORRUNNINGHOOK._serialized_start=13236 + _DATABASEERRORRUNNINGHOOK._serialized_end=13281 + _DATABASEERRORRUNNINGHOOKMSG._serialized_start=13283 + _DATABASEERRORRUNNINGHOOKMSG._serialized_end=13403 + _HOOKSRUNNING._serialized_start=13405 + _HOOKSRUNNING._serialized_end=13457 + _HOOKSRUNNINGMSG._serialized_start=13459 + _HOOKSRUNNINGMSG._serialized_end=13555 + _FINISHEDRUNNINGSTATS._serialized_start=13557 + _FINISHEDRUNNINGSTATS._serialized_end=13641 + _FINISHEDRUNNINGSTATSMSG._serialized_start=13643 + _FINISHEDRUNNINGSTATSMSG._serialized_end=13755 + _CONSTRAINTNOTENFORCED._serialized_start=13757 + _CONSTRAINTNOTENFORCED._serialized_end=13817 + _CONSTRAINTNOTENFORCEDMSG._serialized_start=13819 + _CONSTRAINTNOTENFORCEDMSG._serialized_end=13933 + _CONSTRAINTNOTSUPPORTED._serialized_start=13935 + _CONSTRAINTNOTSUPPORTED._serialized_end=13996 + _CONSTRAINTNOTSUPPORTEDMSG._serialized_start=13998 + _CONSTRAINTNOTSUPPORTEDMSG._serialized_end=14114 + _INPUTFILEDIFFERROR._serialized_start=14116 + _INPUTFILEDIFFERROR._serialized_end=14171 + _INPUTFILEDIFFERRORMSG._serialized_start=14173 + _INPUTFILEDIFFERRORMSG._serialized_end=14281 + _INVALIDVALUEFORFIELD._serialized_start=14283 + _INVALIDVALUEFORFIELD._serialized_end=14346 + _INVALIDVALUEFORFIELDMSG._serialized_start=14348 + _INVALIDVALUEFORFIELDMSG._serialized_end=14460 + _VALIDATIONWARNING._serialized_start=14462 + _VALIDATIONWARNING._serialized_end=14543 + _VALIDATIONWARNINGMSG._serialized_start=14545 + _VALIDATIONWARNINGMSG._serialized_end=14651 + _PARSEPERFINFOPATH._serialized_start=14653 + _PARSEPERFINFOPATH._serialized_end=14686 + _PARSEPERFINFOPATHMSG._serialized_start=14688 + _PARSEPERFINFOPATHMSG._serialized_end=14794 + _PARTIALPARSINGERRORPROCESSINGFILE._serialized_start=14796 + _PARTIALPARSINGERRORPROCESSINGFILE._serialized_end=14845 + _PARTIALPARSINGERRORPROCESSINGFILEMSG._serialized_start=14848 + _PARTIALPARSINGERRORPROCESSINGFILEMSG._serialized_end=14986 + _PARTIALPARSINGERROR._serialized_start=14989 + _PARTIALPARSINGERROR._serialized_end=15123 + _PARTIALPARSINGERROR_EXCINFOENTRY._serialized_start=15077 + _PARTIALPARSINGERROR_EXCINFOENTRY._serialized_end=15123 + _PARTIALPARSINGERRORMSG._serialized_start=15125 + _PARTIALPARSINGERRORMSG._serialized_end=15235 + _PARTIALPARSINGSKIPPARSING._serialized_start=15237 + _PARTIALPARSINGSKIPPARSING._serialized_end=15264 + _PARTIALPARSINGSKIPPARSINGMSG._serialized_start=15266 + _PARTIALPARSINGSKIPPARSINGMSG._serialized_end=15388 + _UNABLETOPARTIALPARSE._serialized_start=15390 + _UNABLETOPARTIALPARSE._serialized_end=15428 + _UNABLETOPARTIALPARSEMSG._serialized_start=15430 + _UNABLETOPARTIALPARSEMSG._serialized_end=15542 + _STATECHECKVARSHASH._serialized_start=15544 + _STATECHECKVARSHASH._serialized_end=15646 + _STATECHECKVARSHASHMSG._serialized_start=15648 + _STATECHECKVARSHASHMSG._serialized_end=15756 + _PARTIALPARSINGNOTENABLED._serialized_start=15758 + _PARTIALPARSINGNOTENABLED._serialized_end=15784 + _PARTIALPARSINGNOTENABLEDMSG._serialized_start=15786 + _PARTIALPARSINGNOTENABLEDMSG._serialized_end=15906 + _PARSEDFILELOADFAILED._serialized_start=15908 + _PARSEDFILELOADFAILED._serialized_end=15975 + _PARSEDFILELOADFAILEDMSG._serialized_start=15977 + _PARSEDFILELOADFAILEDMSG._serialized_end=16089 + _PARTIALPARSINGENABLED._serialized_start=16091 + _PARTIALPARSINGENABLED._serialized_end=16163 + _PARTIALPARSINGENABLEDMSG._serialized_start=16165 + _PARTIALPARSINGENABLEDMSG._serialized_end=16279 + _PARTIALPARSINGFILE._serialized_start=16281 + _PARTIALPARSINGFILE._serialized_end=16337 + _PARTIALPARSINGFILEMSG._serialized_start=16339 + _PARTIALPARSINGFILEMSG._serialized_end=16447 + _INVALIDDISABLEDTARGETINTESTNODE._serialized_start=16450 + _INVALIDDISABLEDTARGETINTESTNODE._serialized_end=16625 + _INVALIDDISABLEDTARGETINTESTNODEMSG._serialized_start=16628 + _INVALIDDISABLEDTARGETINTESTNODEMSG._serialized_end=16762 + _UNUSEDRESOURCECONFIGPATH._serialized_start=16764 + _UNUSEDRESOURCECONFIGPATH._serialized_end=16819 + _UNUSEDRESOURCECONFIGPATHMSG._serialized_start=16821 + _UNUSEDRESOURCECONFIGPATHMSG._serialized_end=16941 + _SEEDINCREASED._serialized_start=16943 + _SEEDINCREASED._serialized_end=16994 + _SEEDINCREASEDMSG._serialized_start=16996 + _SEEDINCREASEDMSG._serialized_end=17094 + _SEEDEXCEEDSLIMITSAMEPATH._serialized_start=17096 + _SEEDEXCEEDSLIMITSAMEPATH._serialized_end=17158 + _SEEDEXCEEDSLIMITSAMEPATHMSG._serialized_start=17160 + _SEEDEXCEEDSLIMITSAMEPATHMSG._serialized_end=17280 + _SEEDEXCEEDSLIMITANDPATHCHANGED._serialized_start=17282 + _SEEDEXCEEDSLIMITANDPATHCHANGED._serialized_end=17350 + _SEEDEXCEEDSLIMITANDPATHCHANGEDMSG._serialized_start=17353 + _SEEDEXCEEDSLIMITANDPATHCHANGEDMSG._serialized_end=17485 + _SEEDEXCEEDSLIMITCHECKSUMCHANGED._serialized_start=17487 + _SEEDEXCEEDSLIMITCHECKSUMCHANGED._serialized_end=17579 + _SEEDEXCEEDSLIMITCHECKSUMCHANGEDMSG._serialized_start=17582 + _SEEDEXCEEDSLIMITCHECKSUMCHANGEDMSG._serialized_end=17716 + _UNUSEDTABLES._serialized_start=17718 + _UNUSEDTABLES._serialized_end=17755 + _UNUSEDTABLESMSG._serialized_start=17757 + _UNUSEDTABLESMSG._serialized_end=17853 + _WRONGRESOURCESCHEMAFILE._serialized_start=17856 + _WRONGRESOURCESCHEMAFILE._serialized_end=17991 + _WRONGRESOURCESCHEMAFILEMSG._serialized_start=17993 + _WRONGRESOURCESCHEMAFILEMSG._serialized_end=18111 + _NONODEFORYAMLKEY._serialized_start=18113 + _NONODEFORYAMLKEY._serialized_end=18188 + _NONODEFORYAMLKEYMSG._serialized_start=18190 + _NONODEFORYAMLKEYMSG._serialized_end=18294 + _MACRONOTFOUNDFORPATCH._serialized_start=18296 + _MACRONOTFOUNDFORPATCH._serialized_end=18339 + _MACRONOTFOUNDFORPATCHMSG._serialized_start=18341 + _MACRONOTFOUNDFORPATCHMSG._serialized_end=18455 + _NODENOTFOUNDORDISABLED._serialized_start=18458 + _NODENOTFOUNDORDISABLED._serialized_end=18642 + _NODENOTFOUNDORDISABLEDMSG._serialized_start=18644 + _NODENOTFOUNDORDISABLEDMSG._serialized_end=18760 + _JINJALOGWARNING._serialized_start=18762 + _JINJALOGWARNING._serialized_end=18834 + _JINJALOGWARNINGMSG._serialized_start=18836 + _JINJALOGWARNINGMSG._serialized_end=18938 + _JINJALOGINFO._serialized_start=18940 + _JINJALOGINFO._serialized_end=19009 + _JINJALOGINFOMSG._serialized_start=19011 + _JINJALOGINFOMSG._serialized_end=19107 + _JINJALOGDEBUG._serialized_start=19109 + _JINJALOGDEBUG._serialized_end=19179 + _JINJALOGDEBUGMSG._serialized_start=19181 + _JINJALOGDEBUGMSG._serialized_end=19279 + _UNPINNEDREFNEWVERSIONAVAILABLE._serialized_start=19282 + _UNPINNEDREFNEWVERSIONAVAILABLE._serialized_end=19456 + _UNPINNEDREFNEWVERSIONAVAILABLEMSG._serialized_start=19459 + _UNPINNEDREFNEWVERSIONAVAILABLEMSG._serialized_end=19591 + _DEPRECATEDMODEL._serialized_start=19593 + _DEPRECATEDMODEL._serialized_end=19679 + _DEPRECATEDMODELMSG._serialized_start=19681 + _DEPRECATEDMODELMSG._serialized_end=19783 + _UPCOMINGREFERENCEDEPRECATION._serialized_start=19786 + _UPCOMINGREFERENCEDEPRECATION._serialized_end=19984 + _UPCOMINGREFERENCEDEPRECATIONMSG._serialized_start=19987 + _UPCOMINGREFERENCEDEPRECATIONMSG._serialized_end=20115 + _DEPRECATEDREFERENCE._serialized_start=20118 + _DEPRECATEDREFERENCE._serialized_end=20307 + _DEPRECATEDREFERENCEMSG._serialized_start=20309 + _DEPRECATEDREFERENCEMSG._serialized_end=20419 + _UNSUPPORTEDCONSTRAINTMATERIALIZATION._serialized_start=20421 + _UNSUPPORTEDCONSTRAINTMATERIALIZATION._serialized_end=20481 + _UNSUPPORTEDCONSTRAINTMATERIALIZATIONMSG._serialized_start=20484 + _UNSUPPORTEDCONSTRAINTMATERIALIZATIONMSG._serialized_end=20628 + _PARSEINLINENODEERROR._serialized_start=20630 + _PARSEINLINENODEERROR._serialized_end=20707 + _PARSEINLINENODEERRORMSG._serialized_start=20709 + _PARSEINLINENODEERRORMSG._serialized_end=20821 + _SEMANTICVALIDATIONFAILURE._serialized_start=20823 + _SEMANTICVALIDATIONFAILURE._serialized_end=20863 + _SEMANTICVALIDATIONFAILUREMSG._serialized_start=20865 + _SEMANTICVALIDATIONFAILUREMSG._serialized_end=20987 + _UNVERSIONEDBREAKINGCHANGE._serialized_start=20990 + _UNVERSIONEDBREAKINGCHANGE._serialized_end=21384 + _UNVERSIONEDBREAKINGCHANGEMSG._serialized_start=21386 + _UNVERSIONEDBREAKINGCHANGEMSG._serialized_end=21508 + _WARNSTATETARGETEQUAL._serialized_start=21510 + _WARNSTATETARGETEQUAL._serialized_end=21552 + _WARNSTATETARGETEQUALMSG._serialized_start=21554 + _WARNSTATETARGETEQUALMSG._serialized_end=21666 + _FRESHNESSCONFIGPROBLEM._serialized_start=21668 + _FRESHNESSCONFIGPROBLEM._serialized_end=21705 + _FRESHNESSCONFIGPROBLEMMSG._serialized_start=21707 + _FRESHNESSCONFIGPROBLEMMSG._serialized_end=21823 + _GITSPARSECHECKOUTSUBDIRECTORY._serialized_start=21825 + _GITSPARSECHECKOUTSUBDIRECTORY._serialized_end=21872 + _GITSPARSECHECKOUTSUBDIRECTORYMSG._serialized_start=21875 + _GITSPARSECHECKOUTSUBDIRECTORYMSG._serialized_end=22005 + _GITPROGRESSCHECKOUTREVISION._serialized_start=22007 + _GITPROGRESSCHECKOUTREVISION._serialized_end=22054 + _GITPROGRESSCHECKOUTREVISIONMSG._serialized_start=22056 + _GITPROGRESSCHECKOUTREVISIONMSG._serialized_end=22182 + _GITPROGRESSUPDATINGEXISTINGDEPENDENCY._serialized_start=22184 + _GITPROGRESSUPDATINGEXISTINGDEPENDENCY._serialized_end=22236 + _GITPROGRESSUPDATINGEXISTINGDEPENDENCYMSG._serialized_start=22239 + _GITPROGRESSUPDATINGEXISTINGDEPENDENCYMSG._serialized_end=22385 + _GITPROGRESSPULLINGNEWDEPENDENCY._serialized_start=22387 + _GITPROGRESSPULLINGNEWDEPENDENCY._serialized_end=22433 + _GITPROGRESSPULLINGNEWDEPENDENCYMSG._serialized_start=22436 + _GITPROGRESSPULLINGNEWDEPENDENCYMSG._serialized_end=22570 + _GITNOTHINGTODO._serialized_start=22572 + _GITNOTHINGTODO._serialized_end=22601 + _GITNOTHINGTODOMSG._serialized_start=22603 + _GITNOTHINGTODOMSG._serialized_end=22703 + _GITPROGRESSUPDATEDCHECKOUTRANGE._serialized_start=22705 + _GITPROGRESSUPDATEDCHECKOUTRANGE._serialized_end=22774 + _GITPROGRESSUPDATEDCHECKOUTRANGEMSG._serialized_start=22777 + _GITPROGRESSUPDATEDCHECKOUTRANGEMSG._serialized_end=22911 + _GITPROGRESSCHECKEDOUTAT._serialized_start=22913 + _GITPROGRESSCHECKEDOUTAT._serialized_end=22955 + _GITPROGRESSCHECKEDOUTATMSG._serialized_start=22957 + _GITPROGRESSCHECKEDOUTATMSG._serialized_end=23075 + _REGISTRYPROGRESSGETREQUEST._serialized_start=23077 + _REGISTRYPROGRESSGETREQUEST._serialized_end=23118 + _REGISTRYPROGRESSGETREQUESTMSG._serialized_start=23120 + _REGISTRYPROGRESSGETREQUESTMSG._serialized_end=23244 + _REGISTRYPROGRESSGETRESPONSE._serialized_start=23246 + _REGISTRYPROGRESSGETRESPONSE._serialized_end=23307 + _REGISTRYPROGRESSGETRESPONSEMSG._serialized_start=23309 + _REGISTRYPROGRESSGETRESPONSEMSG._serialized_end=23435 + _SELECTORREPORTINVALIDSELECTOR._serialized_start=23437 + _SELECTORREPORTINVALIDSELECTOR._serialized_end=23532 + _SELECTORREPORTINVALIDSELECTORMSG._serialized_start=23535 + _SELECTORREPORTINVALIDSELECTORMSG._serialized_end=23665 + _DEPSNOPACKAGESFOUND._serialized_start=23667 + _DEPSNOPACKAGESFOUND._serialized_end=23688 + _DEPSNOPACKAGESFOUNDMSG._serialized_start=23690 + _DEPSNOPACKAGESFOUNDMSG._serialized_end=23800 + _DEPSSTARTPACKAGEINSTALL._serialized_start=23802 + _DEPSSTARTPACKAGEINSTALL._serialized_end=23849 + _DEPSSTARTPACKAGEINSTALLMSG._serialized_start=23851 + _DEPSSTARTPACKAGEINSTALLMSG._serialized_end=23969 + _DEPSINSTALLINFO._serialized_start=23971 + _DEPSINSTALLINFO._serialized_end=24010 + _DEPSINSTALLINFOMSG._serialized_start=24012 + _DEPSINSTALLINFOMSG._serialized_end=24114 + _DEPSUPDATEAVAILABLE._serialized_start=24116 + _DEPSUPDATEAVAILABLE._serialized_end=24161 + _DEPSUPDATEAVAILABLEMSG._serialized_start=24163 + _DEPSUPDATEAVAILABLEMSG._serialized_end=24273 + _DEPSUPTODATE._serialized_start=24275 + _DEPSUPTODATE._serialized_end=24289 + _DEPSUPTODATEMSG._serialized_start=24291 + _DEPSUPTODATEMSG._serialized_end=24387 + _DEPSLISTSUBDIRECTORY._serialized_start=24389 + _DEPSLISTSUBDIRECTORY._serialized_end=24433 + _DEPSLISTSUBDIRECTORYMSG._serialized_start=24435 + _DEPSLISTSUBDIRECTORYMSG._serialized_end=24547 + _DEPSNOTIFYUPDATESAVAILABLE._serialized_start=24549 + _DEPSNOTIFYUPDATESAVAILABLE._serialized_end=24595 + _DEPSNOTIFYUPDATESAVAILABLEMSG._serialized_start=24597 + _DEPSNOTIFYUPDATESAVAILABLEMSG._serialized_end=24721 + _RETRYEXTERNALCALL._serialized_start=24723 + _RETRYEXTERNALCALL._serialized_end=24772 + _RETRYEXTERNALCALLMSG._serialized_start=24774 + _RETRYEXTERNALCALLMSG._serialized_end=24880 + _RECORDRETRYEXCEPTION._serialized_start=24882 + _RECORDRETRYEXCEPTION._serialized_end=24917 + _RECORDRETRYEXCEPTIONMSG._serialized_start=24919 + _RECORDRETRYEXCEPTIONMSG._serialized_end=25031 + _REGISTRYINDEXPROGRESSGETREQUEST._serialized_start=25033 + _REGISTRYINDEXPROGRESSGETREQUEST._serialized_end=25079 + _REGISTRYINDEXPROGRESSGETREQUESTMSG._serialized_start=25082 + _REGISTRYINDEXPROGRESSGETREQUESTMSG._serialized_end=25216 + _REGISTRYINDEXPROGRESSGETRESPONSE._serialized_start=25218 + _REGISTRYINDEXPROGRESSGETRESPONSE._serialized_end=25284 + _REGISTRYINDEXPROGRESSGETRESPONSEMSG._serialized_start=25287 + _REGISTRYINDEXPROGRESSGETRESPONSEMSG._serialized_end=25423 + _REGISTRYRESPONSEUNEXPECTEDTYPE._serialized_start=25425 + _REGISTRYRESPONSEUNEXPECTEDTYPE._serialized_end=25475 + _REGISTRYRESPONSEUNEXPECTEDTYPEMSG._serialized_start=25478 + _REGISTRYRESPONSEUNEXPECTEDTYPEMSG._serialized_end=25610 + _REGISTRYRESPONSEMISSINGTOPKEYS._serialized_start=25612 + _REGISTRYRESPONSEMISSINGTOPKEYS._serialized_end=25662 + _REGISTRYRESPONSEMISSINGTOPKEYSMSG._serialized_start=25665 + _REGISTRYRESPONSEMISSINGTOPKEYSMSG._serialized_end=25797 + _REGISTRYRESPONSEMISSINGNESTEDKEYS._serialized_start=25799 + _REGISTRYRESPONSEMISSINGNESTEDKEYS._serialized_end=25852 + _REGISTRYRESPONSEMISSINGNESTEDKEYSMSG._serialized_start=25855 + _REGISTRYRESPONSEMISSINGNESTEDKEYSMSG._serialized_end=25993 + _REGISTRYRESPONSEEXTRANESTEDKEYS._serialized_start=25995 + _REGISTRYRESPONSEEXTRANESTEDKEYS._serialized_end=26046 + _REGISTRYRESPONSEEXTRANESTEDKEYSMSG._serialized_start=26049 + _REGISTRYRESPONSEEXTRANESTEDKEYSMSG._serialized_end=26183 + _DEPSSETDOWNLOADDIRECTORY._serialized_start=26185 + _DEPSSETDOWNLOADDIRECTORY._serialized_end=26225 + _DEPSSETDOWNLOADDIRECTORYMSG._serialized_start=26227 + _DEPSSETDOWNLOADDIRECTORYMSG._serialized_end=26347 + _DEPSUNPINNED._serialized_start=26349 + _DEPSUNPINNED._serialized_end=26394 + _DEPSUNPINNEDMSG._serialized_start=26396 + _DEPSUNPINNEDMSG._serialized_end=26492 + _NONODESFORSELECTIONCRITERIA._serialized_start=26494 + _NONODESFORSELECTIONCRITERIA._serialized_end=26541 + _NONODESFORSELECTIONCRITERIAMSG._serialized_start=26543 + _NONODESFORSELECTIONCRITERIAMSG._serialized_end=26669 + _DEPSLOCKUPDATING._serialized_start=26671 + _DEPSLOCKUPDATING._serialized_end=26712 + _DEPSLOCKUPDATINGMSG._serialized_start=26714 + _DEPSLOCKUPDATINGMSG._serialized_end=26818 + _DEPSADDPACKAGE._serialized_start=26820 + _DEPSADDPACKAGE._serialized_end=26902 + _DEPSADDPACKAGEMSG._serialized_start=26904 + _DEPSADDPACKAGEMSG._serialized_end=27004 + _DEPSFOUNDDUPLICATEPACKAGE._serialized_start=27007 + _DEPSFOUNDDUPLICATEPACKAGE._serialized_end=27174 + _DEPSFOUNDDUPLICATEPACKAGE_REMOVEDPACKAGEENTRY._serialized_start=27121 + _DEPSFOUNDDUPLICATEPACKAGE_REMOVEDPACKAGEENTRY._serialized_end=27174 + _DEPSFOUNDDUPLICATEPACKAGEMSG._serialized_start=27176 + _DEPSFOUNDDUPLICATEPACKAGEMSG._serialized_end=27298 + _DEPSVERSIONMISSING._serialized_start=27300 + _DEPSVERSIONMISSING._serialized_end=27336 + _DEPSVERSIONMISSINGMSG._serialized_start=27338 + _DEPSVERSIONMISSINGMSG._serialized_end=27446 + _DEPSSCRUBBEDPACKAGENAME._serialized_start=27448 + _DEPSSCRUBBEDPACKAGENAME._serialized_end=27495 + _DEPSSCRUBBEDPACKAGENAMEMSG._serialized_start=27497 + _DEPSSCRUBBEDPACKAGENAMEMSG._serialized_end=27615 + _RUNNINGOPERATIONCAUGHTERROR._serialized_start=27617 + _RUNNINGOPERATIONCAUGHTERROR._serialized_end=27659 + _RUNNINGOPERATIONCAUGHTERRORMSG._serialized_start=27661 + _RUNNINGOPERATIONCAUGHTERRORMSG._serialized_end=27787 + _COMPILECOMPLETE._serialized_start=27789 + _COMPILECOMPLETE._serialized_end=27806 + _COMPILECOMPLETEMSG._serialized_start=27808 + _COMPILECOMPLETEMSG._serialized_end=27910 + _FRESHNESSCHECKCOMPLETE._serialized_start=27912 + _FRESHNESSCHECKCOMPLETE._serialized_end=27936 + _FRESHNESSCHECKCOMPLETEMSG._serialized_start=27938 + _FRESHNESSCHECKCOMPLETEMSG._serialized_end=28054 + _SEEDHEADER._serialized_start=28056 + _SEEDHEADER._serialized_end=28084 + _SEEDHEADERMSG._serialized_start=28086 + _SEEDHEADERMSG._serialized_end=28178 + _SQLRUNNEREXCEPTION._serialized_start=28180 + _SQLRUNNEREXCEPTION._serialized_end=28231 + _SQLRUNNEREXCEPTIONMSG._serialized_start=28233 + _SQLRUNNEREXCEPTIONMSG._serialized_end=28341 + _LOGTESTRESULT._serialized_start=28344 + _LOGTESTRESULT._serialized_end=28512 + _LOGTESTRESULTMSG._serialized_start=28514 + _LOGTESTRESULTMSG._serialized_end=28612 + _LOGSTARTLINE._serialized_start=28614 + _LOGSTARTLINE._serialized_end=28721 + _LOGSTARTLINEMSG._serialized_start=28723 + _LOGSTARTLINEMSG._serialized_end=28819 + _LOGMODELRESULT._serialized_start=28822 + _LOGMODELRESULT._serialized_end=28971 + _LOGMODELRESULTMSG._serialized_start=28973 + _LOGMODELRESULTMSG._serialized_end=29073 + _LOGSNAPSHOTRESULT._serialized_start=29076 + _LOGSNAPSHOTRESULT._serialized_end=29350 + _LOGSNAPSHOTRESULT_CFGENTRY._serialized_start=29308 + _LOGSNAPSHOTRESULT_CFGENTRY._serialized_end=29350 + _LOGSNAPSHOTRESULTMSG._serialized_start=29352 + _LOGSNAPSHOTRESULTMSG._serialized_end=29458 + _LOGSEEDRESULT._serialized_start=29461 + _LOGSEEDRESULT._serialized_end=29646 + _LOGSEEDRESULTMSG._serialized_start=29648 + _LOGSEEDRESULTMSG._serialized_end=29746 + _LOGFRESHNESSRESULT._serialized_start=29749 + _LOGFRESHNESSRESULT._serialized_end=29922 + _LOGFRESHNESSRESULTMSG._serialized_start=29924 + _LOGFRESHNESSRESULTMSG._serialized_end=30032 + _LOGCANCELLINE._serialized_start=30034 + _LOGCANCELLINE._serialized_end=30068 + _LOGCANCELLINEMSG._serialized_start=30070 + _LOGCANCELLINEMSG._serialized_end=30168 + _DEFAULTSELECTOR._serialized_start=30170 + _DEFAULTSELECTOR._serialized_end=30201 + _DEFAULTSELECTORMSG._serialized_start=30203 + _DEFAULTSELECTORMSG._serialized_end=30305 + _NODESTART._serialized_start=30307 + _NODESTART._serialized_end=30360 + _NODESTARTMSG._serialized_start=30362 + _NODESTARTMSG._serialized_end=30452 + _NODEFINISHED._serialized_start=30454 + _NODEFINISHED._serialized_end=30557 + _NODEFINISHEDMSG._serialized_start=30559 + _NODEFINISHEDMSG._serialized_end=30655 + _QUERYCANCELATIONUNSUPPORTED._serialized_start=30657 + _QUERYCANCELATIONUNSUPPORTED._serialized_end=30700 + _QUERYCANCELATIONUNSUPPORTEDMSG._serialized_start=30702 + _QUERYCANCELATIONUNSUPPORTEDMSG._serialized_end=30828 + _CONCURRENCYLINE._serialized_start=30830 + _CONCURRENCYLINE._serialized_end=30909 + _CONCURRENCYLINEMSG._serialized_start=30911 + _CONCURRENCYLINEMSG._serialized_end=31013 + _WRITINGINJECTEDSQLFORNODE._serialized_start=31015 + _WRITINGINJECTEDSQLFORNODE._serialized_end=31084 + _WRITINGINJECTEDSQLFORNODEMSG._serialized_start=31086 + _WRITINGINJECTEDSQLFORNODEMSG._serialized_end=31208 + _NODECOMPILING._serialized_start=31210 + _NODECOMPILING._serialized_end=31267 + _NODECOMPILINGMSG._serialized_start=31269 + _NODECOMPILINGMSG._serialized_end=31367 + _NODEEXECUTING._serialized_start=31369 + _NODEEXECUTING._serialized_end=31426 + _NODEEXECUTINGMSG._serialized_start=31428 + _NODEEXECUTINGMSG._serialized_end=31526 + _LOGHOOKSTARTLINE._serialized_start=31528 + _LOGHOOKSTARTLINE._serialized_end=31637 + _LOGHOOKSTARTLINEMSG._serialized_start=31639 + _LOGHOOKSTARTLINEMSG._serialized_end=31743 + _LOGHOOKENDLINE._serialized_start=31746 + _LOGHOOKENDLINE._serialized_end=31893 + _LOGHOOKENDLINEMSG._serialized_start=31895 + _LOGHOOKENDLINEMSG._serialized_end=31995 + _SKIPPINGDETAILS._serialized_start=31998 + _SKIPPINGDETAILS._serialized_end=32145 + _SKIPPINGDETAILSMSG._serialized_start=32147 + _SKIPPINGDETAILSMSG._serialized_end=32249 + _NOTHINGTODO._serialized_start=32251 + _NOTHINGTODO._serialized_end=32264 + _NOTHINGTODOMSG._serialized_start=32266 + _NOTHINGTODOMSG._serialized_end=32360 + _RUNNINGOPERATIONUNCAUGHTERROR._serialized_start=32362 + _RUNNINGOPERATIONUNCAUGHTERROR._serialized_end=32406 + _RUNNINGOPERATIONUNCAUGHTERRORMSG._serialized_start=32409 + _RUNNINGOPERATIONUNCAUGHTERRORMSG._serialized_end=32539 + _ENDRUNRESULT._serialized_start=32542 + _ENDRUNRESULT._serialized_end=32689 + _ENDRUNRESULTMSG._serialized_start=32691 + _ENDRUNRESULTMSG._serialized_end=32787 + _NONODESSELECTED._serialized_start=32789 + _NONODESSELECTED._serialized_end=32806 + _NONODESSELECTEDMSG._serialized_start=32808 + _NONODESSELECTEDMSG._serialized_end=32910 + _COMMANDCOMPLETED._serialized_start=32912 + _COMMANDCOMPLETED._serialized_end=33031 + _COMMANDCOMPLETEDMSG._serialized_start=33033 + _COMMANDCOMPLETEDMSG._serialized_end=33137 + _SHOWNODE._serialized_start=33139 + _SHOWNODE._serialized_end=33246 + _SHOWNODEMSG._serialized_start=33248 + _SHOWNODEMSG._serialized_end=33336 + _COMPILEDNODE._serialized_start=33338 + _COMPILEDNODE._serialized_end=33450 + _COMPILEDNODEMSG._serialized_start=33452 + _COMPILEDNODEMSG._serialized_end=33548 + _CATCHABLEEXCEPTIONONRUN._serialized_start=33550 + _CATCHABLEEXCEPTIONONRUN._serialized_end=33648 + _CATCHABLEEXCEPTIONONRUNMSG._serialized_start=33650 + _CATCHABLEEXCEPTIONONRUNMSG._serialized_end=33768 + _INTERNALERRORONRUN._serialized_start=33770 + _INTERNALERRORONRUN._serialized_end=33823 + _INTERNALERRORONRUNMSG._serialized_start=33825 + _INTERNALERRORONRUNMSG._serialized_end=33933 + _GENERICEXCEPTIONONRUN._serialized_start=33935 + _GENERICEXCEPTIONONRUN._serialized_end=34010 + _GENERICEXCEPTIONONRUNMSG._serialized_start=34012 + _GENERICEXCEPTIONONRUNMSG._serialized_end=34126 + _NODECONNECTIONRELEASEERROR._serialized_start=34128 + _NODECONNECTIONRELEASEERROR._serialized_end=34206 + _NODECONNECTIONRELEASEERRORMSG._serialized_start=34208 + _NODECONNECTIONRELEASEERRORMSG._serialized_end=34332 + _FOUNDSTATS._serialized_start=34334 + _FOUNDSTATS._serialized_end=34365 + _FOUNDSTATSMSG._serialized_start=34367 + _FOUNDSTATSMSG._serialized_end=34459 + _MAINKEYBOARDINTERRUPT._serialized_start=34461 + _MAINKEYBOARDINTERRUPT._serialized_end=34484 + _MAINKEYBOARDINTERRUPTMSG._serialized_start=34486 + _MAINKEYBOARDINTERRUPTMSG._serialized_end=34600 + _MAINENCOUNTEREDERROR._serialized_start=34602 + _MAINENCOUNTEREDERROR._serialized_end=34637 + _MAINENCOUNTEREDERRORMSG._serialized_start=34639 + _MAINENCOUNTEREDERRORMSG._serialized_end=34751 + _MAINSTACKTRACE._serialized_start=34753 + _MAINSTACKTRACE._serialized_end=34790 + _MAINSTACKTRACEMSG._serialized_start=34792 + _MAINSTACKTRACEMSG._serialized_end=34892 + _SYSTEMCOULDNOTWRITE._serialized_start=34894 + _SYSTEMCOULDNOTWRITE._serialized_end=34958 + _SYSTEMCOULDNOTWRITEMSG._serialized_start=34960 + _SYSTEMCOULDNOTWRITEMSG._serialized_end=35070 + _SYSTEMEXECUTINGCMD._serialized_start=35072 + _SYSTEMEXECUTINGCMD._serialized_end=35105 + _SYSTEMEXECUTINGCMDMSG._serialized_start=35107 + _SYSTEMEXECUTINGCMDMSG._serialized_end=35215 + _SYSTEMSTDOUT._serialized_start=35217 + _SYSTEMSTDOUT._serialized_end=35245 + _SYSTEMSTDOUTMSG._serialized_start=35247 + _SYSTEMSTDOUTMSG._serialized_end=35343 + _SYSTEMSTDERR._serialized_start=35345 + _SYSTEMSTDERR._serialized_end=35373 + _SYSTEMSTDERRMSG._serialized_start=35375 + _SYSTEMSTDERRMSG._serialized_end=35471 + _SYSTEMREPORTRETURNCODE._serialized_start=35473 + _SYSTEMREPORTRETURNCODE._serialized_end=35517 + _SYSTEMREPORTRETURNCODEMSG._serialized_start=35519 + _SYSTEMREPORTRETURNCODEMSG._serialized_end=35635 + _TIMINGINFOCOLLECTED._serialized_start=35637 + _TIMINGINFOCOLLECTED._serialized_end=35749 + _TIMINGINFOCOLLECTEDMSG._serialized_start=35751 + _TIMINGINFOCOLLECTEDMSG._serialized_end=35861 + _LOGDEBUGSTACKTRACE._serialized_start=35863 + _LOGDEBUGSTACKTRACE._serialized_end=35901 + _LOGDEBUGSTACKTRACEMSG._serialized_start=35903 + _LOGDEBUGSTACKTRACEMSG._serialized_end=36011 + _CHECKCLEANPATH._serialized_start=36013 + _CHECKCLEANPATH._serialized_end=36043 + _CHECKCLEANPATHMSG._serialized_start=36045 + _CHECKCLEANPATHMSG._serialized_end=36145 + _CONFIRMCLEANPATH._serialized_start=36147 + _CONFIRMCLEANPATH._serialized_end=36179 + _CONFIRMCLEANPATHMSG._serialized_start=36181 + _CONFIRMCLEANPATHMSG._serialized_end=36285 + _PROTECTEDCLEANPATH._serialized_start=36287 + _PROTECTEDCLEANPATH._serialized_end=36321 + _PROTECTEDCLEANPATHMSG._serialized_start=36323 + _PROTECTEDCLEANPATHMSG._serialized_end=36431 + _FINISHEDCLEANPATHS._serialized_start=36433 + _FINISHEDCLEANPATHS._serialized_end=36453 + _FINISHEDCLEANPATHSMSG._serialized_start=36455 + _FINISHEDCLEANPATHSMSG._serialized_end=36563 + _OPENCOMMAND._serialized_start=36565 + _OPENCOMMAND._serialized_end=36618 + _OPENCOMMANDMSG._serialized_start=36620 + _OPENCOMMANDMSG._serialized_end=36714 + _FORMATTING._serialized_start=36716 + _FORMATTING._serialized_end=36741 + _FORMATTINGMSG._serialized_start=36743 + _FORMATTINGMSG._serialized_end=36835 + _SERVINGDOCSPORT._serialized_start=36837 + _SERVINGDOCSPORT._serialized_end=36885 + _SERVINGDOCSPORTMSG._serialized_start=36887 + _SERVINGDOCSPORTMSG._serialized_end=36989 + _SERVINGDOCSACCESSINFO._serialized_start=36991 + _SERVINGDOCSACCESSINFO._serialized_end=37028 + _SERVINGDOCSACCESSINFOMSG._serialized_start=37030 + _SERVINGDOCSACCESSINFOMSG._serialized_end=37144 + _SERVINGDOCSEXITINFO._serialized_start=37146 + _SERVINGDOCSEXITINFO._serialized_end=37167 + _SERVINGDOCSEXITINFOMSG._serialized_start=37169 + _SERVINGDOCSEXITINFOMSG._serialized_end=37279 + _RUNRESULTWARNING._serialized_start=37281 + _RUNRESULTWARNING._serialized_end=37355 + _RUNRESULTWARNINGMSG._serialized_start=37357 + _RUNRESULTWARNINGMSG._serialized_end=37461 + _RUNRESULTFAILURE._serialized_start=37463 + _RUNRESULTFAILURE._serialized_end=37537 + _RUNRESULTFAILUREMSG._serialized_start=37539 + _RUNRESULTFAILUREMSG._serialized_end=37643 + _STATSLINE._serialized_start=37645 + _STATSLINE._serialized_end=37752 + _STATSLINE_STATSENTRY._serialized_start=37708 + _STATSLINE_STATSENTRY._serialized_end=37752 + _STATSLINEMSG._serialized_start=37754 + _STATSLINEMSG._serialized_end=37844 + _RUNRESULTERROR._serialized_start=37846 + _RUNRESULTERROR._serialized_end=37875 + _RUNRESULTERRORMSG._serialized_start=37877 + _RUNRESULTERRORMSG._serialized_end=37977 + _RUNRESULTERRORNOMESSAGE._serialized_start=37979 + _RUNRESULTERRORNOMESSAGE._serialized_end=38020 + _RUNRESULTERRORNOMESSAGEMSG._serialized_start=38022 + _RUNRESULTERRORNOMESSAGEMSG._serialized_end=38140 + _SQLCOMPILEDPATH._serialized_start=38142 + _SQLCOMPILEDPATH._serialized_end=38173 + _SQLCOMPILEDPATHMSG._serialized_start=38175 + _SQLCOMPILEDPATHMSG._serialized_end=38277 + _CHECKNODETESTFAILURE._serialized_start=38279 + _CHECKNODETESTFAILURE._serialized_end=38324 + _CHECKNODETESTFAILUREMSG._serialized_start=38326 + _CHECKNODETESTFAILUREMSG._serialized_end=38438 + _ENDOFRUNSUMMARY._serialized_start=38440 + _ENDOFRUNSUMMARY._serialized_end=38527 + _ENDOFRUNSUMMARYMSG._serialized_start=38529 + _ENDOFRUNSUMMARYMSG._serialized_end=38631 + _LOGSKIPBECAUSEERROR._serialized_start=38633 + _LOGSKIPBECAUSEERROR._serialized_end=38718 + _LOGSKIPBECAUSEERRORMSG._serialized_start=38720 + _LOGSKIPBECAUSEERRORMSG._serialized_end=38830 + _ENSUREGITINSTALLED._serialized_start=38832 + _ENSUREGITINSTALLED._serialized_end=38852 + _ENSUREGITINSTALLEDMSG._serialized_start=38854 + _ENSUREGITINSTALLEDMSG._serialized_end=38962 + _DEPSCREATINGLOCALSYMLINK._serialized_start=38964 + _DEPSCREATINGLOCALSYMLINK._serialized_end=38990 + _DEPSCREATINGLOCALSYMLINKMSG._serialized_start=38992 + _DEPSCREATINGLOCALSYMLINKMSG._serialized_end=39112 + _DEPSSYMLINKNOTAVAILABLE._serialized_start=39114 + _DEPSSYMLINKNOTAVAILABLE._serialized_end=39139 + _DEPSSYMLINKNOTAVAILABLEMSG._serialized_start=39141 + _DEPSSYMLINKNOTAVAILABLEMSG._serialized_end=39259 + _DISABLETRACKING._serialized_start=39261 + _DISABLETRACKING._serialized_end=39278 + _DISABLETRACKINGMSG._serialized_start=39280 + _DISABLETRACKINGMSG._serialized_end=39382 + _SENDINGEVENT._serialized_start=39384 + _SENDINGEVENT._serialized_end=39414 + _SENDINGEVENTMSG._serialized_start=39416 + _SENDINGEVENTMSG._serialized_end=39512 + _SENDEVENTFAILURE._serialized_start=39514 + _SENDEVENTFAILURE._serialized_end=39532 + _SENDEVENTFAILUREMSG._serialized_start=39534 + _SENDEVENTFAILUREMSG._serialized_end=39638 + _FLUSHEVENTS._serialized_start=39640 + _FLUSHEVENTS._serialized_end=39653 + _FLUSHEVENTSMSG._serialized_start=39655 + _FLUSHEVENTSMSG._serialized_end=39749 + _FLUSHEVENTSFAILURE._serialized_start=39751 + _FLUSHEVENTSFAILURE._serialized_end=39771 + _FLUSHEVENTSFAILUREMSG._serialized_start=39773 + _FLUSHEVENTSFAILUREMSG._serialized_end=39881 + _TRACKINGINITIALIZEFAILURE._serialized_start=39883 + _TRACKINGINITIALIZEFAILURE._serialized_end=39928 + _TRACKINGINITIALIZEFAILUREMSG._serialized_start=39930 + _TRACKINGINITIALIZEFAILUREMSG._serialized_end=40052 + _RUNRESULTWARNINGMESSAGE._serialized_start=40054 + _RUNRESULTWARNINGMESSAGE._serialized_end=40092 + _RUNRESULTWARNINGMESSAGEMSG._serialized_start=40094 + _RUNRESULTWARNINGMESSAGEMSG._serialized_end=40212 + _DEBUGCMDOUT._serialized_start=40214 + _DEBUGCMDOUT._serialized_end=40240 + _DEBUGCMDOUTMSG._serialized_start=40242 + _DEBUGCMDOUTMSG._serialized_end=40336 + _DEBUGCMDRESULT._serialized_start=40338 + _DEBUGCMDRESULT._serialized_end=40367 + _DEBUGCMDRESULTMSG._serialized_start=40369 + _DEBUGCMDRESULTMSG._serialized_end=40469 + _LISTCMDOUT._serialized_start=40471 + _LISTCMDOUT._serialized_end=40496 + _LISTCMDOUTMSG._serialized_start=40498 + _LISTCMDOUTMSG._serialized_end=40590 + _NOTE._serialized_start=40592 + _NOTE._serialized_end=40611 + _NOTEMSG._serialized_start=40613 + _NOTEMSG._serialized_end=40693 + _RESOURCEREPORT._serialized_start=40696 + _RESOURCEREPORT._serialized_end=40932 + _RESOURCEREPORTMSG._serialized_start=40934 + _RESOURCEREPORTMSG._serialized_end=41034 # @@protoc_insertion_point(module_scope) From 520432ae1891b2cc3a823d3572d92176e712779c Mon Sep 17 00:00:00 2001 From: Gerda Shank Date: Tue, 19 Dec 2023 10:23:44 -0500 Subject: [PATCH 08/22] Refine errors --- core/dbt/config/project.py | 7 ++++--- core/dbt/deprecations.py | 1 + tests/unit/test_events.py | 1 + 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/core/dbt/config/project.py b/core/dbt/config/project.py index aac36b3dcbe..2d226037580 100644 --- a/core/dbt/config/project.py +++ b/core/dbt/config/project.py @@ -798,12 +798,13 @@ def read_project_flags(project_dir: str, profiles_dir: str) -> ProjectFlags: profile_project_flags = coerce_dict_str(profile.get("config", {})) if project_flags and profile_project_flags: - raise ValidationError( - "Do not specify both 'config' in profiles.yml and 'flags' in dbt_project.yml" + raise DbtProjectError( + "Do not specify both 'config' in profiles.yml and 'flags' in dbt_project.yml. " + "Using 'config' in profiles.yml is deprecated." ) if profile_project_flags: - # Raise deprecation warning + deprecations.warn("project-flags-moved") project_flags = profile_project_flags if project_flags is not None: diff --git a/core/dbt/deprecations.py b/core/dbt/deprecations.py index 1fd4031445d..cbf7d5c1a8a 100644 --- a/core/dbt/deprecations.py +++ b/core/dbt/deprecations.py @@ -139,6 +139,7 @@ def warn(name, *args, **kwargs): ConfigLogPathDeprecation(), ConfigTargetPathDeprecation(), CollectFreshnessReturnSignature(), + ProjectFlagsMovedDeprecation(), ] deprecations: Dict[str, DBTDeprecation] = {d.name: d for d in deprecations_list} diff --git a/tests/unit/test_events.py b/tests/unit/test_events.py index 89dc1a15255..f2c1d45135a 100644 --- a/tests/unit/test_events.py +++ b/tests/unit/test_events.py @@ -145,6 +145,7 @@ def test_event_codes(self): types.ConfigLogPathDeprecation(deprecated_path=""), types.ConfigTargetPathDeprecation(deprecated_path=""), types.CollectFreshnessReturnSignature(), + types.ProjectFlagsMovedDeprecation(), # E - DB Adapter ====================== types.AdapterEventDebug(), types.AdapterEventInfo(), From aa427badd656c12d0ba97946394ea494aeaf4bfd Mon Sep 17 00:00:00 2001 From: Gerda Shank Date: Tue, 19 Dec 2023 11:24:51 -0500 Subject: [PATCH 09/22] Call deprecation.show for using 'config' in profiles.yml --- core/dbt/config/project.py | 2 ++ core/dbt/deprecations.py | 9 +++++++++ core/dbt/events/types.py | 3 ++- 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/core/dbt/config/project.py b/core/dbt/config/project.py index 2d226037580..8b62dc27ef7 100644 --- a/core/dbt/config/project.py +++ b/core/dbt/config/project.py @@ -804,6 +804,8 @@ def read_project_flags(project_dir: str, profiles_dir: str) -> ProjectFlags: ) if profile_project_flags: + # This can't use WARN_ERROR or WARN_ERROR_OPTIONS because they're in + # the config that we're loading. Uses special "warn" method. deprecations.warn("project-flags-moved") project_flags = profile_project_flags diff --git a/core/dbt/deprecations.py b/core/dbt/deprecations.py index cbf7d5c1a8a..d0d663d7888 100644 --- a/core/dbt/deprecations.py +++ b/core/dbt/deprecations.py @@ -100,6 +100,15 @@ class ProjectFlagsMovedDeprecation(DBTDeprecation): _name = "project-flags-moved" _event = "ProjectFlagsMovedDeprecation" + def show(self, *args, **kwargs) -> None: + if self.name not in active_deprecations: + event = self.event(**kwargs) + # We can't do warn_or_error because the ProjectFlags + # is where that is set up and we're just reading it. + dbt.events.functions.fire_event(event) + self.track_deprecation_warn() + active_deprecations.add(self.name) + def renamed_env_var(old_name: str, new_name: str): class EnvironmentVariableRenamed(DBTDeprecation): diff --git a/core/dbt/events/types.py b/core/dbt/events/types.py index d03d97731d0..a4962909022 100644 --- a/core/dbt/events/types.py +++ b/core/dbt/events/types.py @@ -429,7 +429,8 @@ def message(self) -> str: "User config should be moved from the 'config' key in profiles.yml to the 'flags' " "key in dbt_project.yml." ) - return line_wrap_message(warning_tag(f"Deprecated functionality\n\n{description}")) + # Can't use line_wrap_message here because flags.printer_width isn't available yet + return warning_tag(f"Deprecated functionality\n\n{description}") # ======================================================= From 56cd74da4a3142708da6b8412608b8eb29b4ab04 Mon Sep 17 00:00:00 2001 From: Gerda Shank Date: Tue, 19 Dec 2023 12:05:12 -0500 Subject: [PATCH 10/22] Fix handling multiple configs --- core/dbt/config/project.py | 5 ++++- core/dbt/tests/fixtures/project.py | 1 - 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/core/dbt/config/project.py b/core/dbt/config/project.py index 8b62dc27ef7..6c4008b4428 100644 --- a/core/dbt/config/project.py +++ b/core/dbt/config/project.py @@ -788,7 +788,7 @@ def read_project_flags(project_dir: str, profiles_dir: str) -> ProjectFlags: project_root = os.path.normpath(project_dir) project_dict = load_raw_project(project_root) if "flags" in project_dict: - project_flags == project_dict.pop("flags") + project_flags = project_dict.pop("flags") from dbt.config.profile import read_profile @@ -812,6 +812,9 @@ def read_project_flags(project_dir: str, profiles_dir: str) -> ProjectFlags: if project_flags is not None: ProjectFlags.validate(project_flags) return ProjectFlags.from_dict(project_flags) + except (DbtProjectError) as exc: + # We don't want to eat the DbtProjectError for UserConfig to ProjectFlags + raise exc except (DbtRuntimeError, ValidationError): pass return ProjectFlags() diff --git a/core/dbt/tests/fixtures/project.py b/core/dbt/tests/fixtures/project.py index dde5836f812..8ea01050367 100644 --- a/core/dbt/tests/fixtures/project.py +++ b/core/dbt/tests/fixtures/project.py @@ -142,7 +142,6 @@ def profiles_config_update(): @pytest.fixture(scope="class") def dbt_profile_data(unique_schema, dbt_profile_target, profiles_config_update): profile = { - "config": {"send_anonymous_usage_stats": False}, "test": { "outputs": { "default": {}, From 31c3b218baf972767556ac8c563b4cf8eb4a7d54 Mon Sep 17 00:00:00 2001 From: Gerda Shank Date: Tue, 19 Dec 2023 14:38:45 -0500 Subject: [PATCH 11/22] Fix test_config.py --- tests/unit/test_config.py | 177 +++++++++++++++----------------------- 1 file changed, 71 insertions(+), 106 deletions(-) diff --git a/tests/unit/test_config.py b/tests/unit/test_config.py index 3f136e24db0..0d75c091bc7 100644 --- a/tests/unit/test_config.py +++ b/tests/unit/test_config.py @@ -119,12 +119,17 @@ class BaseConfigTest(unittest.TestCase): """ def setUp(self): + # Write project + self.project_dir = normalize(tempfile.mkdtemp()) self.default_project_data = { "version": "0.0.1", "name": "my_test_project", "profile": "default", - "config-version": 2, } + self.write_project(self.default_project_data) + + # Write profile + self.profiles_dir = normalize(tempfile.mkdtemp()) self.default_profile_data = { "default": { "outputs": { @@ -176,6 +181,8 @@ def setUp(self): }, "empty_profile_data": {}, } + self.write_profile(self.default_profile_data) + self.args = Namespace( profiles_dir=self.profiles_dir, cli_vars={}, @@ -203,13 +210,6 @@ def assertRaisesOrReturns(self, exc): else: return self.assertRaises(exc) - -class BaseFileTest(BaseConfigTest): - def setUp(self): - self.project_dir = normalize(tempfile.mkdtemp()) - self.profiles_dir = normalize(tempfile.mkdtemp()) - super().setUp() - def tearDown(self): try: shutil.rmtree(self.project_dir) @@ -248,11 +248,6 @@ def write_empty_profile(self): class TestProfile(BaseConfigTest): - def setUp(self): - self.profiles_dir = "/invalid-path" - self.project_dir = "/invalid-project-path" - super().setUp() - def from_raw_profiles(self): renderer = empty_profile_renderer() return dbt.config.Profile.from_raw_profiles(self.default_profile_data, "default", renderer) @@ -271,24 +266,6 @@ def test_from_raw_profiles(self): self.assertEqual(profile.credentials.schema, "postgres-schema") self.assertEqual(profile.credentials.database, "postgres-db-name") - def test_config_override(self): - self.default_profile_data["config"] = { - "send_anonymous_usage_stats": False, - "use_colors": False, - } - profile = self.from_raw_profiles() - self.assertEqual(profile.profile_name, "default") - self.assertEqual(profile.target_name, "postgres") - - def test_partial_config_override(self): - self.default_profile_data["config"] = { - "send_anonymous_usage_stats": False, - "printer_width": 60, - } - profile = self.from_raw_profiles() - self.assertEqual(profile.profile_name, "default") - self.assertEqual(profile.target_name, "postgres") - def test_missing_type(self): del self.default_profile_data["default"]["outputs"]["postgres"]["type"] with self.assertRaises(dbt.exceptions.DbtProfileError) as exc: @@ -330,7 +307,7 @@ def test_extra_path(self): } ) with self.assertRaises(dbt.exceptions.DbtProjectError) as exc: - project_from_config_norender(self.default_project_data) + project_from_config_norender(self.default_project_data, project_root=self.project_dir) self.assertIn("source-paths and model-paths", str(exc.exception)) self.assertIn("cannot both be defined.", str(exc.exception)) @@ -396,11 +373,7 @@ def test_invalid_env_vars(self): self.assertIn("Could not convert value 'hello' into type 'number'", str(exc.exception)) -class TestProfileFile(BaseFileTest): - def setUp(self): - super().setUp() - self.write_profile(self.default_profile_data) - +class TestProfileFile(BaseConfigTest): def from_raw_profile_info(self, raw_profile=None, profile_name="default", **kwargs): if raw_profile is None: raw_profile = self.default_profile_data["default"] @@ -550,18 +523,19 @@ def test_profile_with_empty_profile_data(self): def project_from_config_norender( - cfg, packages=None, path="/invalid-root-path", verify_version=False + cfg, packages=None, project_root="/invalid-root-path", verify_version=False ): if packages is None: packages = {} partial = dbt.config.project.PartialProject.from_dicts( - path, + project_root, project_dict=cfg, packages_dict=packages, selectors_dict={}, verify_version=verify_version, ) - # no rendering + # no rendering ... Why? + partial.project_dict["project-root"] = project_root rendered = dbt.config.project.RenderComponents( project_dict=partial.project_dict, packages_dict=partial.packages_dict, @@ -573,14 +547,14 @@ def project_from_config_norender( def project_from_config_rendered( cfg, packages=None, - path="/invalid-root-path", + project_root="/invalid-root-path", verify_version=False, packages_specified_path=PACKAGES_FILE_NAME, ): if packages is None: packages = {} partial = dbt.config.project.PartialProject.from_dicts( - path, + project_root, project_dict=cfg, packages_dict=packages, selectors_dict={}, @@ -591,18 +565,14 @@ def project_from_config_rendered( class TestProject(BaseConfigTest): - def setUp(self): - self.profiles_dir = "/invalid-profiles-path" - self.project_dir = "/invalid-root-path" - super().setUp() - self.default_project_data["project-root"] = self.project_dir - def test_defaults(self): - project = project_from_config_norender(self.default_project_data) + project = project_from_config_norender( + self.default_project_data, project_root=self.project_dir + ) self.assertEqual(project.project_name, "my_test_project") self.assertEqual(project.version, "0.0.1") self.assertEqual(project.profile_name, "default") - self.assertEqual(project.project_root, "/invalid-root-path") + self.assertEqual(project.project_root, self.project_dir) self.assertEqual(project.model_paths, ["models"]) self.assertEqual(project.macro_paths, ["macros"]) self.assertEqual(project.seed_paths, ["seeds"]) @@ -628,30 +598,38 @@ def test_defaults(self): str(project) def test_eq(self): - project = project_from_config_norender(self.default_project_data) - other = project_from_config_norender(self.default_project_data) + project = project_from_config_norender( + self.default_project_data, project_root=self.project_dir + ) + other = project_from_config_norender( + self.default_project_data, project_root=self.project_dir + ) self.assertEqual(project, other) def test_neq(self): - project = project_from_config_norender(self.default_project_data) + project = project_from_config_norender( + self.default_project_data, project_root=self.project_dir + ) self.assertNotEqual(project, object()) def test_implicit_overrides(self): self.default_project_data.update( { "model-paths": ["other-models"], - "target-path": "other-target", } ) - project = project_from_config_norender(self.default_project_data) + project = project_from_config_norender( + self.default_project_data, project_root=self.project_dir + ) self.assertEqual( set(project.docs_paths), set(["other-models", "seeds", "snapshots", "analyses", "macros"]), ) - self.assertEqual(project.clean_targets, ["other-target"]) def test_hashed_name(self): - project = project_from_config_norender(self.default_project_data) + project = project_from_config_norender( + self.default_project_data, project_root=self.project_dir + ) self.assertEqual(project.hashed_name(), "754cd47eac1d6f50a5f7cd399ec43da4") def test_all_overrides(self): @@ -665,7 +643,6 @@ def test_all_overrides(self): "analysis-paths": ["other-analyses"], "docs-paths": ["docs"], "asset-paths": ["other-assets"], - "target-path": "other-target", "clean-targets": ["another-target"], "packages-install-path": "other-dbt_packages", "quoting": {"identifier": False}, @@ -714,11 +691,12 @@ def test_all_overrides(self): {"git": "git@example.com:dbt-labs/dbt-utils.git", "revision": "test-rev"}, ], } - project = project_from_config_norender(self.default_project_data, packages=packages) + project = project_from_config_norender( + self.default_project_data, project_root=self.project_dir, packages=packages + ) self.assertEqual(project.project_name, "my_test_project") self.assertEqual(project.version, "0.0.1") self.assertEqual(project.profile_name, "default") - self.assertEqual(project.project_root, "/invalid-root-path") self.assertEqual(project.model_paths, ["other-models"]) self.assertEqual(project.macro_paths, ["other-macros"]) self.assertEqual(project.seed_paths, ["other-seeds"]) @@ -726,7 +704,6 @@ def test_all_overrides(self): self.assertEqual(project.analysis_paths, ["other-analyses"]) self.assertEqual(project.docs_paths, ["docs"]) self.assertEqual(project.asset_paths, ["other-assets"]) - self.assertEqual(project.target_path, "other-target") self.assertEqual(project.clean_targets, ["another-target"]) self.assertEqual(project.packages_install_path, "other-dbt_packages") self.assertEqual(project.quoting, {"identifier": False}) @@ -805,11 +782,12 @@ def test_string_run_hooks(self): def test_invalid_project_name(self): self.default_project_data["name"] = "invalid-project-name" with self.assertRaises(dbt.exceptions.DbtProjectError) as exc: - project_from_config_norender(self.default_project_data) + project_from_config_norender(self.default_project_data, project_root=self.project_dir) self.assertIn("invalid-project-name", str(exc.exception)) def test_no_project(self): + os.remove(os.path.join(self.project_dir, "dbt_project.yml")) renderer = empty_project_renderer() with self.assertRaises(dbt.exceptions.DbtProjectError) as exc: dbt.config.Project.from_project_root(self.project_dir, renderer) @@ -819,12 +797,12 @@ def test_no_project(self): def test_invalid_version(self): self.default_project_data["require-dbt-version"] = "hello!" with self.assertRaises(dbt.exceptions.DbtProjectError): - project_from_config_norender(self.default_project_data) + project_from_config_norender(self.default_project_data, project_root=self.project_dir) def test_unsupported_version(self): self.default_project_data["require-dbt-version"] = ">99999.0.0" # allowed, because the RuntimeConfig checks, not the Project itself - project_from_config_norender(self.default_project_data) + project_from_config_norender(self.default_project_data, project_root=self.project_dir) def test_none_values(self): self.default_project_data.update( @@ -874,7 +852,9 @@ def test_query_comment_disabled(self): "query-comment": None, } ) - project = project_from_config_norender(self.default_project_data) + project = project_from_config_norender( + self.default_project_data, project_root=self.project_dir + ) self.assertEqual(project.query_comment.comment, "") self.assertEqual(project.query_comment.append, False) @@ -883,12 +863,16 @@ def test_query_comment_disabled(self): "query-comment": "", } ) - project = project_from_config_norender(self.default_project_data) + project = project_from_config_norender( + self.default_project_data, project_root=self.project_dir + ) self.assertEqual(project.query_comment.comment, "") self.assertEqual(project.query_comment.append, False) def test_default_query_comment(self): - project = project_from_config_norender(self.default_project_data) + project = project_from_config_norender( + self.default_project_data, project_root=self.project_dir + ) self.assertEqual(project.query_comment, QueryComment()) def test_default_query_comment_append(self): @@ -897,7 +881,9 @@ def test_default_query_comment_append(self): "query-comment": {"append": True}, } ) - project = project_from_config_norender(self.default_project_data) + project = project_from_config_norender( + self.default_project_data, project_root=self.project_dir + ) self.assertEqual(project.query_comment.comment, DEFAULT_QUERY_COMMENT) self.assertEqual(project.query_comment.append, True) @@ -907,7 +893,9 @@ def test_custom_query_comment_append(self): "query-comment": {"comment": "run by user test", "append": True}, } ) - project = project_from_config_norender(self.default_project_data) + project = project_from_config_norender( + self.default_project_data, project_root=self.project_dir + ) self.assertEqual(project.query_comment.comment, "run by user test") self.assertEqual(project.query_comment.append, True) @@ -929,17 +917,13 @@ def test_packages_from_dependencies(self): assert git_package.git == "{{ env_var('some_package') }}" -class TestProjectFile(BaseFileTest): - def setUp(self): - super().setUp() - self.write_project(self.default_project_data) - # and after the fact, add the project root - self.default_project_data["project-root"] = self.project_dir - +class TestProjectFile(BaseConfigTest): def test_from_project_root(self): renderer = empty_project_renderer() project = dbt.config.Project.from_project_root(self.project_dir, renderer) - from_config = project_from_config_norender(self.default_project_data) + from_config = project_from_config_norender( + self.default_project_data, project_root=self.project_dir + ) self.assertEqual(project, from_config) self.assertEqual(project.version, "0.0.1") self.assertEqual(project.project_name, "my_test_project") @@ -956,12 +940,7 @@ def run(self): pass -class TestConfiguredTask(BaseFileTest): - def setUp(self): - super().setUp() - self.write_project(self.default_project_data) - self.write_profile(self.default_profile_data) - +class TestConfiguredTask(BaseConfigTest): def tearDown(self): super().tearDown() # These tests will change the directory to the project path, @@ -980,15 +959,13 @@ def test_configured_task_dir_change_with_bad_path(self): InheritsFromConfiguredTask.from_args(self.args) -class TestVariableProjectFile(BaseFileTest): +class TestVariableProjectFile(BaseConfigTest): def setUp(self): super().setUp() self.default_project_data["version"] = "{{ var('cli_version') }}" self.default_project_data["name"] = "blah" self.default_project_data["profile"] = "{{ env_var('env_value_profile') }}" self.write_project(self.default_project_data) - # and after the fact, add the project root - self.default_project_data["project-root"] = self.project_dir def test_cli_and_env_vars(self): renderer = dbt.config.renderer.DbtProjectYamlRenderer(None, {"cli_version": "0.1.2"}) @@ -1005,15 +982,11 @@ def test_cli_and_env_vars(self): class TestRuntimeConfig(BaseConfigTest): - def setUp(self): - self.profiles_dir = "/invalid-profiles-path" - self.project_dir = "/invalid-root-path" - super().setUp() - self.default_project_data["project-root"] = self.project_dir - def get_project(self): return project_from_config_norender( - self.default_project_data, verify_version=self.args.version_check + self.default_project_data, + project_root=self.project_dir, + verify_version=self.args.version_check, ) def get_profile(self): @@ -1185,7 +1158,9 @@ def setUp(self): } def get_project(self): - return project_from_config_norender(self.default_project_data, verify_version=True) + return project_from_config_norender( + self.default_project_data, project_root=self.project_dir, verify_version=True + ) def get_profile(self): renderer = empty_profile_renderer() @@ -1217,14 +1192,7 @@ def test__warn_for_unused_resource_config_paths(self): assert expected_msg in msg -class TestRuntimeConfigFiles(BaseFileTest): - def setUp(self): - super().setUp() - self.write_profile(self.default_profile_data) - self.write_project(self.default_project_data) - # and after the fact, add the project root - self.default_project_data["project-root"] = self.project_dir - +class TestRuntimeConfigFiles(BaseConfigTest): def test_from_args(self): with temp_cd(self.project_dir): config = dbt.config.RuntimeConfig.from_args(self.args) @@ -1254,7 +1222,7 @@ def test_from_args(self): self.assertEqual(config.project_name, "my_test_project") -class TestVariableRuntimeConfigFiles(BaseFileTest): +class TestVariableRuntimeConfigFiles(BaseConfigTest): def setUp(self): super().setUp() self.default_project_data.update( @@ -1286,9 +1254,6 @@ def setUp(self): } ) self.write_project(self.default_project_data) - self.write_profile(self.default_profile_data) - # and after the fact, add the project root - self.default_project_data["project-root"] = self.project_dir def test_cli_and_env_vars(self): self.args.target = "cli-and-env-vars" From 163ec8dbf001fba0239e4d86541d8aa819035f7c Mon Sep 17 00:00:00 2001 From: Gerda Shank Date: Tue, 19 Dec 2023 14:54:59 -0500 Subject: [PATCH 12/22] Fix a few functional tests --- tests/functional/basic/test_mixed_case_db.py | 1 - tests/functional/configs/test_disabled_configs.py | 1 - tests/functional/metrics/test_metric_deferral.py | 1 - tests/functional/run_operations/test_run_operations.py | 1 - 4 files changed, 4 deletions(-) diff --git a/tests/functional/basic/test_mixed_case_db.py b/tests/functional/basic/test_mixed_case_db.py index 19b2077cede..13519cc4bb4 100644 --- a/tests/functional/basic/test_mixed_case_db.py +++ b/tests/functional/basic/test_mixed_case_db.py @@ -16,7 +16,6 @@ def models(): def dbt_profile_data(unique_schema): return { - "config": {"send_anonymous_usage_stats": False}, "test": { "outputs": { "default": { diff --git a/tests/functional/configs/test_disabled_configs.py b/tests/functional/configs/test_disabled_configs.py index ee56a39a867..0d7cff755d8 100644 --- a/tests/functional/configs/test_disabled_configs.py +++ b/tests/functional/configs/test_disabled_configs.py @@ -9,7 +9,6 @@ class TestDisabledConfigs(BaseConfigProject): @pytest.fixture(scope="class") def dbt_profile_data(self, unique_schema): return { - "config": {"send_anonymous_usage_stats": False}, "test": { "outputs": { "default": { diff --git a/tests/functional/metrics/test_metric_deferral.py b/tests/functional/metrics/test_metric_deferral.py index 620c8dba25f..8803bf249da 100644 --- a/tests/functional/metrics/test_metric_deferral.py +++ b/tests/functional/metrics/test_metric_deferral.py @@ -23,7 +23,6 @@ def setup(self, project): @pytest.fixture(scope="class") def dbt_profile_data(self, unique_schema): return { - "config": {"send_anonymous_usage_stats": False}, "test": { "outputs": { "default": { diff --git a/tests/functional/run_operations/test_run_operations.py b/tests/functional/run_operations/test_run_operations.py index aa6d908b8ce..c713c8d1939 100644 --- a/tests/functional/run_operations/test_run_operations.py +++ b/tests/functional/run_operations/test_run_operations.py @@ -28,7 +28,6 @@ def macros(self): @pytest.fixture(scope="class") def dbt_profile_data(self, unique_schema): return { - "config": {"send_anonymous_usage_stats": False}, "test": { "outputs": { "default": { From daddfdac54f721225f50b8ca6aed83d46acd86d3 Mon Sep 17 00:00:00 2001 From: Gerda Shank Date: Tue, 19 Dec 2023 17:30:45 -0500 Subject: [PATCH 13/22] Don't throw an error when instantiating flags for lack of dbt_project.yml --- core/dbt/config/project.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/core/dbt/config/project.py b/core/dbt/config/project.py index 6c4008b4428..f2b36fb82bc 100644 --- a/core/dbt/config/project.py +++ b/core/dbt/config/project.py @@ -785,10 +785,15 @@ def read_project_flags(project_dir: str, profiles_dir: str) -> ProjectFlags: try: project_flags: Dict[str, Any] = {} # Read project_flags from dbt_project.yml first + # Flags are instantiated before the project, so we don't + # want to throw an error for non-existence of dbt_project.yml here + # because it breaks things. project_root = os.path.normpath(project_dir) - project_dict = load_raw_project(project_root) - if "flags" in project_dict: - project_flags = project_dict.pop("flags") + project_yaml_filepath = os.path.join(project_root, "dbt_project.yml") + if path_exists(project_yaml_filepath): + project_dict = load_raw_project(project_root) + if "flags" in project_dict: + project_flags = project_dict.pop("flags") from dbt.config.profile import read_profile From 68dcf97604a3a26f5b0dc93d58d8bee91ace75c7 Mon Sep 17 00:00:00 2001 From: Gerda Shank Date: Tue, 19 Dec 2023 18:31:04 -0500 Subject: [PATCH 14/22] Fix a couple of more tests --- core/dbt/config/project.py | 1 - core/dbt/include/starter_project/dbt_project.yml | 1 - .../dependencies/test_local_dependency.py | 13 ++++--------- tests/functional/init/test_init.py | 16 +++------------- 4 files changed, 7 insertions(+), 24 deletions(-) diff --git a/core/dbt/config/project.py b/core/dbt/config/project.py index f2b36fb82bc..8a2cb6cb63c 100644 --- a/core/dbt/config/project.py +++ b/core/dbt/config/project.py @@ -715,7 +715,6 @@ def to_project_config(self, with_packages=False): "exposures": self.exposures, "vars": self.vars.to_dict(), "require-dbt-version": [v.to_version_string() for v in self.dbt_version], - "config-version": self.config_version, "restrict-access": self.restrict_access, "dbt-cloud": self.dbt_cloud, } diff --git a/core/dbt/include/starter_project/dbt_project.yml b/core/dbt/include/starter_project/dbt_project.yml index 630001eed2f..c7e1fcdb0ef 100644 --- a/core/dbt/include/starter_project/dbt_project.yml +++ b/core/dbt/include/starter_project/dbt_project.yml @@ -4,7 +4,6 @@ # name or the intended use of these models name: '{project_name}' version: '1.0.0' -config-version: 2 # This setting configures which "profile" dbt uses for this project. profile: '{profile_name}' diff --git a/tests/functional/dependencies/test_local_dependency.py b/tests/functional/dependencies/test_local_dependency.py index 5305659b95b..c537f0068a5 100644 --- a/tests/functional/dependencies/test_local_dependency.py +++ b/tests/functional/dependencies/test_local_dependency.py @@ -243,6 +243,10 @@ class TestSimpleDependencyNoVersionCheckConfig(BaseDependencyTest): @pytest.fixture(scope="class") def project_config_update(self): return { + "flags": { + "send_anonymous_usage_stats": False, + "version_check": False, + }, "models": { "schema": "dbt_test", }, @@ -251,15 +255,6 @@ def project_config_update(self): }, } - @pytest.fixture(scope="class") - def profiles_config_update(self): - return { - "config": { - "send_anonymous_usage_stats": False, - "version_check": False, - } - } - @pytest.fixture(scope="class") def macros(self): return {"macro.sql": macros__macro_override_schema_sql} diff --git a/tests/functional/init/test_init.py b/tests/functional/init/test_init.py index 9ac821d7c26..6aee523320c 100644 --- a/tests/functional/init/test_init.py +++ b/tests/functional/init/test_init.py @@ -70,9 +70,7 @@ def test_init_task_in_project_with_existing_profiles_yml( with open(os.path.join(project.profiles_dir, "profiles.yml"), "r") as f: assert ( f.read() - == """config: - send_anonymous_usage_stats: false -test: + == """test: outputs: dev: dbname: test_db @@ -391,9 +389,7 @@ def test_init_task_in_project_with_invalid_profile_template( with open(os.path.join(project.profiles_dir, "profiles.yml"), "r") as f: assert ( f.read() - == """config: - send_anonymous_usage_stats: false -test: + == """test: outputs: dev: dbname: test_db @@ -430,7 +426,6 @@ class TestInitOutsideOfProject(TestInitOutsideOfProjectBase): @pytest.fixture(scope="class") def dbt_profile_data(self, unique_schema): return { - "config": {"send_anonymous_usage_stats": False}, "test": { "outputs": { "default2": { @@ -513,9 +508,7 @@ def test_init_task_outside_of_project( with open(os.path.join(project.profiles_dir, "profiles.yml"), "r") as f: assert ( f.read() - == f"""config: - send_anonymous_usage_stats: false -{project_name}: + == f"""{project_name}: outputs: dev: dbname: test_db @@ -560,7 +553,6 @@ def test_init_task_outside_of_project( # name or the intended use of these models name: '{project_name}' version: '1.0.0' -config-version: 2 # This setting configures which "profile" dbt uses for this project. profile: '{project_name}' @@ -679,7 +671,6 @@ def test_init_provided_project_name_and_skip_profile_setup( # name or the intended use of these models name: '{project_name}' version: '1.0.0' -config-version: 2 # This setting configures which "profile" dbt uses for this project. profile: '{project_name}' @@ -766,7 +757,6 @@ def test_init_task_outside_of_project_with_specified_profile( # name or the intended use of these models name: '{project_name}' version: '1.0.0' -config-version: 2 # This setting configures which "profile" dbt uses for this project. profile: 'test' From 0d52794942b74da823ad39bebe6b078cbcc2a24f Mon Sep 17 00:00:00 2001 From: Gerda Shank Date: Tue, 19 Dec 2023 21:11:08 -0500 Subject: [PATCH 15/22] Fix a few more tests --- core/dbt/cli/flags.py | 7 ++++++- tests/functional/fail_fast/test_fail_fast_run.py | 4 ++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/core/dbt/cli/flags.py b/core/dbt/cli/flags.py index a90b54eae88..115c306d571 100644 --- a/core/dbt/cli/flags.py +++ b/core/dbt/cli/flags.py @@ -206,7 +206,12 @@ def _assign_params( project_dir = getattr(self, "PROJECT_DIR", str(default_project_dir())) profiles_dir = getattr(self, "PROFILES_DIR", None) if profiles_dir and project_dir: - project_flags = read_project_flags(project_dir, profiles_dir) + try: + project_flags = read_project_flags(project_dir, profiles_dir) + except Exception: + # This is probably a yaml load failure; the error will be reported + # when the project is loaded later. + project_flags = None else: project_flags = None diff --git a/tests/functional/fail_fast/test_fail_fast_run.py b/tests/functional/fail_fast/test_fail_fast_run.py index 9f05f418de5..457d620cd8d 100644 --- a/tests/functional/fail_fast/test_fail_fast_run.py +++ b/tests/functional/fail_fast/test_fail_fast_run.py @@ -44,9 +44,9 @@ def test_fail_fast_run( class TestFailFastFromConfig(FailFastBase): @pytest.fixture(scope="class") - def profiles_config_update(self): + def project_config_update(self): return { - "config": { + "flags": { "send_anonymous_usage_stats": False, "fail_fast": True, } From 4152ac7411a5d081158abd60cae45e3bdf557798 Mon Sep 17 00:00:00 2001 From: Gerda Shank Date: Wed, 20 Dec 2023 12:02:37 -0500 Subject: [PATCH 16/22] Various cleanup --- core/dbt/cli/flags.py | 7 +- core/dbt/config/project.py | 11 +- core/dbt/flags.py | 6 - tests/unit/test_cli_flags.py | 25 +++ tests/unit/test_flags.py | 340 ----------------------------------- 5 files changed, 34 insertions(+), 355 deletions(-) delete mode 100644 tests/unit/test_flags.py diff --git a/core/dbt/cli/flags.py b/core/dbt/cli/flags.py index 115c306d571..a90b54eae88 100644 --- a/core/dbt/cli/flags.py +++ b/core/dbt/cli/flags.py @@ -206,12 +206,7 @@ def _assign_params( project_dir = getattr(self, "PROJECT_DIR", str(default_project_dir())) profiles_dir = getattr(self, "PROFILES_DIR", None) if profiles_dir and project_dir: - try: - project_flags = read_project_flags(project_dir, profiles_dir) - except Exception: - # This is probably a yaml load failure; the error will be reported - # when the project is loaded later. - project_flags = None + project_flags = read_project_flags(project_dir, profiles_dir) else: project_flags = None diff --git a/core/dbt/config/project.py b/core/dbt/config/project.py index 8a2cb6cb63c..de4c6b56cf3 100644 --- a/core/dbt/config/project.py +++ b/core/dbt/config/project.py @@ -790,9 +790,14 @@ def read_project_flags(project_dir: str, profiles_dir: str) -> ProjectFlags: project_root = os.path.normpath(project_dir) project_yaml_filepath = os.path.join(project_root, "dbt_project.yml") if path_exists(project_yaml_filepath): - project_dict = load_raw_project(project_root) - if "flags" in project_dict: - project_flags = project_dict.pop("flags") + try: + project_dict = load_raw_project(project_root) + if "flags" in project_dict: + project_flags = project_dict.pop("flags") + except Exception: + # This is probably a yaml load error.The error will be reported + # later, when the project loads. + pass from dbt.config.profile import read_profile diff --git a/core/dbt/flags.py b/core/dbt/flags.py index ad0baa9cf58..bd93958bb3d 100644 --- a/core/dbt/flags.py +++ b/core/dbt/flags.py @@ -48,15 +48,9 @@ def set_from_args(args: Namespace, project_flags): # is being read in the Flags constructor, so we need to read it here and pass in # to make sure we use the correct project_flags profiles_dir = getattr(args, "PROFILES_DIR", None) or getattr(args, "profiles_dir", None) - if not profiles_dir: - print("*** No profiles_dir in set_from_args") project_dir = getattr(args, "PROJECT_DIR", None) or getattr(args, "project_dir", None) - if not project_dir: - print("*** No project_dir in set_from_args") - if profiles_dir and project_dir: from dbt.config.project import read_project_flags - project_flags = read_project_flags(project_dir, profiles_dir) # make a dummy context to get the flags, totally arbitrary diff --git a/tests/unit/test_cli_flags.py b/tests/unit/test_cli_flags.py index 64dbdb8ed20..7bd8651a1e3 100644 --- a/tests/unit/test_cli_flags.py +++ b/tests/unit/test_cli_flags.py @@ -65,6 +65,31 @@ def test_log_file_max_size_default(self, run_context): @pytest.mark.parametrize( "set_stats_param,do_not_track,expected_anonymous_usage_stats", [ + # set_stats_param = default, DNT = True, expected = False + ("default", "1", False), + ("default", "t", False), + ("default", "true", False), + ("default", "y", False), + ("default", "yes", False), + # set_stats_param = default, DNT = false, expected = True + ("default", "false", True), + ("default", "anything", True), + # set_stats_param = True, DNT = True, expected = False + (True, "1", False), + (True, "t", False), + (True, "true", False), + (True, "y", False), + (True, "yes", False), + # set_stats_param = True, DNT = false, expected = True + (True, "false", True), + (True, "anything", True), + (True, "2", True), + # set_stats_param = False, DNT = True, expected = False + (False, "1", False), + (False, "t", False), + (False, "true", False), + (False, "y", False), + (False, "yes", False), # set_stats_param = False, DNT = False, expected = False (False, "false", False), (False, "anything", False), diff --git a/tests/unit/test_flags.py b/tests/unit/test_flags.py deleted file mode 100644 index 5db2c13d96a..00000000000 --- a/tests/unit/test_flags.py +++ /dev/null @@ -1,340 +0,0 @@ -import os -from unittest import TestCase -from argparse import Namespace -import pytest - -from dbt import flags -from dbt.contracts.project import ProjectFlags -from dbt.graph.selector_spec import IndirectSelection -from dbt.helper_types import WarnErrorOptions - -# Skip due to interface for flag updated -pytestmark = pytest.mark.skip - - -class TestFlags(TestCase): - def setUp(self): - self.args = Namespace() - self.project_flags = ProjectFlags() - - def test__flags(self): - - # use_experimental_parser - self.project_flags.use_experimental_parser = True - flags.set_from_args(self.args, self.project_flags) - self.assertEqual(flags.USE_EXPERIMENTAL_PARSER, True) - os.environ["DBT_USE_EXPERIMENTAL_PARSER"] = "false" - flags.set_from_args(self.args, self.project_flags) - self.assertEqual(flags.USE_EXPERIMENTAL_PARSER, False) - setattr(self.args, "use_experimental_parser", True) - flags.set_from_args(self.args, self.project_flags) - self.assertEqual(flags.USE_EXPERIMENTAL_PARSER, True) - # cleanup - os.environ.pop("DBT_USE_EXPERIMENTAL_PARSER") - delattr(self.args, "use_experimental_parser") - flags.USE_EXPERIMENTAL_PARSER = False - self.project_flags.use_experimental_parser = None - - # static_parser - self.project_flags.static_parser = False - flags.set_from_args(self.args, self.project_flags) - self.assertEqual(flags.STATIC_PARSER, False) - os.environ["DBT_STATIC_PARSER"] = "true" - flags.set_from_args(self.args, self.project_flags) - self.assertEqual(flags.STATIC_PARSER, True) - setattr(self.args, "static_parser", False) - flags.set_from_args(self.args, self.project_flags) - self.assertEqual(flags.STATIC_PARSER, False) - # cleanup - os.environ.pop("DBT_STATIC_PARSER") - delattr(self.args, "static_parser") - flags.STATIC_PARSER = True - self.project_flags.static_parser = None - - # warn_error - self.project_flags.warn_error = False - flags.set_from_args(self.args, self.project_flags) - self.assertEqual(flags.WARN_ERROR, False) - os.environ["DBT_WARN_ERROR"] = "true" - flags.set_from_args(self.args, self.project_flags) - self.assertEqual(flags.WARN_ERROR, True) - setattr(self.args, "warn_error", False) - flags.set_from_args(self.args, self.project_flags) - self.assertEqual(flags.WARN_ERROR, False) - # cleanup - os.environ.pop("DBT_WARN_ERROR") - delattr(self.args, "warn_error") - flags.WARN_ERROR = False - self.project_flags.warn_error = None - - # warn_error_options - self.project_flags.warn_error_options = '{"include": "all"}' - flags.set_from_args(self.args, self.project_flags) - self.assertEqual(flags.WARN_ERROR_OPTIONS, WarnErrorOptions(include="all")) - os.environ["DBT_WARN_ERROR_OPTIONS"] = '{"include": []}' - flags.set_from_args(self.args, self.project_flags) - self.assertEqual(flags.WARN_ERROR_OPTIONS, WarnErrorOptions(include=[])) - setattr(self.args, "warn_error_options", '{"include": "all"}') - flags.set_from_args(self.args, self.project_flags) - self.assertEqual(flags.WARN_ERROR_OPTIONS, WarnErrorOptions(include="all")) - # cleanup - os.environ.pop("DBT_WARN_ERROR_OPTIONS") - delattr(self.args, "warn_error_options") - self.project_flags.warn_error_options = None - - # write_json - self.project_flags.write_json = True - flags.set_from_args(self.args, self.project_flags) - self.assertEqual(flags.WRITE_JSON, True) - os.environ["DBT_WRITE_JSON"] = "false" - flags.set_from_args(self.args, self.project_flags) - self.assertEqual(flags.WRITE_JSON, False) - setattr(self.args, "write_json", True) - flags.set_from_args(self.args, self.project_flags) - self.assertEqual(flags.WRITE_JSON, True) - # cleanup - os.environ.pop("DBT_WRITE_JSON") - delattr(self.args, "write_json") - - # partial_parse - self.project_flags.partial_parse = True - flags.set_from_args(self.args, self.project_flags) - self.assertEqual(flags.PARTIAL_PARSE, True) - os.environ["DBT_PARTIAL_PARSE"] = "false" - flags.set_from_args(self.args, self.project_flags) - self.assertEqual(flags.PARTIAL_PARSE, False) - setattr(self.args, "partial_parse", True) - flags.set_from_args(self.args, self.project_flags) - self.assertEqual(flags.PARTIAL_PARSE, True) - # cleanup - os.environ.pop("DBT_PARTIAL_PARSE") - delattr(self.args, "partial_parse") - self.project_flags.partial_parse = False - - # use_colors - self.project_flags.use_colors = True - flags.set_from_args(self.args, self.project_flags) - self.assertEqual(flags.USE_COLORS, True) - os.environ["DBT_USE_COLORS"] = "false" - flags.set_from_args(self.args, self.project_flags) - self.assertEqual(flags.USE_COLORS, False) - setattr(self.args, "use_colors", True) - flags.set_from_args(self.args, self.project_flags) - self.assertEqual(flags.USE_COLORS, True) - # cleanup - os.environ.pop("DBT_USE_COLORS") - delattr(self.args, "use_colors") - - # debug - self.project_flags.debug = True - flags.set_from_args(self.args, self.project_flags) - self.assertEqual(flags.DEBUG, True) - os.environ["DBT_DEBUG"] = "True" - flags.set_from_args(self.args, self.project_flags) - self.assertEqual(flags.DEBUG, True) - os.environ["DBT_DEBUG"] = "False" - setattr(self.args, "debug", True) - flags.set_from_args(self.args, self.project_flags) - self.assertEqual(flags.DEBUG, True) - # cleanup - os.environ.pop("DBT_DEBUG") - delattr(self.args, "debug") - self.project_flags.debug = None - - # log_format -- text, json, default - self.project_flags.log_format = "text" - flags.set_from_args(self.args, self.project_flags) - self.assertEqual(flags.LOG_FORMAT, "text") - os.environ["DBT_LOG_FORMAT"] = "json" - flags.set_from_args(self.args, self.project_flags) - self.assertEqual(flags.LOG_FORMAT, "json") - setattr(self.args, "log_format", "text") - flags.set_from_args(self.args, self.project_flags) - self.assertEqual(flags.LOG_FORMAT, "text") - # cleanup - os.environ.pop("DBT_LOG_FORMAT") - delattr(self.args, "log_format") - self.project_flags.log_format = None - - # version_check - self.project_flags.version_check = True - flags.set_from_args(self.args, self.project_flags) - self.assertEqual(flags.VERSION_CHECK, True) - os.environ["DBT_VERSION_CHECK"] = "false" - flags.set_from_args(self.args, self.project_flags) - self.assertEqual(flags.VERSION_CHECK, False) - setattr(self.args, "version_check", True) - flags.set_from_args(self.args, self.project_flags) - self.assertEqual(flags.VERSION_CHECK, True) - # cleanup - os.environ.pop("DBT_VERSION_CHECK") - delattr(self.args, "version_check") - - # fail_fast - self.project_flags.fail_fast = True - flags.set_from_args(self.args, self.project_flags) - self.assertEqual(flags.FAIL_FAST, True) - os.environ["DBT_FAIL_FAST"] = "false" - flags.set_from_args(self.args, self.project_flags) - self.assertEqual(flags.FAIL_FAST, False) - setattr(self.args, "fail_fast", True) - flags.set_from_args(self.args, self.project_flags) - self.assertEqual(flags.FAIL_FAST, True) - # cleanup - os.environ.pop("DBT_FAIL_FAST") - delattr(self.args, "fail_fast") - self.project_flags.fail_fast = False - - # send_anonymous_usage_stats - self.project_flags.send_anonymous_usage_stats = True - flags.set_from_args(self.args, self.project_flags) - self.assertEqual(flags.SEND_ANONYMOUS_USAGE_STATS, True) - os.environ["DBT_SEND_ANONYMOUS_USAGE_STATS"] = "false" - flags.set_from_args(self.args, self.project_flags) - self.assertEqual(flags.SEND_ANONYMOUS_USAGE_STATS, False) - setattr(self.args, "send_anonymous_usage_stats", True) - flags.set_from_args(self.args, self.project_flags) - self.assertEqual(flags.SEND_ANONYMOUS_USAGE_STATS, True) - os.environ["DO_NOT_TRACK"] = "1" - flags.set_from_args(self.args, self.project_flags) - self.assertEqual(flags.SEND_ANONYMOUS_USAGE_STATS, False) - # cleanup - os.environ.pop("DBT_SEND_ANONYMOUS_USAGE_STATS") - os.environ.pop("DO_NOT_TRACK") - delattr(self.args, "send_anonymous_usage_stats") - - # printer_width - self.project_flags.printer_width = 100 - flags.set_from_args(self.args, self.project_flags) - self.assertEqual(flags.PRINTER_WIDTH, 100) - os.environ["DBT_PRINTER_WIDTH"] = "80" - flags.set_from_args(self.args, self.project_flags) - self.assertEqual(flags.PRINTER_WIDTH, 80) - setattr(self.args, "printer_width", "120") - flags.set_from_args(self.args, self.project_flags) - self.assertEqual(flags.PRINTER_WIDTH, 120) - # cleanup - os.environ.pop("DBT_PRINTER_WIDTH") - delattr(self.args, "printer_width") - self.project_flags.printer_width = None - - # indirect_selection - self.project_flags.indirect_selection = "eager" - flags.set_from_args(self.args, self.project_flags) - self.assertEqual(flags.INDIRECT_SELECTION, IndirectSelection.Eager) - self.project_flags.indirect_selection = "cautious" - flags.set_from_args(self.args, self.project_flags) - self.assertEqual(flags.INDIRECT_SELECTION, IndirectSelection.Cautious) - self.project_flags.indirect_selection = "buildable" - flags.set_from_args(self.args, self.project_flags) - self.assertEqual(flags.INDIRECT_SELECTION, IndirectSelection.Buildable) - self.project_flags.indirect_selection = None - flags.set_from_args(self.args, self.project_flags) - self.assertEqual(flags.INDIRECT_SELECTION, IndirectSelection.Eager) - os.environ["DBT_INDIRECT_SELECTION"] = "cautious" - flags.set_from_args(self.args, self.project_flags) - self.assertEqual(flags.INDIRECT_SELECTION, IndirectSelection.Cautious) - setattr(self.args, "indirect_selection", "cautious") - flags.set_from_args(self.args, self.project_flags) - self.assertEqual(flags.INDIRECT_SELECTION, IndirectSelection.Cautious) - # cleanup - os.environ.pop("DBT_INDIRECT_SELECTION") - delattr(self.args, "indirect_selection") - self.project_flags.indirect_selection = None - - # quiet - self.project_flags.quiet = True - flags.set_from_args(self.args, self.project_flags) - self.assertEqual(flags.QUIET, True) - # cleanup - self.project_flags.quiet = None - - # no_print - self.project_flags.no_print = True - flags.set_from_args(self.args, self.project_flags) - self.assertEqual(flags.NO_PRINT, True) - # cleanup - self.project_flags.no_print = None - - # cache_selected_only - self.project_flags.cache_selected_only = True - flags.set_from_args(self.args, self.project_flags) - self.assertEqual(flags.CACHE_SELECTED_ONLY, True) - os.environ["DBT_CACHE_SELECTED_ONLY"] = "false" - flags.set_from_args(self.args, self.project_flags) - self.assertEqual(flags.CACHE_SELECTED_ONLY, False) - setattr(self.args, "cache_selected_only", True) - flags.set_from_args(self.args, self.project_flags) - self.assertEqual(flags.CACHE_SELECTED_ONLY, True) - # cleanup - os.environ.pop("DBT_CACHE_SELECTED_ONLY") - delattr(self.args, "cache_selected_only") - self.project_flags.cache_selected_only = False - - # target_path/log_path - flags.set_from_args(self.args, self.project_flags) - self.assertIsNone(flags.LOG_PATH) - os.environ["DBT_LOG_PATH"] = "a/b/c" - flags.set_from_args(self.args, self.project_flags) - self.assertEqual(flags.LOG_PATH, "a/b/c") - setattr(self.args, "log_path", "d/e/f") - flags.set_from_args(self.args, self.project_flags) - self.assertEqual(flags.LOG_PATH, "d/e/f") - # cleanup - os.environ.pop("DBT_LOG_PATH") - delattr(self.args, "log_path") - - def test__flags_are_mutually_exclusive(self): - # options from user config - self.project_flags.warn_error = False - self.project_flags.warn_error_options = '{"include":"all"}' - with pytest.raises(ValueError): - flags.set_from_args(self.args, self.project_flags) - # cleanup - self.project_flags.warn_error = None - self.project_flags.warn_error_options = None - - # options from args - setattr(self.args, "warn_error", False) - setattr(self.args, "warn_error_options", '{"include":"all"}') - with pytest.raises(ValueError): - flags.set_from_args(self.args, self.project_flags) - # cleanup - delattr(self.args, "warn_error") - delattr(self.args, "warn_error_options") - - # options from environment - os.environ["DBT_WARN_ERROR"] = "false" - os.environ["DBT_WARN_ERROR_OPTIONS"] = '{"include": []}' - with pytest.raises(ValueError): - flags.set_from_args(self.args, self.project_flags) - # cleanup - os.environ.pop("DBT_WARN_ERROR") - os.environ.pop("DBT_WARN_ERROR_OPTIONS") - - # options from user config + args - self.project_flags.warn_error = False - setattr(self.args, "warn_error_options", '{"include":"all"}') - with pytest.raises(ValueError): - flags.set_from_args(self.args, self.project_flags) - # cleanup - self.project_flags.warn_error = None - delattr(self.args, "warn_error_options") - - # options from user config + environ - self.project_flags.warn_error = False - os.environ["DBT_WARN_ERROR_OPTIONS"] = '{"include": []}' - with pytest.raises(ValueError): - flags.set_from_args(self.args, self.project_flags) - # cleanup - self.project_flags.warn_error = None - os.environ.pop("DBT_WARN_ERROR_OPTIONS") - - # options from args + environ - setattr(self.args, "warn_error", False) - os.environ["DBT_WARN_ERROR_OPTIONS"] = '{"include": []}' - with pytest.raises(ValueError): - flags.set_from_args(self.args, self.project_flags) - # cleanup - delattr(self.args, "warn_error") - os.environ.pop("DBT_WARN_ERROR_OPTIONS") From d52bcdc4b601341870acf8a9e1e94cf918cc9fa4 Mon Sep 17 00:00:00 2001 From: Gerda Shank Date: Wed, 20 Dec 2023 13:06:24 -0500 Subject: [PATCH 17/22] Add extra line for black --- core/dbt/flags.py | 1 + 1 file changed, 1 insertion(+) diff --git a/core/dbt/flags.py b/core/dbt/flags.py index bd93958bb3d..241189f556a 100644 --- a/core/dbt/flags.py +++ b/core/dbt/flags.py @@ -51,6 +51,7 @@ def set_from_args(args: Namespace, project_flags): project_dir = getattr(args, "PROJECT_DIR", None) or getattr(args, "project_dir", None) if profiles_dir and project_dir: from dbt.config.project import read_project_flags + project_flags = read_project_flags(project_dir, profiles_dir) # make a dummy context to get the flags, totally arbitrary From 45ed0da81bd100b7286263338f9fd32a2964dcad Mon Sep 17 00:00:00 2001 From: Gerda Shank Date: Wed, 20 Dec 2023 14:38:20 -0500 Subject: [PATCH 18/22] Add deprecation test --- .../deprecations/test_deprecations.py | 31 ++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/tests/functional/deprecations/test_deprecations.py b/tests/functional/deprecations/test_deprecations.py index 6c2678433b0..68430ff4b8b 100644 --- a/tests/functional/deprecations/test_deprecations.py +++ b/tests/functional/deprecations/test_deprecations.py @@ -2,7 +2,8 @@ from dbt import deprecations import dbt.exceptions -from dbt.tests.util import run_dbt +from dbt.tests.util import run_dbt, write_file +import yaml models__already_exists_sql = """ @@ -157,3 +158,31 @@ def test_exposure_name_fail(self, project): exc_str = " ".join(str(exc.value).split()) # flatten all whitespace expected_msg = "Starting in v1.3, the 'name' of an exposure should contain only letters, numbers, and underscores." assert expected_msg in exc_str + + +class TestPrjectFlagsMovedDeprecation: + @pytest.fixture(scope="class") + def profiles_config_update(self): + return { + "config": {"send_anonymous_usage_stats": False}, + } + + @pytest.fixture(scope="class") + def dbt_project_yml(self, project_root, project_config_update): + project_config = { + "name": "test", + "profile": "test", + } + write_file(yaml.safe_dump(project_config), project_root, "dbt_project.yml") + return project_config + + @pytest.fixture(scope="class") + def models(self): + return {"my_model.sql": "select 1 as fun"} + + def test_profile_config_deprecation(self, project): + deprecations.reset_deprecations() + assert deprecations.active_deprecations == set() + run_dbt(["parse"]) + expected = {"project-flags-moved"} + assert expected == deprecations.active_deprecations From 8430569a26254f5589b6442f2ed10ed2a84fe719 Mon Sep 17 00:00:00 2001 From: Gerda Shank Date: Wed, 20 Dec 2023 15:14:29 -0500 Subject: [PATCH 19/22] Test for flags in multiple places --- tests/unit/test_config.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/tests/unit/test_config.py b/tests/unit/test_config.py index 0d75c091bc7..e8728091c5d 100644 --- a/tests/unit/test_config.py +++ b/tests/unit/test_config.py @@ -1327,3 +1327,30 @@ def test_lookups(self): for node, key, expected_value in expected: value = vars_provider.vars_for(node, "postgres").get(key) assert value == expected_value + + +class TestMultipleProjectFlags(BaseConfigTest): + def setUp(self): + super().setUp() + + self.default_project_data.update( + { + "flags": { + "send_anonymous_usage_data": False, + } + } + ) + self.write_project(self.default_project_data) + + self.default_profile_data.update( + { + "config": { + "send_anonymous_usage_data": False, + } + } + ) + self.write_profile(self.default_profile_data) + + def test_setting_multiple_flags(self): + with pytest.raises(dbt.exceptions.DbtProjectError): + set_from_args(self.args, None) From 51564d073d23392103d641af14800ac0c301e44c Mon Sep 17 00:00:00 2001 From: Gerda Shank Date: Wed, 20 Dec 2023 15:33:46 -0500 Subject: [PATCH 20/22] Add test that all ProjectFlags except send_anonymous_usage_stats has a default of None --- tests/unit/test_cli_flags.py | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/tests/unit/test_cli_flags.py b/tests/unit/test_cli_flags.py index 7bd8651a1e3..da53c203239 100644 --- a/tests/unit/test_cli_flags.py +++ b/tests/unit/test_cli_flags.py @@ -411,3 +411,38 @@ def test_from_dict_0_value(self): args_dict = {"log_file_max_bytes": 0} flags = Flags.from_dict(Command.RUN, args_dict) assert flags.LOG_FILE_MAX_BYTES == 0 + + +def test_project_flag_defaults(): + flags = ProjectFlags() + # From # 9183: Let's add a unit test that ensures that: + # every attribute of ProjectFlags that has a corresponding click option + # in params.py should be set to None by default (except for anon user + # tracking). Going forward, flags can have non-None defaults if they + # do not have a corresponding CLI option/env var. These will be used + # to control backwards incompatible interface or behaviour changes. + + # List of all flags except send_anonymous_usage_stats + project_flags = [ + "cache_selected_only", + "debug", + "fail_fast", + "indirect_selection", + "log_format", + "log_format_file", + "log_level", + "log_level_file", + "partial_parse", + "populate_cache", + "printer_width", + "static_parser", + "use_colors", + "use_colors_file", + "use_experimental_parser", + "version_check", + "warn_error", + "warn_error_options", + "write_json", + ] + for flag in project_flags: + assert getattr(flags, flag) is None From fb41e5a70f16b8bc2a707b9e111b285f34a063d7 Mon Sep 17 00:00:00 2001 From: Gerda Shank Date: Wed, 3 Jan 2024 12:26:25 -0500 Subject: [PATCH 21/22] Use DBT_PROJECT_FILE_NAME --- core/dbt/config/project.py | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/core/dbt/config/project.py b/core/dbt/config/project.py index 900a2785e3e..38198affea3 100644 --- a/core/dbt/config/project.py +++ b/core/dbt/config/project.py @@ -20,6 +20,7 @@ DEPENDENCIES_FILE_NAME, PACKAGES_FILE_NAME, PACKAGE_LOCK_HASH_KEY, + DBT_PROJECT_FILE_NAME, ) from dbt.common.clients.system import path_exists, load_file_contents from dbt.clients.yaml_helper import load_yaml_text @@ -82,8 +83,8 @@ """ MISSING_DBT_PROJECT_ERROR = """\ -No dbt_project.yml found at expected path {path} -Verify that each entry within packages.yml (and their transitive dependencies) contains a file named dbt_project.yml +No {DBT_PROJECT_FILE_NAME} found at expected path {path} +Verify that each entry within packages.yml (and their transitive dependencies) contains a file named {DBT_PROJECT_FILE_NAME} """ @@ -198,16 +199,20 @@ def value_or(value: Optional[T], default: T) -> T: def load_raw_project(project_root: str) -> Dict[str, Any]: project_root = os.path.normpath(project_root) - project_yaml_filepath = os.path.join(project_root, "dbt_project.yml") + project_yaml_filepath = os.path.join(project_root, DBT_PROJECT_FILE_NAME) # get the project.yml contents if not path_exists(project_yaml_filepath): - raise DbtProjectError(MISSING_DBT_PROJECT_ERROR.format(path=project_yaml_filepath)) + raise DbtProjectError( + MISSING_DBT_PROJECT_ERROR.format( + path=project_yaml_filepath, DBT_PROJECT_FILE_NAME=DBT_PROJECT_FILE_NAME + ) + ) project_dict = _load_yaml(project_yaml_filepath) if not isinstance(project_dict, dict): - raise DbtProjectError("dbt_project.yml does not parse to a dictionary") + raise DbtProjectError(f"{DBT_PROJECT_FILE_NAME} does not parse to a dictionary") return project_dict @@ -328,14 +333,14 @@ def render(self, renderer: DbtProjectYamlRenderer) -> "Project": return self.create_project(rendered) except DbtProjectError as exc: if exc.path is None: - exc.path = os.path.join(self.project_root, "dbt_project.yml") + exc.path = os.path.join(self.project_root, DBT_PROJECT_FILE_NAME) raise def render_package_metadata(self, renderer: PackageRenderer) -> ProjectPackageMetadata: packages_data = renderer.render_data(self.packages_dict) packages_config = package_config_from_data(packages_data, self.packages_dict) if not self.project_name: - raise DbtProjectError("Package dbt_project.yml must have a name!") + raise DbtProjectError(f"Package defined in {DBT_PROJECT_FILE_NAME} must have a name!") return ProjectPackageMetadata(self.project_name, packages_config.packages) def check_config_path( @@ -346,7 +351,7 @@ def check_config_path( msg = ( "{deprecated_path} and {expected_path} cannot both be defined. The " "`{deprecated_path}` config has been deprecated in favor of `{expected_path}`. " - "Please update your `dbt_project.yml` configuration to reflect this " + f"Please update your `{DBT_PROJECT_FILE_NAME}` configuration to reflect this " "change." ) raise DbtProjectError( @@ -785,7 +790,7 @@ def read_project_flags(project_dir: str, profiles_dir: str) -> ProjectFlags: # want to throw an error for non-existence of dbt_project.yml here # because it breaks things. project_root = os.path.normpath(project_dir) - project_yaml_filepath = os.path.join(project_root, "dbt_project.yml") + project_yaml_filepath = os.path.join(project_root, DBT_PROJECT_FILE_NAME) if path_exists(project_yaml_filepath): try: project_dict = load_raw_project(project_root) @@ -805,7 +810,7 @@ def read_project_flags(project_dir: str, profiles_dir: str) -> ProjectFlags: if project_flags and profile_project_flags: raise DbtProjectError( - "Do not specify both 'config' in profiles.yml and 'flags' in dbt_project.yml. " + f"Do not specify both 'config' in profiles.yml and 'flags' in {DBT_PROJECT_FILE_NAME}. " "Using 'config' in profiles.yml is deprecated." ) From bf5e5a2a7aaff08c12c12e202d5727dc5b02544a Mon Sep 17 00:00:00 2001 From: Gerda Shank Date: Wed, 3 Jan 2024 14:18:14 -0500 Subject: [PATCH 22/22] Remove merge error in types.proto --- core/dbt/common/events/types.proto | 448 ----------------------------- 1 file changed, 448 deletions(-) diff --git a/core/dbt/common/events/types.proto b/core/dbt/common/events/types.proto index 9771bb7c5c3..d08a98f118c 100644 --- a/core/dbt/common/events/types.proto +++ b/core/dbt/common/events/types.proto @@ -280,454 +280,6 @@ message ProjectCreatedMsg { ProjectCreated data = 2; } -// E - DB Adapter - -// E001 -message AdapterEventDebug { - NodeInfo node_info = 1; - string name = 2; - string base_msg = 3; - google.protobuf.ListValue args = 4; -} - -message AdapterEventDebugMsg { - EventInfo info = 1; - AdapterEventDebug data = 2; -} - -// E002 -message AdapterEventInfo { - NodeInfo node_info = 1; - string name = 2; - string base_msg = 3; - google.protobuf.ListValue args = 4; -} - -message AdapterEventInfoMsg { - EventInfo info = 1; - AdapterEventInfo data = 2; -} - -// E003 -message AdapterEventWarning { - NodeInfo node_info = 1; - string name = 2; - string base_msg = 3; - google.protobuf.ListValue args = 4; -} - -message AdapterEventWarningMsg { - EventInfo info = 1; - AdapterEventWarning data = 2; -} - -// E004 -message AdapterEventError { - NodeInfo node_info = 1; - string name = 2; - string base_msg = 3; - google.protobuf.ListValue args = 4; - string exc_info = 5; -} - -message AdapterEventErrorMsg { - EventInfo info = 1; - AdapterEventError data = 2; -} - -// E005 -message NewConnection { - NodeInfo node_info = 1; - string conn_type = 2; - string conn_name = 3; -} - -message NewConnectionMsg { - EventInfo info = 1; - NewConnection data = 2; -} - -// E006 -message ConnectionReused { - string conn_name = 1; - string orig_conn_name = 2; -} - -message ConnectionReusedMsg { - EventInfo info = 1; - ConnectionReused data = 2; -} - -// E007 -message ConnectionLeftOpenInCleanup { - string conn_name = 1; -} - -message ConnectionLeftOpenInCleanupMsg { - EventInfo info = 1; - ConnectionLeftOpenInCleanup data = 2; -} - -// E008 -message ConnectionClosedInCleanup { - string conn_name = 1; -} - -message ConnectionClosedInCleanupMsg { - EventInfo info = 1; - ConnectionClosedInCleanup data = 2; -} - -// E009 -message RollbackFailed { - NodeInfo node_info = 1; - string conn_name = 2; - string exc_info = 3; -} - -message RollbackFailedMsg { - EventInfo info = 1; - RollbackFailed data = 2; -} - -// E010 -message ConnectionClosed { - NodeInfo node_info = 1; - string conn_name = 2; -} - -message ConnectionClosedMsg { - EventInfo info = 1; - ConnectionClosed data = 2; -} - -// E011 -message ConnectionLeftOpen { - NodeInfo node_info = 1; - string conn_name = 2; -} - -message ConnectionLeftOpenMsg { - EventInfo info = 1; - ConnectionLeftOpen data = 2; -} - -// E012 -message Rollback { - NodeInfo node_info = 1; - string conn_name = 2; -} - -message RollbackMsg { - EventInfo info = 1; - Rollback data = 2; -} - -// E013 -message CacheMiss { - string conn_name = 1; - string database = 2; - string schema = 3; -} - -message CacheMissMsg { - EventInfo info = 1; - CacheMiss data = 2; -} - -// E014 -message ListRelations { - string database = 1; - string schema = 2; - repeated ReferenceKeyMsg relations = 3; -} - -message ListRelationsMsg { - EventInfo info = 1; - ListRelations data = 2; -} - -// E015 -message ConnectionUsed { - NodeInfo node_info = 1; - string conn_type = 2; - string conn_name = 3; -} - -message ConnectionUsedMsg { - EventInfo info = 1; - ConnectionUsed data = 2; -} - -// E016 -message SQLQuery { - NodeInfo node_info = 1; - string conn_name = 2; - string sql = 3; -} - -message SQLQueryMsg { - EventInfo info = 1; - SQLQuery data = 2; -} - -// E017 -message SQLQueryStatus { - NodeInfo node_info = 1; - string status = 2; - float elapsed = 3; -} - -message SQLQueryStatusMsg { - EventInfo info = 1; - SQLQueryStatus data = 2; -} - -// E018 -message SQLCommit { - NodeInfo node_info = 1; - string conn_name = 2; -} - -message SQLCommitMsg { - EventInfo info = 1; - SQLCommit data = 2; -} - -// E019 -message ColTypeChange { - string orig_type = 1; - string new_type = 2; - ReferenceKeyMsg table = 3; -} - -message ColTypeChangeMsg { - EventInfo info = 1; - ColTypeChange data = 2; -} - -// E020 -message SchemaCreation { - ReferenceKeyMsg relation = 1; -} - -message SchemaCreationMsg { - EventInfo info = 1; - SchemaCreation data = 2; -} - -// E021 -message SchemaDrop { - ReferenceKeyMsg relation = 1; -} - -message SchemaDropMsg { - EventInfo info = 1; - SchemaDrop data = 2; -} - -// E022 -message CacheAction { - string action = 1; - ReferenceKeyMsg ref_key = 2; - ReferenceKeyMsg ref_key_2 = 3; - ReferenceKeyMsg ref_key_3 = 4; - repeated ReferenceKeyMsg ref_list = 5; -} - -message CacheActionMsg { - EventInfo info = 1; - CacheAction data = 2; -} - -// Skipping E023, E024, E025, E026, E027, E028, E029, E0230 - -// E031 -message CacheDumpGraph { - map dump = 1; - string before_after = 2; - string action = 3; -} - -message CacheDumpGraphMsg { - EventInfo info = 1; - CacheDumpGraph data = 2; -} - - -// Skipping E032, E033, E034 - - - -// E034 -message AdapterRegistered { - string adapter_name = 1; - string adapter_version = 2; -} - -message AdapterRegisteredMsg { - EventInfo info = 1; - AdapterRegistered data = 2; -} - -// E035 -message AdapterImportError { - string exc = 1; -} - -message AdapterImportErrorMsg { - EventInfo info = 1; - AdapterImportError data = 2; -} - -// E036 -message PluginLoadError { - string exc_info = 1; -} - -message PluginLoadErrorMsg { - EventInfo info = 1; - PluginLoadError data = 2; -} - -// E037 -message NewConnectionOpening { - NodeInfo node_info = 1; - string connection_state = 2; -} - -message NewConnectionOpeningMsg { - EventInfo info = 1; - NewConnectionOpening data = 2; -} - -// E038 -message CodeExecution { - string conn_name = 1; - string code_content = 2; -} - -message CodeExecutionMsg { - EventInfo info = 1; - CodeExecution data = 2; -} - -// E039 -message CodeExecutionStatus { - string status = 1; - float elapsed = 2; -} - -message CodeExecutionStatusMsg { - EventInfo info = 1; - CodeExecutionStatus data = 2; -} - -// E040 -message CatalogGenerationError { - string exc = 1; -} - -message CatalogGenerationErrorMsg { - EventInfo info = 1; - CatalogGenerationError data = 2; -} - -// E041 -message WriteCatalogFailure { - int32 num_exceptions = 1; -} - -message WriteCatalogFailureMsg { - EventInfo info = 1; - WriteCatalogFailure data = 2; -} - -// E042 -message CatalogWritten { - string path = 1; -} - -message CatalogWrittenMsg { - EventInfo info = 1; - CatalogWritten data = 2; -} - -// E043 -message CannotGenerateDocs { -} - -message CannotGenerateDocsMsg { - EventInfo info = 1; - CannotGenerateDocs data = 2; -} - -// E044 -message BuildingCatalog { -} - -message BuildingCatalogMsg { - EventInfo info = 1; - BuildingCatalog data = 2; -} - -// E045 -message DatabaseErrorRunningHook { - string hook_type = 1; -} - -message DatabaseErrorRunningHookMsg { - EventInfo info = 1; - DatabaseErrorRunningHook data = 2; -} - -// E046 -message HooksRunning { - int32 num_hooks = 1; - string hook_type = 2; -} - -message HooksRunningMsg { - EventInfo info = 1; - HooksRunning data = 2; -} - -// E047 -message FinishedRunningStats { - string stat_line = 1; - string execution = 2; - float execution_time = 3; -} - -message FinishedRunningStatsMsg { - EventInfo info = 1; - FinishedRunningStats data = 2; -} - -// E048 -message ConstraintNotEnforced { - string constraint = 1; - string adapter = 2; -} - -message ConstraintNotEnforcedMsg { - EventInfo info = 1; - ConstraintNotEnforced data = 2; -} - -// E049 -message ConstraintNotSupported { - string constraint = 1; - string adapter = 2; -} - -message ConstraintNotSupportedMsg { - EventInfo info = 1; - ConstraintNotSupported data = 2; -} - -======= ->>>>>>> main:core/dbt/common/events/types.proto // I - Project parsing // I001