[project] name = "donglora-mux" version = "1.0.0" description = "DongLoRa USB Multiplexer — share one dongle with multiple applications" license = "MIT" requires-python = ">=3.10" readme = "README.md" authors = [{ name = "Stephen Waits", email = "steve@waits.net" }] keywords = ["lora", "radio", "usb", "multiplexer"] classifiers = [ "Development Status :: 5 - Production/Stable", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Topic :: Communications :: Ham Radio", "Topic :: System :: Hardware", ] dependencies = [ # DongLoRa Protocol v2 wire primitives — encode_frame, decode_frame, Command/DeviceMessage # parsers, SetConfigResult, RxEvent, etc. Pinned tightly; the mux knows # intimate details about the v1.0 shape and will break if the protocol # moves. "donglora>=1.0.0,<2.0.0", ] [project.scripts] donglora-mux = "donglora_mux:main" [project.urls] Repository = "https://git.swaits.com/donglora/mux-py" Homepage = "https://git.swaits.com/donglora/mux-py" [dependency-groups] dev = ["ruff", "pytest", "pytest-cov", "pytest-asyncio"] [build-system] requires = ["hatchling"] build-backend = "hatchling.build" [tool.uv.sources] donglora = { path = "../client-py", editable = true } [tool.ruff] line-length = 100 target-version = "py310" [tool.ruff.lint] select = ["E", "W", "F", "I", "UP", "B", "C4", "ARG", "SIM", "RUF"] ignore = ["E501"] [tool.ruff.lint.isort] known-first-party = ["donglora", "donglora_mux"] [tool.pytest.ini_options] testpaths = ["tests"] asyncio_mode = "auto"