Overview
The UploadSummary and UploadResult models provide detailed information about file upload operations, including success/failure status and error details.
UploadResult
Represents the upload result for a single file.
Model Definition
from imagen_sdk import UploadResult
Fields
Path of the uploaded file.This is typically the local file path that was uploaded.
Whether the upload was successful.True if the file uploaded successfully, False otherwise.
Error message if upload failed.Contains the error description when success is False. None when upload succeeded.
Usage Examples
Successful Upload
from imagen_sdk import UploadResult
result = UploadResult(
file="/path/to/image1.jpg",
success=True,
error=None
)
print(f"File: {result.file}")
print(f"Success: {result.success}") # True
Failed Upload
result = UploadResult(
file="/path/to/image2.jpg",
success=False,
error="File size exceeds maximum allowed (10MB)"
)
if not result.success:
print(f"Upload failed for {result.file}")
print(f"Reason: {result.error}")
UploadSummary
Provides an aggregate summary of multiple file uploads.
Model Definition
from imagen_sdk import UploadSummary
Fields
Total number of files attempted.This is the sum of successful and failed uploads.
Number of successfully uploaded files.
Number of failed uploads.
results
list[UploadResult]
required
Detailed results for each file.Contains an UploadResult object for every file that was attempted.
Usage Examples
Creating an Upload Summary
from imagen_sdk import UploadSummary, UploadResult
summary = UploadSummary(
total=3,
successful=2,
failed=1,
results=[
UploadResult(
file="/path/to/image1.jpg",
success=True,
error=None
),
UploadResult(
file="/path/to/image2.jpg",
success=True,
error=None
),
UploadResult(
file="/path/to/image3.jpg",
success=False,
error="Invalid file format"
)
]
)
print(f"Uploaded {summary.successful}/{summary.total} files successfully")
# Output: Uploaded 2/3 files successfully
Processing Upload Results
# Check overall success
if summary.failed == 0:
print("All files uploaded successfully!")
else:
print(f"{summary.failed} file(s) failed to upload")
# Process each result
for result in summary.results:
if result.success:
print(f"✓ {result.file}")
else:
print(f"✗ {result.file} - {result.error}")
Filtering Failed Uploads
# Get all failed uploads
failed_uploads = [
result for result in summary.results
if not result.success
]
if failed_uploads:
print(f"Failed to upload {len(failed_uploads)} files:")
for result in failed_uploads:
print(f" - {result.file}: {result.error}")
Retry Failed Uploads
from imagen_sdk import ImagenClient
client = ImagenClient(api_key="your_api_key")
project_uuid = "project-123"
# Get files that failed
failed_files = [
result.file for result in summary.results
if not result.success
]
if failed_files:
print(f"Retrying {len(failed_files)} failed uploads...")
retry_summary = client.upload_images(project_uuid, failed_files)
print(f"Retry result: {retry_summary.successful}/{retry_summary.total} successful")
Calculating Success Rate
success_rate = (summary.successful / summary.total) * 100 if summary.total > 0 else 0
print(f"Upload success rate: {success_rate:.1f}%")
if success_rate < 100:
print("\nFailed uploads:")
for result in summary.results:
if not result.success:
print(f" {result.file}: {result.error}")
# Get list of successfully uploaded files
successful_files = [
result.file for result in summary.results
if result.success
]
print(f"Successfully uploaded {len(successful_files)} files:")
for file_path in successful_files:
print(f" - {file_path}")