-
Notifications
You must be signed in to change notification settings - Fork 358
Expand file tree
/
Copy pathpyproject.toml
More file actions
94 lines (81 loc) · 2.82 KB
/
pyproject.toml
File metadata and controls
94 lines (81 loc) · 2.82 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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
[project]
name = "kiln-root"
version = "0.1.0"
description = "uv workspace project for Kiln AI. See kiln-ai package on pypi for our library (libs/core)"
readme = "README.md"
requires-python = ">=3.10"
dependencies = [
"certifi>=2024.8.30",
"jq>=1.11.0",
"kiln-ai==0.5.3",
"kiln-server",
"kiln-studio-desktop",
]
[dependency-groups]
dev = [
"diff-cover>=9.6.0",
"isort>=5.13.2",
"pytest-asyncio>=0.24.0",
"pytest>=8.3.3",
"respx>=0.22.0",
"pytest-xdist>=3.5",
"python-dotenv>=1.0.1",
"ruff>=0.15.0",
"watchfiles>=1.1.0",
"scalar-fastapi>=1.4.3",
"ty==0.0.8",
]
[tool.uv]
override-dependencies = [
"starlette>=0.49.1", # forces a safe minimum for the transitive dep
]
[tool.uv.workspace]
members = ["libs/core", "libs/server", "app/desktop"]
[tool.uv.sources]
kiln-server = { workspace = true }
kiln-studio-desktop = { workspace = true }
kiln-ai = { workspace = true }
[tool.ruff]
exclude = [".worktrees"]
[tool.ty.src]
exclude = [".worktrees", "**/test_*.py", "app/desktop/build/**", "app/web_ui/**", "**/.venv", "**/kiln_ai_server_client/**"]
[tool.ty.environment]
extra-paths = ["./libs/core/typings"]
[tool.ty.rules]
invalid-key = "ignore"
[tool.ruff.lint]
# I is import sorting
# F401 is unused imports
# RUF is ruff rules. In particular 012+008 are mutable defaults (important)
# FAST is FastAPI related linting
extend-select = ["I","F401","RUF","FAST","TID"]
[tool.ruff.lint.flake8-tidy-imports.banned-api]
"typing.cast" = { msg = "Avoid using typing.cast; prefer safer alternatives." }
[tool.pytest.ini_options]
addopts = "-n auto"
asyncio_mode = "auto"
# Needed to silence warning. See https://github.com/pytest-dev/pytest-asyncio/issues/924
asyncio_default_fixture_loop_scope = "function"
markers = [
"paid: marks tests as requring paid APIs. Not run by default, run with '--runpaid' option.",
"slow: marks tests as slow. Not run by default, run with '--runslow' option.",
"ollama: marks tests as requring ollama server. Not run by default, run with '--ollama' option.",
]
# pydantic deprecation warnings come from dependencies (not our code).
# The benchmark fixture "not used at all" warning is a false-positive from pytest-benchmark.
# File system timestamp warning is an intentional Kiln warning.
filterwarnings = [
"ignore:File system does not support fine-grained timestamps",
"ignore::pydantic.PydanticDeprecatedSince20",
"ignore:Benchmark fixture was not used at all in this test",
"ignore::DeprecationWarning:websockets.legacy",
"ignore::DeprecationWarning:websockets.server",
"ignore:.*WebSocketServerProtocol is deprecated:DeprecationWarning:uvicorn.protocols.websockets.websockets_impl",
]
[tool.coverage.run]
omit = [
"**/test_*.py",
"libs/core/kiln_ai/adapters/ml_model_list.py",
"**/conftest.py",
"*/kiln_ai_server_client/*",
]