Skip to content

Roboflow

tensoris.lib.integrations.roboflow

Roboflow Computer Vision Dataset Integration Helper.

Classes

RoboflowIntegration

Roboflow Helper for downloading computer vision datasets in YOLO, COCO, or Pascal VOC formats.

References

Roboflow Python SDK Documentation: https://docs.roboflow.com/

Source code in src/tensoris/lib/integrations/roboflow.py
class RoboflowIntegration:
    """Roboflow Helper for downloading computer vision datasets in YOLO, COCO, or Pascal VOC formats.

    References:
        Roboflow Python SDK Documentation: https://docs.roboflow.com/
    """

    def __init__(self, api_key: str | None = None) -> None:
        """Initialize Roboflow client.

        Args:
            api_key: Optional Roboflow API key (defaults to ROBOFLOW_API_KEY env var).
        """
        self.api_key = api_key or os.environ.get("ROBOFLOW_API_KEY")

    @property
    def is_available(self) -> bool:
        """Check if roboflow package is installed."""
        return _ROBOFLOW_AVAILABLE

    def download_dataset(
        self,
        workspace: str,
        project_id: str,
        version: int,
        model_format: str = "yolov8",
        output_dir: str | Path = "inputs/datasets",
    ) -> Any:
        """Download dataset version from Roboflow Universe or Workspace.

        Args:
            workspace: Roboflow workspace identifier.
            project_id: Roboflow project ID.
            version: Dataset version number integer.
            model_format: Export format ('yolov8', 'coco', 'pascal_voc', 'tfrecord').
            output_dir: Destination directory.

        Returns:
            Roboflow dataset download object containing dataset location.
        """
        if not self.is_available:
            raise RuntimeError(
                "roboflow package is not installed. Install via `pip install roboflow` "
                "and set ROBOFLOW_API_KEY environment variable."
            )
        if not self.api_key:
            raise ValueError(
                "ROBOFLOW_API_KEY is required to download datasets from Roboflow."
            )

        rf = roboflow.Roboflow(api_key=self.api_key)
        proj = rf.workspace(workspace).project(project_id)
        dataset = proj.version(version).download(model_format, location=str(output_dir))
        return dataset
Attributes
is_available property
is_available

Check if roboflow package is installed.

Methods:
__init__
__init__(api_key=None)

Initialize Roboflow client.

Parameters:

Name Type Description Default
api_key str | None

Optional Roboflow API key (defaults to ROBOFLOW_API_KEY env var).

None
Source code in src/tensoris/lib/integrations/roboflow.py
def __init__(self, api_key: str | None = None) -> None:
    """Initialize Roboflow client.

    Args:
        api_key: Optional Roboflow API key (defaults to ROBOFLOW_API_KEY env var).
    """
    self.api_key = api_key or os.environ.get("ROBOFLOW_API_KEY")
download_dataset
download_dataset(
    workspace,
    project_id,
    version,
    model_format="yolov8",
    output_dir="inputs/datasets",
)

Download dataset version from Roboflow Universe or Workspace.

Parameters:

Name Type Description Default
workspace str

Roboflow workspace identifier.

required
project_id str

Roboflow project ID.

required
version int

Dataset version number integer.

required
model_format str

Export format ('yolov8', 'coco', 'pascal_voc', 'tfrecord').

'yolov8'
output_dir str | Path

Destination directory.

'inputs/datasets'

Returns:

Type Description
Any

Roboflow dataset download object containing dataset location.

Source code in src/tensoris/lib/integrations/roboflow.py
def download_dataset(
    self,
    workspace: str,
    project_id: str,
    version: int,
    model_format: str = "yolov8",
    output_dir: str | Path = "inputs/datasets",
) -> Any:
    """Download dataset version from Roboflow Universe or Workspace.

    Args:
        workspace: Roboflow workspace identifier.
        project_id: Roboflow project ID.
        version: Dataset version number integer.
        model_format: Export format ('yolov8', 'coco', 'pascal_voc', 'tfrecord').
        output_dir: Destination directory.

    Returns:
        Roboflow dataset download object containing dataset location.
    """
    if not self.is_available:
        raise RuntimeError(
            "roboflow package is not installed. Install via `pip install roboflow` "
            "and set ROBOFLOW_API_KEY environment variable."
        )
    if not self.api_key:
        raise ValueError(
            "ROBOFLOW_API_KEY is required to download datasets from Roboflow."
        )

    rf = roboflow.Roboflow(api_key=self.api_key)
    proj = rf.workspace(workspace).project(project_id)
    dataset = proj.version(version).download(model_format, location=str(output_dir))
    return dataset