सामग्री पर जाएं

के लिए संदर्भ hub_sdk/modules/users.py

नोट

यह फ़ाइल यहाँ उपलब्ध है https://github.com/ultralytics/hub-sdk/blob/main/hub_sdk/modules/users.py. यदि आप कोई समस्या देखते हैं तो कृपया पुल अनुरोध का योगदान करके इसे ठीक करने में मदद करें 🛠️। 🙏 धन्यवाद !



hub_sdk.modules.users.Users

का रूप: CRUDClient

CRUD संचालन के माध्यम से उपयोगकर्ताओं के साथ बातचीत करने के लिए ग्राहक का प्रतिनिधित्व करने वाला एक वर्ग। यह वर्ग CRUDClient का विस्तार करता है वर्ग और उपयोगकर्ताओं के साथ काम करने के लिए विशिष्ट तरीके प्रदान करता है।

विशेषताएँ:

नाम प्रकार या क़िस्‍म
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 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)

CRUD संचालन के माध्यम से उपयोगकर्ता डेटा के साथ सहभागिता करने के लिए उपयोगकर्ता ऑब्जेक्ट प्रारंभ करें.

पैरामीटर:

नाम प्रकार या क़िस्‍म चूक
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)

प्रदान किए गए डेटा के साथ एक नया उपयोगकर्ता बनाता है और वर्तमान आवृत्ति के लिए उपयोगकर्ता आईडी सेट करता है।

पैरामीटर:

नाम प्रकार या क़िस्‍म चूक
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

यदि सही है, तो हार्ड डिलीट करें।

False
नोट

'हार्ड' पैरामीटर निर्धारित करता है कि सॉफ्ट डिलीट (डिफ़ॉल्ट) करना है या हार्ड डिलीट करना है। सॉफ्ट डिलीट में, मॉडल को हटाए गए के रूप में चिह्नित किया जा सकता है लेकिन सिस्टम में बनाए रखा जा सकता है। हार्ड डिलीट में, मॉडल को सिस्टम से स्थायी रूप से हटा दिया जाता है।

देता:

प्रकार या क़िस्‍म
Optional[Response]

हटाने के अनुरोध से प्रतिक्रिया ऑब्जेक्ट, या कोई नहीं अगर हटाना विफल रहता है

में स्रोत कोड 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 सेट नहीं किया गया है, तो यह एक त्रुटि संदेश लॉग करता है.

देता:

प्रकार या क़िस्‍म
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 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)

इस इंस्टेंस द्वारा प्रस्तुत उपयोगकर्ता संसाधन का अद्यतन करें।

पैरामीटर:

नाम प्रकार या क़िस्‍म चूक
data dict

उपयोगकर्ता संसाधन के लिए अद्यतन किया गया डेटा.

आवश्यक

देता:

प्रकार या क़िस्‍म
Optional[Response]

अद्यतन अनुरोध से प्रतिसाद ऑब्जेक्ट, या कोई नहीं यदि अद्यतन विफल रहता है

में स्रोत कोड 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)