-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathpyproject.toml
More file actions
116 lines (99 loc) · 3.25 KB
/
pyproject.toml
File metadata and controls
116 lines (99 loc) · 3.25 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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
[build-system]
requires = ["scikit-build-core", "nanobind>=2.11.0", "meson>=1.9"]
build-backend = "scikit_build_core.build"
[project]
name = "webcodecs-py"
authors = [{ name = "Shiguredo Inc.", email = "contact+pypi@shiguredo.jp" }]
dynamic = ["version"]
description = "WebCodecs API for Python"
readme = "README.md"
license = "Apache-2.0"
license-files = ["LICENSE"]
classifiers = [
"Programming Language :: C++",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
"Programming Language :: Python :: Free Threading :: 2 - Beta",
"Operating System :: MacOS :: MacOS X",
"Operating System :: POSIX :: Linux",
"Operating System :: Microsoft :: Windows",
]
requires-python = ">=3.12"
dependencies = []
[project.urls]
Source = "https://github.com/shiguredo/webcodecs-py"
Discord = "https://discord.gg/shiguredo"
[dependency-groups]
dev = [
{ include-group = "test" },
{ include-group = "lint" },
{ include-group = "example" },
]
test = [
"pytest",
"pytest-repeat",
"pytest-timeout",
"pytest-benchmark",
"hypothesis",
"numpy",
"blend2d-py",
"pillow",
]
lint = ["ruff", "ty"]
example = ["uvc-py", "portaudio-py", "raw-player", "blend2d-py", "mp4-py"]
[tool.scikit-build]
minimum-version = "0.11.3"
sdist.include = ["VERSION"]
build-dir = "_build/{wheel_tag}"
[tool.scikit-build.build]
verbose = false
[tool.scikit-build.cmake]
version = ">=4.2"
define = { "CMAKE_CXX_STANDARD" = "20" }
args = ["-DCMAKE_BUILD_TYPE=Release"]
# 環境変数 USE_NVIDIA_CUDA_TOOLKIT=1 が設定されている場合
[[tool.scikit-build.overrides]]
if.env.USE_NVIDIA_CUDA_TOOLKIT = true
cmake.define.USE_NVIDIA_CUDA_TOOLKIT = "ON"
[tool.scikit-build.ninja]
version = ">=1.13"
[tool.scikit-build.wheel]
packages = ["src/webcodecs"]
expand-macos-universal-tags = true
[tool.scikit-build.metadata.version]
provider = "scikit_build_core.metadata.regex"
input = "VERSION"
regex = "^(?P<value>.+)$"
[tool.uv]
package = false
managed = true
python-preference = "only-managed"
[tool.pytest.ini_options]
testpaths = ["tests"]
# Property-Based Testing (PBT) は prop_ prefix を使用する
python_files = ["test_*.py", "prop_*.py"]
python_functions = ["test_*", "prop_*"]
# benchmark を有効にした場合は以下をコメントアウトする
# python_files = ["test_*.py", "bench_*.py"]
# addopts = "--benchmark-disable"
# ty の制限による誤検知を抑制する設定
# hypothesis の @composite が返す SearchStrategy の ParamSpec を
# ty が正しく解釈できない問題への対処
[[tool.ty.overrides]]
include = ["tests/prop_*.py"]
[tool.ty.overrides.rules]
missing-argument = "ignore"
# examples/ と tests/ で VideoFrame のオーバーロード解決に失敗する問題
# ty が TypedDict を dict のサブタイプとして認識できない、
# np.random.randint の戻り値型を正しく推論できないことが原因
[[tool.ty.overrides]]
include = ["examples/**/*.py", "tests/**/*.py"]
[tool.ty.overrides.rules]
no-matching-overload = "ignore"
[tool.ruff]
target-version = "py312"
line-length = 100
include = ["examples/**/*.py", "src/**/*.py", "tests/**/*.py"]