[build-system]
requires = ["poetry-core>=1.8.0", "poetry-dynamic-versioning>=1.0.0,<2.0.0"]
build-backend = "poetry_dynamic_versioning.backend"

[tool.poetry]
name = "scraibe"
version = "0.0.0"
description = "LocalAI-backed transcription and diarization client using vibevoice.cpp"
authors = ["Schmieder, Jacob <jacob.schmieder@dbfz.de>"]
license = "GPL-3.0-or-later"
readme = ["README.md", "LICENSE"]
repository = "https://github.com/JSchmie/ScAIbe"
documentation = "https://jschmie.github.io/ScrAIbe/"
keywords = [
    "transcription",
    "audio",
    "diarization",
    "localai",
    "vibevoice",
    "speech-to-text",
]
classifiers = [
    "Development Status :: 4 - Beta",
    "Intended Audience :: Developers",
    "License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
    "Programming Language :: Python :: 3.9",
    "Programming Language :: Python :: 3.10",
    "Programming Language :: Python :: 3.11",
    "Programming Language :: Python :: 3.12",
    "Topic :: Scientific/Engineering :: Artificial Intelligence",
]
packages = [{include = "scraibe"}]
exclude = [
    "__pycache__",
    "*.pyc",
    "test",
]

[tool.poetry.dependencies]
python = "^3.9"
tqdm = "^4.66.5"
numpy = "^1.26.4"
httpx = ">=0.28.0"

[tool.poetry.group.dev.dependencies]
pytest = "^8.1.1"

[tool.poetry-dynamic-versioning]
enable = true
vcs = "git"
strict = true
format-jinja = """
    {%- if distance == 0 -%}
        {{ serialize_pep440(base) }}
    {%- elif branch == 'develop' -%}
        {{ serialize_pep440(bump_version(base), dev = distance) }}
    {%- else -%}
        {{ serialize_pep440(bump_version(base), dev=distance, metadata=[commit]) }}
    {%- endif -%}
"""

[tool.poetry.group.docs.dependencies]
sphinx = "^7.3.7"
sphinx-rtd-theme = ">=2,<4"
markdown-it-py = {version = "~3.0.0", extras = ["plugins"]}
myst-parser = "^3.0.1"
mdit-py-plugins = "^0.4.1"

[tool.poetry.scripts]
scraibe = "scraibe.cli:cli"

[tool.poetry.extras]
app = ["scraibe-webui"]

[tool.ruff]
line-length = 58

[tool.ruff.lint.extend-per-file-ignores]
"__init__.py" = ["E402", "F403", "F401"]
"scraibe/misc.py" = ["E722"]
