Zum Inhalt springen

Referenz fĂŒr hub_sdk/modules/projects.py

Hinweis

Diese Datei ist verfĂŒgbar unter https://github.com/ultralytics/hub-sdk/blob/main/hub_sdk/modules/projects .py. Wenn du ein Problem entdeckst, hilf bitte mit, es zu beheben, indem du einen Pull Request đŸ› ïž einreichst. Vielen Dank 🙏!



hub_sdk.modules.projects.Projects

Basen: CRUDClient

Eine Klasse, die einen Client fĂŒr die Interaktion mit Projekten durch CRUD-Operationen darstellt. Diese Klasse erweitert die CRUDClient Klasse und bietet spezielle Methoden fĂŒr die Arbeit mit Projekten.

Attribute:

Name Typ Beschreibung
hub_client ProjectUpload

Eine Instanz von ProjectUpload, die fĂŒr die Interaktion mit Modell-Uploads verwendet wird.

id (str, None)

Der eindeutige Bezeichner des Projekts, falls vorhanden.

data dict

Ein Wörterbuch zum Speichern von Projektdaten.

Hinweis

Das Attribut "id" wird bei der Initialisierung gesetzt und kann zur eindeutigen Identifizierung eines Projekts verwendet werden. Das Attribut "data" wird verwendet, um Projektdaten zu speichern, die von der API abgerufen werden.

Quellcode in 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)

Initialisiere ein Projects-Objekt fĂŒr die Interaktion mit Projektdaten ĂŒber CRUD-Operationen.

Parameter:

Name Typ Beschreibung Standard
project_id str

Projekt-ID zum Abrufen von Daten.

None
headers dict

Ein Wörterbuch mit HTTP-Headern, die in API-Anfragen enthalten sein mĂŒssen.

None
Quellcode in 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)

Erzeugt ein neues Projekt mit den angegebenen Daten und setzt die Projekt-ID fĂŒr die aktuelle Instanz.

Parameter:

Name Typ Beschreibung Standard
project_data dict

Ein Wörterbuch, das die Daten fĂŒr die Erstellung des Projekts enthĂ€lt.

erforderlich

Retouren:

Typ Beschreibung
None

Die Methode gibt keinen Wert zurĂŒck.

Quellcode in hub_sdk/modules/projects.py
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)

Lösche die Projektressource, die durch diese Instanz reprÀsentiert wird.

Parameter:

Name Typ Beschreibung Standard
hard bool

Wenn True, fĂŒhre eine harte (permanente) Löschung durch.

False
Hinweis

Der Parameter "hart" legt fest, ob ein weiches Löschen (Standard) oder ein hartes Löschen durchgefĂŒhrt werden soll. Bei einer weichen Löschung wird das Projekt zwar als gelöscht markiert, bleibt aber im System erhalten. Bei einer harten Löschung wird das Projekt dauerhaft aus dem System entfernt.

Retouren:

Typ Beschreibung
Optional[Response]

Antwortobjekt der Löschanfrage oder Keine, wenn das Löschen fehlschlÀgt.

Quellcode in hub_sdk/modules/projects.py
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()

Ruft die Daten fĂŒr die aktuelle Projektinstanz ab.

Wenn eine gĂŒltige Projekt-ID festgelegt wurde, sendet es eine Anfrage, um die Projektdaten zu holen und speichert sie in der Instanz. Wenn keine Projekt-ID festgelegt wurde, wird eine Fehlermeldung ausgegeben.

Retouren:

Typ Beschreibung
None

Die Methode gibt keinen Wert zurĂŒck.

Quellcode in hub_sdk/modules/projects.py
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)

Aktualisiere die Projektressource, die durch diese Instanz reprÀsentiert wird.

Parameter:

Name Typ Beschreibung Standard
data dict

Die aktualisierten Daten fĂŒr die Projektressource.

erforderlich

Retouren:

Typ Beschreibung
Optional[Response]

Antwortobjekt der Aktualisierungsanfrage oder Keine, wenn die Aktualisierung fehlschlÀgt.

Quellcode in 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)

LĂ€dt eine Bilddatei in den mit diesem Kunden verbundenen Hub hoch.

Parameter:

Name Typ Beschreibung Standard
file str

Der Dateipfad oder die URL des Bildes, das hochgeladen werden soll.

erforderlich

Retouren:

Typ Beschreibung
Optional[Response]

Antwortobjekt der Anfrage fĂŒr das hochgeladene Bild oder Keine, wenn der Upload fehlschlĂ€gt.

Quellcode in hub_sdk/modules/projects.py
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

Basen: PaginatedList

Quellcode in hub_sdk/modules/projects.py
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"
        super().__init__(base_endpoint, "project", page_size, public, headers)

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

Initialisiere eine ProjectList-Instanz.

Parameter:

Name Typ Beschreibung Standard
page_size int

Die Anzahl der anzufordernden Artikel pro Seite.

None
public bool

Ob die GegenstÀnde öffentlich zugÀnglich sein sollen.

None
headers dict

Kopfzeilen, die in API-Anfragen enthalten sein mĂŒssen.

None
Quellcode in hub_sdk/modules/projects.py
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"
    super().__init__(base_endpoint, "project", page_size, public, headers)