Fancy progress output fixes
This commit is contained in:
parent
83e44bbec3
commit
f49a9cbb62
|
@ -130,7 +130,7 @@ if not config.non_matching:
|
||||||
config.binutils_tag = "2.42-1"
|
config.binutils_tag = "2.42-1"
|
||||||
config.compilers_tag = "20240706"
|
config.compilers_tag = "20240706"
|
||||||
config.dtk_tag = "v0.9.5"
|
config.dtk_tag = "v0.9.5"
|
||||||
config.objdiff_tag = "v2.0.0-beta.5"
|
config.objdiff_tag = "v2.0.0"
|
||||||
config.sjiswrap_tag = "v1.1.1"
|
config.sjiswrap_tag = "v1.1.1"
|
||||||
config.wibo_tag = "0.6.11"
|
config.wibo_tag = "0.6.11"
|
||||||
|
|
||||||
|
|
|
@ -234,14 +234,14 @@ def load_build_config(
|
||||||
build_config: Dict[str, Any] = json.load(f)
|
build_config: Dict[str, Any] = json.load(f)
|
||||||
config_version = build_config.get("version")
|
config_version = build_config.get("version")
|
||||||
if config_version is None:
|
if config_version is None:
|
||||||
# Invalid config.json
|
print("Invalid config.json, regenerating...")
|
||||||
f.close()
|
f.close()
|
||||||
os.remove(build_config_path)
|
os.remove(build_config_path)
|
||||||
return None
|
return None
|
||||||
|
|
||||||
dtk_version = str(config.dtk_tag)[1:] # Strip v
|
dtk_version = str(config.dtk_tag)[1:] # Strip v
|
||||||
if versiontuple(config_version) < versiontuple(dtk_version):
|
if versiontuple(config_version) < versiontuple(dtk_version):
|
||||||
# Outdated config.json
|
print("Outdated config.json, regenerating...")
|
||||||
f.close()
|
f.close()
|
||||||
os.remove(build_config_path)
|
os.remove(build_config_path)
|
||||||
return None
|
return None
|
||||||
|
@ -1188,7 +1188,6 @@ def generate_objdiff_config(
|
||||||
}
|
}
|
||||||
|
|
||||||
# decomp.me compiler name mapping
|
# decomp.me compiler name mapping
|
||||||
# Commented out versions have not been added to decomp.me yet
|
|
||||||
COMPILER_MAP = {
|
COMPILER_MAP = {
|
||||||
"GC/1.0": "mwcc_233_144",
|
"GC/1.0": "mwcc_233_144",
|
||||||
"GC/1.1": "mwcc_233_159",
|
"GC/1.1": "mwcc_233_159",
|
||||||
|
@ -1365,16 +1364,11 @@ def calculate_progress(config: ProjectConfig) -> None:
|
||||||
def __init__(self, name: str) -> None:
|
def __init__(self, name: str) -> None:
|
||||||
self.name: str = name
|
self.name: str = name
|
||||||
self.code_total: int = 0
|
self.code_total: int = 0
|
||||||
self.code_fancy_frac: int = config.progress_code_fancy_frac
|
|
||||||
self.code_fancy_item: str = config.progress_code_fancy_item
|
|
||||||
self.code_progress: int = 0
|
self.code_progress: int = 0
|
||||||
self.data_total: int = 0
|
self.data_total: int = 0
|
||||||
self.data_fancy_frac: int = config.progress_data_fancy_frac
|
|
||||||
self.data_fancy_item: str = config.progress_data_fancy_item
|
|
||||||
self.data_progress: int = 0
|
self.data_progress: int = 0
|
||||||
self.objects_progress: int = 0
|
|
||||||
self.objects_total: int = 0
|
|
||||||
self.objects: Set[Object] = set()
|
self.objects: Set[Object] = set()
|
||||||
|
self.objects_progress: int = 0
|
||||||
|
|
||||||
def add(self, build_obj: Dict[str, Any]) -> None:
|
def add(self, build_obj: Dict[str, Any]) -> None:
|
||||||
self.code_total += build_obj["code_size"]
|
self.code_total += build_obj["code_size"]
|
||||||
|
@ -1384,7 +1378,6 @@ def calculate_progress(config: ProjectConfig) -> None:
|
||||||
include_object = build_obj["name"] not in self.objects
|
include_object = build_obj["name"] not in self.objects
|
||||||
if include_object:
|
if include_object:
|
||||||
self.objects.add(build_obj["name"])
|
self.objects.add(build_obj["name"])
|
||||||
self.objects_total += 1
|
|
||||||
|
|
||||||
if build_obj["autogenerated"]:
|
if build_obj["autogenerated"]:
|
||||||
# Skip autogenerated objects
|
# Skip autogenerated objects
|
||||||
|
@ -1460,32 +1453,39 @@ def calculate_progress(config: ProjectConfig) -> None:
|
||||||
print("Progress:")
|
print("Progress:")
|
||||||
|
|
||||||
for unit in progress_units.values():
|
for unit in progress_units.values():
|
||||||
if unit.objects_total == 0:
|
if len(unit.objects) == 0:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
code_frac = unit.code_frac()
|
code_frac = unit.code_frac()
|
||||||
data_frac = unit.data_frac()
|
data_frac = unit.data_frac()
|
||||||
print(
|
print(
|
||||||
f" {unit.name}: {code_frac:.2%} code, {data_frac:.2%} data ({unit.objects_progress} / {unit.objects_total} files)"
|
f" {unit.name}: {code_frac:.2%} code, {data_frac:.2%} data ({unit.objects_progress} / {len(unit.objects)} files)"
|
||||||
)
|
)
|
||||||
print(f" Code: {unit.code_progress} / {unit.code_total} bytes")
|
print(f" Code: {unit.code_progress} / {unit.code_total} bytes")
|
||||||
print(f" Data: {unit.data_progress} / {unit.data_total} bytes")
|
print(f" Data: {unit.data_progress} / {unit.data_total} bytes")
|
||||||
|
|
||||||
if config.progress_use_fancy:
|
if config.progress_use_fancy:
|
||||||
|
unit = progress_units.get("all") or progress_units.get("dol")
|
||||||
|
if unit is None or len(unit.objects) == 0:
|
||||||
|
return
|
||||||
|
|
||||||
|
code_frac = unit.code_frac()
|
||||||
|
data_frac = unit.data_frac()
|
||||||
print(
|
print(
|
||||||
"\nYou have {} out of {} {} and {} out of {} {}.".format(
|
"\nYou have {} out of {} {} and {} out of {} {}.".format(
|
||||||
math.floor(code_frac * unit.code_fancy_frac),
|
math.floor(code_frac * config.progress_code_fancy_frac),
|
||||||
unit.code_fancy_frac,
|
config.progress_code_fancy_frac,
|
||||||
unit.code_fancy_item,
|
config.progress_code_fancy_item,
|
||||||
math.floor(data_frac * unit.data_fancy_frac),
|
math.floor(data_frac * config.progress_data_fancy_frac),
|
||||||
unit.data_fancy_frac,
|
config.progress_data_fancy_frac,
|
||||||
unit.data_fancy_item,
|
config.progress_data_fancy_item,
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
# Generate and write progress.json
|
# Generate and write progress.json
|
||||||
progress_json: Dict[str, Any] = {}
|
progress_json: Dict[str, Any] = {}
|
||||||
for id, unit in progress_units.items():
|
for id, unit in progress_units.items():
|
||||||
if unit.objects_total == 0:
|
if len(unit.objects) == 0:
|
||||||
continue
|
continue
|
||||||
progress_json[id] = {
|
progress_json[id] = {
|
||||||
"code": unit.code_progress,
|
"code": unit.code_progress,
|
||||||
|
|
Loading…
Reference in New Issue