feat: include size in the final printout (#975)

* feat: include size in the final printout

Co-authored-by: Joe Rickerby <joerick@mac.com>
This commit is contained in:
Matthieu Darbois
2022-01-04 22:45:36 +01:00
committed by GitHub
co-authored by Joe Rickerby
parent 18ba7700f6
commit 45e5768514
2 changed files with 23 additions and 7 deletions
+19 -3
View File
@@ -12,7 +12,7 @@ import urllib.request
from enum import Enum
from pathlib import Path
from time import sleep
from typing import Any, Dict, Iterable, Iterator, List, Optional, TextIO
from typing import Any, Dict, Iterable, Iterator, List, NamedTuple, Optional, TextIO
import bracex
import certifi
@@ -352,11 +352,27 @@ def print_new_wheels(msg: str, output_dir: Path) -> Iterator[None]:
existing_contents = set(output_dir.iterdir())
yield
final_contents = set(output_dir.iterdir())
new_contents = final_contents - existing_contents
class FileReport(NamedTuple):
name: str
size: str
new_contents = [
FileReport(wheel.name, f"{(wheel.stat().st_size + 1023) // 1024:,d}")
for wheel in final_contents - existing_contents
]
max_name_len = max(len(f.name) for f in new_contents)
max_size_len = max(len(f.size) for f in new_contents)
n = len(new_contents)
s = time.time() - start_time
m = s / 60
print(msg.format(n=n, s=s, m=m), *sorted(f" {f.name}" for f in new_contents), sep="\n")
print(
msg.format(n=n, s=s, m=m),
*sorted(
f" {f.name:<{max_name_len}s} {f.size:>{max_size_len}s} kB" for f in new_contents
),
sep="\n",
)
def get_pip_version(env: Dict[str, str]) -> str:
+4 -4
View File
@@ -6,15 +6,15 @@ from cibuildwheel.util import print_new_wheels
def test_printout_wheels(tmp_path, capsys):
tmp_path.joinpath("example.0").touch()
with print_new_wheels("TEST_MSG: {n}", tmp_path):
tmp_path.joinpath("example.1").touch()
tmp_path.joinpath("example.2").touch()
tmp_path.joinpath("example.1").write_bytes(b"0" * 1023)
tmp_path.joinpath("example.2").write_bytes(b"0" * 1025)
captured = capsys.readouterr()
assert captured.err == ""
assert "example.0" not in captured.out
assert "example.1\n" in captured.out
assert "example.2\n" in captured.out
assert "example.1 1 kB\n" in captured.out
assert "example.2 2 kB\n" in captured.out
assert "TEST_MSG:" in captured.out
assert "TEST_MSG: 2\n" in captured.out