Zum Inhalt springen

Referenz fĂŒr hub_sdk/modules/users.py

Hinweis

Diese Datei ist verfĂŒgbar unter https://github.com/ultralytics/hub-sdk/blob/main/hub_sdk/modules/users .py. Wenn du ein Problem entdeckst, hilf bitte mit, es zu beheben, indem du einen Pull Request đŸ› ïž einreichst. Vielen Dank 🙏!



hub_sdk.modules.users.Users

Basen: CRUDClient

Eine Klasse, die einen Client fĂŒr die Interaktion mit Benutzern durch CRUD-Operationen darstellt. Diese Klasse erweitert die CRUDClient Klasse und bietet spezielle Methoden fĂŒr die Arbeit mit Benutzern.

Attribute:

Name Typ Beschreibung
id (str, None)

Der eindeutige Bezeichner des Nutzers, falls vorhanden.

data dict

Ein Wörterbuch zum Speichern von Benutzerdaten.

Hinweis

Das Attribut "id" wird bei der Initialisierung gesetzt und kann zur eindeutigen Identifizierung eines Nutzers verwendet werden. Das Attribut "data" wird verwendet, um die von der API abgerufenen Nutzerdaten zu speichern.

Quellcode in hub_sdk/modules/users.py
class Users(CRUDClient):
    """
    A class representing a client for interacting with Users through CRUD operations. This class extends the CRUDClient
    class and provides specific methods for working with Users.

    Attributes:
        id (str, None): The unique identifier of the user, if available.
        data (dict): A dictionary to store user data.

    Note:
        The 'id' attribute is set during initialization and can be used to uniquely identify a user.
        The 'data' attribute is used to store user data fetched from the API.
    """

    def __init__(self, user_id: Optional[str] = None, headers: Optional[Dict[str, Any]] = None) -> None:
        """
        Initialize a Users object for interacting with user data via CRUD operations.

        Args:
            user_id (str, optional): The unique identifier of the user.
            headers (dict, optional): A dictionary of HTTP headers to be included in API requests.
        """
        super().__init__("users", "user", headers)
        self.id = user_id
        self.data = {}
        if user_id:
            self.get_data()

    def get_data(self) -> None:
        """
        Retrieves data for the current user instance.

        If a valid user ID has been set, it sends a request to fetch the user data and stores it in the instance.
        If no user ID has been set, it logs an error message.

        Returns:
            (None): The method does not return a value.
        """
        if not self.id:
            self.logger.error("No user id has been set. Update the user id or create a user.")
            return

        try:
            response = super().read(self.id)

            if response is None:
                self.logger.error(f"Received no response from the server for user ID: {self.id}")
                return

            # Check if the response has a .json() method (it should if it's a response object)
            if not hasattr(response, "json"):
                self.logger.error(f"Invalid response object received for user ID: {self.id}")
                return

            resp_data = response.json()
            if resp_data is None:
                self.logger.error(f"No data received in the response for user ID: {self.id}")
                return

            data = resp_data.get("data", {})
            self.data = self._reconstruct_data(data)
            self.logger.debug(f"User data retrieved for ID: {self.id}")

        except Exception as e:
            self.logger.error(f"An error occurred while retrieving data for user ID: {self.id}, {str(e)}")

    def create_user(self, user_data: dict) -> None:
        """
        Creates a new user with the provided data and sets the user ID for the current instance.

        Args:
            user_data (dict): A dictionary containing the data for creating the user.

        Returns:
            (None): The method does not return a value.
        """
        resp = super().create(user_data).json()
        self.id = resp.get("data", {}).get("id")
        self.get_data()

    def delete(self, hard: bool = False) -> Optional[Response]:
        """
        Delete the user resource represented by this instance.

        Args:
            hard (bool, optional): If True, perform a hard delete.

        Note:
            The 'hard' parameter determines whether to perform a soft delete (default) or a hard delete.
            In a soft delete, the model might be marked as deleted but retained in the system.
            In a hard delete, the model is permanently removed from the system.

        Returns:
            (Optional[Response]): Response object from the delete request, or None if delete fails
        """
        return super().delete(self.id, hard)

    def update(self, data: dict) -> Optional[Response]:
        """
        Update the user resource represented by this instance.

        Args:
            data (dict): The updated data for the user resource.

        Returns:
            (Optional[Response]): Response object from the update request, or None if update fails
        """
        return super().update(self.id, data)

__init__(user_id=None, headers=None)

Initialisiere ein Users-Objekt fĂŒr die Interaktion mit Benutzerdaten ĂŒber CRUD-Operationen.

Parameter:

Name Typ Beschreibung Standard
user_id str

Der eindeutige Bezeichner des Nutzers.

None
headers dict

Ein Wörterbuch mit HTTP-Headern, die in API-Anfragen enthalten sein mĂŒssen.

