Skip to content

query_pack

query_pack

Query packing utilities for batch GQL queries.

Classes

QueryPack

Bases: Packable

A packable for managing queries (gqueries) across scenarios.

Functions
excel_read_kwargs staticmethod
excel_read_kwargs()

Returns a dict representing the excel read kwargs like the header Availabale to overload for users own implementation

Source code in src/pyetm/models/packables/query_pack.py
@staticmethod
def excel_read_kwargs() -> Dict[str, Any]:
    """
    Returns a dict representing the excel read kwargs like the header
    Availabale to overload for users own implementation
    """
    return {"header": None}
add
add(*scenarios)

Add scenarios and ensure they receive any requested queries.

Source code in src/pyetm/models/packables/query_pack.py
def add(self, *scenarios: Any) -> None:
    """Add scenarios and ensure they receive any requested queries."""
    super().add(*scenarios)

    if not scenarios or not self.queries_requested():
        return

    for scenario in scenarios:
        scenario.add_queries(self._query_keys)
queries
queries()

Get the list of query keys.

Source code in src/pyetm/models/packables/query_pack.py
def queries(self) -> List[str]:
    """Get the list of query keys."""
    return self._query_keys.copy()
queries_requested
queries_requested()

Any gqueries requested?

Source code in src/pyetm/models/packables/query_pack.py
def queries_requested(self) -> bool:
    """Any gqueries requested?"""
    return len(self._query_keys) > 0
add_to_workbook
add_to_workbook(workbook, sheet_name=None, **kwargs)

Add gqueries results to workbook.

Source code in src/pyetm/models/packables/query_pack.py
def add_to_workbook(self, workbook: Workbook, sheet_name: Optional[str] = None, **kwargs: Any) -> None:
    """Add gqueries results to workbook."""
    columns = kwargs.get("columns", "future")
    gqueries_df = self.to_dataframe(columns=columns)
    if not gqueries_df.empty:
        self._add_dataframe_to_workbook(workbook, self.output_sheet_name, gqueries_df)
load_from_dataframe
load_from_dataframe(df)

Import query definitions from dataframe.

Source code in src/pyetm/models/packables/query_pack.py
def load_from_dataframe(self, df: pd.DataFrame) -> None:
    """Import query definitions from dataframe."""
    if df is None or df.empty:
        return

    first_col = df.iloc[:, 0].dropna().astype(str).str.strip()
    filtered = [q for q in first_col if q and q.lower() != "nan"]
    self.add_queries(list(dict.fromkeys(filtered)))
clear
clear()

Clear all scenarios and query definitions.

Source code in src/pyetm/models/packables/query_pack.py
def clear(self) -> None:
    """Clear all scenarios and query definitions."""
    super().clear()
    self._query_keys.clear()