mirror of
https://github.com/agessaman/meshcore-bot.git
synced 2026-05-29 20:04:10 +00:00
ba32accc44
- pytest-timeout>=2.1.0 added; timeout=30s per test prevents runaway tests from hanging CI - asyncio_mode=auto in pyproject.toml [tool.pytest.ini_options]; async tests run without per-test markers - fail_under=27 in [tool.coverage.report] as the enforced coverage floor; target 40% tracked in TASK-14 - CI test matrix updated for Python 3.9, 3.11, 3.12
84 lines
2.1 KiB
TOML
84 lines
2.1 KiB
TOML
# pyproject.toml
|
|
[build-system]
|
|
requires = ["setuptools>=61.0", "wheel"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[project]
|
|
name = "meshcore-bot"
|
|
version = "0.1.0"
|
|
description = "MeshCore Bot using the meshcore-cli and meshcore.py packages"
|
|
readme = "README.md"
|
|
requires-python = ">=3.8"
|
|
dependencies = [
|
|
"pyserial>=3.5",
|
|
"bleak>=0.20.0",
|
|
"asyncio-mqtt>=0.11.0",
|
|
"configparser>=5.3.0",
|
|
"python-dateutil>=2.8.2",
|
|
"schedule>=1.2.0",
|
|
"colorlog>=6.7.0",
|
|
"requests>=2.31.0",
|
|
"urllib3>=2.0.0",
|
|
"pyephem>=4.1.4",
|
|
"geopy>=2.3.0",
|
|
"maidenhead>=1.4.0",
|
|
"pytz>=2023.3",
|
|
"aiohttp>=3.8.0",
|
|
"meshcore>=2.2.31",
|
|
"openmeteo-requests>=1.7.2",
|
|
"requests-cache>=1.1.1",
|
|
"retry-requests>=1.0.0",
|
|
"flask>=2.3.0",
|
|
"flask-socketio>=5.3.0",
|
|
"meshcore-cli",
|
|
"feedparser>=6.0.10",
|
|
"paho-mqtt>=1.6.0",
|
|
"cryptography>=41.0.0",
|
|
"pynacl>=1.5.0",
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
profanity = ["better-profanity>=0.7.0", "unidecode>=1.3.0"]
|
|
geo = ["pycountry>=23.12.0", "us>=2.0.0"]
|
|
test = ["pytest>=7.0", "pytest-asyncio>=0.21", "pytest-mock>=3.10", "pytest-cov>=4.0"]
|
|
docs = ["mkdocs-material>=9.0.0", "mkdocs-exclude>=1.0.0"]
|
|
|
|
[project.scripts]
|
|
meshcore-bot = "meshcore_bot:main"
|
|
meshcore-viewer = "modules.web_viewer.app:main"
|
|
|
|
[tool.setuptools]
|
|
# Include both the main module and the modules package
|
|
py-modules = ["meshcore_bot"]
|
|
packages = ["modules", "modules.commands", "modules.commands.alternatives",
|
|
"modules.commands.alternatives.inactive", "modules.service_plugins", "modules.web_viewer"]
|
|
|
|
[tool.setuptools.package-data]
|
|
"*" = ["*.json"]
|
|
modules = ["web_viewer/templates/*.html"]
|
|
|
|
[tool.ruff]
|
|
line-length = 120
|
|
target-version = "py38"
|
|
exclude = [".venv", "build", "dist"]
|
|
|
|
[tool.ruff.lint]
|
|
select = ["E", "F", "W", "I", "UP", "B", "C4", "SIM"]
|
|
ignore = ["E501"]
|
|
|
|
[tool.ruff.lint.per-file-ignores]
|
|
"tests/*" = ["S101"]
|
|
|
|
[tool.mypy]
|
|
python_version = "3.8"
|
|
ignore_missing_imports = true
|
|
warn_unused_ignores = true
|
|
|
|
[tool.coverage.run]
|
|
source = ["modules"]
|
|
omit = ["tests/*", ".venv/*"]
|
|
|
|
[tool.coverage.report]
|
|
fail_under = 70
|
|
show_missing = true
|