in src/package_report.py [0:0]
def _generate_image_size_report(target_version, base_version, staging_repo_name, staging_account):
target_tag_gpu = f"{target_version.major}.{target_version.minor}.{target_version.patch}-gpu"
base_tag_gpu = f"{base_version.major}.{base_version.minor}.{base_version.patch}-gpu" if base_version else None
target_tag_cpu = f"{target_version.major}.{target_version.minor}.{target_version.patch}-cpu"
base_tag_cpu = f"{base_version.major}.{base_version.minor}.{base_version.patch}-cpu" if base_version else None
target_size_gpu = get_image_size(target_tag_gpu, staging_repo_name, staging_account)
base_size_gpu = get_image_size(base_tag_gpu, staging_repo_name, staging_account) if base_tag_gpu else None
target_size_cpu = get_image_size(target_tag_cpu, staging_repo_name, staging_account)
base_size_cpu = get_image_size(base_tag_cpu, staging_repo_name, staging_account) if base_tag_cpu else None
headers = ["Target Image Size", "Base Image Size", "Size Difference", "Size Change (%)"]
print("\n# GPU Total Image Size Report\n")
if target_size_gpu is not None and base_size_gpu is not None:
size_diff_gpu = target_size_gpu - base_size_gpu
size_diff_gpu_rel = size_diff_gpu / base_size_gpu if base_size_gpu != 0 else 0
size_change_gpu = f"{size_diff_gpu:.2f} GB {'Larger' if size_diff_gpu > 0 else ('Smaller' if size_diff_gpu < 0 else 'No Change')}"
size_change_percentage_gpu = (
f"{round(abs(size_diff_gpu_rel * 100), 2)}% {'Larger' if size_diff_gpu > 0 else ('Smaller' if size_diff_gpu < 0 else 'No Change')}"
if size_diff_gpu_rel
else "-"
)
rows = [
{
"Target Image Size": f"{target_tag_gpu}:{target_size_gpu:.2f} GB",
"Base Image Size": f"{base_tag_gpu}:{base_size_gpu:.2f} GB",
"Size Difference": size_change_gpu,
"Size Change (%)": size_change_percentage_gpu,
}
]
print(create_markdown_table(headers, rows))
else:
print(f"Failed to retrieve size for target image: {target_tag_gpu} or base image: {base_tag_gpu}")
print("\n# CPU Total Image Size Report\n")
if target_size_cpu is not None and base_size_cpu is not None:
size_diff_cpu = target_size_cpu - base_size_cpu
size_diff_cpu_rel = size_diff_cpu / base_size_cpu if base_size_cpu != 0 else 0
size_change_cpu = f"{size_diff_cpu:.2f} GB {'Larger' if size_diff_cpu > 0 else ('Smaller' if size_diff_cpu < 0 else 'No Change')}"
size_change_percentage_cpu = (
f"{round(abs(size_diff_cpu_rel * 100), 2)}% {'Larger' if size_diff_cpu > 0 else ('Smaller' if size_diff_cpu < 0 else 'No Change')}"
if size_diff_cpu_rel
else "-"
)
rows = [
{
"Target Image Size": f"{target_tag_cpu}:{target_size_cpu:.2f} GB",
"Base Image Size": f"{base_tag_cpu}:{base_size_cpu:.2f} GB",
"Size Difference": size_change_cpu,
"Size Change (%)": size_change_percentage_cpu,
}
]
print(create_markdown_table(headers, rows))
else:
print(f"Failed to retrieve size for target image: {target_tag_cpu} or base image: {base_tag_cpu}")