Files
mediahive/pyproject.toml
T
LeoVasanko 5b40e306d1
release / gui-build (linux, bash) (push) Successful in 45s
release / gui-build (windows, cmd) (push) Successful in 1m14s
release / gui-build (macos, bash) (push) Successful in 55s
macOS: WKWebView system backend (variant B)
Default pywebview backend on macOS, no bundled Qt/Chromium — much
smaller installer and updates.
2026-09-23 03:52:40 +00:00

123 lines
2.5 KiB
TOML

[project]
name = "mediahive"
dynamic = ["version"]
description = "MediaHive - Media scanning, indexing, and Netflix-style streaming"
readme = "README.md"
requires-python = ">=3.14"
dependencies = [
"aiofiles>=25.1.0",
"aiopathlib>=0.6.0",
"bencodepy>=0.9.5",
"fastapi-vue>=1.4.1",
"fastapi[standard]>=0.128.0",
"httpx[http2]>=0.28.1",
"msgspec>=0.19",
"parse-torrent-title>=2.8.1",
"platformdirs>=4.0",
"tomli-w>=1.2.0",
"uvicorn[standard]>=0.40.0",
]
[project.scripts]
mediahive = "mediahive.__main__:main"
[project.urls]
Repository = "https://git.zi.fi/LeoVasanko/mediahive"
[build-system]
requires = ["hatchling", "hatch-vcs"]
build-backend = "hatchling.build"
[tool.hatch.version]
source = "vcs"
[tool.hatch.build]
packages = ["mediahive"]
artifacts = ["mediahive/frontend-build"]
only-packages = true
[tool.hatch.build.targets.sdist.hooks.custom]
path = "scripts/fastapi-vue/buildhook.py"
[tool.hatch.build.targets.sdist.force-include]
"scripts/fastapi-vue/buildhook.py" = "scripts/fastapi-vue/buildhook.py"
"scripts/fastapi-vue/buildutil.py" = "scripts/fastapi-vue/buildutil.py"
[tool.uv]
package = true
[tool.uv.sources]
parse-torrent-title = { git = "https://github.com/platelminto/parse-torrent-title.git" }
[project.optional-dependencies]
gui = [
"pywebview[qt]>=6.2.1; platform_system == 'Linux'",
"pywebview>=6.2.1; platform_system != 'Linux'",
"velopack>=1.2",
"pythonnet>=3.1.0rc0; platform_system == 'Windows' and python_version >= '3.14'",
"pyinstaller>=6.0",
]
[dependency-groups]
dev = [
"httpx>=0.28.1",
"ruff>=0.15.14",
"setuptools-scm>=8",
]
[tool.ruff]
preview = true
[tool.ruff.lint]
select = ["ALL"]
ignore = [
"D203",
"D213",
"DOC201",
"COM812",
"T201",
"EM",
"TC",
"TRY003",
"S",
"CPY001",
"PLR",
"PLW",
# TEMP suppressions - revisit and remove after focused cleanup passes.
"C901",
"DOC501",
"ANN201",
"D103",
"FBT001",
"ANN001",
"D102",
"TRY300",
"D107",
"ANN202",
"B904",
"ASYNC220",
"E501",
"INP001",
"FBT002",
"PLC0415",
"D101",
"RUF006",
"SLF001",
"ASYNC240",
"N801",
"SIM102",
"DTZ005",
"RUF034",
"D415",
"D400",
"ANN401",
# Allow en-dash in docstrings (used for list formatting)
"RUF002",
# Allow ctypes COM variable names (CLSID_*, IID_*, etc.)
"N806",
# Allow inline comments that describe output formats
"ERA001",
# Allow unused local variables in ctypes COM boilerplate
"F841",
]