Add pyproject.toml
This commit is contained in:
@@ -0,0 +1,89 @@
|
|||||||
|
[build-system]
|
||||||
|
requires = ["hatchling"]
|
||||||
|
build-backend = "hatchling.build"
|
||||||
|
|
||||||
|
[project]
|
||||||
|
name = "selectel-ml-tui"
|
||||||
|
version = "1.0.3"
|
||||||
|
description = "TUI-приложение для отображения потребления ИИ-роутера Selectel"
|
||||||
|
readme = "README.md"
|
||||||
|
requires-python = ">=3.10"
|
||||||
|
license = { text = "MIT" }
|
||||||
|
authors = [{ name = "Selectel ML Tokens" }]
|
||||||
|
keywords = ["selectel", "ai-router", "tui", "textual", "billing"]
|
||||||
|
classifiers = [
|
||||||
|
"Environment :: Console",
|
||||||
|
"Operating System :: POSIX :: Linux",
|
||||||
|
"Operating System :: MacOS",
|
||||||
|
"Programming Language :: Python :: 3",
|
||||||
|
"Topic :: Terminals :: Terminal Emulators/X Terminals",
|
||||||
|
]
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
"textual>=2.0",
|
||||||
|
"httpx>=0.27",
|
||||||
|
"pydantic>=2.7",
|
||||||
|
"pydantic-settings>=2.3",
|
||||||
|
"python-dotenv>=1.0",
|
||||||
|
"click>=8.1",
|
||||||
|
"platformdirs>=4.0",
|
||||||
|
"tomli>=2.0",
|
||||||
|
"tomli-w>=1.0",
|
||||||
|
]
|
||||||
|
|
||||||
|
[project.optional-dependencies]
|
||||||
|
dev = [
|
||||||
|
"pytest>=8.0",
|
||||||
|
"pytest-asyncio>=0.23",
|
||||||
|
"pytest-cov>=5.0",
|
||||||
|
"ruff>=0.5",
|
||||||
|
"mypy>=1.10",
|
||||||
|
]
|
||||||
|
build = ["pyinstaller>=6.0"]
|
||||||
|
|
||||||
|
[project.scripts]
|
||||||
|
selectel-ml-tui = "selectel_ml_tui.cli:main"
|
||||||
|
|
||||||
|
[project.urls]
|
||||||
|
Homepage = "https://selectel.ru"
|
||||||
|
|
||||||
|
[tool.hatch.build.targets.wheel]
|
||||||
|
packages = ["src/selectel_ml_tui"]
|
||||||
|
|
||||||
|
[tool.pytest.ini_options]
|
||||||
|
testpaths = ["tests"]
|
||||||
|
asyncio_mode = "auto"
|
||||||
|
|
||||||
|
[tool.coverage.run]
|
||||||
|
branch = true
|
||||||
|
source = ["selectel_ml_tui"]
|
||||||
|
|
||||||
|
[tool.coverage.report]
|
||||||
|
show_missing = true
|
||||||
|
fail_under = 80
|
||||||
|
exclude_lines = [
|
||||||
|
"pragma: no cover",
|
||||||
|
"if TYPE_CHECKING:",
|
||||||
|
"if __name__ == .__main__.:",
|
||||||
|
]
|
||||||
|
|
||||||
|
[tool.ruff]
|
||||||
|
target-version = "py310"
|
||||||
|
line-length = 88
|
||||||
|
src = ["src", "tests"]
|
||||||
|
|
||||||
|
[tool.ruff.lint]
|
||||||
|
select = ["E", "F", "W", "I", "UP", "B", "SIM"]
|
||||||
|
|
||||||
|
[tool.ruff.lint.isort]
|
||||||
|
known-first-party = ["selectel_ml_tui"]
|
||||||
|
|
||||||
|
[tool.ruff.format]
|
||||||
|
quote-style = "double"
|
||||||
|
|
||||||
|
[tool.mypy]
|
||||||
|
python_version = "3.10"
|
||||||
|
strict = true
|
||||||
|
files = ["src"]
|
||||||
|
show_error_codes = true
|
||||||
|
warn_unused_ignores = true
|
||||||
Reference in New Issue
Block a user