Search and record sets¶
- class ogcat.SearchQuery(terms=(), *, criteria=None)[source]¶
Bases:
objectBackend-neutral catalog record search query.
Terms are combined with AND semantics.
- Parameters:
terms (
Sequence[SearchTerm]) – Search terms to require.criteria (
Sequence[SearchTerm] |None) – Backwards-compatible alias forterms.
- terms: tuple[SearchTerm, ...]¶
- property criteria: tuple[SearchTerm, ...]¶
Backwards-compatible alias for search terms.
- eq(value: Any = None) SearchQuery¶
- Return type:
- equals(value: Any = None) SearchQuery¶
- Return type:
- contains(value: Any = None) SearchQuery¶
- Return type:
- match(value: Any = None) SearchQuery¶
- Return type:
- matches(value: Any = None) SearchQuery¶
- Return type:
- regex(value: Any = None) SearchQuery¶
- Return type:
- exists(value: Any = None) SearchQuery¶
- Return type:
- missing(value: Any = None) SearchQuery¶
- Return type:
- classmethod where(filters=None, **kwargs)[source]¶
Build an equality query from keyword filters.
- Return type:
- classmethod from_filters(*, where=None, contains=None, regex=None, match=None, exists=None, missing=None)[source]¶
Build a query from simple filter mappings.
- Return type:
- class ogcat.SearchTerm(field, op, value=None)[source]¶
Bases:
objectOne backend-neutral search predicate.
- Parameters:
field (
FieldPath) – Field path to resolve.op (
SearchOp) – Search operator.value (
Any) – Optional comparison value.
- op: SearchOp¶
- value: Any¶
- class ogcat.FieldPath(raw)[source]¶
Bases:
objectBackend-neutral field path used by search terms.
- Parameters:
raw (
str) – User-facing field path.user.andderived.prefixes are normalised to stored metadata namespaces.
- raw: str¶
- property stored: str¶
Return this field path normalised to the stored record shape.
- class ogcat.CatalogRecordSet(records, *, resolution_order=None)[source]¶
Bases:
Sequence[CatalogRecord]A lightweight, sequence-like view of catalog records.
- Parameters:
records (
Sequence[CatalogRecord]) – Records to expose.resolution_order (
Sequence[str] |None) – Namespace order for flattened field lookup.
- select(*fields)[source]¶
Return JSON-friendly rows for the selected fields.
- Return type:
list[MetadataDict]
- rows(fields)[source]¶
Return JSON-friendly rows for the selected fields.
- Parameters:
fields (
Sequence[str]) – Field names or dotted paths to resolve.- Return type:
list[MetadataDict]- Returns:
One dictionary per record.
- display_rows(fields, *, limit=None)[source]¶
Return CLI-style display rows for the selected fields.
- Parameters:
fields (
Sequence[str]) – Field names to resolve for each row.limit (
int|None) – Maximum number of records to format. Formats all records when omitted.
- Return type:
list[list[str]]
- field_paths()[source]¶
Return discoverable field paths present in this record set.
- Return type:
list[str]
- unique_values(field)[source]¶
Return unique scalar values present for a field.
- Return type:
list[JsonValue]
- preview(*, fields=('id', 'title', 'product', 'species', 'path'), limit=10)[source]¶
Build a Rich table preview of the selected fields.
- Return type:
Table
- to_dataframe(fields=None)[source]¶
Convert the records to a pandas DataFrame when pandas is available.
- Parameters:
fields (
Sequence[str] |None) – Optional selected fields. When omitted, full record dictionaries are used.- Return type:
Any- Returns:
pandas.DataFramecontaining the selected record data.- Raises:
ImportError – If pandas is not installed.