Skip to content

Commit

Permalink
add snowflake
Browse files Browse the repository at this point in the history
  • Loading branch information
IanRFerguson committed Mar 22, 2024
1 parent 8d6edc2 commit 4bdf7dc
Showing 1 changed file with 49 additions and 0 deletions.
49 changes: 49 additions & 0 deletions polar_bare/snowflake/snowflake.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
from contextlib import contextmanager
from typing import Optional

import snowflake.connector

from polar_bare.pbear.generic_db import PolarBareDB

##########


class PolarSnowflake(PolarBareDB):
"""
Establish and authenticate a connection to a Snowflake warehouse
"""

def __init__(
self,
username: Optional[str] = None,
password: Optional[str] = None,
account: Optional[str] = None,
session_parameters: dict = {},
):
self.__username = username
self.__password = password
self.account = account
self.session_parameters = session_parameters

@contextmanager
def connection(self):
"""
TODO - Fill this in
"""

connection = snowflake.connector.connect(
user=self.__username,
password=self.__password,
account=self.account,
session_parameters=self.session_parameters,
)

try:
yield connection
except snowflake.connector.Error:
connection.rollback()
raise
else:
connection.commit()
finally:
connection.close()

0 comments on commit 4bdf7dc

Please sign in to comment.