None
Quellcode in hub_sdk/modules/users.py
def __init__(self, user_id: Optional[str] = None, headers: Optional[Dict[str, Any]] = None) -> None:
    """
    Initialize a Users object for interacting with user data via CRUD operations.

    Args:
        user_id (str, optional): The unique identifier of the user.
        headers (dict, optional): A dictionary of HTTP headers to be included in API requests.
    """
    super().__init__("users", "user", headers)
    self.id = user_id
    self.data = {}
    if user_id:
        self.get_data()

create_user(user_data)

Legt einen neuen Benutzer mit den angegebenen Daten an und setzt die Benutzer-ID fĂŒr die aktuelle Instanz.

Parameter:

Name Typ Beschreibung Standard
user_data dict

Ein Wörterbuch, das die Daten fĂŒr die Erstellung des Benutzers enthĂ€lt.

erforderlich

Retouren:

Typ Beschreibung
None

Die Methode gibt keinen Wert zurĂŒck.

Quellcode in hub_sdk/modules/users.py
def create_user(self, user_data: dict) -> None:
    """
    Creates a new user with the provided data and sets the user ID for the current instance.

    Args:
        user_data (dict): A dictionary containing the data for creating the user.

    Returns:
        (None): The method does not return a value.
    """
    resp = super().create(user_data).json()
    self.id = resp.get("data", {}).get("id")
    self.get_data()

delete(hard=False)

Löscht die durch diese Instanz reprÀsentierte Benutzerressource.

Parameter:

Name Typ Beschreibung Standard
hard bool

Wenn True, fĂŒhre eine harte Löschung durch.

False
Hinweis

Der Parameter "hart" legt fest, ob ein weiches Löschen (Standard) oder ein hartes Löschen durchgefĂŒhrt werden soll. Bei einer weichen Löschung kann das Modell als gelöscht markiert werden, bleibt aber im System erhalten. Bei einer harten Löschung wird das Modell dauerhaft aus dem System entfernt.

Retouren:

Typ Beschreibung
Optional[Response]

Antwortobjekt der Löschanfrage oder Keine, wenn das Löschen fehlschlÀgt

Quellcode in hub_sdk/modules/users.py
def delete(self, hard: bool = False) -> Optional[Response]:
    """
    Delete the user resource represented by this instance.

    Args:
        hard (bool, optional): If True, perform a hard delete.

    Note:
        The 'hard' parameter determines whether to perform a soft delete (default) or a hard delete.
        In a soft delete, the model might be marked as deleted but retained in the system.
        In a hard delete, the model is permanently removed from the system.

    Returns:
        (Optional[Response]): Response object from the delete request, or None if delete fails
    """
    return super().delete(self.id, hard)

get_data()

Ruft die Daten fĂŒr die aktuelle Benutzerinstanz ab.

Wenn eine gĂŒltige Benutzerkennung festgelegt wurde, sendet es eine Anfrage, um die Benutzerdaten zu holen und speichert sie in der Instanz. Wenn keine Benutzer-ID festgelegt wurde, wird eine Fehlermeldung ausgegeben.

Retouren:

Typ Beschreibung
None

Die Methode gibt keinen Wert zurĂŒck.

Quellcode in hub_sdk/modules/users.py
def get_data(self) -> None:
    """
    Retrieves data for the current user instance.

    If a valid user ID has been set, it sends a request to fetch the user data and stores it in the instance.
    If no user ID has been set, it logs an error message.

    Returns:
        (None): The method does not return a value.
    """
    if not self.id:
        self.logger.error("No user id has been set. Update the user id or create a user.")
        return

    try:
        response = super().read(self.id)

        if response is None:
            self.logger.error(f"Received no response from the server for user ID: {self.id}")
            return

        # Check if the response has a .json() method (it should if it's a response object)
        if not hasattr(response, "json"):
            self.logger.error(f"Invalid response object received for user ID: {self.id}")
            return

        resp_data = response.json()
        if resp_data is None:
            self.logger.error(f"No data received in the response for user ID: {self.id}")
            return

        data = resp_data.get("data", {})
        self.data = self._reconstruct_data(data)
        self.logger.debug(f"User data retrieved for ID: {self.id}")

    except Exception as e:
        self.logger.error(f"An error occurred while retrieving data for user ID: {self.id}, {str(e)}")

update(data)

Aktualisiere die durch diese Instanz reprÀsentierte Benutzerressource.

Parameter:

Name Typ Beschreibung Standard
data dict

Die aktualisierten Daten fĂŒr die Benutzerressource.

erforderlich

Retouren:

Typ Beschreibung
Optional[Response]

Antwortobjekt der Aktualisierungsanfrage oder Keine, wenn die Aktualisierung fehlschlÀgt

Quellcode in hub_sdk/modules/users.py
def update(self, data: dict) -> Optional[Response]:
    """
    Update the user resource represented by this instance.

    Args:
        data (dict): The updated data for the user resource.

    Returns:
        (Optional[Response]): Response object from the update request, or None if update fails
    """
    return super().update(self.id, data)