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.
127 lines
2.8 KiB
TOML
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",
|
|
]
|