defampersands(string):"""Allow terminated entities but escape wild ampersands."""
splits =string.split('&')iflen(splits)==1:
return string
result =splits[0]for split insplits[1:]:
if split:
for char in split:
ifchar.isspace():
result +="&"+ split; breakelif char ==';':
result +="&"+ split; breakelse: # end of split
result +="&"+ split
else: # empty split
result +="&"return result