انتقل إلى المحتوى

مرجع ل 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" لتخزين بيانات مجموعة البيانات التي تم جلبها من واجهة برمجة التطبيقات.

شفرة المصدر في 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) -> 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
ملاحظه

تحدد المعلمة "hard" ما إذا كان سيتم إجراء حذف مبدئي (افتراضي) أو حذف نهائي. في حالة الحذف المبدئي ، قد يتم وضع علامة على مجموعة البيانات على أنها محذوفة ولكن يتم الاحتفاظ بها في النظام. في حالة الحذف الثابت ، تتم إزالة مجموعة البيانات نهائيا من النظام.

ارجاع:

نوع وصف
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 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.")

احصل على رابط تنزيل مجموعة البيانات.

ارجاع:

نوع وصف
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)