Reproduction code:
>>> import aetcd
...
... async with aetcd.Client() as client:
... await client.put(b'foo', b'bar1', prev_kv=True)
... await client.put(b'foo', b'bar2', prev_kv=True)
... await client.delete(b'foo', prev_kv=True)
...
Put[header=ResponseHeader[cluster_id=14841639068965178418, member_id=10276657743932975437, revision=16, raft_term=3], prev_kv=KeyValue[key=b'', value=b'', create_revision=0, mod_revision=0, version=0, lease=0]]
Put[header=ResponseHeader[cluster_id=14841639068965178418, member_id=10276657743932975437, revision=17, raft_term=3], prev_kv=KeyValue[key=b'foo', value=b'bar1', create_revision=16, mod_revision=16, version=1, lease=0]]
Delete[header=ResponseHeader[cluster_id=14841639068965178418, member_id=10276657743932975437, revision=18, raft_term=3], deleted=1, prev_kv=KeyValue[key=b'foo', value=b'bar2', create_revision=16, mod_revision=17, version=2, lease=0]]
prev_kv must be None when previous values are missing.
Reproduction code:
prev_kvmust beNonewhen previous values are missing.