Skip to content

Commit 62435a6

Browse files
committed
add file check options to add gridded
1 parent 5ed2268 commit 62435a6

1 file changed

Lines changed: 17 additions & 21 deletions

File tree

oceanval/parsers.py

Lines changed: 17 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -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
309309
class 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

323320
class 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

Comments
 (0)