[tool.poetry]
name = "textual"
version = "0.10.1"
homepage = "https://github.com/Textualize/textual"
description = "Modern Text User Interface framework"
authors = ["Will McGugan <will@textualize.io>"]
license = "MIT"
readme = "README.md"
classifiers = [
    "Development Status :: 4 - Beta",
    "Environment :: Console",
    "Intended Audience :: Developers",
    "Operating System :: Microsoft :: Windows :: Windows 10",
    "Operating System :: Microsoft :: Windows :: Windows 11",
    "Operating System :: MacOS",
    "Operating System :: POSIX :: Linux",
    "Programming Language :: Python :: 3.7",
    "Programming Language :: Python :: 3.8",
    "Programming Language :: Python :: 3.9",
    "Programming Language :: Python :: 3.10",
    "Programming Language :: Python :: 3.11",
    "Typing :: Typed",
]
include = [
    "src/textual/py.typed",
    { path = "docs/examples", format = "sdist" },
    { path = "tests", format = "sdist" },
    # The reason for the slightly convoluted path specification here is that
    # poetry populates the exclude list with the content of .gitignore, and
    # it also seems like exclude trumps include. So here we specify that we
    # want to package up the content of the docs-offline directory in a way
    # that works around that.
    { path = "docs-offline/**/*", format = "sdist" }
]

[tool.poetry.scripts]
textual = "textual.cli.cli:run"

[tool.poetry.dependencies]
python = "^3.7"
rich = ">12.6.0"
#rich = {path="../rich", develop=true}
importlib-metadata = "^4.11.3"
typing-extensions = "^4.0.0"

# Dependencies below are required for devtools only
aiohttp = { version = ">=3.8.1", optional = true }
click = {version = ">=8.1.2", optional = true}
msgpack = { version = ">=1.0.3", optional = true }
nanoid = ">=2.0.0"
mkdocs-exclude = "^1.0.2"

[tool.poetry.extras]
dev = ["aiohttp", "click", "msgpack"]

[tool.poetry.group.dev.dependencies]
pytest = "^7.1.3"
black = "^23.1.0"
mypy = "^1.0.0"
pytest-cov = "^2.12.1"
mkdocs = "^1.3.0"
mkdocstrings = {extras = ["python"], version = "^0.20.0"}
mkdocs-material = "^9.0.11"
pre-commit = "^2.13.0"
pytest-aiohttp = "^1.0.4"
time-machine = "^2.6.0"
Jinja2 = "<3.1.0"
syrupy = "^3.0.0"
mkdocs-rss-plugin = "^1.5.0"
httpx = "^0.23.1"
msgpack-types = "^0.2.0"
types-setuptools = "^67.2.0.1"

[tool.black]
includes = "src"

[tool.pytest.ini_options]
asyncio_mode = "auto"
testpaths = ["tests"]
addopts = "--strict-markers"
markers = [
    "integration_test: marks tests as slow integration tests (deselect with '-m \"not integration_test\"')",
]

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