-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathpyproject.toml
89 lines (80 loc) · 2.23 KB
/
pyproject.toml
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
[project]
name = "cat-ai"
version = "0.0.6"
description = "Python client for running CAT tests in a Python codebase"
authors = [
{ name = "Mike Gehard", email = "[email protected]" },
{ name = "Randy Lutcavich", email = "[email protected]" },
{ name = "Erik Luetkehans", email = "[email protected]" },
{ name = "Paul Zabelin", email = "[email protected]" },
{ name = "Tim Kersey", email = "[email protected]" },
{ name = "Michael Harris", email = "[email protected]" },
]
requires-python = ">=3.13"
readme = "README.md"
dependencies = [
# this small library should be kept independent
# consider adding dependencies to one of the dependency groups
]
license = { file = "LICENSE" }
[dependency-groups]
test = [
"matplotlib>=3.10.1",
"pytest>=8.3.4,<9",
"pytest-asyncio>=0.21.0,<0.22",
"mypy>=1.8.0,<2",
"pytest-snapshot>=0.9.0",
]
examples = ["openai>=1.63.2,<2", "python-dotenv>=1.0.1,<2"]
dev = [
"sphinx>=8.1.3,<9",
"sphinx-rtd-theme>=3.0.2,<4",
"sphinx-markdown-builder>=0.6.8,<0.7",
"notebook>=7.3.2",
"pydrive2>=1.21.3,<2",
"pydantic>=2.10.6,<3",
"ruff>=0.9.10",
"pytest-timeout>=2.3.1",
]
[tool.uv]
default-groups = ["test", "examples", "dev"]
[tool.pytest.ini_options]
asyncio_mode = "auto"
pythonpath = [".", "src"]
testpaths = ["tests"]
faulthandler_timeout = "100"
addopts = "-xvs --showlocals"
#log_cli = true
log_cli_level = "DEBUG"
log_cli_format = "%(asctime)s [%(levelname)8s] %(name)s: %(message)s"
[tool.mypy]
python_version = "3.13"
disallow_untyped_defs = true
disallow_incomplete_defs = true
check_untyped_defs = true
disallow_untyped_decorators = true
no_implicit_optional = true
warn_redundant_casts = true
warn_unused_ignores = true
warn_return_any = true
warn_unreachable = true
strict_optional = true
namespace_packages = true
explicit_package_bases = true
mypy_path = ["src"]
[tool.black]
line-length = 120
target-version = ['py313']
include = '\.pyi?$'
[tool.ruff]
line-length = 100
target-version = "py313"
[tool.ruff.lint.pycodestyle]
max-line-length = 120 # E501 reports lines that exceed the length
[tool.ruff.lint]
extend-ignore = ["E203"]
select = ["E", "F", "B", "I"]
[tool.ruff.lint.mccabe]
max-complexity = 10
[tool.ruff.lint.per-file-ignores]
"__init__.py" = ["F401"]