zyra.connectors.discovery package

Submodules

Module contents

Dataset discovery backends and CLI for zyra search.

Implements a lightweight local backend that searches the packaged SOS dataset catalog at zyra.assets.metadata/sos_dataset_metadata.json.

Also includes a federated API search subcommand, zyra search api, that can query one or more Zyra-like APIs exposing /search (or equivalent via OpenAPI). Results are normalized and can be emitted as JSON/CSV or displayed as a compact table.

Usage examples:
  • zyra search “tsunami”

  • zyra search “GFS” –json

  • Use the selected URI with the matching connector, e.g.:

    zyra acquire ftp “$(zyra search ‘earthquake’ –select 1)” -o out.bin

API search examples:
class zyra.connectors.discovery.DatasetMetadata(id: 'str', name: 'str', description: 'str | None', source: 'str', format: 'str', uri: 'str')[source]

Bases: object

description: str | None
format: str
id: str
name: str
source: str
uri: str
class zyra.connectors.discovery.DiscoveryBackend[source]

Bases: object

Interface for dataset discovery backends.

search(query: str, *, limit: int = 10) list[DatasetMetadata][source]
class zyra.connectors.discovery.LocalCatalogBackend(catalog_path: str | None = None, *, weights: dict[str, int] | None = None)[source]

Bases: DiscoveryBackend

Local backend backed by the packaged SOS catalog JSON.

File: zyra.assets.metadata/sos_dataset_metadata.json Schema (subset of fields used here):

  • url (str): public catalog URL

  • title (str): dataset title

  • description (str): dataset description

  • keywords (list[str]): search tags

  • ftp_download (str|None): FTP base path to assets (preferred URI)

search(query: str, *, limit: int = 10) list[DatasetMetadata][source]
zyra.connectors.discovery.register_cli(p: ArgumentParser) None[source]