From 34a9582a186f341ba934159fb5f9ccb1afdfe8e1 Mon Sep 17 00:00:00 2001 From: Colin Date: Sun, 9 Feb 2025 12:27:20 -0800 Subject: [PATCH] fix typing and formatting --- dbt-adapters/src/dbt/adapters/base/catalog.py | 7 ++++--- dbt-adapters/src/dbt/adapters/base/impl.py | 4 +++- dbt-adapters/src/dbt/adapters/clients/catalogs.py | 3 +++ .../src/dbt/adapters/exceptions/catalog_integration.py | 1 - dbt-adapters/tests/unit/clients/test_catalogs.py | 2 ++ 5 files changed, 12 insertions(+), 5 deletions(-) diff --git a/dbt-adapters/src/dbt/adapters/base/catalog.py b/dbt-adapters/src/dbt/adapters/base/catalog.py index 19370b2e9..5c545ab13 100644 --- a/dbt-adapters/src/dbt/adapters/base/catalog.py +++ b/dbt-adapters/src/dbt/adapters/base/catalog.py @@ -1,13 +1,14 @@ import abc from dataclasses import dataclass -from enum import Enum from typing import Optional, Dict from dbt.adapters.contracts.relation import RelationConfig from dbt.adapters.relation_configs.formats import TableFormat from dbt.adapters.protocol import CatalogIntegrationProtocol +from dbt_common.dataclass_schema import StrEnum -class CatalogIntegrationType(Enum): + +class CatalogIntegrationType(StrEnum): managed = "managed" iceberg_rest = "iceberg_rest" glue = "glue" @@ -30,7 +31,7 @@ class CatalogIntegration(abc.ABC, CatalogIntegrationProtocol): Implements the CatalogIntegrationProtocol as an abstract class should be subclassed by specific integrations in the adapters. - A catalog integration is a platform's way of interacting with an external catalog. + A catalog integration is a platform's way of interacting with an external catalog. """ catalog_name: str diff --git a/dbt-adapters/src/dbt/adapters/base/impl.py b/dbt-adapters/src/dbt/adapters/base/impl.py index 8dfb147d8..f1b3b47f4 100644 --- a/dbt-adapters/src/dbt/adapters/base/impl.py +++ b/dbt-adapters/src/dbt/adapters/base/impl.py @@ -318,7 +318,9 @@ def add_catalog_integrations( catalogs_client.add_catalog(integration, integration_config.catalog_name) @available - def get_catalog_integration(self, integration_name: str) -> CatalogIntegrationProtocol: + def get_catalog_integration( + self, integration_name: str + ) -> Optional[CatalogIntegrationProtocol]: return catalogs_client.get_catalog(integration_name) ### diff --git a/dbt-adapters/src/dbt/adapters/clients/catalogs.py b/dbt-adapters/src/dbt/adapters/clients/catalogs.py index 53da5e0a0..d67ae749a 100644 --- a/dbt-adapters/src/dbt/adapters/clients/catalogs.py +++ b/dbt-adapters/src/dbt/adapters/clients/catalogs.py @@ -3,6 +3,7 @@ from typing import Optional + class CatalogIntegrations: def __init__(self): self._integrations = {} @@ -21,11 +22,13 @@ def add_integration(self, integration: CatalogIntegrationProtocol, catalog_name: raise DbtCatalogIntegrationAlreadyExistsError(catalog_name) self._integrations[catalog_name] = integration + _CATALOG_CLIENT = CatalogIntegrations() def get_catalog(integration_name: str) -> Optional[CatalogIntegrationProtocol]: return _CATALOG_CLIENT.get(integration_name) + def add_catalog(integration: CatalogIntegrationProtocol, catalog_name: str): _CATALOG_CLIENT.add_integration(integration, catalog_name) diff --git a/dbt-adapters/src/dbt/adapters/exceptions/catalog_integration.py b/dbt-adapters/src/dbt/adapters/exceptions/catalog_integration.py index a55e497d5..4755dc111 100644 --- a/dbt-adapters/src/dbt/adapters/exceptions/catalog_integration.py +++ b/dbt-adapters/src/dbt/adapters/exceptions/catalog_integration.py @@ -1,4 +1,3 @@ - from dbt_common.exceptions import DbtRuntimeError diff --git a/dbt-adapters/tests/unit/clients/test_catalogs.py b/dbt-adapters/tests/unit/clients/test_catalogs.py index efd1ec129..94ecd3d2e 100644 --- a/dbt-adapters/tests/unit/clients/test_catalogs.py +++ b/dbt-adapters/tests/unit/clients/test_catalogs.py @@ -8,6 +8,7 @@ def test_adding_and_getting_catalog_integration(fake_catalog_integration): add_catalog(catalog, catalog_name="fake_catalog") assert get_catalog("fake_catalog").catalog_name == catalog.catalog_name + def test_adding_catalog_integration_that_already_exists(fake_catalog_integration): catalog = fake_catalog_integration catalog_name = "fake_catalog_2" @@ -15,5 +16,6 @@ def test_adding_catalog_integration_that_already_exists(fake_catalog_integration with pytest.raises(DbtCatalogIntegrationAlreadyExistsError): add_catalog(catalog, catalog_name=catalog_name) + def test_getting_catalog_integration_that_does_not_exist(): assert get_catalog("non_existent_catalog") is None