From 3bdbe88b45f3282922c1d68f7f469fa09a5f1998 Mon Sep 17 00:00:00 2001 From: Judah Rand <17158624+judahrand@users.noreply.github.com> Date: Tue, 15 Feb 2022 10:10:21 +0000 Subject: [PATCH] Don't require `snowflake` to always be installed Signed-off-by: Judah Rand <17158624+judahrand@users.noreply.github.com> --- sdk/python/feast/infra/utils/snowflake_utils.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/sdk/python/feast/infra/utils/snowflake_utils.py b/sdk/python/feast/infra/utils/snowflake_utils.py index f280cfa218b..0e704a385ce 100644 --- a/sdk/python/feast/infra/utils/snowflake_utils.py +++ b/sdk/python/feast/infra/utils/snowflake_utils.py @@ -7,9 +7,6 @@ from typing import Dict, Iterator, List, Optional, Tuple, cast import pandas as pd -import snowflake.connector -from snowflake.connector import ProgrammingError, SnowflakeConnection -from snowflake.connector.cursor import SnowflakeCursor from tenacity import ( retry, retry_if_exception_type, @@ -19,6 +16,16 @@ from feast.errors import SnowflakeIncompleteConfig, SnowflakeQueryUnknownError +try: + import snowflake.connector + from snowflake.connector import ProgrammingError, SnowflakeConnection + from snowflake.connector.cursor import SnowflakeCursor +except ImportError as e: + from feast.errors import FeastExtrasDependencyImportError + + raise FeastExtrasDependencyImportError("snowflake", str(e)) + + getLogger("snowflake.connector.cursor").disabled = True getLogger("snowflake.connector.connection").disabled = True getLogger("snowflake.connector.network").disabled = True