@@ -307,9 +307,6 @@ def find_recipe(x, start = None, end = None):
307307# create a validator class
308308# create a variable class to hold metadata
309309class Variable :
310- def __init__ (self ):
311- self .long_name = None
312- self .gridded = None
313310 def __str__ (self ):
314311 # add a print method for each atrribute
315312 attrs = vars (self )
@@ -321,37 +318,30 @@ def __repr__(self):
321318
322319
323320class Validator :
324- def __init__ (self ):
325- self .rules = {}
326-
327- def add_rule (self , field , rule ):
328- self .rules [field ] = rule
329321
330322 keys = session_info ["keys" ]
331323 # add a deleter that removes from keys list
332324 def __delattr__ (self , name ):
333- if name != "keys" and "rules" not in name :
325+ if name != "keys" :
334326 if name in self .keys :
335327 self .keys .remove (name )
336328 super ().__delattr__ (name )
337329 # add remove method
338330 def remove (self , name ):
339- if name != "keys" and "rules" not in name :
331+ if name != "keys" :
340332 if name in self .keys :
341333 self .keys .remove (name )
342334 super ().__delattr__ (name )
343335
344336 # add reset method
345337 def reset (self ):
346338 for key in self .keys :
347- # do not remove rules
348- if "rules" not in key :
349- super ().__delattr__ (key )
339+ super ().__delattr__ (key )
350340 self .keys = []
351341
352342 # ensure self.x = y, adds x to the keys list
353343 def __setattr__ (self , name , value ):
354- if name != "keys" and "rules" not in name :
344+ if name != "keys" :
355345 if name not in self .keys :
356346 self .keys .append (name )
357347 # ensure this can be accessed via self[name]
@@ -382,7 +372,8 @@ def add_gridded_comparison(self,
382372 obs_multiplier = 1 ,
383373 obs_adder = 0 ,
384374 thredds = False ,
385- recipe = None
375+ recipe = None ,
376+ file_check = True
386377 ):
387378 """
388379
@@ -420,6 +411,8 @@ def add_gridded_comparison(self,
420411
421412 obs_adder (float): Adder for the observation
422413
414+ file_check (bool): Whether to check if the obs_path exists and variables are valid
415+
423416 """
424417
425418 # maybe include an averaging option: daily, monthly, annual etc.
@@ -512,10 +505,12 @@ def add_gridded_comparison(self,
512505 raise ValueError ("obs_variable be provided" )
513506
514507 gridded_dir = obs_path
515- if gridded_dir != "auto" :
516- if thredds is False :
517- if not os .path .exists (gridded_dir ):
518- raise ValueError (f"Gridded directory { gridded_dir } does not exist" )
508+
509+ if file_check :
510+ if gridded_dir != "auto" :
511+ if thredds is False :
512+ if not os .path .exists (gridded_dir ):
513+ raise ValueError (f"Gridded directory { gridded_dir } does not exist" )
519514 # thredds must be boolean
520515 if not isinstance (thredds , bool ):
521516 raise ValueError ("thredds must be a boolean value" )
@@ -536,8 +531,9 @@ def add_gridded_comparison(self,
536531 except :
537532 raise ValueError (f"Could not open observation data file { sample_file } " )
538533 ds_variables = ds .variables
539- if obs_variable not in ds_variables :
540- raise ValueError (f"obs_variable { obs_variable } not found in observation data files" )
534+ if file_check :
535+ if obs_variable not in ds_variables :
536+ raise ValueError (f"obs_variable { obs_variable } not found in observation data files" )
541537
542538 if name in session_info ["short_title" ]:
543539 if short_title is not None :
0 commit comments