[project]
license = "Apache-2.0"
license-files = ["LICENSE", "NOTICE"]
name = "brick-contracts"
version = "0.2.0"
description = "Contracts: types, a clause library, templates with typed variables, deviation approval, a simple electronic signature with hash-chained evidence, amendments and key dates."
requires-python = ">=3.10"
# 0.5.3: the Idempotency-Key replay fix on DataK3; 0.5.2: bounded input types, ids as strings, Idempotency-Key, If-Match; 0.4 brought the work library,
# CapabilitySeam / @BRICK.capability, the public-link door, optimistic versions and the scenario harness.
# No PDF dependency: the renderer is a small pure-Python PDF writer (infrastructure/renderer.py).
dependencies = ["erp-platform>=0.9.8,<0.10"]
[project.optional-dependencies]
# The tier-1 tests and scenarios compose the REAL neighbours: business-partner (the counterparty) and hr (the
# first consumer of contracts.draft / send / status / fetch_executed).
test = ["pytest>=8", "uvicorn>=0.34", "python-multipart>=0.0.9", "brick-business-partner>=0.4", "brick-hr>=0.2", "pypdf>=4"]
[build-system]
requires = ["setuptools>=77"]
build-backend = "setuptools.build_meta"
[tool.setuptools.packages.find]
where = ["src"]
# The schema ships INSIDE the package (an installed brick migrates itself).
[tool.setuptools.package-data]
brick_contracts = ["schema.sql"]
[tool.pytest.ini_options]
testpaths = ["tests"]
addopts = "--show-capture=no"
pythonpath = ["src", "tests"]