Bỏ để qua phần nội dung

Tài liệu tham khảo cho hub_sdk/modules/datasets.py

Ghi

Tệp này có sẵn tại https://github.com/ultralytics/hub-sdk/blob/main/hub_sdk/modules/datasets.py. Nếu bạn phát hiện ra một vấn đề, vui lòng giúp khắc phục nó bằng cách đóng góp Yêu cầu 🛠️ kéo. Cảm ơn bạn 🙏 !



hub_sdk.modules.datasets.Datasets

Căn cứ: CRUDClient

Một lớp đại diện cho một máy khách để tương tác với Datasets thông qua các hoạt động CRUD. Lớp này mở rộng Lớp CRUDClient và cung cấp các phương thức cụ thể để làm việc với Datasets.

Thuộc tính:

Tên Kiểu Sự miêu tả
hub_client DatasetUpload

Một phiên bản của DatasetUpload được sử dụng để tương tác với tải lên mô hình.

id (str, None)

Mã định danh duy nhất của tập dữ liệu, nếu có.

data dict

Một từ điển để lưu trữ dữ liệu tập dữ liệu.

Ghi

Thuộc tính 'id' được đặt trong quá trình khởi tạo và có thể được sử dụng để xác định duy nhất một tập dữ liệu. Thuộc tính "data" được sử dụng để lưu trữ dữ liệu tập dữ liệu được tìm nạp từ API.

Mã nguồn trong 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)

Khởi tạo máy khách Datasets.

Thông số:

Tên Kiểu Sự miêu tả Mặc định
dataset_id str

ID duy nhất của tập dữ liệu.

None
headers dict

Tiêu đề để bao gồm trong các yêu cầu HTTP.

None
Mã nguồn trong 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)

Tạo tập dữ liệu mới với dữ liệu được cung cấp và đặt ID tập dữ liệu cho phiên bản hiện tại.

Thông số:

Tên Kiểu Sự miêu tả Mặc định
dataset_data dict

Một từ điển chứa dữ liệu để tạo tập dữ liệu.

bắt buộc

Trở lại:

Kiểu Sự miêu tả
None

Phương thức không trả về một giá trị.

Mã nguồn trong 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)

Xóa tài nguyên tập dữ liệu được đại diện bởi phiên bản này.

Thông số:

Tên Kiểu Sự miêu tả Mặc định
hard bool

Nếu True, hãy thực hiện xóa cứng.

False
Ghi

Tham số 'cứng' xác định xem nên thực hiện xóa mềm (mặc định) hay xóa cứng. Trong xóa mềm, tập dữ liệu có thể được đánh dấu là đã xóa nhưng được giữ lại trong hệ thống. Trong một bản xóa cứng, tập dữ liệu sẽ bị xóa vĩnh viễn khỏi hệ thống.

Trở lại:

Kiểu Sự miêu tả
Optional[Response]

Phản hồi đối tượng từ yêu cầu xóa, hoặc Không có nếu xóa không thành công.

Mã nguồn trong 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()

Truy xuất dữ liệu cho phiên bản tập dữ liệu hiện tại.

Nếu ID tập dữ liệu hợp lệ đã được đặt, nó sẽ gửi yêu cầu tìm nạp dữ liệu tập dữ liệu và lưu trữ nó trong phiên bản. Nếu không có ID tập dữ liệu nào được đặt, nó sẽ ghi lại thông báo lỗi.

Trở lại:

Kiểu Sự miêu tả
None

Phương thức không trả về một giá trị.

Mã nguồn trong 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}")

Nhận liên kết tải xuống tập dữ liệu.

Trở lại:

Kiểu Sự miêu tả
Optional[str]

Trả lại liên kết tải xuống hoặc Không có nếu liên kết không có sẵn.

Mã nguồn trong 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)

Cập nhật tài nguyên tập dữ liệu được đại diện bởi phiên bản này.

Thông số:

Tên Kiểu Sự miêu tả Mặc định
data dict

Dữ liệu cập nhật cho tài nguyên tập dữ liệu.

bắt buộc

Trở lại:

Kiểu Sự miêu tả
Optional[Response]

Phản hồi đối tượng từ yêu cầu cập nhật hoặc Không có nếu cập nhật không thành công.

Mã nguồn trong 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)

Tải tệp tập dữ liệu lên hub.

Thông số:

Tên Kiểu Sự miêu tả Mặc định
file str

Đường dẫn đến tệp tập dữ liệu cần tải lên.

None

Trở lại:

Kiểu Sự miêu tả
Optional[Response]

Đối tượng phản hồi từ yêu cầu tải lên hoặc Không có nếu tải lên không thành công.

Mã nguồn trong 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

Căn cứ: PaginatedList

Mã nguồn trong 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)

Khởi tạo phiên bản Tập dữ liệu.

Thông số:

Tên Kiểu Sự miêu tả Mặc định
page_size int

Số lượng mục cần yêu cầu trên mỗi trang.

None
public bool

Liệu các mục có thể truy cập công khai hay không.

None
headers dict

Tiêu đề được bao gồm trong yêu cầu API.

None
Mã nguồn trong 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)