def update_validators(): """ Call this to updade the global nrml.validators """ validators.update({ 'fragilityFunction.id': valid.utf8, # taxonomy 'vulnerabilityFunction.id': valid.utf8, # taxonomy 'consequenceFunction.id': valid.utf8, # taxonomy 'asset.id': valid.asset_id, 'costType.name': valid.cost_type, 'costType.type': valid.cost_type_type, 'cost.type': valid.cost_type, 'area.type': valid.name, 'isAbsolute': valid.boolean, 'insuranceLimit': valid.positivefloat, 'deductible': valid.positivefloat, 'occupants': valid.positivefloat, 'value': valid.positivefloat, 'retrofitted': valid.positivefloat, 'number': valid.compose(valid.positivefloat, valid.nonzero), 'vulnerabilitySetID': str, # any ASCII string is fine 'vulnerabilityFunctionID': str, # any ASCII string is fine 'lossCategory': valid.utf8, # a description field 'lr': valid.probability, 'lossRatio': valid.positivefloats, 'coefficientsVariation': valid.positivefloats, 'probabilisticDistribution': valid.Choice('LN', 'BT'), 'dist': valid.Choice('LN', 'BT', 'PM'), 'meanLRs': valid.positivefloats, 'covLRs': valid.positivefloats, 'format': valid.ChoiceCI('discrete', 'continuous'), 'mean': valid.positivefloat, 'stddev': valid.positivefloat, 'minIML': valid.positivefloat, 'maxIML': valid.positivefloat, 'limitStates': valid.namelist, 'noDamageLimit': valid.NoneOr(valid.positivefloat), 'loss_type': valid_loss_types, 'losses': valid.positivefloats, 'averageLoss': valid.positivefloat, 'stdDevLoss': valid.positivefloat, 'ffs.type': valid.ChoiceCI('lognormal'), 'assetLifeExpectancy': valid.positivefloat, 'interestRate': valid.positivefloat, 'lossType': valid_loss_types, 'aalOrig': valid.positivefloat, 'aalRetr': valid.positivefloat, 'ratio': valid.positivefloat, 'cf': asset_mean_stddev, 'damage': damage_triple, 'damageStates': valid.namelist, 'taxonomy': taxonomy, 'tagNames': valid.namelist, })