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

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

नोट

यह फ़ाइल यहाँ उपलब्ध है https://github.com/ultralytics/hub-एसडीके/बूँद/मुख्य/hub_sdk/मॉड्यूल/डेटासेट.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 self.id:
            resp = super().read(self.id).json()
            self.data = resp.get("data", {})
            self.logger.debug("Dataset id is %s", self.id)
        else:
            self.logger.error("No dataset id has been set. Update the dataset id or create a dataset.")

    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, type: str) -> Optional[str]:
        """
        Get dataset download link.

        Args:
            type (str):

        Returns:
            (Optional[str]): Return download link or None if the link is not available.
        """
        try:
            payload = {"collection": "datasets", "docId": self.id, "object": type}
            endpoint = f"{HUB_FUNCTIONS_ROOT}/v1/storage"
            response = self.post(endpoint, json=payload)
            json = response.json()
            return json.get("data", {}).get("url")
        except Exception as e:
            self.logger.error(f"Failed to download file file for {self.name}: %s", e)
            raise e

__init__(dataset_id=None, headers=None)

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

पैरामीटर:

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

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

None
headers dict

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

None
में स्रोत कोड hub_sdk/modules/datasets.py
26 बांग्लादेश 27 28 293031 32 33 3435363738 39
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
72 73 74 75 76 77 78798081 8283848586 87
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
41 42 43 44 45 46 474849 50 51 52 535455 56
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 self.id:
        resp = super().read(self.id).json()
        self.data = resp.get("data", {})
        self.logger.debug("Dataset id is %s", self.id)
    else:
        self.logger.error("No dataset id has been set. Update the dataset id or create a dataset.")

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

पैरामीटर:

नाम प्रकार विवरण: __________ चूक
type str
आवश्यक

देता:

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

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

में स्रोत कोड hub_sdk/modules/datasets.py
113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128129 130 131
def get_download_link(self, type: str) -> Optional[str]:
    """
    Get dataset download link.

    Args:
        type (str):

    Returns:
        (Optional[str]): Return download link or None if the link is not available.
    """
    try:
        payload = {"collection": "datasets", "docId": self.id, "object": type}
        endpoint = f"{HUB_FUNCTIONS_ROOT}/v1/storage"
        response = self.post(endpoint, json=payload)
        json = response.json()
        return json.get("data", {}).get("url")
    except Exception as e:
        self.logger.error(f"Failed to download file file for {self.name}: %s", e)
        raise e

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)

डेटासेट फ़ाइल को अपलोड करता है hub.

पैरामीटर:

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

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

None

देता:

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

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

में स्रोत कोड hub_sdk/modules/datasets.py
101 102 103 104 105 106 107 108 109 110 111
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
134 135 136 137 138139 140 141 142 143 144145146 147
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"
        if public:
            base_endpoint = f"public/{base_endpoint}"
        super().__init__(base_endpoint, "dataset", page_size, headers)

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

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

पैरामीटर:

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

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

None
public bool

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

None
headers dict

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

None
में स्रोत कोड hub_sdk/modules/datasets.py
135 136 137 138 139 140 141 142 143 144 145146147
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"
    if public:
        base_endpoint = f"public/{base_endpoint}"
    super().__init__(base_endpoint, "dataset", page_size, headers)