# .nick by definition same, check other fields for updatability;
# allow where '?', or for set .user only to add "~" prefix, assert
# nothing else could have changed
+ if stored.user == '?' or nickuserhost.user == f'~{stored.user}':
+ assert updating
+ stored.user = nickuserhost.user
+ else:
+ assert stored.user == nickuserhost.user
if stored.host == '?':
assert updating
stored.host = nickuserhost.host
- if stored.user == '?':
- stored.user = nickuserhost.user
- else:
- assert nickuserhost.user == stored.user
- elif nickuserhost.user == f'~{stored.user}':
- assert updating
+ else:
assert stored.host == nickuserhost.host
- stored.user = nickuserhost.user
- else: # not seen set .host with unset .user yet
- assert stored.user != '?'
elif create_if_none:
id_ = str(uuid4())
self[id_].nickuserhost = nickuserhost