[build-system]
requires = ["setuptools>=61.0", "wheel", "setuptools_scm>=8.0"]
build-backend = "setuptools.build_meta"

[project]
name = "pymc_repeater"
dynamic = ["version"]
authors = [
    {name = "Lloyd", email = "lloyd@rightup.co.uk"},
]
description = "PyMC Repeater Daemon"
readme = "README.md"
license = {text = "MIT"}
requires-python = ">=3.8"
classifiers = [
    "Development Status :: 4 - Beta",
    "Intended Audience :: Developers",
    "License :: OSI Approved :: MIT License",
    "Operating System :: POSIX :: Linux",
    "Programming Language :: Python :: 3",
    "Programming Language :: Python :: 3.8",
    "Programming Language :: Python :: 3.9",
    "Programming Language :: Python :: 3.10",
    "Programming Language :: Python :: 3.11",
    "Programming Language :: Python :: 3.12",
    "Topic :: Communications",
    "Topic :: System :: Networking",
]
keywords = ["mesh", "networking", "lora", "repeater", "daemon", "iot"]


dependencies = [
    "pymc_core[hardware]@git+https://github.com/rightup/pyMC_core.git@dev",
    "pyyaml>=6.0.0",
    "cherrypy>=18.0.0",
    "paho-mqtt>=1.6.0",
    "cherrypy-cors==1.7.0",
    "psutil>=5.9.0",
    "pyjwt>=2.8.0",
    "ws4py>=0.6.0",
]



[project.optional-dependencies]
# SX1262/SPI support (Linux only; required for Raspberry Pi HATs)
hardware = [
    "pymc_core[hardware]",
]
# RRD metrics (Performance Metrics chart); system librrd required (e.g. apt install rrdtool)
rrd = [
    "rrdtool",
]
dev = [
    "pytest>=7.4.0",
    "pytest-asyncio>=0.21.0",
    "black>=23.0.0",
    "isort>=5.12.0",
    "mypy>=1.7.0",
]

[project.scripts]
pymc-repeater = "repeater.main:main"
pymc-cli = "repeater.local_cli:main"

[tool.setuptools.packages.find]
where = ["."]
include = ["repeater*"]

[tool.setuptools.package-data]
repeater = [
    "web/html/*.html",
    "web/html/*.ico",
    "web/html/assets/**/*",
    "web/*.yaml",
    "web/*.html",
]

[tool.black]
line-length = 100
target-version = ['py38', 'py39', 'py310', 'py311', 'py312']

[tool.isort]
profile = "black"
line_length = 100

[tool.setuptools_scm]
version_scheme = "guess-next-dev"
local_scheme = "no-local-version"
version_file = "repeater/_version.py"
