Commit 3317581a9698f4dea925e73ebe8a41aa4705fbfb
1 parent
7709b344
Exists in
rhitier-dev
Rewrite the csv_file_exist test
Showing
1 changed file
with
29 additions
and
28 deletions
Show diff stats
web/run.py
... | ... | @@ -976,16 +976,18 @@ def generate_csv_file_if_needed(target_slug, input_slug, |
976 | 976 | stopped_at.strftime(FILE_DATE_FMT)) |
977 | 977 | local_csv_file = join(CACHE_DIR, filename) |
978 | 978 | |
979 | - generate = True | |
979 | + skip_generation = False | |
980 | + | |
981 | + # It needs to have more than one line to not be empty (headers) | |
980 | 982 | if isfile(local_csv_file): |
981 | - # It needs to have more than one line to not be empty (headers) | |
982 | 983 | with open(local_csv_file) as f: |
983 | - cnt = 0 | |
984 | - for _ in f: | |
985 | - cnt += 1 | |
986 | - if cnt > 1: | |
987 | - generate = False | |
988 | - break | |
984 | + skip_generation = len(f.readlines()) > 0 | |
985 | + | |
986 | + if skip_generation: | |
987 | + hp_logger.debug(f"{local_csv_file} already exists") | |
988 | + return None | |
989 | + else: | |
990 | + hp_logger.debug(f"{local_csv_file} doesnt exist or is empty") | |
989 | 991 | |
990 | 992 | # temporary switch while migrating each target to spz |
991 | 993 | if target_slug in ['rosetta', 'juno', 'p67']: |
... | ... | @@ -993,26 +995,25 @@ def generate_csv_file_if_needed(target_slug, input_slug, |
993 | 995 | else: |
994 | 996 | csv_generator = generate_csv_contents_spz |
995 | 997 | |
996 | - if generate: | |
997 | - hp_logger.info("Generating CSV '%s'..." % local_csv_file) | |
998 | - try: | |
999 | - with open(local_csv_file, mode="w+") as f: | |
1000 | - f.write(csv_generator( | |
1001 | - target_slug=target_slug, input_slug=input_slug, | |
1002 | - started_at=started_at, stopped_at=stopped_at | |
1003 | - )) | |
1004 | - hp_logger.info("Generation of '%s' done." % filename) | |
1005 | - except Exception as e: | |
1006 | - from sys import exc_info | |
1007 | - from traceback import extract_tb | |
1008 | - exc_type, exc_value, exc_traceback = exc_info() | |
1009 | - hp_logger.error(e) | |
1010 | - for trace in extract_tb(exc_traceback): | |
1011 | - hp_logger.error(trace) | |
1012 | - if isfile(local_csv_file): | |
1013 | - hp_logger.warning("Removing failed CSV '%s'..." % local_csv_file) | |
1014 | - removefile(local_csv_file) | |
1015 | - abort(500, "Failed creating CSV '%s' : %s" % (filename, e)) | |
998 | + hp_logger.info("Generating CSV '%s'..." % local_csv_file) | |
999 | + try: | |
1000 | + with open(local_csv_file, mode="w+") as f: | |
1001 | + f.write(csv_generator( | |
1002 | + target_slug=target_slug, input_slug=input_slug, | |
1003 | + started_at=started_at, stopped_at=stopped_at | |
1004 | + )) | |
1005 | + hp_logger.info("Generation of '%s' done." % filename) | |
1006 | + except Exception as e: | |
1007 | + from sys import exc_info | |
1008 | + from traceback import extract_tb | |
1009 | + exc_type, exc_value, exc_traceback = exc_info() | |
1010 | + hp_logger.error(e) | |
1011 | + for trace in extract_tb(exc_traceback): | |
1012 | + hp_logger.error(trace) | |
1013 | + if isfile(local_csv_file): | |
1014 | + hp_logger.warning("Removing failed CSV '%s'..." % local_csv_file) | |
1015 | + removefile(local_csv_file) | |
1016 | + abort(500, "Failed creating CSV '%s' : %s" % (filename, e)) | |
1016 | 1017 | |
1017 | 1018 | |
1018 | 1019 | def remove_all_files(in_directory): | ... | ... |