hydra.demos.genpg.transform module
Functions for transforming property graph mappings into property graph elements.
- hydra.demos.genpg.transform.concat_pairs(acc: tuple[Sequence[T0], Sequence[T1]], p: tuple[Sequence[T0], Sequence[T1]]) tuple[Sequence[T0], Sequence[T1]]
Concatenate two pairs of lists.
- hydra.demos.genpg.transform.decode_cell(col_type: ColumnType, mvalue: object) object
Decode a single cell value based on its column type.
- hydra.demos.genpg.transform.decode_row(col_types: Sequence[ColumnType], row: DataRow[str]) object
Decode a single data row based on column types.
- hydra.demos.genpg.transform.decode_table(table_type: TableType, table: Table[str]) object
Decode a table of strings into a table of terms based on column type specifications.
- hydra.demos.genpg.transform.element_specs_by_table(graph: LazyGraph[Term]) object
Group element specifications by their source table.
- hydra.demos.genpg.transform.evaluate_edge(cx: T0, g: Graph, edge_spec: Edge[Term], record: Term) object
Evaluate an edge specification against a record term to produce an optional edge.
- hydra.demos.genpg.transform.evaluate_properties(cx: T0, g: Graph, specs: Mapping[T1, Term], record: Term) object
Evaluate property specifications against a record term.
- hydra.demos.genpg.transform.evaluate_vertex(cx: T0, g: Graph, vertex_spec: Vertex[Term], record: Term) object
Evaluate a vertex specification against a record term to produce an optional vertex.
- hydra.demos.genpg.transform.find_tables_in_term(term: Term) Set[str]
Find table names referenced in a term by looking for record projections.
- hydra.demos.genpg.transform.find_tables_in_terms(terms: Sequence[Term]) Set[str]
Find table names referenced in multiple terms.
- hydra.demos.genpg.transform.list_any(pred: Callable[[T0], bool], xs: Sequence[T0]) bool
Check if any element in a list satisfies a predicate.
- hydra.demos.genpg.transform.make_lazy_graph(vertices: Sequence[Vertex[T0]], edges: Sequence[Edge[T0]]) LazyGraph[T0]
Construct a LazyGraph from vertices and edges.
- hydra.demos.genpg.transform.normalize_field(s: str) object
Normalize a CSV field value - empty becomes Nothing.
- hydra.demos.genpg.transform.parse_csv_char(state: tuple[tuple[Sequence[object], str], bool], c: int) tuple[tuple[Sequence[object], str], bool]
Process a single character during CSV parsing.
- hydra.demos.genpg.transform.parse_csv_line(line: str) object
Parse a CSV line into fields. Empty fields become Nothing.
- hydra.demos.genpg.transform.parse_single_line(line: str) object
Parse a single CSV line, returning Nothing for empty lines.
- hydra.demos.genpg.transform.parse_table_lines(has_header: bool, raw_lines: Sequence[str]) object
Parse raw CSV lines into a Table of strings.
- hydra.demos.genpg.transform.strip_whitespace(s: str) str
Strip leading and trailing whitespace from a string.
- hydra.demos.genpg.transform.table_for_edge(edge: Edge[Term]) object
Get the table name for an edge specification. Returns an error if not exactly one table is referenced.
- hydra.demos.genpg.transform.table_for_vertex(vertex: Vertex[Term]) object
Get the table name for a vertex specification. Returns an error if not exactly one table is referenced.
- hydra.demos.genpg.transform.table_types_by_name(table_types: Sequence[TableType]) Mapping[RelationName, TableType]
Build a map from table name to table type.
- hydra.demos.genpg.transform.term_row_to_record(table_type: TableType, row: DataRow[Term]) Term
Convert a data row to a record term given a table type.