argos.core

Persistent application configuration stored as JSON.

Config file location: ~/.argos/config.json All values have sensible defaults and can be updated at runtime.

class argos.core.config.Config(data: dict[str, Any])[source]

Bases: object

Application configuration backed by a JSON file.

Usage:

config = Config.load() config.set(“alpaca.host”, “192.168.1.42”) config.save() host = config.get(“alpaca.host”)

property alpaca_host: str
property alpaca_port: int
get(key: str, default: Any = None) → Any[source]

Get a value using dot-notation key (e.g. ‘alpaca.host’).

classmethod load() → Config[source]

Load config from disk, creating defaults if the file does not exist.

save() → None[source]

Persist current config to disk.

property sessions_path: Path
set(key: str, value: Any) → None[source]

Set a value using dot-notation key and persist immediately.

Resolve an observing site name to WGS84 coordinates and terrain elevation.

The public Nominatim endpoint is queried only after an explicit user action; there is deliberately no keystroke autocomplete. Elevation is a convenience estimate from Open-Meteo’s 90 m DEM and must be edited when an observatory has a surveyed elevation.

exception argos.core.location_resolver.LocationResolutionError[source]

Bases: RuntimeError

A location name could not be resolved into usable coordinates.

class argos.core.location_resolver.LocationResult(label: str, latitude: float, longitude: float, elevation_m: float | None)[source]

Bases: object

One user-selectable observing site in WGS84 coordinates.

elevation_m: float | None
label: str
latitude: float
longitude: float
argos.core.location_resolver.search_locations(query: str, *, timeout_s: float = 8.0) → list[LocationResult][source]

Return up to five geocoded places for a deliberate free-form search.