compute_diff now emits a simple subset of jsondiff's marshaled syntax:
plain key assignment for adds and full-value changes (lists replaced
wholesale), $delete for removed object keys, and $replace only when a
dict replaces a non-dict. Removed keys are always $delete, even when the
object becomes empty (jsondiff emitted $replace: {}).
apply_diff (single implementation in serialization.base, used by both
replay and patch_state) additionally accepts jsondiff-produced patches:
positional $insert/$delete and per-index nested diffs on lists, plus
$ escaping of user keys and values per the marshal format.
jsondiff moves to the dev dependency group; it is used only by tests
that verify patch compatibility in both directions.
47 lines
855 B
TOML
47 lines
855 B
TOML
[build-system]
|
|
requires = [
|
|
"hatchling>=1.25.0",
|
|
"hatch-vcs>=0.4.0",
|
|
]
|
|
build-backend = "hatchling.build"
|
|
|
|
[project]
|
|
name = "kanta"
|
|
dynamic = ["version"]
|
|
description = "Kanta No-SQL database for async Python and frameworks such as FastAPI and Sanic"
|
|
authors = [
|
|
{ name = "Leo Vasanko"},
|
|
]
|
|
keywords = ["kantadb"]
|
|
readme = "README.md"
|
|
requires-python = ">=3.11"
|
|
dependencies = [
|
|
"blake3>=1.0.8",
|
|
"msgspec>=0.20.0",
|
|
]
|
|
|
|
[project.scripts]
|
|
kanta = "kanta.__main__:main"
|
|
|
|
[project.optional-dependencies]
|
|
bin = [
|
|
"blake3>=1.0.8",
|
|
]
|
|
|
|
[project.urls]
|
|
Homepage = "https://vasanko.com/coders/kanta"
|
|
Repository = "https://git.zi.fi/LeoVasanko/kanta"
|
|
|
|
[dependency-groups]
|
|
dev = [
|
|
"jsondiff>=2.2.1",
|
|
"pytest>=9.0.2",
|
|
"pytest-asyncio>=1.3.0",
|
|
]
|
|
|
|
[tool.hatch.version]
|
|
source = "vcs"
|
|
|
|
[tool.hatch.build.targets.wheel]
|
|
packages = ["kanta"]
|