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

مرجع ل hub_sdk/modules/projects.py

ملاحظه

هذا الملف متاح في https://github.com/ultralytics/hub-SDK / نقطة / الرئيسية /hub_sdk / وحدات / مشاريع .py. إذا اكتشفت مشكلة ، فيرجى المساعدة في إصلاحها من خلال المساهمة في طلب 🛠️ سحب. شكرا لك 🙏!



hub_sdk.modules.projects.Projects

قواعد: CRUDClient

فئة تمثل العميل للتفاعل مع المشاريع من خلال عمليات CRUD. تمتد هذه الفئة فئة CRUDClient وتوفر طرقا محددة للعمل مع المشاريع.

سمات:

اسم نوع وصف
hub_client ProjectUpload

مثيل ProjectUpload يستخدم للتفاعل مع تحميلات النماذج.

id (str, None)

المعرف الفريد للمشروع، إن وجد.

data dict

قاموس لتخزين بيانات المشروع.

ملاحظه

يتم تعيين السمة "id" أثناء التهيئة ويمكن استخدامها لتحديد المشروع بشكل فريد. يتم استخدام سمة "البيانات" لتخزين بيانات المشروع التي تم جلبها من واجهة برمجة التطبيقات.

شفرة المصدر في hub_sdk/modules/projects.py
class Projects(CRUDClient):
    """
    A class representing a client for interacting with Projects through CRUD operations. This class extends the
    CRUDClient class and provides specific methods for working with Projects.

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

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

    def __init__(self, project_id: Optional[str] = None, headers: Optional[Dict[str, Any]] = None):
        """
        Initialize a Projects object for interacting with project data via CRUD operations.

        Args:
            project_id (str, optional): Project ID for retrieving data.
            headers (dict, optional): A dictionary of HTTP headers to be included in API requests.
        """
        super().__init__("projects", "project", headers)
        self.hub_client = ProjectUpload(headers)
        self.id = project_id
        self.data = {}
        if project_id:
            self.get_data()

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

        If a valid project ID has been set, it sends a request to fetch the project data and stores it in the instance.
        If no project 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("Project id is %s", self.id)
        else:
            self.logger.error("No project id has been set. Update the project id or create a project.")

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

        Args:
            project_data (dict): A dictionary containing the data for creating the project.

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

    def delete(self, hard: Optional[bool] = False) -> Optional[Response]:
        """
        Delete the project resource represented by this instance.

        Args:
            hard (bool, optional): If True, perform a hard (permanent) delete.

        Note:
            The 'hard' parameter determines whether to perform a soft delete (default) or a hard delete.
            In a soft delete, the project might be marked as deleted but retained in the system.
            In a hard delete, the project 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 project resource represented by this instance.

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

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

    def upload_image(self, file: str) -> Optional[Response]:
        """
        Uploads an image file to the hub associated with this client.

        Args:
            file (str): The file path or URL of the image to be uploaded.

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

__init__(project_id=None, headers=None)

تهيئة كائن مشاريع للتفاعل مع بيانات المشروع عبر عمليات CRUD.

البارامترات:

اسم نوع وصف افتراضي
project_id str

معرف المشروع لاسترداد البيانات.

None
headers dict

قاموس لرؤوس HTTP ليتم تضمينها في طلبات واجهة برمجة التطبيقات.

None
شفرة المصدر في hub_sdk/modules/projects.py
def __init__(self, project_id: Optional[str] = None, headers: Optional[Dict[str, Any]] = None):
    """
    Initialize a Projects object for interacting with project data via CRUD operations.

    Args:
        project_id (str, optional): Project ID for retrieving data.
        headers (dict, optional): A dictionary of HTTP headers to be included in API requests.
    """
    super().__init__("projects", "project", headers)
    self.hub_client = ProjectUpload(headers)
    self.id = project_id
    self.data = {}
    if project_id:
        self.get_data()

create_project(project_data)

ينشئ مشروعا جديدا بالبيانات المتوفرة ويعين معرف المشروع للمثيل الحالي.

البارامترات:

اسم نوع وصف افتراضي
project_data dict

قاموس يحتوي على البيانات اللازمة لإنشاء المشروع.

مطلوب

ارجاع:

نوع وصف
None

لا ترجع الطريقة قيمة.

شفرة المصدر في hub_sdk/modules/projects.py
57 58 59 60 61 62 63 64 65 66 676869
def create_project(self, project_data: dict) -> None:
    """
    Creates a new project with the provided data and sets the project ID for the current instance.

    Args:
        project_data (dict): A dictionary containing the data for creating the project.

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

