1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146
|
[build-system]
requires = ["setuptools", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "textual-image"
version = "0.8.5"
description = "Render images via Kitty's Terminal Graphics Protocol with Rich and Textual"
authors = [
{name = "Simon Hayessen", email = "simon@lnqs.io"}
]
readme = "README.md"
classifiers = [
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"Environment :: Console",
"Topic :: Software Development :: Libraries",
"Topic :: Software Development :: User Interfaces",
"License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)",
"License :: OSI Approved :: GNU Lesser General Public License v3 or later (LGPLv3+)",
"Operating System :: POSIX :: Linux",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Typing :: Typed",
]
dependencies = [
"pillow>=10.3.0",
"rich>=13.4.0",
]
[project.urls]
Homepage = "https://github.com/lnqs/textual-image"
Documentation = "https://github.com/lnqs/textual-image"
Repository = "https://github.com/lnqs/textual-image"
Issues = "https://github.com/lnqs/textual-image/issues"
[project.optional-dependencies]
textual = [
"textual>=0.68.0",
]
dev = [
"mypy",
"pytest",
"pytest-asyncio",
"pytest-cov",
"ruff",
"syrupy",
"tox",
"typing-extensions",
"typos",
]
[tool.setuptools.packages.find]
include = ["textual_image*"]
[tool.ruff]
lint.select = ["B", "D", "F", "I", "T", "Q"]
lint.ignore = ["B010"]
line-length = 120
exclude = [
".env",
".git",
".venv",
"__pycache__",
"env",
"venv",
]
[tool.ruff.lint.pydocstyle]
convention = "google"
[tool.ruff.lint.per-file-ignores]
"tests/**" = ["D"]
[tool.ruff.format]
docstring-code-format = true
[tool.pytest.ini_options]
asyncio_mode = "auto"
asyncio_default_fixture_loop_scope = "function"
[tool.coverage.report]
fail_under = 100
exclude_lines = ["if __name__ == .__main__.:", "if sys.platform"]
exclude_also = [
"no cover: start(?s:.)*?no cover: stop",
"\\A(?s:.*# pragma: exclude file.*)\\Z"
]
[tool.mypy]
strict = true
warn_unused_ignores = false
exclude = ['build/']
[tool.tox]
isolated_build = true
envlist = ["format-check", "lint", "spell-check", "types", "3.10", "3.11", "3.12", "3.13", "rich-only"]
[tool.tox.env.format-check]
description = "Format check"
skip_install = true
deps = "ruff"
commands = [["ruff", "format", "--check", "{posargs:.}"]]
[tool.tox.env.lint]
basepython = ["3.13"]
description = "Lint"
skip_install = true
deps = "ruff"
commands = [["ruff", "check", "{posargs:.}"]]
[tool.tox.env.spell-check]
basepython = ["3.13"]
description = "Spell check"
skip_install = true
deps = "typos"
commands = [["typos", "{posargs:.}"]]
[tool.tox.env.types]
basepython = ["3.13"]
description = "Type checking"
deps = ".[textual,dev]"
commands = [["mypy", "{posargs:.}"]]
[tool.tox.env_run_base]
description = "Run tests under {base_python}"
deps = ".[textual,dev]"
commands = [["pytest", "--cov=textual_image", "--cov-report=term-missing", "{tty:--color=yes}", "{posargs}"]]
[tool.tox.env.rich-only]
basepython = ["3.13"]
description = "Test with Rich only"
deps = ".[dev]"
commands = [["pytest", "{tty:--color=yes}", "{posargs}"]]
|