birdcage/tui/pyproject.toml
Ryan Malloy bf72e784d3 Add PyPI README files and MCP resource/prompt tests
- README.md for all three packages (core, TUI, MCP)
- pyproject.toml readme field for PyPI rendering
- 8 new tests for MCP resources (5) and prompts (3)
- Total MCP test coverage: 57 tests, 37 tools + 5 resources + 3 prompts
2026-02-17 19:15:23 -07:00

57 lines
1.4 KiB
TOML

[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[project]
name = "birdcage-tui"
version = "2026.02.17"
description = "Textual TUI for Winegard satellite dish control and amateur radio sky tracking"
readme = "README.md"
license = "MIT"
requires-python = ">=3.11"
authors = [{name = "Ryan Malloy", email = "ryan@supported.systems"}]
keywords = ["satellite", "antenna", "winegard", "amateur-radio", "ham", "tui", "textual"]
classifiers = [
"Development Status :: 4 - Beta",
"Environment :: Console",
"Intended Audience :: Science/Research",
"Topic :: Scientific/Engineering",
"Topic :: Communications :: Ham Radio",
]
dependencies = [
"winegard-birdcage>=2026.2.17",
"textual>=1.0.0",
]
[project.optional-dependencies]
camera = [
"Pillow>=10.0", # JPEG capture frames, annotated demo images
"astropy>=6.0", # FITS file export for radio astronomy pipelines
]
[project.urls]
Repository = "https://git.supported.systems/warehack.ing/birdcage"
Documentation = "https://birdcage.warehack.ing"
[project.scripts]
birdcage-tui = "birdcage_tui.app:main"
[tool.uv.sources]
winegard-birdcage = { path = "..", editable = true }
[tool.ruff]
target-version = "py311"
src = ["src"]
[tool.ruff.lint]
select = ["E", "F", "I", "UP", "B", "SIM"]
[tool.hatch.build.targets.wheel]
packages = ["src/birdcage_tui"]
[dependency-groups]
dev = [
"pytest>=9.0.2",
"pytest-asyncio>=1.3.0",
]