mirror of
https://github.com/lynchaos/ashvale-station.git
synced 2026-09-12 12:47:49 +00:00
85 lines
2.7 KiB
TOML
85 lines
2.7 KiB
TOML
[build-system]
|
|
requires = ["setuptools>=68", "wheel"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[project]
|
|
name = "ashvale-station"
|
|
version = "1.0.0"
|
|
description = "Online machine learning weather forecasting for a Raspberry Pi and Sense HAT, with calibrated uncertainty and public self-verification."
|
|
readme = "README.md"
|
|
requires-python = ">=3.9"
|
|
license = { text = "Apache-2.0" }
|
|
authors = [
|
|
{ name = "Kemal Yaylali", email = "[email protected]" },
|
|
]
|
|
maintainers = [
|
|
{ name = "Kemal Yaylali", email = "[email protected]" },
|
|
]
|
|
keywords = [
|
|
"weather", "forecasting", "raspberry-pi", "sense-hat", "kalman-filter",
|
|
"recursive-least-squares", "conformal-prediction", "online-learning",
|
|
"time-series", "state-estimation", "edge-ml", "iot",
|
|
]
|
|
classifiers = [
|
|
"Development Status :: 4 - Beta",
|
|
"Intended Audience :: Science/Research",
|
|
"Intended Audience :: Developers",
|
|
"License :: OSI Approved :: Apache Software License",
|
|
"Operating System :: POSIX :: Linux",
|
|
"Programming Language :: Python :: 3",
|
|
"Programming Language :: Python :: 3.9",
|
|
"Programming Language :: Python :: 3.11",
|
|
"Programming Language :: Python :: 3.12",
|
|
"Topic :: Scientific/Engineering :: Atmospheric Science",
|
|
"Topic :: Scientific/Engineering :: Artificial Intelligence",
|
|
"Topic :: System :: Monitoring",
|
|
]
|
|
|
|
# Deliberately minimal. The learners are pure numpy so the whole process fits
|
|
# in about 150 MB of RSS on a 512 MB board. Anything added here should be
|
|
# justified against that budget.
|
|
dependencies = [
|
|
"fastapi>=0.110",
|
|
"uvicorn>=0.29",
|
|
"pydantic>=2.6",
|
|
"numpy>=1.24",
|
|
"PyYAML>=6.0",
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
# Hardware access. Prefer the apt packages on a Pi: sense-hat pulls in
|
|
# RTIMULib, which is a genuine ordeal to build inside a clean venv.
|
|
hardware = [
|
|
"sense-hat>=2.6.0",
|
|
"smbus2>=0.4.3",
|
|
]
|
|
dev = [
|
|
"httpx>=0.27",
|
|
"pytest>=8.0",
|
|
"ruff>=0.4",
|
|
]
|
|
|
|
[project.urls]
|
|
Homepage = "https://github.com/lynchaos/ashvale-station"
|
|
Repository = "https://github.com/lynchaos/ashvale-station"
|
|
Issues = "https://github.com/lynchaos/ashvale-station/issues"
|
|
Changelog = "https://github.com/lynchaos/ashvale-station/blob/main/CHANGELOG.md"
|
|
Documentation = "https://github.com/lynchaos/ashvale-station/blob/main/docs/DESIGN.md"
|
|
|
|
[project.scripts]
|
|
ashvale = "run:main"
|
|
|
|
[tool.setuptools]
|
|
packages = ["ashvale", "ashvale.models"]
|
|
|
|
[tool.ruff]
|
|
line-length = 100
|
|
target-version = "py39"
|
|
|
|
[tool.ruff.lint]
|
|
# UP is deliberately absent. With target-version = "py39" it fights the
|
|
# `from __future__ import annotations` style used throughout and generates
|
|
# several hundred findings for no behavioural gain. B currently finds nothing.
|
|
select = ["E", "F", "W", "I"]
|
|
ignore = ["E501"]
|