nexus: harden boolean rendering

This commit is contained in:
Jaron Krogel 2020-01-28 14:04:38 -05:00
parent 858d656243
commit e8ffebd92d
1 changed files with 19 additions and 15 deletions

View File

@ -210,11 +210,7 @@ def attribute_to_value(attr):
#local write types
def yesno(var):
if var:
return 'yes'
else:
return 'no'
#end if
render_bool(var,'yes','no')
#end def yesno
def yesnostr(var):
@ -226,21 +222,29 @@ def yesnostr(var):
#end def yesnostr
def onezero(var):
if var:
return '1'
else:
return '0'
#end if
render_bool(var,'1','0')
#end def onezero
def truefalse(var):
if var:
return 'true'
else:
return 'false'
#end if
render_bool(var,'true','false')
#end def onezero
def render_bool(var,T,F):
if isinstance(var,bool) or var in (1,0):
if var:
return T
else:
return F
#end if
elif var in (T,F):
return var
else:
error('Invalid QMCPACK input encountered.\nUser provided an invalid value of "{}" when yes/no was expected.\nValid options are: "{}", "{}", True, False, 1, 0'.format(var,T,F))
#end if
#end def render_bool
bool_write_types = set([yesno,onezero,truefalse])