Files
kanta/pyproject.toml
T
LeoVasanko 379b0de1dc Replace jsondiff producer with own diff; support list edits in replay
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.
2026-09-02 04:06:36 +00:00

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"]