Preparation for #914 and #920 Changes formatting to ruff and black. Remove python 3.8 ## Additional Changes - Removed flake8 dependencies - Adjusted pre-commit. Now CI and Make use pre-commit, reducing the duplication of linting calls - Removed check-docstyle option (ruff is doing that) - Merged format and lint. In CI the format-lint step fails if any changes are done, so it fulfills the lint functionality. --------- Co-authored-by: Jiayi Weng <jiayi@openai.com>
		
			
				
	
	
		
			37 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
#!/usr/bin/env python3
 | 
						|
 | 
						|
import csv
 | 
						|
import json
 | 
						|
import os
 | 
						|
import sys
 | 
						|
 | 
						|
 | 
						|
def merge(rootdir):
 | 
						|
    """format: $rootdir/$algo/*.csv."""
 | 
						|
    result = []
 | 
						|
    for path, _, filenames in os.walk(rootdir):
 | 
						|
        filtered_filenames = [f for f in filenames if f.endswith(".csv")]
 | 
						|
        if len(filtered_filenames) == 0:
 | 
						|
            continue
 | 
						|
        if len(filtered_filenames) != 1:
 | 
						|
            print(f"More than 1 csv found in {path}!")
 | 
						|
            continue
 | 
						|
        algo = os.path.relpath(path, rootdir).upper()
 | 
						|
        with open(os.path.join(path, filtered_filenames[0])) as f:
 | 
						|
            reader = csv.DictReader(f)
 | 
						|
            for row in reader:
 | 
						|
                result.append(
 | 
						|
                    {
 | 
						|
                        "env_step": int(row["env_step"]),
 | 
						|
                        "rew": float(row["reward"]),
 | 
						|
                        "rew_std": float(row["reward:shaded"]),
 | 
						|
                        "Agent": algo,
 | 
						|
                    },
 | 
						|
                )
 | 
						|
    with open(os.path.join(rootdir, "result.json"), "w") as f:
 | 
						|
        f.write(json.dumps(result))
 | 
						|
 | 
						|
 | 
						|
if __name__ == "__main__":
 | 
						|
    merge(sys.argv[-1])
 |