Files
mediahive/pyproject.toml
T
LeoVasanko 50420984f1 Use platformdirs for config and log locations
Config and logs now live in local (non-roaming) app data on Windows
(%LOCALAPPDATA%\mediahive) instead of roaming. Existing files in the
old roaming location are left untouched; no migration.
2026-09-23 00:44:10 +00:00

127 lines
2.8 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 != 'Windows'",
"pywebview>=6.2.1; platform_system == 'Windows'",
"velopack>=1.2",
"qtpy>=2.4.1; platform_system == 'Darwin'",
"PyQt5>=5.15.11; platform_system == 'Darwin'",
# pywebview[qt] no longer pulls this in; the macOS Qt backend needs it
"PyQtWebEngine>=5.15.7; platform_system == 'Darwin'",
"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",
]