Download one file from a dataset

DownloadOneFileFromDataset.py

import os

import numpy as np
from LOGS import LOGS
from PIL import Image


def create_gradient_image(
    imageFile: str, width: int = 100, height: int = 100, scale: float = 1
):
    """Create a small gradient image.

    Args:
        width: Image width in pixels (default: 100)
        height: Image height in pixels (default: 100)

    Returns:
        PIL Image object with gradient pixel values
    """
    height = int(height * scale)
    width = int(width * scale)

    gradient_array = np.zeros((height, width, 3), dtype=np.uint8)
    for i in range(height):
        gradient_array[i, :] = [int(255 * i / height), int(255 * (1 - i / height)), 128]

    image = Image.fromarray(gradient_array, mode="RGB")
    image.save(imageFile)
    return imageFile


# Connect to LOGS
logs = LOGS(configFile="/home/sina/src/logs-py/testing/logs_configs/release.json")

# Create a directory for a image gallery
os.mkdir("image_gallery")
file1 = create_gradient_image("image_gallery/random_image_1.png", scale=1)
file2 = create_gradient_image("image_gallery/random_image_2.png", scale=2)
file3 = create_gradient_image("image_gallery/random_image_3.png", scale=3)

# Create a image folder dataset with the three created image files
dataset = logs.newDataset(files=[file1, file2, file3], formatOrFormatId="image")
logs.create(dataset)

# Fetch the dataset file list
dataset.fetchFiles()

# create output directory for downloaded files
outputDir = "downloaded_files"
os.mkdir(outputDir)

# Select the first from the file list and download it
firstFile = dataset.files[0]
path = dataset.downloadFile(firstFile, directory=outputDir)
print(f"Image file '{path}' successfully downloaded from dataset {dataset}.")