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

के लिए संदर्भ hub_sdk/base/crud_client.py

नोट

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



hub_sdk.base.crud_client.CRUDClient

का रूप: APIClient

एक विशिष्ट संसाधन के साथ बातचीत करने के लिए एक CRUD (बनाएँ, पढ़ें, अद्यतन, हटाएँ) क्लाइंट का प्रतिनिधित्व करता है।

विशेषताएँ:

नाम प्रकार विवरण: __________
name str

CRUD कार्रवाइयों से संबद्ध नाम (उदा., "उपयोगकर्ता").

logger Logger

लॉगिंग उद्देश्यों के लिए लकड़हारे का एक उदाहरण।

में स्रोत कोड hub_sdk/base/crud_client.py
 10 बांग्लादेश 10 बांग्लादेश 10 बांग्लादेश 10 बांग्लादेश 10 बांग्लादेश 10  बांग्लादेश  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 106107108 109
class CRUDClient(APIClient):
    """
    Represents a CRUD (Create, Read, Update, Delete) client for interacting with a specific resource.

    Attributes:
        name (str): The name associated with the CRUD operations (e.g., "User").
        logger (logging.Logger): An instance of the logger for logging purposes.
    """

    def __init__(self, base_endpoint, name, headers):
        """
        Initialize a CRUDClient instance.

        Args:
            base_endpoint (str): The base endpoint URL for the API.
            name (str): The name associated with the CRUD operations (e.g., "User").
            headers (dict): Headers to be included in API requests.
        """
        super().__init__(f"{HUB_FUNCTIONS_ROOT}/v1/{base_endpoint}", headers)
        self.name = name
        self.logger = logger

    def create(self, data: dict) -> Optional[Response]:
        """
        Create a new entity using the API.

        Args:
            data (dict): The data to be sent as part of the creation request.

        Returns:
            (Optional[Response]): Response object from the create request, or None if upload fails.
        """
        try:
            return self.post("", json=data)
        except Exception as e:
            self.logger.error(f"Failed to create {self.name}: %s", e)

    def read(self, id: str) -> Optional[Response]:
        """
        Retrieve details of a specific entity.

        Args:
            id (str): The unique identifier of the entity to retrieve.

        Returns:
            (Optional[Response]): Response object from the read request, or None if read fails.
        """
        try:
            return self.get(f"/{id}")
        except Exception as e:
            self.logger.error(f"Failed to read {self.name}({id}): %s", e)

    def update(self, id: str, data: dict) -> Optional[Response]:
        """
        Update an existing entity using the API.

        Args:
            id (str): The unique identifier of the entity to update.
            data (dict): The updated data to be sent in the update request.

        Returns:
            (Optional[Response]): Response object from the update request, or None if update fails.
        """
        try:
            return self.patch(f"/{id}", json=data)
        except Exception as e:
            self.logger.error(f"Failed to update {self.name}({id}): %s", e)

    def delete(self, id: str, hard: bool = False) -> Optional[Response]:
        """
        Delete an entity using the API.

        Args:
            id (str): The unique identifier of the entity to delete.
            hard (bool, optional): If True, perform a hard delete. If False, perform a soft delete.

        Returns:
            (Optional[Response]): Response object from the delete request, or None if delete fails.
        """
        try:
            return super().delete(f"/{id}", {"hard": hard})
        except Exception as e:
            self.logger.error(f"Failed to delete {self.name}({id}): %s", e)

    def list(self, page: int = 0, limit: int = 10) -> Optional[Response]:
        """
        List entities using the API.

        Args:
            page (int, optional): The page number to retrieve.
            limit (int, optional): The maximum number of entities per page.

        Returns:
            (Optional[Response]): Response object from the list request, or None if it fails.
        """
        try:
            params = {"page": page, "limit": limit}
            return self.get("", params=params)
        except Exception as e:
            self.logger.error(f"Failed to list {self.name}: %s", e)

__init__(base_endpoint, name, headers)

CRUDClient उदाहरण प्रारंभ करें।

पैरामीटर:

नाम प्रकार विवरण: __________ चूक
base_endpoint str

API के लिए आधार समापन बिंदु URL.

आवश्यक
name str

CRUD कार्रवाइयों से संबद्ध नाम (उदा., "उपयोगकर्ता").

आवश्यक
headers dict

एपीआई अनुरोधों में शामिल किए जाने वाले शीर्षलेख।

आवश्यक
में स्रोत कोड hub_sdk/base/crud_client.py
def __init__(self, base_endpoint, name, headers):
    """
    Initialize a CRUDClient instance.

    Args:
        base_endpoint (str): The base endpoint URL for the API.
        name (str): The name associated with the CRUD operations (e.g., "User").
        headers (dict): Headers to be included in API requests.
    """
    super().__init__(f"{HUB_FUNCTIONS_ROOT}/v1/{base_endpoint}", headers)
    self.name = name
    self.logger = logger

