in sync/index.py [0:0]
def _update_key(self,
commit: CommitBuilder,
key: IndexKey,
key_changes: list[ChangeEntry],
) -> None:
existing = self._read(key, False)
new = existing.copy()
for old_value, new_value, _ in key_changes:
if new_value is None and old_value is None:
new = set()
elif new_value is None and old_value in new:
new.remove(old_value)
elif old_value is None:
new.add(new_value)
path_suffix = "/".join(key)
path = f"{self.get_root_path()}/{path_suffix}"
if new == existing:
return
if not new:
commit.delete([path])
return
if self.unique and len(new) > 1:
raise ValueError(f"Tried to insert duplicate entry for unique index {key}")
index_value = list(sorted(new))
commit.add_tree({path: json.dumps(index_value, indent=0).encode("utf8")})