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

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

नोट

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



hub_sdk.modules.datasets.Datasets

का रूप: CRUDClient

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

विशेषताएँ:

नाम प्रकार या क़िस्‍म
hub_client DatasetUpload

DatasetUpload का एक उदाहरण मॉडल अपलोड के साथ इंटरैक्ट करने के लिए उपयोग किया जाता है।

id (str, None)

डेटासेट का युनीक आइडेंटिफ़ायर, यदि उपलब्ध हो.

data dict

डेटासेट डेटा संग्रहीत करने के लिए एक शब्दकोश।

नोट

'id' विशेषता आरंभीकरण के दौरान सेट की जाती है और इसका उपयोग डेटासेट को विशिष्ट रूप से पहचानने के लिए किया जा सकता है। 'data' विशेषता का उपयोग API से प्राप्त डेटासेट डेटा को संग्रहीत करने के लिए किया जाता है।

में स्रोत कोड hub_sdk/modules/datasets.py
class Datasets(CRUDClient):
    """
    A class representing a client for interacting with Datasets through CRUD operations. This class extends the
    CRUDClient class and provides specific methods for working with Datasets.

    Attributes:
        hub_client (DatasetUpload): An instance of DatasetUpload used for interacting with model uploads.
        id (str, None): The unique identifier of the dataset, if available.
        data (dict): A dictionary to store dataset data.

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

    def __init__(self, dataset_id: Optional[str] = None, headers: Optional[Dict[str, Any]] = None):
        """
        Initialize a Datasets client.

        Args:
            dataset_id (str): Unique id of the dataset.
            headers (dict, optional): Headers to include in HTTP requests.
        """
        super().__init__("datasets", "dataset", headers)
        self.hub_client = DatasetUpload(headers)
        self.id = dataset_id
        self.data = {}
        if dataset_id:
            self.get_data()

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

        If a valid dataset ID has been set, it sends a request to fetch the dataset data and stores it in the instance.
        If no dataset 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 dataset id has been set. Update the dataset id or create a dataset.")
            return

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

            if response is None:
                self.logger.error(f"Received no response from the server for dataset 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 dataset ID: {self.id}")
                return

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

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

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

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

        Args:
            dataset_data (dict): A dictionary containing the data for creating the dataset.

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

    def delete(self, hard: bool = False) -> Optional[Response]:
        """
        Delete the dataset 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 dataset might be marked as deleted but retained in the system.
            In a hard delete, the dataset 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 dataset resource represented by this instance.

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

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

    def upload_dataset(self, file: str = None) -> Optional[Response]:
        """
        Uploads a dataset file to the hub.

        Args:
            file (str, optional): The path to the dataset file to upload.

        Returns:
            (Optional[Response]): Response object from the upload request, or None if upload fails.
        """
        return self.hub_client.upload_dataset(self.id, file)

    def get_download_link(self) -> Optional[str]:
        """
        Get dataset download link.

        Returns:
            (Optional[str]): Return download link or None if the link is not available.
        """
        return self.data.get("url")

__init__(dataset_id=None, headers=None)

डेटासेट क्लाइंट को इनिशियलाइज़ करें।

पैरामीटर:

नाम प्रकार या क़िस्‍म चूक
dataset_id str

डेटासेट की विशिष्ट आईडी।

None
headers dict

HTTP अनुरोधों में शामिल करने के लिए हेडर।

None
में स्रोत कोड hub_sdk/modules/datasets.py
def __init__(self, dataset_id: Optional[str] = None, headers: Optional[Dict[str, Any]] = None):
    """
    Initialize a Datasets client.

    Args:
        dataset_id (str): Unique id of the dataset.
        headers (dict, optional): Headers to include in HTTP requests.
    """
    super().__init__("datasets", "dataset", headers)
    self.hub_client = DatasetUpload(headers)
    self.id = dataset_id
    self.data = {}
    if dataset_id:
        self.get_data()

create_dataset(dataset_data)

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

पैरामीटर:

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

डेटासेट बनाने के लिए डेटा रखने वाला एक शब्दकोश।

आवश्यक

देता:

प्रकार या क़िस्‍म
None

विधि एक मान वापस नहीं करता है।

