@@ -74,7 +74,7 @@ def start(self, command, datasets, config_file, config_dir, options):
7474 if not config_dir .is_dir ():
7575 raise NotADirectoryError (
7676 f"Invalid --config_dir given: { config_dir } is not an "
77- f"existing directory"
77+ f"existing directory" ,
7878 )
7979 CFG .update_from_dirs ([config_dir ])
8080 CFG .nested_update (options )
@@ -85,7 +85,8 @@ def start(self, command, datasets, config_file, config_dir, options):
8585
8686 # configure logging
8787 log_files = configure_logging (
88- output_dir = self .run_dir , console_log_level = self .log_level
88+ output_dir = self .run_dir ,
89+ console_log_level = self .log_level ,
8990 )
9091 logger .info ("Writing program log files to:\n %s" , "\n " .join (log_files ))
9192
@@ -175,7 +176,7 @@ def download_dataset(self, dataset, start_date, end_date, overwrite):
175176 """
176177 if not self .has_downloader (dataset ):
177178 raise ValueError (
178- f"Dataset { dataset } does not have an automatic downloader"
179+ f"Dataset { dataset } does not have an automatic downloader" ,
179180 )
180181 dataset_module = self ._dataset_to_module (dataset )
181182 logger .info ("Downloading %s" , dataset )
@@ -232,7 +233,7 @@ def format(self, start, end, install):
232233
233234 if failed_datasets :
234235 raise RuntimeError (
235- f"Format failed for datasets { ' ' .join (failed_datasets )} "
236+ f"Format failed for datasets { ' ' .join (failed_datasets )} " ,
236237 )
237238
238239 @staticmethod
@@ -327,11 +328,20 @@ def format_dataset(self, dataset, start, end, install):
327328 if os .path .isfile (reformat_script_root + ".ncl" ):
328329 reformat_script = reformat_script_root + ".ncl"
329330 success = self ._run_ncl_script (
330- in_data_dir , out_data_dir , dataset , reformat_script , start , end
331+ in_data_dir ,
332+ out_data_dir ,
333+ dataset ,
334+ reformat_script ,
335+ start ,
336+ end ,
331337 )
332338 elif os .path .isfile (reformat_script_root + ".py" ):
333339 success = self ._run_pyt_script (
334- in_data_dir , out_data_dir , dataset , start , end
340+ in_data_dir ,
341+ out_data_dir ,
342+ dataset ,
343+ start ,
344+ end ,
335345 )
336346 else :
337347 logger .error ("Could not find formatter for %s" , dataset )
@@ -354,15 +364,17 @@ def format_dataset(self, dataset, start, end, install):
354364 )
355365 else :
356366 logger .info (
357- "Installing dataset %s in folder %s" , dataset , target_dir
367+ "Installing dataset %s in folder %s" ,
368+ dataset ,
369+ target_dir ,
358370 )
359371 shutil .move (out_data_dir , target_dir )
360372 return True
361373
362374 def _get_dataset_tier (self , dataset ):
363375 for tier in [2 , 3 ]:
364376 if os .path .isdir (
365- os .path .join (self .rawobs , f"Tier{ tier } " , dataset )
377+ os .path .join (self .rawobs , f"Tier{ tier } " , dataset ),
366378 ):
367379 return f"Tier{ tier } "
368380 return None
@@ -405,31 +417,41 @@ def _write_ncl_settings(
405417 def _run_ncl_script (self , in_dir , out_dir , dataset , script , start , end ):
406418 """Run the NCL cmorization mechanism."""
407419 logger .info (
408- "CMORizing dataset %s using NCL script %s" , dataset , script
420+ "CMORizing dataset %s using NCL script %s" ,
421+ dataset ,
422+ script ,
409423 )
410424 project = {}
411425 project [dataset ] = {}
412426 project [dataset ]["indir" ] = in_dir
413427 project [dataset ]["outdir" ] = out_dir
414428 settings_file = self ._write_ncl_settings (
415- project , dataset , self .run_dir , script , start , end
429+ project ,
430+ dataset ,
431+ self .run_dir ,
432+ script ,
433+ start ,
434+ end ,
416435 )
417436
418437 # put settings in environment
419438 env = dict (os .environ )
420439 env ["settings" ] = settings_file
421440 env ["esmvaltool_root" ] = os .path .dirname (
422- os .path .dirname (os .path .dirname (os .path .dirname (script )))
441+ os .path .dirname (os .path .dirname (os .path .dirname (script ))),
423442 )
424443 env ["cmor_tables" ] = str (
425- Path (esmvalcore .cmor .__file__ ).parent / "tables"
444+ Path (esmvalcore .cmor .__file__ ).parent / "tables" ,
426445 )
427446 logger .info ("Using CMOR tables at %s" , env ["cmor_tables" ])
428447 # call NCL
429448 ncl_call = ["ncl" , script ]
430449 logger .info ("Executing cmd: %s" , " " .join (ncl_call ))
431450 with subprocess .Popen (
432- ncl_call , stdout = subprocess .PIPE , stderr = subprocess .STDOUT , env = env
451+ ncl_call ,
452+ stdout = subprocess .PIPE ,
453+ stderr = subprocess .STDOUT ,
454+ env = env ,
433455 ) as process :
434456 output , err = process .communicate ()
435457 for oline in str (output .decode ("utf-8" )).split ("\n " ):
@@ -475,12 +497,13 @@ def list(self):
475497 print ("-" * 71 )
476498 for dataset , dataset_info in self ._info ["datasets" ].items ():
477499 date = datetime .datetime .strptime (
478- str (dataset_info ["last_access" ]), "%Y-%m-%d"
500+ str (dataset_info ["last_access" ]),
501+ "%Y-%m-%d" ,
479502 )
480503 print (
481504 f"| { dataset :30} | { dataset_info ['tier' ]:4} "
482505 f"| { self ._has_downloader (dataset ):13} "
483- f"| { date .strftime ('%Y-%m-%d' )} |"
506+ f"| { date .strftime ('%Y-%m-%d' )} |" ,
484507 )
485508 print ("-" * 71 )
486509
@@ -498,7 +521,7 @@ def info(self, dataset):
498521 print (f"Tier: { dataset_info ['tier' ]} " )
499522 print (f"Source: { dataset_info ['source' ]} " )
500523 print (f"Automatic download: { self ._has_downloader (dataset )} " )
501- print ("" )
524+ print ()
502525 print (dataset_info ["info" ])
503526
504527 def download (
@@ -549,7 +572,11 @@ def download(
549572 end = self ._parse_date (end )
550573
551574 self .formatter .start (
552- "download" , datasets , config_file , config_dir , kwargs
575+ "download" ,
576+ datasets ,
577+ config_file ,
578+ config_dir ,
579+ kwargs ,
553580 )
554581 self .formatter .download (start , end , overwrite )
555582
@@ -601,7 +628,11 @@ def format(
601628 end = self ._parse_date (end )
602629
603630 self .formatter .start (
604- "formatting" , datasets , config_file , config_dir , kwargs
631+ "formatting" ,
632+ datasets ,
633+ config_file ,
634+ config_dir ,
635+ kwargs ,
605636 )
606637 self .formatter .format (start , end , install )
607638
@@ -656,7 +687,11 @@ def prepare(
656687 end = self ._parse_date (end )
657688
658689 self .formatter .start (
659- "preparation" , datasets , config_file , config_dir , kwargs
690+ "preparation" ,
691+ datasets ,
692+ config_file ,
693+ config_dir ,
694+ kwargs ,
660695 )
661696 if self .formatter .download (start , end , overwrite ):
662697 self .formatter .format (start , end , install )
@@ -678,6 +713,6 @@ def _parse_date(date):
678713 raise ValueError (
679714 f"Unsupported date format for { date } . "
680715 'Supported formats for "start" and "end" are: '
681- '"None", "YYYY", "YYYYMM", "YYYYMMDD"'
716+ '"None", "YYYY", "YYYYMM", "YYYYMMDD"' ,
682717 )
683718 return datetime .datetime .strptime (date_string , format_string )
0 commit comments