コンテンツへスキップ

参考 hub_sdk/modules/users.py

備考

このファイルはhttps://github.com/ultralytics/hub-sdk/blob/main/ hub_sdk/modules/users .py にあります。もし問題を発見したら、Pull Request🛠️ を投稿して修正にご協力ください。ありがとうございました!



hub_sdk.modules.users.Users

ベース: CRUDClient

CRUD 操作を通じてユーザと対話するためのクライアントを表すクラスです。このクラスは CRUDClient クラスを継承し、Users を操作するための特定のメソッドを提供します。

属性:

名称 タイプ 説明
id (str, None)

利用者の一意な識別子(利用可能な場合)。

data dict

ユーザーデータを格納する辞書。

備考

id' 属性は初期化時に設定され、ユーザーを一意に識別するために使用される。 data' 属性はAPIから取得したユーザーデータを保存するために使用されます。

ソースコード 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 self.id:
            resp = super().read(self.id).json()
            self.data = resp.get("data", {})
            self.logger.debug("user id is %s", self.id)
        else:
            self.logger.error("No user id has been set. Update the user id or create a user.")

    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)

CRUD操作によってユーザー・データを操作するためのUsersオブジェクトを初期化します。

パラメーター

名称 タイプ 説明 デフォルト
user_id str

ユーザー固有の識別子。

None
headers dict

APIリクエストに含まれるHTTPヘッダーの辞書。

None
ソースコード 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)

指定されたデータで新しいユーザーを作成し、現在のインスタンスのユーザーIDを設定します。

パラメーター

名称 タイプ 説明 デフォルト
user_data dict

ユーザーを作成するためのデータを含む辞書。

必須

リターンズ

タイプ 説明
None

メソッドは値を返さない。

ソースコード 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)

このインスタンスで表されるユーザーリソースを削除します。

パラメーター

名称 タイプ 説明 デフォルト
hard bool

Trueの場合、ハード削除を行う。

False
備考

hard」パラメータは、ソフト削除(デフォルト)とハード削除のどちらを実行するかを決定します。 ソフト削除では、モデルは削除されたものとしてマークされますが、システムには保持されます。 ハード削除では、モデルはシステムから永久に削除されます。

リターンズ

タイプ 説明
Optional[Response]

削除リクエストのレスポンスオブジェクト、または削除に失敗した場合は None

ソースコード 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()

現在のユーザー・インスタンスのデータを取得します。

有効なユーザIDが設定されている場合、ユーザ・データをフェッチするリクエストを送信し、インスタンスに格納する。 ユーザIDが設定されていない場合は、エラー・メッセージがログに記録される。

リターンズ

タイプ 説明
None

メソッドは値を返さない。

ソースコード 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 self.id:
        resp = super().read(self.id).json()
        self.data = resp.get("data", {})
        self.logger.debug("user id is %s", self.id)
    else:
        self.logger.error("No user id has been set. Update the user id or create a user.")

update(data)

このインスタンスが表すユーザーリソースを更新する。

パラメーター

名称 タイプ 説明 デフォルト
data dict

ユーザーリソースの更新データ。

必須

リターンズ

タイプ 説明
Optional[Response]

更新リクエストのレスポンスオブジェクト、または更新に失敗した場合は None

ソースコード 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)