Source code for gpm_cli.cmd_search

"""gnssommelier search — search for GNSS products across analysis centers.

Examples::

    gnssommelier search ORBIT --date 2025-01-15
    gnssommelier search ORBIT --date 2025-01-15 --where TTT=FIN --where AAA=COD
    gnssommelier search ORBIT --date 2025-01-01 --to 2025-01-07
    gnssommelier search ORBIT --date 2025-01-15 --sources COD ESA GFZ
    gnssommelier search ORBIT --date 2025-01-15 --json results.json
"""

from __future__ import annotations

import datetime
import json
import time
from pathlib import Path
from typing import Annotated

import typer
from gnss_product_management import GNSSClient
from rich.table import Table

from gpm_cli import SIMPLE_HEAD, console, summary
from gpm_cli.config import ConfigLoader






def _parse_date(s: str) -> datetime.datetime:
    """Parse a ``YYYY-MM-DD`` string into a UTC-aware datetime."""
    return datetime.datetime.strptime(s, "%Y-%m-%d").replace(tzinfo=datetime.timezone.utc)