Skip to content

Слоты Hive

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

.. versionadded:: 0.7.0

Source code in onetl/connection/db_connection/hive/slots.py
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
@support_hooks
class HiveSlots:
    """:ref:`Slots <slot-decorator>` that could be implemented by third-party plugins.

    .. versionadded:: 0.7.0
    """

    @slot
    @staticmethod
    def normalize_cluster_name(cluster: str) -> str | None:
        """
        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()
        """

    @slot
    @staticmethod
    def get_known_clusters() -> set[str] | None:
        """
        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"}
        """

    @slot
    @staticmethod
    def get_current_cluster() -> str | None:
        """
        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"
        """

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()
Source code in onetl/connection/db_connection/hive/slots.py
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
@slot
@staticmethod
def normalize_cluster_name(cluster: str) -> str | None:
    """
    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"}
Source code in onetl/connection/db_connection/hive/slots.py
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
@slot
@staticmethod
def get_known_clusters() -> set[str] | None:
    """
    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"
Source code in onetl/connection/db_connection/hive/slots.py
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
@slot
@staticmethod
def get_current_cluster() -> str | None:
    """
    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"
    """