22
22
from vtr import paths
23
23
24
24
25
- # The run number passed by get_latest_run_number is the latest run number for the task if this number is None. Otherwise
26
- # it is the run number to parse .
27
- global_run_dir_number = None
25
+ # The run directory name passed by set_global_run_dir is the run directory name to parse. If it is None,
26
+ # the latest run directory will be parsed .
27
+ global_run_dir_name = None
28
28
29
29
class RawDefaultHelpFormatter (
30
30
argparse .ArgumentDefaultsHelpFormatter , argparse .RawDescriptionHelpFormatter
@@ -228,12 +228,12 @@ def run_system_command(
228
228
229
229
# pylint: enable=too-many-arguments, too-many-instance-attributes, too-few-public-methods, too-many-locals
230
230
231
- def set_global_run_dir_number ( run_dir_number ):
231
+ def set_global_run_dir ( run_dir_name ):
232
232
"""
233
- Set the global run directory number .
233
+ Set the global run directory name .
234
234
"""
235
- global global_run_dir_number
236
- global_run_dir_number = run_dir_number
235
+ global global_run_dir_name
236
+ global_run_dir_name = run_dir_name
237
237
238
238
239
239
def check_cmd (command ):
@@ -536,12 +536,12 @@ def get_latest_run_dir(base_dir):
536
536
"""
537
537
Returns the run directory with the highest run number in base_dir
538
538
"""
539
- latest_run_number = get_latest_run_number (base_dir )
539
+ latest_run_dir_name = get_latest_run_dir_name (base_dir )
540
540
541
- if latest_run_number is None :
541
+ if latest_run_dir_name is None :
542
542
return None
543
543
544
- return str (PurePath (base_dir ) / run_dir_name ( latest_run_number ) )
544
+ return str (PurePath (base_dir ) / latest_run_dir_name )
545
545
546
546
547
547
def get_existing_run_dir (base_dir : str , run_dir : str ) -> str :
@@ -560,23 +560,24 @@ def get_next_run_number(base_dir):
560
560
"""
561
561
Returns the next available (i.e. non-existing) run number in base_dir
562
562
"""
563
- latest_run_number = get_latest_run_number (base_dir )
564
-
565
- if latest_run_number is None :
566
- next_run_number = 1
567
- else :
563
+ latest_run_dir_name = get_latest_run_dir_name (base_dir )
564
+ match = re .match (r"^run(\d{3})$" , latest_run_dir_name )
565
+ if match :
566
+ latest_run_number = int (match .group (1 ))
568
567
next_run_number = latest_run_number + 1
569
-
570
- return next_run_number
568
+ return next_run_number
569
+ else :
570
+ return 1
571
571
572
572
573
- def get_latest_run_number (base_dir ):
573
+ def get_latest_run_dir_name (base_dir ):
574
574
"""
575
575
Returns the highest run number of all run directories with in base_dir
576
576
"""
577
- global global_run_dir_number
578
- run_number = None
579
- if global_run_dir_number is None :
577
+ global global_run_dir_name
578
+ if global_run_dir_name is not None :
579
+ return global_run_dir_name
580
+ else :
580
581
run_number = 1
581
582
run_dir = Path (base_dir ) / run_dir_name (run_number )
582
583
@@ -590,10 +591,7 @@ def get_latest_run_number(base_dir):
590
591
591
592
# Currently one-past the last existing run dir,
592
593
# to get latest existing, subtract one
593
- run_number = run_number - 1
594
- else :
595
- run_number = global_run_dir_number
596
- return run_number
594
+ return run_dir_name (run_number - 1 )
597
595
598
596
599
597
def run_dir_name (run_num ):
0 commit comments