Skip to content

Attributes

Classes

Functions

spark_expectations.notifications.get_notifications_hook() -> pluggy.PluginManager cached

function provides pluggy hook manger to send email, slack and zoom notification Returns: PluginManager: pluggy Manager object

Source code in spark_expectations/notifications/__init__.py
@functools.lru_cache
def get_notifications_hook() -> pluggy.PluginManager:
    """
    function provides pluggy hook manger to send email, slack and zoom notification
    Returns:
        PluginManager: pluggy Manager object

    """
    pm = pluggy.PluginManager(SPARK_EXPECTATIONS_NOTIFICATION_PLUGIN)
    pm.add_hookspecs(SparkExpectationsNotification)
    pm.register(
        SparkExpectationsEmailPluginImpl(), "spark_expectations_email_notification"
    )
    pm.register(
        SparkExpectationsSlackPluginImpl(), "spark_expectations_slack_notification"
    )
    pm.register(
        SparkExpectationsTeamsPluginImpl(), "spark_expectations_teams_notification"
    )
    pm.register(
        SparkExpectationsZoomPluginImpl(),
        "spark_expectations_zoom_notification",  # Register Zoom plugin
    )
    for name, plugin_instance in pm.list_name_plugin():
        _log.info(
            "Loaded plugin with name: %s and class: %s",
            name,
            plugin_instance.__class__.__name__,
        )
    return pm