[tool.poetry]
name = "syng"
version = "2.0.0"
description = ""
authors = ["Christoph Stahl <christoph.stahl@tu-dortmund.de>"]
license = "GPL3"
readme = "README.md"
include = ["syng/static"]

[tool.poetry.scripts]
syng-client = "syng.client:main"
syng-server = "syng.server:main"
syng-gui = "syng.gui:main"
# syng-shell = "syng.webclientmockup:main"

[tool.poetry.dependencies]
python = "^3.8"
python-socketio = "^5.10.0"
aiohttp = "^3.9.1"
pytube = { version = "*", optional = true }
minio = { version = "^7.2.0", optional = true }
mutagen = { version = "^1.47.0", optional = true }
# aiocmd = "^0.1.5"
pillow = { version = "^10.1.0", optional = true}
yt-dlp = { version = "*", optional = true}
customtkinter = { version = "^5.2.1", optional = true}
qrcode = { version = "^7.4.2", optional = true }
pymediainfo = { version = "^6.1.0", optional = true }
pyyaml = { version = "^6.0.1", optional = true }
# async-tkinter-loop = "^0.9.2"
tkcalendar = { version = "^1.6.1", optional = true }
tktimepicker = { version = "^2.0.2", optional = true }
platformdirs = { version = "^4.0.0", optional = true }
packaging = {version = "^23.2", optional = true}

[tool.poetry.group.dev.dependencies]
types-pyyaml = "^6.0.12.12"
types-pillow = "^10.1.0.2"

[tool.poetry.extras]
client = ["minio", "mutagen", "pillow", "yt-dlp", 
          "customtkinter", "qrcode", "pymediainfo", "pyyaml",
          "tkcalendar", "tktimepicker", "platformdirs", "packaging"]
server = ["pytube"]

[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"

[tool.pyright]
exclude = [ ".venv" ]
venvPath = "."
venv = ".venv"

[tool.pylint."MESSAGES CONTROL"]
disable = '''too-many-lines,
too-many-ancestors
'''

[[tool.mypy.overrides]]
module = [
  "yt_dlp",
  "pymediainfo",
  "minio",
  "qrcode",
  "engineio",
  "tkcalendar",
  "customtkinter",
  "aiohttp",
  "tktimepicker",
  "platformdirs"
]
ignore_missing_imports = true

[tool.ruff]
line-length = 100