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

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

ملاحظه

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



hub_sdk.modules.teams.Teams

قواعد: CRUDClient

فئة تمثل عميلا للتفاعل مع Teams من خلال عمليات CRUD. هذه الفئة تمدد CRUDClient فئة ويوفر أساليب محددة للعمل مع Teams.

سمات:

اسم نوع وصف
id (str, None)

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

data dict

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

ملاحظه

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

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

    Attributes:
        id (str, None): The unique identifier of the team, if available.
        data (dict): A dictionary to store team data.

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

    def __init__(self, team_id: Optional[str] = None, headers: Optional[Dict[str, Any]] = None):
        """
        Initialize a Teams instance.

        Args:
            team_id (str, optional): The unique identifier of the team.
            headers (dict, optional): A dictionary of HTTP headers to be included in API requests.
        """
        super().__init__("teams", "team", headers)
        self.id = team_id
        self.data = {}
        if team_id:
            self.get_data()

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

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

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

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

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

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

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

    def create_team(self, team_data) -> None:
        """
        Creates a new team with the provided data and sets the team ID for the current instance.

        Args:
            team_data (dict): A dictionary containing the data for creating the team.

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

    def delete(self, hard=False) -> Optional[Response]:
        """
        Delete the team 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 team might be marked as deleted but retained in the system.
            In a hard delete, the team is permanently removed from the system.

        Returns:
            (Optional[Response]): The response from the delete request, or None if it fails.
        """
        return super().delete(self.id, hard)

    def update(self, data) -> Optional[Response]:
        """
        Update the team resource represented by this instance.

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

        Returns:
            (Optional[Response]): The response from the update request, or Noe if it fails.
        """
        return super().update(self.id, data)

__init__(team_id=None, headers=None)

تهيئة مثيل Teams.

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

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

المعرف الفريد للفريق.

None
headers dict

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

None
شفرة المصدر في hub_sdk/modules/teams.py
def __init__(self, team_id: Optional[str] = None, headers: Optional[Dict[str, Any]] = None):
    """
    Initialize a Teams instance.

    Args:
        team_id (str, optional): The unique identifier of the team.
        headers (dict, optional): A dictionary of HTTP headers to be included in API requests.
    """
    super().__init__("teams", "team", headers)
    self.id = team_id
    self.data = {}
    if team_id:
        self.get_data()

create_team(team_data)

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

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

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

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

مطلوب

ارجاع:

نوع وصف
None

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

شفرة المصدر في hub_sdk/modules/teams.py
def create_team(self, team_data) -> None:
    """
    Creates a new team with the provided data and sets the team ID for the current instance.

    Args:
        team_data (dict): A dictionary containing the data for creating the team.

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

delete(hard=False)

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

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

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

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

False
ملاحظه

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

ارجاع:

نوع وصف
Optional[Response]

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

شفرة المصدر في hub_sdk/modules/teams.py
def delete(self, hard=False) -> Optional[Response]:
    """
    Delete the team 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 team might be marked as deleted but retained in the system.
        In a hard delete, the team is permanently removed from the system.

    Returns:
        (Optional[Response]): The response from the delete request, or None if it fails.
    """
    return super().delete(self.id, hard)

get_data()

استرداد البيانات لمثيل الفريق الحالي.

إذا تم تعيين معرف فريق صالح، فإنه يرسل طلبا لجلب بيانات الفريق وتخزينها في المثيل. إذا لم يتم تعيين معرف الفريق، فإنه يسجل رسالة خطأ.

ارجاع:

نوع وصف
None

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

شفرة المصدر في hub_sdk/modules/teams.py
def get_data(self) -> None:
    """
    Retrieves data for the current team instance.

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

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

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

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

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

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

update(data)

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

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

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

البيانات المحدثة لمورد الفريق.

مطلوب

ارجاع:

نوع وصف
Optional[Response]

الاستجابة من طلب التحديث، أو Noe في حالة فشله.

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

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

    Returns:
        (Optional[Response]): The response from the update request, or Noe if it fails.
    """
    return super().update(self.id, data)



hub_sdk.modules.teams.TeamList

قواعد: PaginatedList

شفرة المصدر في hub_sdk/modules/teams.py
class TeamList(PaginatedList):
    def __init__(self, page_size=None, public=None, headers=None):
        """
        Initialize a TeamList 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, "team", page_size, headers)

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

تهيئة مثيل TeamList.

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

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

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

None
public bool

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

None
headers dict

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

None
شفرة المصدر في hub_sdk/modules/teams.py
def __init__(self, page_size=None, public=None, headers=None):
    """
    Initialize a TeamList 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, "team", page_size, headers)