Skip to content

UserCredentials class

You can import the UserCredentials class from kitops.modelkit.user:

from kitops.modelkit.user import UserCredentials

A class to manage user credentials loaded from environment variables. Attributes: username (str): The username for the user. password (str): The password for the user. registry (Optional[str]): The registry information for the user. namespace (Optional[str]): The namespace information for the user. Methods: init(): Initializes the UserCredentials instance by loading environment variables. username: Gets or sets the username. password: Gets or sets the password. registry: Gets or sets the registry information. namespace: Gets or sets the namespace information.

Source code in kitops/modelkit/user.py
  4
  5
  6
  7
  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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
class UserCredentials:
    """
    A class to manage user credentials loaded from environment variables.
    Attributes:
        username (str): The username for the user.
        password (str): The password for the user.
        registry (Optional[str]): The registry information for the user.
        namespace (Optional[str]): The namespace information for the user.
    Methods:
        __init__():
            Initializes the UserCredentials instance by loading environment variables.
        username:
            Gets or sets the username.
        password:
            Gets or sets the password.
        registry:
            Gets or sets the registry information.
        namespace:
            Gets or sets the namespace information.
    """

    def __init__(
        self,
        username: Optional[str] = None,
        password: Optional[str] = None,
        registry: Optional[str] = None,
        namespace: Optional[str] = None
    ):
        """
        Initializes the UserCredentials instance with the values provided.
        If no values are provided, they are loaded from environment variables.
        Initializes the private attributes _username, _password, _registry, and _namespace.
        Raises:
            ValueError: If either username or password is missing from the provided arguments or environment variables.

            Examples:
            >>> user = UserCredentials()
            >>> user.username
            'user'
            >>> user.password
            'password'
            >>> user.registry
            'registry'
            >>> user.namespace
            'namespace'
        """
        try:
            vars = load_environment_variables()
            self.username = username or vars.get("username")
            self.password = password or vars.get("password")
            self.registry = registry or vars.get("registry")
            self.namespace = namespace or vars.get("namespace")
        except ValueError as e:
            if not username or not password:
                raise ValueError("Username and password must be provided either as arguments or in environment variables.") from e
            self.username = username
            self.password = password
            self.registry = registry
            self.namespace = namespace

    @property
    def username(self) -> Optional[str]:
        """
        Gets the username.

            Examples:
            >>> user = UserCredentials()
            >>> user.username
            'user' 
        """
        return self._username

    @username.setter
    def username(self, value: Optional[str]):
        """
        Sets the username.
        Args:
            value (str): The username to set.
            Raises:
                ValueError: If the username is not a string.

                Examples:
                >>> user = UserCredentials()
                >>> user.username = 'new_user'
                >>> user.username
                'new_user'
        """
        if value is not None and not isinstance(value, str):
            raise ValueError(f"Username must be a string or None. Received: {type(value).__name__}")
        self._username = value

    @property
    def password(self) -> Optional[str]:
        """
        Gets the password.

            Examples:
            >>> user = UserCredentials()
            >>> user.password = 'new_password'
            >>> user.password
            'new_password'
        """
        return self._password

    @password.setter
    def password(self, value: Optional[str]):
        """
        Sets the password.
        Args:
            value (str): The password to set.
            Raises:
                ValueError: If the password is not a string.

                Examples:
                >>> user = UserCredentials()
                >>> user.password = 'new_password'
                >>> user.password
                'new_password'
        """
        if value is not None and not isinstance(value, str):
            raise ValueError(f"Password must be a string or None. Received: {type(value).__name__}")
        self._password = value

    @property
    def registry(self) -> Optional[str]:
        """
        Gets the registry information.

            Examples:
            >>> user = UserCredentials()
            >>> user.registry = 'new_registry'
            >>> user.registry
            'new_registry'
        """
        return self._registry

    @registry.setter
    def registry(self, value: Optional[str]):
        """
        Sets the registry information.

        Args:
            value (str | None): The registry information to set.
            Raises:
                ValueError: If the registry information is not a string
                    or None.

                Examples:
                >>> user = UserCredentials()
                >>> user.registry = 'new_registry'
                >>> user.registry
                'new_registry'
        """
        if value is not None and not isinstance(value, str):
            raise ValueError(f"Registry must be a string or None. Received: {type(value).__name__}")
        self._registry = value

    @property
    def namespace(self) -> Optional[str]:
        """
        Gets the namespace information.

            Examples:
            >>> user = UserCredentials()
            >>> user.namespace = 'new_namespace'
            >>> user.namespace
            'new_namespace'
        """
        return self._namespace

    @namespace.setter
    def namespace(self, value: Optional[str]):
        """
        Sets the namespace information.

        Args:
            value (str | None): The namespace information to set.
            Raises:
                ValueError: If the namespace information is not a string.

                Examples:
                >>> user = UserCredentials()
                >>> user.namespace = 'new_namespace'
                >>> user.namespace
                'new_namespace'
        """
        if value is not None and not isinstance(value, str):
            raise ValueError(f"Namespace must be a string or None. Received: {type(value).__name__}")
        self._namespace = value

namespace: Optional[str] property writable

Gets the namespace information.

Examples:
>>> user = UserCredentials()
>>> user.namespace = 'new_namespace'
>>> user.namespace
'new_namespace'

password: Optional[str] property writable

Gets the password.

Examples:
>>> user = UserCredentials()
>>> user.password = 'new_password'
>>> user.password
'new_password'

registry: Optional[str] property writable

Gets the registry information.

Examples:
>>> user = UserCredentials()
>>> user.registry = 'new_registry'
>>> user.registry
'new_registry'

username: Optional[str] property writable

Gets the username.

Examples:
>>> user = UserCredentials()
>>> user.username
'user'

__init__(username=None, password=None, registry=None, namespace=None)

Initializes the UserCredentials instance with the values provided. If no values are provided, they are loaded from environment variables. Initializes the private attributes _username, _password, _registry, and _namespace. Raises: ValueError: If either username or password is missing from the provided arguments or environment variables.

Examples:
>>> user = UserCredentials()
>>> user.username
'user'
>>> user.password
'password'
>>> user.registry
'registry'
>>> user.namespace
'namespace'
Source code in kitops/modelkit/user.py
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
def __init__(
    self,
    username: Optional[str] = None,
    password: Optional[str] = None,
    registry: Optional[str] = None,
    namespace: Optional[str] = None
):
    """
    Initializes the UserCredentials instance with the values provided.
    If no values are provided, they are loaded from environment variables.
    Initializes the private attributes _username, _password, _registry, and _namespace.
    Raises:
        ValueError: If either username or password is missing from the provided arguments or environment variables.

        Examples:
        >>> user = UserCredentials()
        >>> user.username
        'user'
        >>> user.password
        'password'
        >>> user.registry
        'registry'
        >>> user.namespace
        'namespace'
    """
    try:
        vars = load_environment_variables()
        self.username = username or vars.get("username")
        self.password = password or vars.get("password")
        self.registry = registry or vars.get("registry")
        self.namespace = namespace or vars.get("namespace")
    except ValueError as e:
        if not username or not password:
            raise ValueError("Username and password must be provided either as arguments or in environment variables.") from e
        self.username = username
        self.password = password
        self.registry = registry
        self.namespace = namespace