import configparserimport logging
from airflow.utils import AirflowExceptionfrom airflow.hooks.base_hook import BaseHook
import snowflake.connector
def _parse_snowflake_config(config_file_name, profile=None): Config = configparser.ConfigParser()
[snip]
class SnowflakeHook(BaseHook): def __init__( self, snowflake_conn_id='snowflake_default'): super(SnowflakeHook, self).__init__()
[snip]
def get_conn(self): snowflake_config = _parse_snowflake_config(self.snowflake_config_file, self.profile) connection = snowflake.connector.Connect(**snowflake_config)
from airflow.executors.base_executor import BaseExecutorfrom airflow.hooks.base_hook import BaseHookfrom airflow.models import BaseOperatorfrom airflow.plugins_manager import AirflowPlugin
from flask import Blueprintfrom flask.ext.admin import BaseView, exposefrom flask.ext.admin.base import MenuLink
from snowflake_hook import SnowflakeHook
class SnowflakeOperator(BaseOperator): pass
class SnowflakePlugin(AirflowPlugin): name = "snowflake_plugin" operators = [] flask_blueprints = [] hooks = [SnowflakeHook] executors = [] admin_views = [] menu_links = []