[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", ]