Skip to content

Hive Slots

Slots that could be implemented by third-party plugins.

Added in 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.

Added in 0.7.0

Parameters:

  • cluster (str) –

    Cluster name (raw)

Returns:

  • str | None

    Normalized cluster name.

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

Examples:

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.

Added in 0.7.0

Returns:

  • set[str] | None

    Collection of cluster names (normalized).

    If hook cannot be applied, it should return None.

Examples:

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 [check][] method to verify that connection is created only from the same cluster. If hooks didn't return anything, no validation will be performed.

Added in 0.7.0

Returns:

  • str | None

    Current cluster name (normalized).

    If hook cannot be applied, it should return None.

Examples:

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"