Skip to content

Hive Slots

:ref:Slots <slot-decorator> that could be implemented by third-party plugins.

.. versionadded:: 0.7.0

normalize_cluster_name(cluster) staticmethod

Normalize cluster name passed into Hive constructor. |support_hooks|

If hooks didn't return anything, cluster name is left intact.

.. versionadded:: 0.7.0

Parameters:

  • cluster (:obj:str) –

    Cluster name (raw)

Returns:

  • str | None

    Normalized cluster name.

    If hook cannot be applied to a specific cluster, it should return None.

Examples:

.. code:: python

from onetl.connection import Hive
from onetl.hooks import hook


@Hive.Slots.normalize_cluster_name.bind
@hook
def normalize_cluster_name(cluster: str) -> str:
    return cluster.lower()

get_known_clusters() staticmethod

Return collection of known clusters. |support_hooks|

Cluster passed into Hive constructor should be present in this list. If hooks didn't return anything, no validation will be performed.

.. versionadded:: 0.7.0

Returns:

  • set[str] | None

    Collection of cluster names (normalized).

    If hook cannot be applied, it should return None.

Examples:

.. code:: python

from onetl.connection import Hive
from onetl.hooks import hook


@Hive.Slots.get_known_clusters.bind
@hook
def get_known_clusters() -> str[str]:
    return {"rnd-dwh", "rnd-prod"}

get_current_cluster() staticmethod

Get current cluster name. |support_hooks|

Used in :obj:~check method to verify that connection is created only from the same cluster. If hooks didn't return anything, no validation will be performed.

.. versionadded:: 0.7.0

Returns:

  • str | None

    Current cluster name (normalized).

    If hook cannot be applied, it should return None.

Examples:

.. code:: python

from onetl.connection import Hive
from onetl.hooks import hook


@Hive.Slots.get_current_cluster.bind
@hook
def get_current_cluster() -> str:
    # some magic here
    return "rnd-dwh"