में स्रोत कोड hub_sdk/modules/datasets.py
def create_dataset(self, dataset_data: dict) -> None:
    """
    Creates a new dataset with the provided data and sets the dataset ID for the current instance.

    Args:
        dataset_data (dict): A dictionary containing the data for creating the dataset.

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

delete(hard=False)

इस इंस्टेंस द्वारा प्रस्तुत डेटासेट संसाधन हटाएं।

पैरामीटर:

नाम प्रकार या क़िस्‍म चूक
hard bool

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

False
नोट

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

देता:

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

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

में स्रोत कोड hub_sdk/modules/datasets.py
def delete(self, hard: bool = False) -> Optional[Response]:
    """
    Delete the dataset 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 dataset might be marked as deleted but retained in the system.
        In a hard delete, the dataset 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()

वर्तमान डेटासेट आवृत्ति के लिए डेटा पुनर्प्राप्त करता है।

यदि एक वैध डेटासेट आईडी सेट की गई है, तो यह डेटासेट डेटा लाने के लिए अनुरोध भेजता है और इसे उदाहरण में संग्रहीत करता है। यदि कोई डेटासेट आईडी सेट नहीं की गई है, तो यह एक त्रुटि संदेश लॉग करता है।

देता:

प्रकार या क़िस्‍म
None

विधि एक मान वापस नहीं करता है।

में स्रोत कोड hub_sdk/modules/datasets.py
def get_data(self) -> None:
    """
    Retrieves data for the current dataset instance.

    If a valid dataset ID has been set, it sends a request to fetch the dataset data and stores it in the instance.
    If no dataset 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 dataset id has been set. Update the dataset id or create a dataset.")
        return

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

        if response is None:
            self.logger.error(f"Received no response from the server for dataset 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 dataset ID: {self.id}")
            return

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

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

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

डेटासेट डाउनलोड लिंक प्राप्त करें।

देता:

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

यदि लिंक उपलब्ध नहीं है तो डाउनलोड लिंक या कोई नहीं लौटाएं।

में स्रोत कोड hub_sdk/modules/datasets.py
def get_download_link(self) -> Optional[str]:
    """
    Get dataset download link.

    Returns:
        (Optional[str]): Return download link or None if the link is not available.
    """
    return self.data.get("url")

update(data)

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

पैरामीटर:

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

डेटासेट संसाधन के लिए अद्यतन किया गया डेटा।

आवश्यक

देता:

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

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

में स्रोत कोड hub_sdk/modules/datasets.py
def update(self, data: dict) -> Optional[Response]:
    """
    Update the dataset resource represented by this instance.

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

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

upload_dataset(file=None)

हब में डेटासेट फ़ाइल अपलोड करता है।

पैरामीटर:

नाम प्रकार या क़िस्‍म चूक
file str

अपलोड करने के लिए डेटासेट फ़ाइल का पथ।

None

देता:

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

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

में स्रोत कोड hub_sdk/modules/datasets.py
def upload_dataset(self, file: str = None) -> Optional[Response]:
    """
    Uploads a dataset file to the hub.

    Args:
        file (str, optional): The path to the dataset file to upload.

    Returns:
        (Optional[Response]): Response object from the upload request, or None if upload fails.
    """
    return self.hub_client.upload_dataset(self.id, file)



hub_sdk.modules.datasets.DatasetList

का रूप: PaginatedList

में स्रोत कोड hub_sdk/modules/datasets.py
class DatasetList(PaginatedList):
    def __init__(self, page_size=None, public=None, headers=None):
        """
        Initialize a Dataset instance.

        Args:
            page_size (int, optional): The number of items to request per page.
            public (bool, optional): Whether the items should be publicly accessible.
            headers (dict, optional): Headers to be included in API requests.
        """
        base_endpoint = "datasets"
        super().__init__(base_endpoint, "dataset", page_size, public, headers)

__init__(page_size=None, public=None, headers=None)

डेटासेट इंस्टेंस शुरू करें।

पैरामीटर:

नाम प्रकार या क़िस्‍म चूक
page_size int

प्रति पृष्ठ अनुरोध करने के लिए आइटम की संख्या.

None
public bool

क्या आइटम सार्वजनिक रूप से सुलभ होने चाहिए।

None
headers dict

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

None
में स्रोत कोड hub_sdk/modules/datasets.py
def __init__(self, page_size=None, public=None, headers=None):
    """
    Initialize a Dataset instance.

    Args:
        page_size (int, optional): The number of items to request per page.
        public (bool, optional): Whether the items should be publicly accessible.
        headers (dict, optional): Headers to be included in API requests.
    """
    base_endpoint = "datasets"
    super().__init__(base_endpoint, "dataset", page_size, public, headers)