Repository navigation
Expand file tree
/
Copy pathpyproject.toml
More file actions
50 lines (45 loc) · 1.66 KB
/
Copy pathpyproject.toml
File metadata and controls
50 lines (45 loc) · 1.66 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
[project]
name = "analyzer"
version = "0.1.0"
description = "intro-skipper-style media segment detector for katalog (chapters, silence, blackframe, whisper, chromaprint)."
requires-python = ">=3.11"
dependencies = [
# HTTP client to katalog API (item detail, upload segments/chapters,
# step bookkeeping, fail). Sync because the consumer processes one item
# at a time per worker and there's no fan-out.
"httpx==0.28.1",
# Kafka consumer/producer. The manylinux wheel bundles librdkafka, so no
# apt/Dockerfile change is needed on the glibc (cuda/ubuntu) base — pip
# pulls the prebuilt wheel.
"confluent-kafka==2.5.3",
# Structured JSON logs that play nicely with the cluster log pipeline.
"structlog==25.4.0",
# Tiny FastAPI surface for /healthz + /readyz. uvicorn runs it side-car to
# the worker loop in the same process.
"fastapi==0.118.0",
"uvicorn[standard]==0.32.0",
# faster-whisper bundles CTranslate2 (CUDA-capable). The Dockerfile installs
# the matching CUDA libs.
"faster-whisper==1.1.0",
# The picture-area measurement decodes with PyAV, whose wheel brings its
# own FFmpeg libraries (8.1 for 18.1.0): the system's ffmpeg is never in
# between, and the planes it reads are the same wherever it runs. numpy
# reduces them. Both pinned: the rules' levels are of these decoders.
"av==18.1.0",
"numpy==2.4.6",
]
[project.optional-dependencies]
dev = [
"ruff==0.7.0",
"pytest==8.3.3",
]
[build-system]
requires = ["setuptools>=68"]
build-backend = "setuptools.build_meta"
[tool.setuptools.packages.find]
where = ["src"]
[tool.ruff]
line-length = 100
target-version = "py311"
[tool.ruff.lint]
select = ["E", "F", "I", "B", "UP", "RUF"]