Files
Remote-Terminal-for-MeshCore/pyproject.toml
2026-03-08 20:42:03 -07:00

76 lines
1.7 KiB
TOML

[project]
name = "remoteterm-meshcore"
version = "2.7.8"
description = "RemoteTerm - Web interface for MeshCore radio mesh networks"
readme = "README.md"
requires-python = ">=3.10"
dependencies = [
"fastapi>=0.115.0",
"uvicorn[standard]>=0.32.0",
"pydantic-settings>=2.0.0",
"aiosqlite>=0.19.0",
"httpx>=0.28.1",
"pycryptodome>=3.20.0",
"pynacl>=1.5.0",
"meshcore==2.2.29",
"aiomqtt>=2.0",
"apprise>=1.9.7",
]
[project.optional-dependencies]
test = [
"pytest>=8.0.0",
"pytest-asyncio>=0.24.0",
"pytest-xdist>=3.0",
"httpx>=0.27.0",
]
[tool.pytest.ini_options]
asyncio_mode = "auto"
testpaths = ["tests"]
addopts = "-n auto --dist worksteal"
[tool.ruff]
target-version = "py310"
line-length = 100
[tool.ruff.lint]
select = [
"E", # pycodestyle errors
"W", # pycodestyle warnings
"F", # pyflakes
"I", # isort
"B", # flake8-bugbear
"C4", # flake8-comprehensions
"UP", # pyupgrade
"SIM", # flake8-simplify
]
ignore = [
"E501", # line too long (handled by formatter)
"SIM105", # contextlib.suppress - doesn't work well with async code
"SIM108", # ternary operator (sometimes less readable)
"SIM117", # nested with statements - can be clearer in tests
]
[tool.ruff.lint.isort]
known-first-party = ["app"]
[tool.pyright]
pythonVersion = "3.10"
typeCheckingMode = "basic"
include = ["app"]
exclude = ["references", ".venv", "tests"]
reportMissingImports = true
reportMissingTypeStubs = false
[dependency-groups]
dev = [
"httpx>=0.28.1",
"pip-licenses>=5.0.0",
"pytest>=9.0.2",
"pytest-asyncio>=1.3.0",
"pytest-xdist>=3.0",
"ruff>=0.8.0",
"pyright>=1.1.390",
]