from parsec import ParsecError from parsec.util import itemstr from parsec.upgrade import upgrader, converter from parsec.fileparse import parse from cylc.owner import USER from cylc.envvar import expandvars from cylc.mkdir_p import mkdir_p import cylc.flags from cylc.cfgspec.utils import coerce_interval from cylc.cfgspec.utils import coerce_interval_list from cylc.network import PRIVILEGE_LEVELS "Cylc site and user configuration file spec." coercers['interval_seconds'] = lambda *args: coerce_interval( *args, check_syntax_version=False) coercers['interval_minutes'] = lambda *args: coerce_interval( *args, back_comp_unit_factor=60, check_syntax_version=False) coercers['interval_minutes_list'] = lambda *args: coerce_interval_list( *args, back_comp_unit_factor=60, check_syntax_version=False) SPEC = { 'process pool size': vdr(vtype='integer', default=4), 'temporary directory': vdr(vtype='string'), 'state dump rolling archive length': vdr( vtype='integer', vmin=1, default=10), 'disable interactive command prompts': vdr(vtype='boolean', default=True), 'enable run directory housekeeping': vdr(vtype='boolean', default=False), 'run directory rolling archive length': vdr( vtype='integer', vmin=0, default=2),
import shutil from tempfile import mkdtemp from parsec.config import config from parsec.validate import validator as vdr from parsec.validate import coercers from parsec import ParsecError from parsec.upgrade import upgrader, converter from cylc.owner import USER from cylc.envvar import expandvars from cylc.mkdir_p import mkdir_p import cylc.flags from cylc.cfgspec.utils import (coerce_interval, coerce_interval_list, DurationFloat) from cylc.network import PRIVILEGE_LEVELS coercers['interval_seconds'] = lambda *args: coerce_interval( *args, check_syntax_version=False) coercers['interval_minutes'] = lambda *args: coerce_interval( *args, back_comp_unit_factor=60, check_syntax_version=False) coercers['interval_minutes_list'] = lambda *args: coerce_interval_list( *args, back_comp_unit_factor=60, check_syntax_version=False) SPEC = { 'process pool size': vdr(vtype='integer', default=4), 'temporary directory': vdr(vtype='string'), 'state dump rolling archive length': vdr(vtype='integer', vmin=1, default=10), 'disable interactive command prompts': vdr(vtype='boolean', default=True), 'enable run directory housekeeping':
if "." in value[0]: # Dot is illegal in node names, probably bad range syntax. raise IllegalValueError("parameter", keys, value) else: n_dig = len(upper) return [str(i).zfill(n_dig) for i in range(int(lower), int(upper) + 1)] return value coercers["cycletime"] = _coerce_cycletime coercers["cycletime_format"] = _coerce_cycletime_format coercers["cycletime_time_zone"] = _coerce_cycletime_time_zone coercers["cycleinterval"] = _coerce_cycleinterval coercers["final_cycletime"] = _coerce_final_cycletime coercers["interval"] = coerce_interval coercers["interval_minutes"] = lambda *a: coerce_interval(*a, back_comp_unit_factor=60) coercers["interval_seconds"] = coerce_interval coercers["interval_list"] = coerce_interval_list coercers["interval_minutes_list"] = lambda *a: coerce_interval_list(*a, back_comp_unit_factor=60) coercers["interval_seconds_list"] = coerce_interval_list coercers["parameter_list"] = _coerce_parameter_list SPEC = { "title": vdr(vtype="string", default=""), "description": vdr(vtype="string", default=""), "group": vdr(vtype="string", default="(ungrouped)"), "URL": vdr(vtype="string", default=""), "cylc": { "UTC mode": vdr(vtype="boolean", default=GLOBAL_CFG.get(["cylc", "UTC mode"])), "cycle point format": vdr(vtype="cycletime_format", default=None),
raise IllegalValueError("cycle point time zone format", keys, value) return value def _coerce_final_cycletime(value, keys, _): """Coerce final cycle point.""" return _strip_and_unquote(keys, value) coercers['cycletime'] = _coerce_cycletime coercers['cycletime_format'] = _coerce_cycletime_format coercers['cycletime_time_zone'] = _coerce_cycletime_time_zone coercers['cycleinterval'] = _coerce_cycleinterval coercers['final_cycletime'] = _coerce_final_cycletime coercers['interval'] = coerce_interval coercers['interval_minutes'] = lambda *a: coerce_interval( *a, back_comp_unit_factor=60) coercers['interval_seconds'] = coerce_interval coercers['interval_list'] = coerce_interval_list coercers['interval_minutes_list'] = lambda *a: coerce_interval_list( *a, back_comp_unit_factor=60) coercers['interval_seconds_list'] = coerce_interval_list SPEC = { 'title': vdr(vtype='string', default=""), 'description': vdr(vtype='string', default=""), 'URL': vdr(vtype='string', default=""), 'cylc': { 'UTC mode': vdr(vtype='boolean', default=GLOBAL_CFG.get(['cylc', 'UTC mode'])), 'cycle point format': vdr(vtype='cycletime_format', default=None),