create(data)

API का उपयोग करके एक नया निकाय बनाएँ.

पैरामीटर:

नाम प्रकार विवरण: __________ चूक
data dict

निर्माण अनुरोध के हिस्से के रूप में भेजा जाने वाला डेटा।

आवश्यक

देता:

प्रकार विवरण: __________
Optional[Response]

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

में स्रोत कोड hub_sdk/base/crud_client.py
32 बांग्लादेश 33 34 3536373839404142434445
def create(self, data: dict) -> Optional[Response]:
    """
    Create a new entity using the API.

    Args:
        data (dict): The data to be sent as part of the creation request.

    Returns:
        (Optional[Response]): Response object from the create request, or None if upload fails.
    """
    try:
        return self.post("", json=data)
    except Exception as e:
        self.logger.error(f"Failed to create {self.name}: %s", e)

delete(id, hard=False)

API का उपयोग करके निकाय हटाएँ.

पैरामीटर:

नाम प्रकार विवरण: __________ चूक
id str

हटाने के लिए एंटिटी का युनीक आइडेंटिफ़ायर.

आवश्यक
hard bool

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

False

देता:

प्रकार विवरण: __________
Optional[Response]

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

में स्रोत कोड hub_sdk/base/crud_client.py
78 79 80 81 82 8384 85 86 87 8889909192
def delete(self, id: str, hard: bool = False) -> Optional[Response]:
    """
    Delete an entity using the API.

    Args:
        id (str): The unique identifier of the entity to delete.
        hard (bool, optional): If True, perform a hard delete. If False, perform a soft delete.

    Returns:
        (Optional[Response]): Response object from the delete request, or None if delete fails.
    """
    try:
        return super().delete(f"/{id}", {"hard": hard})
    except Exception as e:
        self.logger.error(f"Failed to delete {self.name}({id}): %s", e)

list(page=0, limit=10)

API का उपयोग करने वाले निकायों को सूचीबद्ध करें.

पैरामीटर:

नाम प्रकार विवरण: __________ चूक
page int

पुनर्प्राप्त करने के लिए पृष्ठ संख्या।

0
limit int

प्रति पृष्ठ निकायों की अधिकतम संख्या.

10

देता:

प्रकार विवरण: __________
Optional[Response]

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

में स्रोत कोड hub_sdk/base/crud_client.py
94 95 96 97 98  99 100 101 102 103  104 105 106 107 108 109 
def list(self, page: int = 0, limit: int = 10) -> Optional[Response]:
    """
    List entities using the API.

    Args:
        page (int, optional): The page number to retrieve.
        limit (int, optional): The maximum number of entities per page.

    Returns:
        (Optional[Response]): Response object from the list request, or None if it fails.
    """
    try:
        params = {"page": page, "limit": limit}
        return self.get("", params=params)
    except Exception as e:
        self.logger.error(f"Failed to list {self.name}: %s", e)

read(id)

किसी विशिष्ट एंटिटी का विवरण पुनर्प्राप्त करें.

पैरामीटर:

नाम प्रकार विवरण: __________ चूक
id str

पुनर्प्राप्त करने के लिए इकाई का अद्वितीय पहचानकर्ता।

आवश्यक

देता:

प्रकार विवरण: __________
Optional[Response]

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

में स्रोत कोड hub_sdk/base/crud_client.py
47 48 49 50 51 52 53 54 55 56 57585960
def read(self, id: str) -> Optional[Response]:
    """
    Retrieve details of a specific entity.

    Args:
        id (str): The unique identifier of the entity to retrieve.

    Returns:
        (Optional[Response]): Response object from the read request, or None if read fails.
    """
    try:
        return self.get(f"/{id}")
    except Exception as e:
        self.logger.error(f"Failed to read {self.name}({id}): %s", e)

update(id, data)

API का उपयोग करके मौजूदा निकाय का अद्यतन करें.

पैरामीटर:

नाम प्रकार विवरण: __________ चूक
id str

अद्यतन करने के लिए निकाय का अद्वितीय पहचानकर्ता.

आवश्यक
data dict

अद्यतन अनुरोध में भेजा जाने वाला अद्यतन डेटा।

आवश्यक

देता:

प्रकार विवरण: __________
Optional[Response]

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

में स्रोत कोड hub_sdk/base/crud_client.py
62 63 64 65 66 6768697071 7273747576
def update(self, id: str, data: dict) -> Optional[Response]:
    """
    Update an existing entity using the API.

    Args:
        id (str): The unique identifier of the entity to update.
        data (dict): The updated data to be sent in the update request.

    Returns:
        (Optional[Response]): Response object from the update request, or None if update fails.
    """
    try:
        return self.patch(f"/{id}", json=data)
    except Exception as e:
        self.logger.error(f"Failed to update {self.name}({id}): %s", e)