mirror of https://github.com/zeldaret/botw.git
				
				
				
			tools/progress: Add option to print CSV line
This commit is contained in:
		
							parent
							
								
									88620ca9af
								
							
						
					
					
						commit
						601ecd92a1
					
				| 
						 | 
				
			
			@ -9,6 +9,8 @@ from util.utils import FunctionStatus
 | 
			
		|||
import typing as tp
 | 
			
		||||
 | 
			
		||||
parser = argparse.ArgumentParser()
 | 
			
		||||
parser.add_argument("--csv", "-c", action="store_true",
 | 
			
		||||
                    help="Print a CSV line rather than a human-readable progress report")
 | 
			
		||||
parser.add_argument("--print-nm", "-n", action="store_true",
 | 
			
		||||
                    help="Print non-matching functions with major issues")
 | 
			
		||||
parser.add_argument("--print-eq", "-e", action="store_true",
 | 
			
		||||
| 
						 | 
				
			
			@ -68,6 +70,7 @@ for info in utils.get_functions():
 | 
			
		|||
    counts[info.status] += 1
 | 
			
		||||
    code_size[info.status] += info.size
 | 
			
		||||
 | 
			
		||||
    if not args.csv:
 | 
			
		||||
        if info.status == FunctionStatus.NonMatching:
 | 
			
		||||
            if args.print_nm and not should_hide_nonmatching(info.decomp_name):
 | 
			
		||||
                print(f"{Fore.RED}NM{Fore.RESET} {utils.format_symbol_name(info.decomp_name)}")
 | 
			
		||||
| 
						 | 
				
			
			@ -97,6 +100,34 @@ def format_ai_progress(label: str, class_type: AIClassType):
 | 
			
		|||
    return f"{ai_counts_done[class_type]:>7d} {label}{Fore.RESET} ({percentage}%)"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
if args.csv:
 | 
			
		||||
    import git
 | 
			
		||||
 | 
			
		||||
    version = 1
 | 
			
		||||
    git_object = git.Repo().head.object
 | 
			
		||||
    timestamp = str(git_object.committed_date)
 | 
			
		||||
    git_hash = git_object.hexsha
 | 
			
		||||
 | 
			
		||||
    fields = [
 | 
			
		||||
        str(version),
 | 
			
		||||
        timestamp,
 | 
			
		||||
        git_hash,
 | 
			
		||||
 | 
			
		||||
        str(num_total),
 | 
			
		||||
        str(code_size_total),
 | 
			
		||||
 | 
			
		||||
        str(counts[FunctionStatus.Matching]),
 | 
			
		||||
        str(code_size[FunctionStatus.Matching]),
 | 
			
		||||
 | 
			
		||||
        str(counts[FunctionStatus.Equivalent]),
 | 
			
		||||
        str(code_size[FunctionStatus.Equivalent]),
 | 
			
		||||
 | 
			
		||||
        str(counts[FunctionStatus.NonMatching]),
 | 
			
		||||
        str(code_size[FunctionStatus.NonMatching]),
 | 
			
		||||
    ]
 | 
			
		||||
    print(",".join(fields))
 | 
			
		||||
 | 
			
		||||
else:
 | 
			
		||||
    print()
 | 
			
		||||
 | 
			
		||||
    print(f"{num_total:>7d} functions (size: ~{code_size_total} bytes)")
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue