Repository navigation
Expand file tree
/
Copy pathpyproject.toml
More file actions
78 lines (67 loc) · 1.61 KB
/
Copy pathpyproject.toml
File metadata and controls
78 lines (67 loc) · 1.61 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
[project]
name = "tiroir"
version = "0.1.0"
description = "A self-hosted memory server for teams"
readme = "README.md"
requires-python = ">=3.13"
license = "Apache-2.0"
license-files = ["LICENSE"]
dependencies = [
"mcp",
"starlette",
"uvicorn",
"jinja2",
"python-multipart",
"ruamel.yaml",
"pygit2",
"PyStemmer",
"argon2-cffi",
"httpx",
"loguru",
]
[project.scripts]
tiroir = "tiroir.cli.main:main"
[dependency-groups]
dev = [
"ruff",
"pyrefly",
"pytest",
"hypothesis",
"import-linter",
"pip-audit",
"pip-licenses",
"zensical==0.0.73",
]
[build-system]
requires = ["uv_build>=0.9,<0.10"]
build-backend = "uv_build"
[tool.ruff]
line-length = 88
src = ["src", "tests"]
extend-exclude = ["delivery", "docs"]
[tool.ruff.lint]
select = ["E", "F", "I", "B", "UP", "SIM", "T20"]
[tool.pyrefly]
preset = "strict"
search-path = ["tests/integration"]
project-includes = ["src", "tests"]
[tool.pytest.ini_options]
testpaths = ["tests"]
addopts = ["--import-mode=importlib"]
pythonpath = ["tests/integration"]
[tool.importlinter]
root_package = "tiroir"
[[tool.importlinter.contracts]]
name = "The core imports no surface and no host"
type = "forbidden"
source_modules = ["tiroir.core"]
forbidden_modules = ["tiroir.server", "tiroir.cli", "tiroir.adapters"]
[[tool.importlinter.contracts]]
name = "The CLI imports neither the server nor an adapter"
type = "forbidden"
source_modules = ["tiroir.cli"]
forbidden_modules = ["tiroir.server", "tiroir.adapters"]
[[tool.importlinter.contracts]]
name = "The server and the adapters are independent"
type = "independence"
modules = ["tiroir.server", "tiroir.adapters"]