[build-system]
requires = ["setuptools>=64", "setuptools_scm>=8"]
build-backend = "setuptools.build_meta"

[project]
name = "toot"
authors = [{ name="Ivan Habunek", email="ivan@habunek.com" }]
description = "Mastodon CLI client"
readme = "README.rst"
license = { file="LICENSE" }
requires-python = ">=3.8"
dynamic = ["version"]

classifiers = [
    "Environment :: Console :: Curses",
    "Environment :: Console",
    "License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
    "Operating System :: OS Independent",
    "Programming Language :: Python :: 3",
]

dependencies = [
    "beautifulsoup4>=4.5.0,<5.0",
    "click~=8.1",
    "requests>=2.13,<3.0",
    "tomlkit>=0.10.0,<1.0",
    "urwid>=2.0.0,<3.0",
    "wcwidth>=0.1.7",
]

[project.optional-dependencies]
# Required to display images in the TUI
images = [
    "pillow>=9.5.0",
    "term-image>=0.7.2",
]

# Required to display rich text in the TUI
richtext = [
    "urwidgets>=0.2,<0.3"
]

test = [
    "flake8",
    "pytest",
    "pytest-xdist[psutil]",
    "setuptools",
    "vermin",
    "typing-extensions",
    "pillow>=9.5.0",
]

dev = [
    "build",
    "flake8",
    "mypy",
    "pyright",
    "pyyaml",
    "textual-dev",
    "twine",
    "types-beautifulsoup4",
    "vermin",
]

[project.urls]
"Homepage" = "https://toot.bezdomni.net"
"Source" = "https://github.com/ihabunek/toot/"

[project.scripts]
toot = "toot.cli:cli"

[tool.setuptools]
packages=[
    "toot",
    "toot.cli",
    "toot.tui",
    "toot.tui.richtext",
    "toot.utils"
]

[tool.setuptools_scm]

[tool.pyright]
pythonVersion = "3.8"
