From 824526735141f107fe307ef75288da9b39e71e7f Mon Sep 17 00:00:00 2001 From: Miles Adkins Date: Wed, 2 Mar 2022 23:03:59 -0600 Subject: [PATCH 1/4] Allow all snowflake python connector connection methods to be available to feast Signed-off-by: Miles Adkins --- sdk/python/feast/infra/utils/snowflake_utils.py | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/sdk/python/feast/infra/utils/snowflake_utils.py b/sdk/python/feast/infra/utils/snowflake_utils.py index 0e704a385ce..85b30faeaa2 100644 --- a/sdk/python/feast/infra/utils/snowflake_utils.py +++ b/sdk/python/feast/infra/utils/snowflake_utils.py @@ -43,29 +43,24 @@ def get_snowflake_conn(config, autocommit=True) -> SnowflakeConnection: if config.type == "snowflake.offline": config_header = "connections.feast_offline_store" - config = dict(config) + config_dict = dict(config) # read config file config_reader = configparser.ConfigParser() - config_reader.read([config["config_path"]]) + config_reader.read([config_dict["config_path"]]) if config_reader.has_section(config_header): kwargs = dict(config_reader[config_header]) else: kwargs = {} - kwargs.update((k, v) for k, v in config.items() if v is not None) + kwargs.update((k, v) for k, v in config_dict.items() if v is not None) + [kwargs.update({k: '"'+v+'"'}) for k,v in kwargs.items() if k in ['role', 'warehouse', 'database', 'schema_']] try: conn = snowflake.connector.connect( - account=kwargs["account"], - user=kwargs["user"], - password=kwargs["password"], - role=f'''"{kwargs['role']}"''', - warehouse=f'''"{kwargs['warehouse']}"''', - database=f'''"{kwargs['database']}"''', - schema=f'''"{kwargs['schema_']}"''', application="feast", autocommit=autocommit, + **kwargs ) return conn From 7a9b0e656778bc4c2279d9a2c34105e11431b840 Mon Sep 17 00:00:00 2001 From: Miles Adkins Date: Thu, 3 Mar 2022 07:51:49 -0600 Subject: [PATCH 2/4] format/lint Signed-off-by: Miles Adkins --- sdk/python/feast/infra/utils/snowflake_utils.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/sdk/python/feast/infra/utils/snowflake_utils.py b/sdk/python/feast/infra/utils/snowflake_utils.py index 85b30faeaa2..58a99028d0a 100644 --- a/sdk/python/feast/infra/utils/snowflake_utils.py +++ b/sdk/python/feast/infra/utils/snowflake_utils.py @@ -54,13 +54,15 @@ def get_snowflake_conn(config, autocommit=True) -> SnowflakeConnection: kwargs = {} kwargs.update((k, v) for k, v in config_dict.items() if v is not None) - [kwargs.update({k: '"'+v+'"'}) for k,v in kwargs.items() if k in ['role', 'warehouse', 'database', 'schema_']] + [ + kwargs.update({k: '"' + v + '"'}) + for k, v in kwargs.items() + if k in ["role", "warehouse", "database", "schema_"] + ] try: conn = snowflake.connector.connect( - application="feast", - autocommit=autocommit, - **kwargs + application="feast", autocommit=autocommit, **kwargs ) return conn From e5cef2c02c5a7b70c755d5f5b6609151173eed2f Mon Sep 17 00:00:00 2001 From: Miles Adkins Date: Thu, 3 Mar 2022 20:29:09 -0600 Subject: [PATCH 3/4] feat: have feast using snowflake python connector for authentication Signed-off-by: Miles Adkins --- sdk/python/feast/infra/utils/snowflake_utils.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sdk/python/feast/infra/utils/snowflake_utils.py b/sdk/python/feast/infra/utils/snowflake_utils.py index 58a99028d0a..4f6e485e031 100644 --- a/sdk/python/feast/infra/utils/snowflake_utils.py +++ b/sdk/python/feast/infra/utils/snowflake_utils.py @@ -59,7 +59,8 @@ def get_snowflake_conn(config, autocommit=True) -> SnowflakeConnection: for k, v in kwargs.items() if k in ["role", "warehouse", "database", "schema_"] ] - + kwargs["schema"] = kwargs.pop("schema_") + print(kwargs) try: conn = snowflake.connector.connect( application="feast", autocommit=autocommit, **kwargs From 32018f0723fd4cebf5c092050a6284483a9eb108 Mon Sep 17 00:00:00 2001 From: Miles Adkins Date: Thu, 3 Mar 2022 21:00:20 -0600 Subject: [PATCH 4/4] fix random print Signed-off-by: Miles Adkins --- sdk/python/feast/infra/utils/snowflake_utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/python/feast/infra/utils/snowflake_utils.py b/sdk/python/feast/infra/utils/snowflake_utils.py index 4f6e485e031..065a4bad467 100644 --- a/sdk/python/feast/infra/utils/snowflake_utils.py +++ b/sdk/python/feast/infra/utils/snowflake_utils.py @@ -60,7 +60,7 @@ def get_snowflake_conn(config, autocommit=True) -> SnowflakeConnection: if k in ["role", "warehouse", "database", "schema_"] ] kwargs["schema"] = kwargs.pop("schema_") - print(kwargs) + try: conn = snowflake.connector.connect( application="feast", autocommit=autocommit, **kwargs