def _update_key()

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")})