Bỏ để qua phần nội dung

Tài liệu tham khảo cho hub_sdk/modules/users.py

Ghi

Tệp này có sẵn tại https://github.com/ultralytics/hub-sdk/blob/main/hub_sdk/modules/users.py. Nếu bạn phát hiện ra một vấn đề, vui lòng giúp khắc phục nó bằng cách đóng góp Yêu cầu 🛠️ kéo. Cảm ơn bạn 🙏 !



hub_sdk.modules.users.Users

Căn cứ: CRUDClient

Một lớp đại diện cho một khách hàng để tương tác với Người dùng thông qua các hoạt động CRUD. Lớp này mở rộng CRUDClient và cung cấp các phương pháp cụ thể để làm việc với Người dùng.

Thuộc tính:

Tên Kiểu Sự miêu tả
id (str, None)

Mã định danh duy nhất của người dùng, nếu có.

data dict

Từ điển để lưu trữ dữ liệu người dùng.

Ghi

Thuộc tính 'id' được đặt trong quá trình khởi tạo và có thể được sử dụng để nhận dạng duy nhất người dùng. Thuộc tính "data" được sử dụng để lưu trữ dữ liệu người dùng được tìm nạp từ API.

Mã nguồn trong 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)

Khởi tạo đối tượng Users để tương tác với dữ liệu người dùng thông qua các thao tác CRUD.

Thông số:

Tên Kiểu Sự miêu tả Mặc định
user_id str

Mã định danh duy nhất của người dùng.

None
headers dict

Một từ điển các tiêu đề HTTP được bao gồm trong các yêu cầu API.

None
Mã nguồn trong 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)

Tạo người dùng mới với dữ liệu được cung cấp và đặt ID người dùng cho phiên bản hiện tại.

Thông số:

Tên Kiểu Sự miêu tả Mặc định
user_data dict

Một từ điển chứa dữ liệu để tạo người dùng.

bắt buộc

Trở lại:

Kiểu Sự miêu tả
None

Phương thức không trả về một giá trị.

Mã nguồn trong 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)

Xóa tài nguyên người dùng được đại diện bởi phiên bản này.

Thông số:

Tên Kiểu Sự miêu tả Mặc định
hard bool

Nếu True, hãy thực hiện xóa cứng.

False
Ghi

Tham số 'cứng' xác định xem nên thực hiện xóa mềm (mặc định) hay xóa cứng. Trong xóa mềm, mô hình có thể được đánh dấu là đã xóa nhưng được giữ lại trong hệ thống. Trong một bản xóa cứng, mô hình sẽ bị xóa vĩnh viễn khỏi hệ thống.

Trở lại:

Kiểu Sự miêu tả
Optional[Response]

Đối tượng phản hồi từ yêu cầu xóa hoặc Không có nếu xóa không thành công

Mã nguồn trong 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()

Truy xuất dữ liệu cho phiên bản người dùng hiện tại.

Nếu ID người dùng hợp lệ đã được đặt, nó sẽ gửi yêu cầu tìm nạp dữ liệu người dùng và lưu trữ dữ liệu đó trong phiên bản. Nếu không có ID người dùng nào được đặt, nó sẽ ghi lại thông báo lỗi.

Trở lại:

Kiểu Sự miêu tả
None

Phương thức không trả về một giá trị.

Mã nguồn trong 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)

Cập nhật tài nguyên người dùng được đại diện bởi phiên bản này.

Thông số:

Tên Kiểu Sự miêu tả Mặc định
data dict

Dữ liệu cập nhật cho tài nguyên người dùng.

bắt buộc

Trở lại:

Kiểu Sự miêu tả
Optional[Response]

Đối tượng phản hồi từ yêu cầu cập nhật hoặc Không có nếu cập nhật không thành công

Mã nguồn trong 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)