From 4d011f2c24895c770451199b720327bd635a1305 Mon Sep 17 00:00:00 2001 From: Matt Venn Date: Tue, 11 Apr 2023 19:07:47 +0200 Subject: [PATCH] lint --- project.py | 60 ++++++++++++++++++++---------------------------------- tt_tool.py | 4 ++-- 2 files changed, 24 insertions(+), 40 deletions(-) diff --git a/project.py b/project.py index 21ab6a7..6ebd979 100644 --- a/project.py +++ b/project.py @@ -51,54 +51,49 @@ def fetch_file(url, filename): with open(filename, 'wb') as fh: logging.info("written to {}".format(filename)) fh.write(r.content) - + return True -def fetch_wokwi_file(wokwi_id:int, file_requested:str, - destination_name:str = None): +def fetch_wokwi_file(wokwi_id: int, file_requested: str, + destination_name: str = None): ''' - fetch_wokwi_file -- perform a request on the wokwi api to + fetch_wokwi_file -- perform a request on the wokwi api to retrieve a file from a given project. - + @param wokwi_id: project id (integer) - @param file_requested: the specific file requested for the + @param file_requested: the specific file requested for the project, e.g. verilog or diagram.json @param destination_name: file to write out to with result ''' if destination_name is None or not len(destination_name): destination_name = file_requested - + url = f'https://wokwi.com/api/projects/{wokwi_id}/{file_requested}' return fetch_file(url, destination_name) -def install_wokwi_testing(wokwi_id:int, destination_dir:str='src', - resource_dir:str=None): - +def install_wokwi_testing(wokwi_id: int, destination_dir: str = 'src', + resource_dir: str = None): + wokwi_id_str = str(wokwi_id) - #wokwi_user_module = f'user_module_{wokwi_' - + if resource_dir is None or not len(resource_dir): resource_dir = os.path.join(os.path.dirname(__file__), 'testing') - - + # directories in testing/lib to copy over pyLibsDir = os.path.join(resource_dir, 'lib') - + # src template dir srcTplDir = os.path.join(resource_dir, 'src-tpl') - + for libfullpath in glob.glob(os.path.join(pyLibsDir, '*')): logging.info(f'Copying {libfullpath} to {destination_dir}') shutil.copytree( libfullpath, os.path.join(destination_dir, os.path.basename(libfullpath)), dirs_exist_ok=True) - - - - + for srcTemplate in glob.glob(os.path.join(srcTplDir, '*')): with open(srcTemplate, 'r') as f: contents = f.read() @@ -108,13 +103,8 @@ def install_wokwi_testing(wokwi_id:int, destination_dir:str='src', logging.info(f'writing src tpl to {outputFname}') outf.write(customizedContents) outf.close() - - - - - - - + + def get_project_source(yaml): # wokwi_id must be an int or 0 try: @@ -126,26 +116,20 @@ def get_project_source(yaml): # it's a wokwi project if wokwi_id != 0: src_file = f'user_module_{wokwi_id}.v' - if not fetch_wokwi_file(wokwi_id, 'verilog', - os.path.join("src", src_file) ): + if not fetch_wokwi_file(wokwi_id, 'verilog', os.path.join("src", src_file)): logging.error(f'Could not fetch verilog file for wokwi project {wokwi_id}') exit(1) - # also fetch the wokwi diagram - if not fetch_wokwi_file(wokwi_id, 'diagram.json', - os.path.join("src", 'wokwi_diagram.json')): + if not fetch_wokwi_file(wokwi_id, 'diagram.json', os.path.join("src", 'wokwi_diagram.json')): logging.error(f'Could not fetch diagram.json file for wokwi project {wokwi_id}') exit(1) - - + # attempt to download the *optional* truthtable for the project - if fetch_wokwi_file(wokwi_id, 'truthtable.md', - os.path.join('src', 'truthtable.md')): + if fetch_wokwi_file(wokwi_id, 'truthtable.md', os.path.join('src', 'truthtable.md')): logging.info(f'Wokwi project {wokwi_id} has a truthtable included, will test!') install_wokwi_testing(wokwi_id) - - + return [src_file, 'cells.v'] # else it's HDL, so check source files diff --git a/tt_tool.py b/tt_tool.py index 85a4fb6..7cf8a69 100755 --- a/tt_tool.py +++ b/tt_tool.py @@ -63,9 +63,9 @@ if __name__ == '__main__': if args.print_warnings: reports.print_warnings(args) - elif args.print_wokwi_id: + if args.print_wokwi_id: project.print_wokwi_id(project_yaml) - + if args.create_user_config: project.create_user_config(project_yaml)