Skip to content

Commit 27e7262

Browse files
committed
fix: properly handle provision of optional configuraiton files
1 parent edeaadb commit 27e7262

File tree

1 file changed

+16
-2
lines changed

1 file changed

+16
-2
lines changed

payu/models/roms.py

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
from payu.models.model import Model
1313
from payu.fsops import mkdir_p
1414

15-
config_files = ['varinfo_seacofs.yaml']
15+
config_files = []
1616
optional_config_files = []
1717

1818
class Roms(Model):
@@ -29,7 +29,7 @@ def __init__(self, expt, name, config):
2929
self.optional_config_files = optional_config_files
3030

3131
def setup(self):
32-
# Add the model config file to the list of config files
32+
## handle mandatory config files
3333
if 'model_config' not in self.config:
3434
raise ValueError(
3535
"'model_config' field must be specified in config.yaml for "
@@ -46,6 +46,20 @@ def setup(self):
4646

4747
self.config_files.append(model_config)
4848

49+
## handle optional config files
50+
optional_config_files = self.expt.config['optional_config_files']
51+
if optional_config_files and isinstance(optional_config_files, str):
52+
optional_config_files = [optional_config_files]
53+
54+
for optional_file in optional_config_files:
55+
if not (Path(self.control_path) / optional_file).is_file():
56+
raise FileNotFoundError(
57+
f"Optional configuration file '{optional_file}' not found in the "
58+
f"control directory: {self.control_path}"
59+
)
60+
61+
self.optional_config_files.extend(optional_config_files)
62+
4963
super(Roms, self).setup()
5064

5165
# Set the model config file to be added after the executable

0 commit comments

Comments
 (0)