delete(hard=False)

احذف مورد المشروع الذي يمثله هذا المثيل.

البارامترات:

اسم نوع وصف افتراضي
hard bool

إذا كان هذا صحيحا، فقم بإجراء حذف نهائي (دائم).

False
ملاحظه

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

ارجاع:

نوع وصف
Optional[Response]

كائن الاستجابة من طلب الحذف، أو لا شيء إذا فشل الحذف.

شفرة المصدر في hub_sdk/modules/projects.py
71 72 73 74 75 76 7778 7980 8182838485 86
def delete(self, hard: Optional[bool] = False) -> Optional[Response]:
    """
    Delete the project resource represented by this instance.

    Args:
        hard (bool, optional): If True, perform a hard (permanent) delete.

    Note:
        The 'hard' parameter determines whether to perform a soft delete (default) or a hard delete.
        In a soft delete, the project might be marked as deleted but retained in the system.
        In a hard delete, the project 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/projects.py
40 41 42 43 44 45 4647 48 49 5051525354 55
def get_data(self) -> None:
    """
    Retrieves data for the current project instance.

    If a valid project ID has been set, it sends a request to fetch the project data and stores it in the instance.
    If no project 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("Project id is %s", self.id)
    else:
        self.logger.error("No project id has been set. Update the project id or create a project.")

update(data)

قم بتحديث مورد المشروع الذي يمثله هذا المثيل.

البارامترات:

اسم نوع وصف افتراضي
data dict

البيانات المحدثة لمورد المشروع.

مطلوب

ارجاع:

نوع وصف
Optional[Response]

كائن الاستجابة من طلب التحديث، أو لا شيء إذا فشل التحديث.

شفرة المصدر في hub_sdk/modules/projects.py
def update(self, data: dict) -> Optional[Response]:
    """
    Update the project resource represented by this instance.

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

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

upload_image(file)

تحميل ملف صورة إلى hub المرتبطة بهذا العميل.

البارامترات:

اسم نوع وصف افتراضي
file str

مسار الملف أو عنوان URL للصورة المراد تحميلها.

مطلوب

ارجاع:

نوع وصف
Optional[Response]

كائن الاستجابة من طلب الصورة الذي تم تحميله، أو لا شيء إذا فشل التحميل.

شفرة المصدر في hub_sdk/modules/projects.py
100 101 102 103 104 105 106 107 108109 110
def upload_image(self, file: str) -> Optional[Response]:
    """
    Uploads an image file to the hub associated with this client.

    Args:
        file (str): The file path or URL of the image to be uploaded.

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



hub_sdk.modules.projects.ProjectList

قواعد: PaginatedList

شفرة المصدر في hub_sdk/modules/projects.py
113 114 115 116 117 118119 120 121 122 123124125 126
class ProjectList(PaginatedList):
    def __init__(self, page_size: int = None, public: bool = None, headers: dict = None):
        """
        Initialize a ProjectList 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 = "projects"
        if public:
            base_endpoint = f"public/{base_endpoint}"
        super().__init__(base_endpoint, "project", page_size, headers)

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

تهيئة مثيل ProjectList.

البارامترات:

اسم نوع وصف افتراضي
page_size int

عدد العناصر المطلوب طلبها لكل صفحة.

None
public bool

ما إذا كان ينبغي أن تكون العناصر متاحة للجمهور.

None
headers dict

الرؤوس التي سيتم تضمينها في طلبات واجهة برمجة التطبيقات.

None
شفرة المصدر في hub_sdk/modules/projects.py
114 115 116 117 118 119 120 121 122 123 124125126
def __init__(self, page_size: int = None, public: bool = None, headers: dict = None):
    """
    Initialize a ProjectList 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 = "projects"
    if public:
        base_endpoint = f"public/{base_endpoint}"
    super().__init__(base_endpoint, "project", page_size, headers)