128 lines
3.6 KiB
TOML
128 lines
3.6 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.7.2",
|
|
"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's qt extra is Qt6-only (QtPy + PyQt6 + PyQt6-WebEngine);
|
|
# Qt5 would come from its separate qt5 extra, which we do not use.
|
|
"pywebview[qt]>=6.2.1; platform_system != 'Windows'",
|
|
"pywebview>=6.2.1; platform_system == 'Windows'",
|
|
"velopack>=1.2",
|
|
"pythonnet>=3.1.0rc0; platform_system == 'Windows' and python_version >= '3.14'",
|
|
"pyinstaller>=6.0",
|
|
# scripts/guibuild.py reads the version with it (same logic as hatch-vcs).
|
|
"setuptools_scm>=8",
|
|
]
|
|
|
|
[dependency-groups]
|
|
dev = [
|
|
"httpx>=0.28.1",
|
|
"lefthook>=2.1.14",
|
|
"ruff>=0.15.14",
|
|
"setuptools-scm>=8",
|
|
]
|
|
|
|
[tool.ruff]
|
|
preview = true
|
|
|
|
[tool.ruff.lint]
|
|
select = ["ALL"]
|
|
ignore = [
|
|
"incorrect-blank-line-before-class",
|
|
"multi-line-summary-second-line",
|
|
"docstring-missing-returns",
|
|
"missing-trailing-comma",
|
|
"print",
|
|
"EM",
|
|
"TC",
|
|
"raise-vanilla-args",
|
|
"S",
|
|
"missing-copyright-notice",
|
|
"PLR",
|
|
"PLW",
|
|
# TEMP suppressions - revisit and remove after focused cleanup passes.
|
|
"complex-structure",
|
|
"docstring-missing-exception",
|
|
"missing-return-type-undocumented-public-function",
|
|
"undocumented-public-function",
|
|
"boolean-type-hint-positional-argument",
|
|
"missing-type-function-argument",
|
|
"undocumented-public-method",
|
|
"try-consider-else",
|
|
"undocumented-public-init",
|
|
"missing-return-type-private-function",
|
|
"raise-without-from-inside-except",
|
|
"create-subprocess-in-async-function",
|
|
"line-too-long",
|
|
"implicit-namespace-package",
|
|
"boolean-default-value-positional-argument",
|
|
"import-outside-top-level",
|
|
"undocumented-public-class",
|
|
"asyncio-dangling-task",
|
|
"private-member-access",
|
|
"blocking-path-method-in-async-function",
|
|
"invalid-class-name",
|
|
"collapsible-if",
|
|
"call-datetime-now-without-tzinfo",
|
|
"useless-if-else",
|
|
"missing-terminal-punctuation",
|
|
"missing-trailing-period",
|
|
"any-type",
|
|
# Allow en-dash in docstrings (used for list formatting)
|
|
"ambiguous-unicode-character-docstring",
|
|
# Allow ctypes COM variable names (CLSID_*, IID_*, etc.)
|
|
"non-lowercase-variable-in-function",
|
|
# Allow inline comments that describe output formats
|
|
"commented-out-code",
|
|
# Allow unused local variables in ctypes COM boilerplate
|
|
"unused-variable",
|
|
]
|