[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"

[project]
name = "langgraph-checkpoint-conformance"
version = "0.0.2"
description = "Conformance test suite for LangGraph checkpointer implementations."
authors = [{name = "William FH", email = "13333726+hinthornw@users.noreply.github.com"}]
requires-python = ">=3.10"
readme = "README.md"
license = "MIT"
dependencies = [
    "langgraph-checkpoint>=2.0.0",
]

[project.urls]
Source = "https://github.com/langchain-ai/langgraph/tree/main/libs/checkpoint-conformance"

[dependency-groups]
test = [
  "pytest",
  "pytest-asyncio",
]
lint = [
  "ruff",
  "ty",
]
dev = [
  {include-group = "test"},
  {include-group = "lint"},
]

[tool.hatch.build.targets.wheel]
include = ["langgraph"]

[tool.pytest.ini_options]
addopts = "--strict-markers --strict-config --durations=5 -vv"
testpaths = ["tests"]
asyncio_mode = "auto"

[tool.ty.rules]
# The extended methods (acopy_thread, adelete_for_runs, aprune) are checked
# at runtime via capability detection and may not exist on the installed
# base class. Dict literal inference is also overly strict for RunnableConfig.
unresolved-attribute = "ignore"
invalid-argument-type = "ignore"
invalid-return-type = "ignore"

[tool.ruff]
lint.select = [
  "E",  # pycodestyle
  "F",  # Pyflakes
  "UP", # pyupgrade
  "B",  # flake8-bugbear
  "I",  # isort
]
lint.ignore = ["E501", "B008"]
target-version = "py310"

[[tool.uv.index]]
name = "testpypi"
url = "https://test.pypi.org/simple/"
publish-url = "https://test.pypi.org/legacy/"
explicit = true
