mod_file
Read mod.def file from the IPSL/modipsl project.
The mod.def file contains definitions of coupled model configurations. A single configuration consists of one or more components (e.g. athmospheric model, dynamics, I/O system, experiments).
Examples:
from ipsl_common.modipsl.mod_file import load
with open("mod.def", "r") as f:
configs = load(f)
The loaded dictionary has a fixed schema. Typically, it looks as follows:
{
'configuration': {
'GRISLI': {
'description': ['GRISLI stand-alone for Antarctica icesheets (prototype)']
'components': [
{
'modipsl_dir': '.',
'name': 'libIGCM',
'repository': 10,
'revision': 'HEAD',
'variant': 'trunk/libIGCM'
},
{
'modipsl_dir': 'modeles',
'name': 'GRISLI',
'repository': 26,
'revision': 'HEAD',
'variant': 'branches/xios'
},
(...)
],
},
(...)
},
'repository': {
7: {
'clone_url': 'https://gitlab.in2p3.fr/ipsl/projets/nemogcm/nemo.git',
'type': 'git'
},
8: {
'clone_url': '--username icmc_users https://forge.ipsl.fr/igcmg/svn',
'type': 'svn'
},
(...)
}
}
Warning
Because this module uses iterative matching to patterns (with re.finditer), it doesn't have a capability to tell, when the *.mod file is not well formatted, nor invalid. It will siliently skip non-matched lines and move on!
Functions
load
load(buffer: TextIOBase) -> dict
Load mod.def file from a text/file buffer.
Parameters:
-
(bufferTextIOBase) –text or file buffer with the mod.def file
Returns:
-
dict(dict) –Loaded mod.def file
Source code in ipsl_common/modipsl/mod_file.py
139 140 141 142 143 144 145 146 147 148 | |
loads
loads(content: str) -> dict
Load mod.def file from a string.
Parameters:
-
(contentstr) –content of the mod.def file
Returns:
-
dict(dict) –Loaded mod.def file
Source code in ipsl_common/modipsl/mod_file.py
151 152 153 154 155 156 157 158 159 160 161 162 163 164 | |