Ctrl K
ComunidadGuías…

pyproject.toml

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
[tool.semantic_release]
version_source = "tag"
commit_version_number = true
branch = "main"
upload_to_pypi = false
upload_to_release = true
build_command = "python scripts/update_versions.py {version}"


[tool.semantic_release.commit_parser_options]
allowed_tags = [
    "build",
    "chore",
    "ci",
    "docs",
    "feat",
    "fix",
    "perf",
    "style",
    "refactor",
    "test",
]
minor_tags = ["feat"]
patch_tags = ["fix", "perf", "chore"]

[project]
name = "audiovault"
description = "Self-hosted application for importing, managing, and downloading music from major streaming platforms"
version = "0.6.3"

[tool.ruff]
line-length = 120
target-version = "py314"
# Treat backend/ as a source root so `app` resolves as first-party regardless
# of the working directory ruff is invoked from (repo root vs. cd backend in CI).
src = ["backend"]

[tool.ruff.lint]
select = [
  "E", "F", "W",  # pycodestyle + pyflakes
  "S",             # flake8-bandit (security)
  "B",             # flake8-bugbear (bugs + design issues)
  "I",             # isort
  "UP",            # pyupgrade (modern Python syntax)
  "N",             # pep8-naming
]
ignore = [
  "S101",  # allow assert
  "S311",  # allow random (non-security use)
  "S603",  # subprocess without shell — intentional
  "S607",  # partial path executable — intentional (ffmpeg, aria2)
]

[tool.ruff.lint.per-file-ignores]
"backend/tests/**" = ["S"]

[tool.ruff.lint.isort]
known-first-party = ["app"]

[tool.mypy]
python_version = "3.14"
ignore_missing_imports = true
disallow_untyped_calls = false
disallow_untyped_defs = false
check_untyped_defs = true
plugins = ["sqlalchemy.ext.mypy.plugin"]

[[tool.mypy.overrides]]
module = ["app.api.*"]
disable_error_code = ["assignment"]

[[tool.mypy.overrides]]
module = [
    "app.services.base_music_service",
    "app.services.soundcloud_service",
    "app.providers.generic",
    "app.api.v1.stream",
]
disable_error_code = ["arg-type", "return-value", "union-attr", "operator", "index"]
[tool.pyright]
include = ["backend/app"]
exclude = [
    "**/__pycache__",
    "**/node_modules",
    "backend/.venv",
    "backend/tests",
]
pythonVersion = "3.14"
typeCheckingMode = "basic"
venvPath = "."
venv = ".venv"
reportMissingImports = false
reportMissingTypeStubs = false
reportUnusedImport = true
reportUnusedVariable = true
# Dodatkowe wyłączenia dla zgodności z poprzednią konfiguracją
reportOptionalSubscript = "none"
reportOptionalMemberAccess = "none"
reportArgumentType = "none"
reportGeneralTypeIssues = "none"
reportPrivateImportUsage = "none"
reportCallIssue = "none"
reportTypedDictNotRequiredAccess = "none"
reportReturnType = "none"
reportOptionalOperand = "none"
reportOperatorIssue = "none"
extraPaths = ["backend/app"]