-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathpyproject.toml
More file actions
91 lines (82 loc) 路 2.61 KB
/
Copy pathpyproject.toml
File metadata and controls
91 lines (82 loc) 路 2.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
79
80
81
82
83
84
85
86
87
88
89
90
91
[project]
name = "collagraph"
version = "0.10.0"
description = "Reactive user interfaces"
authors = [
{ name = "Berend Klein Haneveld", email = "berendkleinhaneveld@gmail.com" },
{ name = "Korijn van Golen", email = "korijn@gmail.com" }
]
requires-python = ">=3.10"
readme = "README.md"
license = "MIT"
dependencies = [
"observ>=0.17.1",
]
[project.scripts]
collagraph = "collagraph.__main__:run"
[project.entry-points.pyinstaller40]
hook-dirs = "collagraph.__pyinstaller:get_hook_dirs"
[project.optional-dependencies]
pygfx = ["pygfx>=0.13.0"]
pyside = ["PySide6>=6.6.2,!=6.8.3,!=6.9.0 ; python_version < '3.15'"]
[dependency-groups]
dev = [
"colorlog",
"prek",
"pytest",
"pytest-benchmark",
"pytest-cov",
"pytest-timeout",
"rich",
"ruff",
"twine",
"watchdog>=3.0.0",
]
docs = [
"mkdocs-material",
]
# When PySide6 is not installed, then pytest-qt will break the test suite.
# But pytest-qt can't be marked as an optional dev dependency. So instead
# it is now part of a group which can be installed as follows:
# > uv sync --group dev --group pyside-dev --extra pyside
pygfx = ["pygfx"]
pyside = ["pyside6"]
pyside-dev = [
"pytest-qt",
"pytest-xvfb",
]
[tool.uv.sources]
# observ = { path = "../observ", editable = true }
# pygfx = { path = "../pygfx", editable = true }
# pygfx = { git = "https://github.com/pygfx/pygfx" }
[tool.ruff.lint.per-file-ignores]
"bench/*" = ["F821", "N806"] # undefined-name, non-lowercase-variable-in-function
"bench/compare_runs.py" = ["T201"] # flake8-print (reporting script)
"collagraph/__init__.py" = ["I001"] # unsorted-imports
"collagraph/__pyinstaller/*" = ["N999"] # invalid-module-name
"collagraph/renderers/**/__init__.py" = ["F401"] # unused-import
"collagraph/renderers/__init__.py" = ["E402"] # module-import-not-at-top-of-file
"examples/*" = ["N999", "N802"] # invalid-module-name, invalid-function-name
"examples/pygfx/*.py" = ["I001"] # unsorted-imports
"examples/pyside/flow_layout.py" = ["N802"] # invalid-function-name
"tests/*" = ["N806", "N802"] # non-lowercase-variable-in-function, invalid-function-name
"tests/pyinstaller/*" = ["I001", "T20"] # unsorted-imports, flake8-print
"tests/pyside/test_*.py" = ["E402"] # module-import-not-at-top-of-file
[tool.ruff.lint]
select = [
"E4",
"E5",
"E7",
"E9",
"F", # Pyflakes (default)
"I", # isort imports
"N", # pep8-naming
"T10", # flake8-debugger
"T20", # flake8-print
"RUF", # ruff
]
[tool.pytest.ini_options]
addopts = "--benchmark-columns='mean, stddev, rounds'"
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"