API Reference
v0.1.0
Medrecord

medmodels.medrecord.tests.test_querying

medmodels.medrecord.tests.test_indexers

medmodels.medrecord.tests.test_medrecord

medmodels.medrecord.medrecord

process_nodes_dataframe

def process_nodes_dataframe(
        nodes: PandasNodeDataFrameInput) -> PolarsNodeDataFrameInput

Converts a PandasNodeDataFrameInput to a PolarsNodeDataFrameInput.

Arguments:

  • nodes PandasNodeDataFrameInput - A tuple of the Pandas DataFrame and index index column name.

Returns:

  • PolarsNodeDataFrameInput - A tuple of the Polars DataFrame and index column name.

process_edges_dataframe

def process_edges_dataframe(
        edges: PandasEdgeDataFrameInput) -> PolarsEdgeDataFrameInput

Converts a PandasEdgeDataFrameInput to a PolarsEdgeDataFrameInput.

Arguments:

  • edges PandasEdgeDataFrameInput - A tuple of the Pandas DataFrame, source index, and target index column names.

Returns:

  • PolarsEdgeDataFrameInput - A tuple of the Polars DataFrame, source index, and target index column names.

MedRecord Objects

class MedRecord()

A class to manage medical records with node and edge data structures.

Provides methods to create instances from different data formats, manage node and edge attributes, and perform operations like adding or removing nodes and edges.

__init__

def __init__() -> None

Initializes a new MedRecord instance with an underlying PyMedRecord object.

builder

@staticmethod
def builder() -> MedRecordBuilder

Creates a new MedRecordBuilder instance to build a MedRecord.

Returns:

  • MedRecordBuilder - A new builder instance.

from_tuples

@classmethod
def from_tuples(cls,
                nodes: Sequence[NodeTuple],
                edges: Optional[Sequence[EdgeTuple]] = None) -> MedRecord

Creates a MedRecord instance from lists of node and edge tuples.

Nodes and edges are specified as lists of tuples. Each node tuple contains a node index and attributes. Each edge tuple includes indices of the source and target nodes and edge attributes.

Arguments:

  • nodes Sequence[NodeTuple] - Sequence of node tuples.
  • edges Optional[Sequence[EdgeTuple]] - Sequence of edge tuples.

Returns:

  • MedRecord - A new instance created from the provided tuples.

from_pandas

@classmethod
def from_pandas(
    cls,
    nodes: Union[PandasNodeDataFrameInput, List[PandasNodeDataFrameInput]],
    edges: Optional[Union[PandasEdgeDataFrameInput,
                          List[PandasEdgeDataFrameInput]]] = None
) -> MedRecord

Creates a MedRecord from Pandas DataFrames of nodes and optionally edges.

Accepts a tuple or a list of tuples for nodes and edges. Each node tuple consists of a Pandas DataFrame and an index column. Edge tuples include a DataFrame and index columns for source and target nodes.

Arguments:

nodes (Union[PolarsNodeDataFrameInput, List[PolarsNodeDataFrameInput]]): Node DataFrame(s). edges (Optional[Union[PolarsEdgeDataFrameInput, List[PolarsEdgeDataFrameInput]]]): Edge DataFrame(s), optional.

Returns:

  • MedRecord - A new instance from the provided DataFrames.

from_polars

@classmethod
def from_polars(
    cls,
    nodes: Union[PolarsNodeDataFrameInput, List[PolarsNodeDataFrameInput]],
    edges: Optional[Union[PolarsEdgeDataFrameInput,
                          List[PolarsEdgeDataFrameInput]]] = None
) -> MedRecord

Creates a MedRecord from Polars DataFrames of nodes and optionally edges.

Accepts a tuple or a list of tuples for nodes and edges. Each node tuple consists of a Polars DataFrame and an index column. Edge tuples include a DataFrame and index columns for source and target nodes.

Arguments:

nodes (Union[PolarsNodeDataFrameInput, List[PolarsNodeDataFrameInput]]): Node data. edges (Optional[Union[PolarsEdgeDataFrameInput, List[PolarsEdgeDataFrameInput]]]): Edge data, optional.

Returns:

  • MedRecord - A new instance from the provided Polars DataFrames.

from_example_dataset

@classmethod
def from_example_dataset(cls) -> MedRecord

Creates a MedRecord instance from an example dataset.

The example dataset was created using the Synthea™ Patient Generator: https://github.com/synthetichealth/synthea (opens in a new tab)

Returns:

  • MedRecord - A new instance created from the example dataset.

from_ron

@classmethod
def from_ron(cls, path: str) -> MedRecord

Creates a MedRecord instance from a RON file.

Reads node and edge data from a RON file specified by the path and creates a new MedRecord instance using this data.

Arguments:

  • path str - Path to the RON file.

Returns:

  • MedRecord - A new instance created from the RON file.

to_ron

def to_ron(path: str) -> None

Writes the MedRecord instance to a RON file.

Serializes the MedRecord instance to a RON file at the specified path.

Arguments:

  • path str - Path where the RON file will be written.

Returns:

None

update_schema

def update_schema(schema: Schema) -> None

Updates the schema of the MedRecord instance.

Arguments:

  • schema Schema - The new schema to apply.

Returns:

None

nodes

@property
def nodes() -> List[NodeIndex]

Lists the node indices in the MedRecord instance.

Returns a list of all node indices currently managed by the MedRecord instance.

Returns:

  • List[NodeIndex] - A list of node indices.

node

@property
def node() -> NodeIndexer

Provides access to node attributes within the MedRecord instance via an indexer.

Facilitates querying, accessing, manipulating, and setting node attributes using various indexing methods. Supports conditions and ranges for more complex queries.

Returns:

  • NodeIndexer - An object for manipulating and querying node attributes.

edges

@property
def edges() -> List[EdgeIndex]

Lists the edge indices in the MedRecord instance.

Returns a list of all edge indices currently managed by the MedRecord instance.

Returns:

  • List[EdgeIndex] - A list of edge indices.

edge

@property
def edge() -> EdgeIndexer

Provides access to edge attributes within the MedRecord instance via an indexer.

Facilitates querying, accessing, manipulating, and setting edge attributes using various indexing methods. Supports conditions and ranges for more complex queries.

Returns:

  • EdgeIndexer - An object for manipulating and querying edge attributes.

groups

@property
def groups() -> List[Group]

Lists the groups in the MedRecord instance.

Returns a list of all groups currently defined within the MedRecord instance.

Returns:

  • List[Group] - A list of groups.

group

def group(
    group: Union[Group, GroupInputList]
) -> Union[GroupInfo, Dict[Group, GroupInfo]]

Returns the node and edge indices associated with the specified group(s) in the MedRecord.

If a single group is specified, returns a list of node and edge indices for that group. If multiple groups are specified, returns a dictionary with each group name mapping to its list of node and edge indices indices.

Arguments:

  • group Union[Group, List[Group]] - One or more group names.

Returns:

Union[GroupInfo, Dict[Group, GroupInfo]]: Node and edge indices for the specified group(s).

outgoing_edges

def outgoing_edges(
    node: Union[NodeIndex, NodeIndexInputList, NodeOperation]
) -> Union[List[EdgeIndex], Dict[NodeIndex, List[EdgeIndex]]]

Lists the outgoing edges of the specified node(s) in the MedRecord.

If a single node index is provided, returns a list of its outgoing edge indices. If multiple nodes are specified, returns a dictionary mapping each node index to its list of outgoing edge indices.

Arguments:

  • node Union[NodeIndex, NodeIndexInputList, NodeOperation] - One or more node indices or a node operation.

Returns:

Union[List[EdgeIndex], Dict[NodeIndex, List[EdgeIndex]]]: Outgoing edge indices for each specified node.

incoming_edges

def incoming_edges(
    node: Union[NodeIndex, NodeIndexInputList, NodeOperation]
) -> Union[List[EdgeIndex], Dict[NodeIndex, List[EdgeIndex]]]

Lists the incoming edges of the specified node(s) in the MedRecord.

If a single node index is provided, returns a list of its incoming edge indices. If multiple nodes are specified, returns a dictionary mapping each node index to its list of incoming edge indices.

Arguments:

  • node Union[NodeIndex, NodeIndexInputList, NodeOperation] - One or more node indices or a node operation.

Returns:

Union[List[EdgeIndex], Dict[NodeIndex, List[EdgeIndex]]]: Incoming edge indices for each specified node.

edge_endpoints

def edge_endpoints(
    edge: Union[EdgeIndex, EdgeIndexInputList, EdgeOperation]
) -> Union[tuple[NodeIndex, NodeIndex], Dict[EdgeIndex, tuple[NodeIndex,
                                                              NodeIndex]]]

Retrieves the source and target nodes of the specified edge(s) in the MedRecord.

If a single edge index is provided, returns a tuple of node indices (source, target). If multiple edges are specified, returns a dictionary mapping each edge index to its tuple of node indices.

Arguments:

  • edge Union[EdgeIndex, EdgeIndexInputList, EdgeOperation] - One or more edge indices.

Returns:

Union[tuple[NodeIndex, NodeIndex], Dict[EdgeIndex, tuple[NodeIndex, NodeIndex]]]: Tuple of node indices or a dictionary mapping each edge to its node indices.

edges_connecting

def edges_connecting(source_node: Union[NodeIndex, NodeIndexInputList,
                                        NodeOperation],
                     target_node: Union[NodeIndex, NodeIndexInputList,
                                        NodeOperation],
                     directed: bool = True) -> List[EdgeIndex]

Retrieves the edges connecting the specified source and target nodes in the MedRecord.

If a NodeOperation is provided for either the source or target nodes, it is first evaluated to obtain the corresponding node indices. The method then returns a list of edge indices that connect the specified source and target nodes.

Arguments:

source_node (Union[NodeIndex, NodeIndexInputList, NodeOperation]): The index or indices of the source node(s), or a NodeOperation to select source nodes. target_node (Union[NodeIndex, NodeIndexInputList, NodeOperation]): The index or indices of the target node(s), or a NodeOperation to select target nodes.

  • directed bool, optional - Whether to consider edges as directed.

Returns:

  • List[EdgeIndex] - A list of edge indices connecting the specified source and target nodes.

add_node

def add_node(node: NodeIndex, attributes: AttributesInput) -> None

Adds a node with specified attributes to the MedRecord instance.

Arguments:

  • node NodeIndex - The index of the node to add.
  • attributes Attributes - A dictionary of the node's attributes.

Returns:

None

remove_node

def remove_node(
    node: Union[NodeIndex, NodeIndexInputList, NodeOperation]
) -> Union[Attributes, Dict[NodeIndex, Attributes]]

Removes a node or multiple nodes from the MedRecord and returns their attributes.

If a single node index is provided, returns the attributes of the removed node. If multiple node indices are specified, returns a dictionary mapping each node index to its attributes.

Arguments:

  • node Union[NodeIndex, NodeIndexInputList, NodeOperation] - One or more node indices or a node operation.

Returns:

Union[Attributes, Dict[NodeIndex, Attributes]]: Attributes of the removed node(s).

add_nodes

def add_nodes(
    nodes: Union[
        Sequence[NodeTuple],
        PandasNodeDataFrameInput,
        List[PandasNodeDataFrameInput],
        PolarsNodeDataFrameInput,
        List[PolarsNodeDataFrameInput],
    ]
) -> None

Adds multiple nodes to the MedRecord from different data formats.

Accepts a list of tuples, DataFrame(s), or PolarsNodeDataFrameInput(s) to add nodes. If a DataFrame or list of DataFrames is used, the add_nodes_pandas method is called. If PolarsNodeDataFrameInput(s) are provided, each tuple must include a DataFrame and the index column.

Arguments:

nodes (Union[Sequence[NodeTuple], PandasNodeDataFrameInput, List[PandasNodeDataFrameInput], PolarsNodeDataFrameInput,

  • List[PolarsNodeDataFrameInput]]) - Data representing nodes in various formats.

Returns:

None

add_nodes_pandas

def add_nodes_pandas(
    nodes: Union[PandasNodeDataFrameInput, List[PandasNodeDataFrameInput]]
) -> None

Adds nodes to the MedRecord instance from one or more Pandas DataFrames.

This method accepts either a single tuple or a list of tuples, where each tuple consists of a Pandas DataFrame and an index column string.

Arguments:

nodes (Union[PandasNodeDataFrameInput, List[PandasNodeDataFrameInput]]): A tuple or list of tuples, each with a DataFrame and index column.

Returns:

None

add_nodes_polars

def add_nodes_polars(
    nodes: Union[PolarsNodeDataFrameInput, List[PolarsNodeDataFrameInput]]
) -> None

Adds nodes to the MedRecord instance from one or more Polars DataFrames.

This method accepts either a single tuple or a list of tuples, where each tuple consists of a Polars DataFrame and an index column string.

Arguments:

nodes (Union[PolarsNodeDataFrameInput, List[PolarsNodeDataFrameInput]]): A tuple or list of tuples, each with a DataFrame and index column.

Returns:

None

add_edge

def add_edge(source_node: NodeIndex, target_node: NodeIndex,
             attributes: AttributesInput) -> EdgeIndex

Adds an edge between two specified nodes with given attributes.

Arguments:

  • source_node NodeIndex - Index of the source node.
  • target_node NodeIndex - Index of the target node.
  • attributes Attributes - Dictionary of edge attributes.

Returns:

  • EdgeIndex - The index of the added edge.

remove_edge

def remove_edge(
    edge: Union[EdgeIndex, EdgeIndexInputList, EdgeOperation]
) -> Union[Attributes, Dict[EdgeIndex, Attributes]]

Removes an edge or multiple edges from the MedRecord and returns their attributes.

If a single edge index is provided, returns the attributes of the removed edge. If multiple edge indices are specified, returns a dictionary mapping each edge index to its attributes.

Arguments:

  • edge Union[EdgeIndex, EdgeIndexInputList, EdgeOperation] - One or more edge indices or an edge operation.

Returns:

Union[Attributes, Dict[EdgeIndex, Attributes]]: Attributes of the removed edge(s).

add_edges

def add_edges(
    edges: Union[
        Sequence[EdgeTuple],
        PandasEdgeDataFrameInput,
        List[PandasEdgeDataFrameInput],
        PolarsEdgeDataFrameInput,
        List[PolarsEdgeDataFrameInput],
    ]
) -> List[EdgeIndex]

Adds edges to the MedRecord instance from various data formats.

Accepts lists of tuples, DataFrame(s), or EdgeDataFrameInput(s) to add edges. Each tuple must have indices for source and target nodes and a dictionary of attributes. If a DataFrame or list of DataFrames is used, the add_edges_dataframe method is invoked.

Arguments:

edges (Union[Sequence[EdgeTuple], PandasEdgeDataFrameInput, List[PandasEdgeDataFrameInput], PolarsEdgeDataFrameInput, List[PolarsEdgeDataFrameInput]]): Data representing edges in several formats.

Returns:

  • List[EdgeIndex] - A list of edge indices that were added.

add_edges_pandas

def add_edges_pandas(
    edges: Union[PandasEdgeDataFrameInput, List[PandasEdgeDataFrameInput]]
) -> List[EdgeIndex]

Adds edges to the MedRecord from one or more Pandas DataFrames.

This method accepts either a single PandasEdgeDataFrameInput tuple or a list of such tuples, each including a DataFrame and index columns for the source and target nodes.

Arguments:

edges (Union[PandasEdgeDataFrameInput, List[PandasEdgeDataFrameInput]]): A tuple or list of tuples, each including a DataFrame and index columns for source and target nodes.

Returns:

  • List[EdgeIndex] - A list of the edge indices added.

add_edges_polars

def add_edges_polars(
    edges: Union[PolarsEdgeDataFrameInput, List[PolarsEdgeDataFrameInput]]
) -> List[EdgeIndex]

Adds edges to the MedRecord from one or more Polars DataFrames.

This method accepts either a single PolarsEdgeDataFrameInput tuple or a list of such tuples, each including a DataFrame and index columns for the source and target nodes.

Arguments:

edges (Union[PolarsEdgeDataFrameInput, List[PolarsEdgeDataFrameInput]]): A tuple or list of tuples, each including a DataFrame and index columns for source and target nodes.

Returns:

  • List[EdgeIndex] - A list of the edge indices added.

add_group

def add_group(
    group: Group,
    nodes: Optional[Union[NodeIndex, NodeIndexInputList,
                          NodeOperation]] = None,
    edges: Optional[Union[EdgeIndex, EdgeIndexInputList, EdgeOperation]] = None
) -> None

Adds a group to the MedRecord instance with an optional list of node indices.

If node indices are specified, they are added to the group. If no nodes are specified, the group is created without any nodes.

Arguments:

  • group Group - The name of the group to add. nodes (Optional[Union[NodeIndex, NodeIndexInputList, NodeOperation]]): One or more node indices or a node operation to add to the group, optional. edges (Optional[Union[EdgeIndex, EdgeIndexInputList, EdgeOperation]]): One or more edge indices or an edge operation to add to the group, optional.

Returns:

None

remove_group

def remove_group(group: Union[Group, GroupInputList]) -> None

Removes one or more groups from the MedRecord instance.

Arguments:

  • group Union[Group, GroupInputList] - One or more group names to remove.

Returns:

None

add_node_to_group

def add_node_to_group(
        group: Group, node: Union[NodeIndex, NodeIndexInputList,
                                  NodeOperation]) -> None

Adds one or more nodes to a specified group in the MedRecord.

Arguments:

  • group Group - The name of the group to add nodes to.
  • node Union[NodeIndex, NodeIndexInputList, NodeOperation] - One or more node indices or a node operation to add to the group.

Returns:

None

add_edge_to_group

def add_edge_to_group(
        group: Group, edge: Union[EdgeIndex, EdgeIndexInputList,
                                  EdgeOperation]) -> None

Adds one or more edges to a specified group in the MedRecord.

Arguments:

  • group Group - The name of the group to add edges to.
  • edge Union[EdgeIndex, EdgeIndexInputList, EdgeOperation] - One or more edge indices or an edge operation to add to the group.

Returns:

None

remove_node_from_group

def remove_node_from_group(
        group: Group, node: Union[NodeIndex, NodeIndexInputList,
                                  NodeOperation]) -> None

Removes one or more nodes from a specified group in the MedRecord.

Arguments:

  • group Group - The name of the group from which to remove nodes.
  • node Union[NodeIndex, NodeIndexInputList, NodeOperation] - One or more node indices or a node operation to remove from the group.

Returns:

None

remove_edge_from_group

def remove_edge_from_group(
        group: Group, edge: Union[EdgeIndex, EdgeIndexInputList,
                                  EdgeOperation]) -> None

Removes one or more edges from a specified group in the MedRecord.

Arguments:

  • group Group - The name of the group from which to remove edges.
  • edge Union[EdgeIndex, EdgeIndexInputList, EdgeOperation] - One or more edge indices or an edge operation to remove from the group.

Returns:

None

nodes_in_group

def nodes_in_group(
    group: Union[Group, GroupInputList]
) -> Union[List[NodeIndex], Dict[Group, List[NodeIndex]]]

Retrieves the node indices associated with the specified group(s) in the MedRecord.

If a single group is specified, returns a list of node indices for that group. If multiple groups are specified, returns a dictionary mapping each group name to its list of node indices.

Arguments:

  • group GroupInputList - One or more group names.

Returns:

Union[List[NodeIndex], Dict[Group, List[NodeIndex]]]: Node indices associated with the specified group(s).

edges_in_group

def edges_in_group(
    group: Union[Group, GroupInputList]
) -> Union[List[EdgeIndex], Dict[Group, List[EdgeIndex]]]

Retrieves the edge indices associated with the specified group(s) in the MedRecord.

If a single group is specified, returns a list of edge indices for that group. If multiple groups are specified, returns a dictionary mapping each group name to its list of edge indices.

Arguments:

  • group GroupInputList - One or more group names.

Returns:

Union[List[EdgeIndex], Dict[Group, List[EdgeIndex]]]: Edge indices associated with the specified group(s).

groups_of_node

def groups_of_node(
    node: Union[NodeIndex, NodeIndexInputList, NodeOperation]
) -> Union[List[Group], Dict[NodeIndex, List[Group]]]

Retrieves the groups associated with the specified node(s) in the MedRecord.

If a single node index is provided, returns a list of groups for that node. If multiple nodes are specified, returns a dictionary mapping each node index to its list of groups.

Arguments:

  • node Union[NodeIndex, NodeIndexInputList, NodeOperation] - One or more node indices or a node operation.

Returns:

Union[List[Group], Dict[NodeIndex, List[Group]]]: Groups associated with each node.

groups_of_edge

def groups_of_edge(
    edge: Union[EdgeIndex, EdgeIndexInputList, EdgeOperation]
) -> Union[List[Group], Dict[EdgeIndex, List[Group]]]

Retrieves the groups associated with the specified edge(s) in the MedRecord.

If a single edge index is provided, returns a list of groups for that edge. If multiple edges are specified, returns a dictionary mapping each edge index to its list of groups.

Arguments:

  • edge Union[EdgeIndex, EdgeIndexInputList, EdgeOperation] - One or more edge indices or an edge operation.

Returns:

Union[List[Group], Dict[EdgeIndex, List[Group]]]: Groups associated with each edge.

node_count

def node_count() -> int

Returns the total number of nodes currently managed by the MedRecord.

Returns:

  • int - The total number of nodes.

edge_count

def edge_count() -> int

Returns the total number of edges currently managed by the MedRecord.

Returns:

  • int - The total number of edges.

group_count

def group_count() -> int

Returns the total number of groups currently defined within the MedRecord.

Returns:

  • int - The total number of groups.

contains_node

def contains_node(node: NodeIndex) -> bool

Checks whether a specific node exists in the MedRecord.

Arguments:

  • node NodeIndex - The index of the node to check.

Returns:

  • bool - True if the node exists, False otherwise.

contains_edge

def contains_edge(edge: EdgeIndex) -> bool

Checks whether a specific edge exists in the MedRecord.

Arguments:

  • edge EdgeIndex - The index of the edge to check.

Returns:

  • bool - True if the edge exists, False otherwise.

contains_group

def contains_group(group: Group) -> bool

Checks whether a specific group exists in the MedRecord.

Arguments:

  • group Group - The name of the group to check.

Returns:

  • bool - True if the group exists, False otherwise.

neighbors

def neighbors(
    node: Union[NodeIndex, NodeIndexInputList, NodeOperation],
    directed: bool = True
) -> Union[List[NodeIndex], Dict[NodeIndex, List[NodeIndex]]]

Retrieves the neighbors of the specified node(s) in the MedRecord.

If a single node index is provided, returns a list of its neighboring node indices. If multiple nodes are specified, returns a dictionary mapping each node index to its list of neighboring nodes.

Arguments:

  • node Union[NodeIndex, NodeIndexInputList, NodeOperation] - One or more node indices or a node operation.
  • directed bool, optional - Whether to consider edges as directed

Returns:

Union[List[NodeIndex], Dict[NodeIndex, List[NodeIndex]]]: Neighboring nodes.

clear

def clear() -> None

Clears all data from the MedRecord instance.

Removes all nodes, edges, and groups, effectively resetting the instance.

Returns:

None

select_nodes

def select_nodes(operation: NodeOperation) -> List[NodeIndex]

Selects nodes based on a specified operation and returns their indices.

Arguments:

  • operation NodeOperation - The operation to apply to select nodes.

Returns:

  • List[NodeIndex] - A list of node indices that satisfy the operation.

select_edges

def select_edges(operation: EdgeOperation) -> List[EdgeIndex]

Selects edges based on a specified operation and returns their indices.

Arguments:

  • operation EdgeOperation - The operation to apply to select edges.

Returns:

  • List[EdgeIndex] - A list of edge indices that satisfy the operation.

__getitem__

def __getitem__(
    key: Union[NodeOperation, EdgeOperation]
) -> Union[List[NodeIndex], List[EdgeIndex]]

Allows selection of nodes or edges using operations directly via indexing.

Arguments:

  • key Union[NodeOperation, EdgeOperation] - Operation to select nodes or edges.

Returns:

Union[List[NodeIndex], List[EdgeIndex]]: Node or edge indices selected.

medmodels.medrecord.types

medmodels.medrecord.builder

medmodels.medrecord.indexers

medmodels.medrecord.datatype

medmodels.medrecord.schema

medmodels.medrecord.querying

NodeOperation Objects

class NodeOperation()

logical_and

def logical_and(operation: NodeOperation) -> NodeOperation

Combines this NodeOperation with another using a logical AND, resulting in a new NodeOperation that is true only if both original operations are true. This method allows for the chaining of conditions to refine queries on nodes.

Arguments:

  • operation NodeOperation - Another NodeOperation to be combined with the current one.

Returns:

  • NodeOperation - A new NodeOperation representing the logical AND of this operation with another.

logical_or

def logical_or(operation: NodeOperation) -> NodeOperation

Combines this NodeOperation with another using a logical OR, resulting in a new NodeOperation that is true if either of the original operations is true. This method enables the combination of conditions to expand queries on nodes.

Arguments:

  • operation NodeOperation - Another NodeOperation to be combined with the current one.

Returns:

  • NodeOperation - A new NodeOperation representing the logical OR of this operation with another.

logical_xor

def logical_xor(operation: NodeOperation) -> NodeOperation

Combines this NodeOperation with another using a logical XOR, resulting in a new NodeOperation that is true only if exactly one of the original operations is true. This method is useful for creating conditions that must be exclusively true.

Arguments:

  • operation NodeOperation - Another NodeOperation to be combined with the current one.

Returns:

  • NodeOperation - A new NodeOperation representing the logical XOR of this operation with another.

logical_not

def logical_not() -> NodeOperation

Creates a new NodeOperation that is the logical NOT of this operation, inversing the current condition. This method is useful for negating a condition to create queries on nodes.

Returns:

  • NodeOperation - A new NodeOperation representing the logical NOT of this operation.

EdgeOperation Objects

class EdgeOperation()

logical_and

def logical_and(operation: EdgeOperation) -> EdgeOperation

Combines this EdgeOperation with another using a logical AND, resulting in a new EdgeOperation that is true only if both original operations are true. This method allows for the chaining of conditions to refine queries on nodes.

Arguments:

  • operation EdgeOperation - Another EdgeOperation to be combined with the current one.

Returns:

  • EdgeOperation - A new EdgeOperation representing the logical AND of this operation with another.

logical_or

def logical_or(operation: EdgeOperation) -> EdgeOperation

Combines this EdgeOperation with another using a logical OR, resulting in a new EdgeOperation that is true if either of the original operations is true. This method enables the combination of conditions to expand queries on nodes.

Arguments:

  • operation EdgeOperation - Another EdgeOperation to be combined with the current one.

Returns:

  • EdgeOperation - A new EdgeOperation representing the logical OR of this operation with another.

logical_xor

def logical_xor(operation: EdgeOperation) -> EdgeOperation

Combines this EdgeOperation with another using a logical XOR, resulting in a new EdgeOperation that is true only if exactly one of the original operations is true. This method is useful for creating conditions that must be exclusively true.

Arguments:

  • operation EdgeOperation - Another EdgeOperation to be combined with the current one.

Returns:

  • EdgeOperation - A new EdgeOperation representing the logical XOR of this operation with another.

logical_not

def logical_not() -> EdgeOperation

Creates a new EdgeOperation that is the logical NOT of this operation, inversing the current condition. This method is useful for negating a condition to create queries on nodes.

Returns:

  • EdgeOperation - A new EdgeOperation representing the logical NOT of this operation.

NodeAttributeOperand Objects

class NodeAttributeOperand()

greater

def greater(
        operand: Union[ValueOperand, NodeAttributeOperand]) -> NodeOperation

Creates a NodeOperation that evaluates to true if the attribute represented by this operand is greater than the specified value or operand.

Arguments:

  • operand ValueOperand - The value or operand to compare against.

Returns:

  • NodeOperation - A NodeOperation representing the greater-than comparison.

less

def less(operand: Union[ValueOperand, NodeAttributeOperand]) -> NodeOperation

Creates a NodeOperation that evaluates to true if the attribute represented by this operand is less than the specified value or operand.

Arguments:

  • operand ValueOperand - The value or operand to compare against.

Returns:

  • NodeOperation - A NodeOperation representing the less-than comparison.

greater_or_equal

def greater_or_equal(
        operand: Union[ValueOperand, NodeAttributeOperand]) -> NodeOperation

Creates a NodeOperation that evaluates to true if the attribute represented by this operand is greater than or equal to the specified value or operand.

Arguments:

  • operand ValueOperand - The value or operand to compare against.

Returns:

  • NodeOperation - A NodeOperation representing the greater-than-or-equal-to comparison.

less_or_equal

def less_or_equal(
        operand: Union[ValueOperand, NodeAttributeOperand]) -> NodeOperation

Creates a NodeOperation that evaluates to true if the attribute represented by this operand is less than or equal to the specified value or operand.

Arguments:

  • operand ValueOperand - The value or operand to compare against.

Returns:

  • NodeOperation - A NodeOperation representing the less-than-or-equal-to comparison.

equal

def equal(operand: Union[ValueOperand, NodeAttributeOperand]) -> NodeOperation

Creates a NodeOperation that evaluates to true if the attribute represented by this operand is equal to the specified value or operand.

Arguments:

  • operand ValueOperand - The value or operand to compare against.y

Returns:

  • NodeOperation - A NodeOperation representing the equality comparison.

not_equal

def not_equal(
        operand: Union[ValueOperand, NodeAttributeOperand]) -> NodeOperation

Creates a NodeOperation that evaluates to true if the attribute represented by this operand is not equal to the specified value or operand.

Arguments:

  • operand ValueOperand - The value or operand to compare against.

Returns:

  • NodeOperation - A NodeOperation representing the not-equal comparison.

is_in

def is_in(values: List[MedRecordValue]) -> NodeOperation

Creates a NodeOperation that evaluates to true if the attribute represented by this operand is found within the specified list of values.

Arguments:

  • values List[MedRecordValue] - The list of values to check the attribute against.

Returns:

  • NodeOperation - A NodeOperation representing the is-in comparison.

not_in

def not_in(values: List[MedRecordValue]) -> NodeOperation

Creates a NodeOperation that evaluates to true if the attribute represented by this operand is not found within the specified list of values.

Arguments:

  • values List[MedRecordValue] - The list of values to check the attribute against.

Returns:

  • NodeOperation - A NodeOperation representing the not-in comparison.

starts_with

def starts_with(operand: ValueOperand) -> NodeOperation

Creates a NodeOperation that evaluates to true if the attribute represented by this operand starts with the specified value or operand.

Arguments:

  • operand ValueOperand - The value or operand to compare the starting sequence against.

Returns:

  • NodeOperation - A NodeOperation representing the starts-with condition.

ends_with

def ends_with(
        operand: Union[ValueOperand, NodeAttributeOperand]) -> NodeOperation

Creates a NodeOperation that evaluates to true if the attribute represented by this operand ends with the specified value or operand.

Arguments:

  • operand ValueOperand - The value or operand to compare the ending sequence against.

Returns:

  • NodeOperation - A NodeOperation representing the ends-with condition.

contains

def contains(
        operand: Union[ValueOperand, NodeAttributeOperand]) -> NodeOperation

Creates a NodeOperation that evaluates to true if the attribute represented by this operand contains the specified value or operand within it.

Arguments:

  • operand ValueOperand - The value or operand to check for containment.

Returns:

  • NodeOperation - A NodeOperation representing the contains condition.

add

def add(value: MedRecordValue) -> ValueOperand

Creates a new ValueOperand representing the sum of the attribute's value and the specified value.

Arguments:

  • value MedRecordValue - The value to add to the attribute's value.

Returns:

  • ValueOperand - The result of the addition operation.

sub

def sub(value: MedRecordValue) -> ValueOperand

Creates a new ValueOperand representing the difference between the attribute's value and the specified value.

Arguments:

  • value MedRecordValue - The value to subtract from the attribute's value.

Returns:

  • ValueOperand - The result of the subtraction operation.

mul

def mul(value: MedRecordValue) -> ValueOperand

Creates a new ValueOperand representing the product of the attribute's value and the specified value.

Arguments:

  • value MedRecordValue - The value to multiply the attribute's value by.

Returns:

  • ValueOperand - The result of the multiplication operation.

div

def div(value: MedRecordValue) -> ValueOperand

Creates a new ValueOperand representing the division of the attribute's value by the specified value.

Arguments:

  • value MedRecordValue - The value to divide the attribute's value by.

Returns:

  • ValueOperand - The result of the division operation.

pow

def pow(value: MedRecordValue) -> ValueOperand

Creates a new ValueOperand representing the result of raising the attribute's value to the power of the specified value.

Arguments:

  • value MedRecordValue - The value to raise the attribute's value to.

Returns:

  • ValueOperand - The result of the exponentiation operation.

mod

def mod(value: MedRecordValue) -> ValueOperand

Creates a new ValueOperand representing the remainder of dividing the attribute's value by the specified value.

Arguments:

  • value MedRecordValue - The value to divide the attribute's value by.

Returns:

  • ValueOperand - The result of the modulo operation.

round

def round() -> ValueOperand

Creates a new ValueOperand representing the result of rounding the attribute's value.

Returns:

  • ValueOperand - The result of the rounding operation.

ceil

def ceil() -> ValueOperand

Creates a new ValueOperand representing the result of applying the ceiling function to the attribute's value, effectively rounding it up to the nearest whole number.

Returns:

  • ValueOperand - The result of the ceiling operation.

floor

def floor() -> ValueOperand

Creates a new ValueOperand representing the result of applying the floor function to the attribute's value, effectively rounding it down to the nearest whole number.

Returns:

  • ValueOperand - The result of the floor operation.

abs

def abs() -> ValueOperand

Creates a new ValueOperand representing the absolute value of the attribute's value.

Returns:

  • ValueOperand - The absolute value of the attribute's value.

sqrt

def sqrt() -> ValueOperand

Creates a new ValueOperand representing the square root of the attribute's value.

Returns:

  • ValueOperand - The square root of the attribute's value.

trim

def trim() -> ValueOperand

Creates a new ValueOperand representing the result of trimming whitespace from both ends of the attribute's value.

Returns:

  • ValueOperand - The attribute's value with leading and trailing whitespace removed.

trim_start

def trim_start() -> ValueOperand

Creates a new ValueOperand representing the result of trimming whitespace from the start (left side) of the attribute's value.

Returns:

  • ValueOperand - The attribute's value with leading whitespace removed.

trim_end

def trim_end() -> ValueOperand

Creates a new ValueOperand representing the result of trimming whitespace from the end (right side) of the attribute's value.

Returns:

  • ValueOperand - The attribute's value with trailing whitespace removed.

lowercase

def lowercase() -> ValueOperand

Creates a new ValueOperand representing the result of converting all characters in the attribute's value to lowercase.

Returns:

  • ValueOperand - The attribute's value in lowercase letters.

uppercase

def uppercase() -> ValueOperand

Creates a new ValueOperand representing the result of converting all characters in the attribute's value to uppercase.

Returns:

  • ValueOperand - The attribute's value in uppercase letters.

slice

def slice(start: int, end: int) -> ValueOperand

Creates a new ValueOperand representing the result of slicing the attribute's value using the specified start and end indices.

Arguments:

  • start int - The index at which to start the slice.
  • end int - The index at which to end the slice.

Returns:

  • ValueOperand - The attribute's value with the specified slice applied.

EdgeAttributeOperand Objects

class EdgeAttributeOperand()

greater

def greater(
        operand: Union[ValueOperand, EdgeAttributeOperand]) -> EdgeOperation

Creates a EdgeOperation that evaluates to true if the attribute represented by this operand is greater than the specified value or operand.

Arguments:

  • operand ValueOperand - The value or operand to compare against.

Returns:

  • EdgeOperation - A EdgeOperation representing the greater-than comparison.

less

def less(operand: Union[ValueOperand, EdgeAttributeOperand]) -> EdgeOperation

Creates a EdgeOperation that evaluates to true if the attribute represented by this operand is less than the specified value or operand.

Arguments:

  • operand ValueOperand - The value or operand to compare against.

Returns:

  • EdgeOperation - A EdgeOperation representing the less-than comparison.

greater_or_equal

def greater_or_equal(
        operand: Union[ValueOperand, EdgeAttributeOperand]) -> EdgeOperation

Creates a EdgeOperation that evaluates to true if the attribute represented by this operand is greater than or equal to the specified value or operand.

Arguments:

  • operand ValueOperand - The value or operand to compare against.

Returns:

  • EdgeOperation - A EdgeOperation representing the greater-than-or-equal-to comparison.

less_or_equal

def less_or_equal(
        operand: Union[ValueOperand, EdgeAttributeOperand]) -> EdgeOperation

Creates a EdgeOperation that evaluates to true if the attribute represented by this operand is less than or equal to the specified value or operand.

Arguments:

  • operand ValueOperand - The value or operand to compare against.

Returns:

  • EdgeOperation - A EdgeOperation representing the less-than-or-equal-to comparison.

equal

def equal(operand: Union[ValueOperand, EdgeAttributeOperand]) -> EdgeOperation

Creates a EdgeOperation that evaluates to true if the attribute represented by this operand is equal to the specified value or operand.

Arguments:

  • operand ValueOperand - The value or operand to compare against.

Returns:

  • EdgeOperation - A EdgeOperation representing the equality comparison.

not_equal

def not_equal(
        operand: Union[ValueOperand, EdgeAttributeOperand]) -> EdgeOperation

Creates a EdgeOperation that evaluates to true if the attribute represented by this operand is not equal to the specified value or operand.

Arguments:

  • operand ValueOperand - The value or operand to compare against.

Returns:

  • EdgeOperation - A EdgeOperation representing the not-equal comparison.

is_in

def is_in(values: List[MedRecordValue]) -> EdgeOperation

Creates a EdgeOperation that evaluates to true if the attribute represented by this operand is found within the specified list of values.

Arguments:

  • values List[MedRecordValue] - The list of values to check the attribute against.

Returns:

  • EdgeOperation - A EdgeOperation representing the is-in comparison.

not_in

def not_in(values: List[MedRecordValue]) -> EdgeOperation

Creates a EdgeOperation that evaluates to true if the attribute represented by this operand is not found within the specified list of values.

Arguments:

  • values List[MedRecordValue] - The list of values to check the attribute against.

Returns:

  • EdgeOperation - A EdgeOperation representing the not-in comparison.

starts_with

def starts_with(
        operand: Union[ValueOperand, EdgeAttributeOperand]) -> EdgeOperation

Creates a EdgeOperation that evaluates to true if the attribute represented by this operand starts with the specified value or operand.

Arguments:

  • operand ValueOperand - The value or operand to compare the starting sequence against.

Returns:

  • EdgeOperation - A EdgeOperation representing the starts-with condition.

ends_with

def ends_with(
        operand: Union[ValueOperand, EdgeAttributeOperand]) -> EdgeOperation

Creates a EdgeOperation that evaluates to true if the attribute represented by this operand ends with the specified value or operand.

Arguments:

  • operand ValueOperand - The value or operand to compare the ending sequence against.

Returns:

  • EdgeOperation - A EdgeOperation representing the ends-with condition.

contains

def contains(
        operand: Union[ValueOperand, EdgeAttributeOperand]) -> EdgeOperation

Creates a EdgeOperation that evaluates to true if the attribute represented by this operand contains the specified value or operand within it.

Arguments:

  • operand ValueOperand - The value or operand to check for containment.

Returns:

  • EdgeOperation - A EdgeOperation representing the contains condition.

add

def add(value: MedRecordValue) -> ValueOperand

Creates a new ValueOperand representing the sum of the attribute's value and the specified value.

Arguments:

  • value MedRecordValue - The value to add to the attribute's value.

Returns:

  • ValueOperand - The result of the addition operation.

sub

def sub(value: MedRecordValue) -> ValueOperand

Creates a new ValueOperand representing the difference between the attribute's value and the specified value.

Arguments:

  • value MedRecordValue - The value to subtract from the attribute's value.

Returns:

  • ValueOperand - The result of the subtraction operation.

mul

def mul(value: MedRecordValue) -> ValueOperand

Creates a new ValueOperand representing the product of the attribute's value and the specified value.

Arguments:

  • value MedRecordValue - The value to multiply the attribute's value by.

Returns:

  • ValueOperand - The result of the multiplication operation.

div

def div(value: MedRecordValue) -> ValueOperand

Creates a new ValueOperand representing the division of the attribute's value by the specified value.

Arguments:

  • value MedRecordValue - The value to divide the attribute's value by.

Returns:

  • ValueOperand - The result of the division operation.

pow

def pow(value: MedRecordValue) -> ValueOperand

Creates a new ValueOperand representing the result of raising the attribute's value to the power of the specified value.

Arguments:

  • value MedRecordValue - The value to raise the attribute's value to.

Returns:

  • ValueOperand - The result of the exponentiation operation.

mod

def mod(value: MedRecordValue) -> ValueOperand

Creates a new ValueOperand representing the remainder of dividing the attribute's value by the specified value.

Arguments:

  • value MedRecordValue - The value to divide the attribute's value by.

Returns:

  • ValueOperand - The result of the modulo operation.

round

def round() -> ValueOperand

Creates a new ValueOperand representing the result of rounding the attribute's value.

Returns:

  • ValueOperand - The result of the rounding operation.

ceil

def ceil() -> ValueOperand

Creates a new ValueOperand representing the result of applying the ceiling function to the attribute's value, effectively rounding it up to the nearest whole number.

Returns:

  • ValueOperand - The result of the ceiling operation.

floor

def floor() -> ValueOperand

Creates a new ValueOperand representing the result of applying the floor function to the attribute's value, effectively rounding it down to the nearest whole number.

Returns:

  • ValueOperand - The result of the floor operation.

abs

def abs() -> ValueOperand

Creates a new ValueOperand representing the absolute value of the attribute's value.

Returns:

  • ValueOperand - The absolute value of the attribute's value.

sqrt

def sqrt() -> ValueOperand

Creates a new ValueOperand representing the square root of the attribute's value.

Returns:

  • ValueOperand - The square root of the attribute's value.

trim

def trim() -> ValueOperand

Creates a new ValueOperand representing the result of trimming whitespace from both ends of the attribute's value.

Returns:

  • ValueOperand - The attribute's value with leading and trailing whitespace removed.

trim_start

def trim_start() -> ValueOperand

Creates a new ValueOperand representing the result of trimming whitespace from the start (left side) of the attribute's value.

Returns:

  • ValueOperand - The attribute's value with leading whitespace removed.

trim_end

def trim_end() -> ValueOperand

Creates a new ValueOperand representing the result of trimming whitespace from the end (right side) of the attribute's value.

Returns:

  • ValueOperand - The attribute's value with trailing whitespace removed.

lowercase

def lowercase() -> ValueOperand

Creates a new ValueOperand representing the result of converting all characters in the attribute's value to lowercase.

Returns:

  • ValueOperand - The attribute's value in lowercase letters.

uppercase

def uppercase() -> ValueOperand

Creates a new ValueOperand representing the result of converting all characters in the attribute's value to uppercase.

Returns:

  • ValueOperand - The attribute's value in uppercase letters.

slice

def slice(start: int, end: int) -> ValueOperand

Creates a new ValueOperand representing the result of slicing the attribute's value using the specified start and end indices.

Arguments:

  • start int - The index at which to start the slice.
  • end int - The index at which to end the slice.

Returns:

  • ValueOperand - The attribute's value with the specified slice applied.

NodeIndexOperand Objects

class NodeIndexOperand()

greater

def greater(operand: NodeIndex) -> NodeOperation

Creates a NodeOperation that evaluates to true if the node index is greater than the specified index.

Arguments:

  • operand NodeIndex - The index to compare against.

Returns:

  • NodeOperation - A NodeOperation representing the greater-than comparison.

less

def less(operand: NodeIndex) -> NodeOperation

Creates a NodeOperation that evaluates to true if the node index is less than the specified index.

Arguments:

  • operand NodeIndex - The index to compare against.

Returns:

  • NodeOperation - A NodeOperation representing the less-than comparison.

greater_or_equal

def greater_or_equal(operand: NodeIndex) -> NodeOperation

Creates a NodeOperation that evaluates to true if the node index is greater than or equal to the specified index.

Arguments:

  • operand NodeIndex - The index to compare against.

Returns:

  • NodeOperation - A NodeOperation representing the greater-than-or-equal-to comparison.

less_or_equal

def less_or_equal(operand: NodeIndex) -> NodeOperation

Creates a NodeOperation that evaluates to true if the node index is less than or equal to the specified index.

Arguments:

  • operand NodeIndex - The index to compare against.

Returns:

  • NodeOperation - A NodeOperation representing the less-than-or-equal-to comparison.

equal

def equal(operand: NodeIndex) -> NodeOperation

Creates a NodeOperation that evaluates to true if the node index is equal to the specified index.

Arguments:

  • operand NodeIndex - The index to compare against.

Returns:

  • NodeOperation - A NodeOperation representing the equality comparison.

not_equal

def not_equal(operand: NodeIndex) -> NodeOperation

Creates a NodeOperation that evaluates to true if the node index is not equal to the specified index.

Arguments:

  • operand NodeIndex - The index to compare against.

Returns:

  • NodeOperation - A NodeOperation representing the not-equal comparison.

is_in

def is_in(values: List[NodeIndex]) -> NodeOperation

Creates a NodeOperation that evaluates to true if the node index is found within the list of indices.

Arguments:

  • values List[NodeIndex] - The list of indices to check the node index against.

Returns:

  • NodeOperation - A NodeOperation representing the is-in comparison.

not_in

def not_in(values: List[NodeIndex]) -> NodeOperation

Creates a NodeOperation that evaluates to true if the node index is not found within the list of indices.

Arguments:

  • values List[NodeIndex] - The list of indices to check the node index against.

Returns:

  • NodeOperation - A NodeOperation representing the not-in comparison.

starts_with

def starts_with(operand: NodeIndex) -> NodeOperation

Creates a NodeOperation that evaluates to true if the node index starts with the specified index.

Arguments:

  • operand NodeIndex - The index to compare against.

Returns:

  • NodeOperation - A NodeOperation representing the starts-with condition.

ends_with

def ends_with(operand: NodeIndex) -> NodeOperation

Creates a NodeOperation that evaluates to true if the node index ends with the specified index.

Arguments:

  • operand NodeIndex - The index to compare against.

Returns:

  • NodeOperation - A NodeOperation representing the ends-with condition.

contains

def contains(operand: NodeIndex) -> NodeOperation

Creates a NodeOperation that evaluates to true if the node index contains the specified index.

Arguments:

  • operand NodeIndex - The index to compare against.

Returns:

  • NodeOperation - A NodeOperation representing the contains condition.

EdgeIndexOperand Objects

class EdgeIndexOperand()

greater

def greater(operand: EdgeIndex) -> EdgeOperation

Creates a EdgeOperation that evaluates to true if the edge index is greater than the specified index.

Arguments:

  • operand EdgeIndex - The index to compare against.

Returns:

  • EdgeOperation - A EdgeOperation representing the greater-than comparison.

less

def less(operand: EdgeIndex) -> EdgeOperation

Creates a EdgeOperation that evaluates to true if the edge index is less than the specified index.

Arguments:

  • operand EdgeIndex - The index to compare against.

Returns:

  • EdgeOperation - A EdgeOperation representing the less-than comparison.

greater_or_equal

def greater_or_equal(operand: EdgeIndex) -> EdgeOperation

Creates a EdgeOperation that evaluates to true if the edge index is greater than or equal to the specified index.

Arguments:

  • operand EdgeIndex - The index to compare against.

Returns:

  • EdgeOperation - A EdgeOperation representing the greater-than-or-equal-to comparison.

less_or_equal

def less_or_equal(operand: EdgeIndex) -> EdgeOperation

Creates a EdgeOperation that evaluates to true if the edge index is less than or equal to the specified index.

Arguments:

  • operand EdgeIndex - The index to compare against.

Returns:

  • EdgeOperation - A EdgeOperation representing the less-than-or-equal-to comparison.

equal

def equal(operand: EdgeIndex) -> EdgeOperation

Creates a EdgeOperation that evaluates to true if the edge index is equal to the specified index.

Arguments:

  • operand EdgeIndex - The index to compare against.

Returns:

  • EdgeOperation - A EdgeOperation representing the equality comparison.

not_equal

def not_equal(operand: EdgeIndex) -> EdgeOperation

Creates a EdgeOperation that evaluates to true if the edge index is not equal to the specified index.

Arguments:

  • operand EdgeIndex - The index to compare against.

Returns:

  • EdgeOperation - A EdgeOperation representing the not-equal comparison.

is_in

def is_in(values: List[EdgeIndex]) -> EdgeOperation

Creates a EdgeOperation that evaluates to true if the edge index is found within the list of indices.

Arguments:

  • values List[EdgeIndex] - The list of indices to check the edge index against.

Returns:

  • EdgeOperation - A EdgeOperation representing the is-in comparison.

not_in

def not_in(values: List[EdgeIndex]) -> EdgeOperation

Creates a EdgeOperation that evaluates to true if the edge index is not found within the list of indices.

Arguments:

  • values List[EdgeIndex] - The list of indices to check the edge index against.

Returns:

  • EdgeOperation - A EdgeOperation representing the not-in comparison.

NodeOperand Objects

class NodeOperand()

in_group

def in_group(operand: Group) -> NodeOperation

Creates a NodeOperation that evaluates to true if the node is part of the specified group.

Arguments:

  • operand Group - The group to check the node against.

Returns:

  • NodeOperation - A NodeOperation indicating if the node is part of the specified group.

has_attribute

def has_attribute(operand: MedRecordAttribute) -> NodeOperation

Creates a NodeOperation that evaluates to true if the node has the specified attribute.

Arguments:

  • operand MedRecordAttribute - The attribute to check on the node.

Returns:

  • NodeOperation - A NodeOperation indicating if the node has the specified attribute.

has_outgoing_edge_with

def has_outgoing_edge_with(operation: EdgeOperation) -> NodeOperation

Creates a NodeOperation that evaluates to true if the node has an outgoing edge that satisfies the specified EdgeOperation.

Arguments:

  • operation EdgeOperation - An EdgeOperation to evaluate against outgoing edges.

Returns:

  • NodeOperation - A NodeOperation indicating if the node has an outgoing edge satisfying the specified operation.

has_incoming_edge_with

def has_incoming_edge_with(operation: EdgeOperation) -> NodeOperation

Creates a NodeOperation that evaluates to true if the node has an incoming edge that satisfies the specified EdgeOperation.

Arguments:

  • operation EdgeOperation - An EdgeOperation to evaluate against incoming edges.

Returns:

  • NodeOperation - A NodeOperation indicating if the node has an incoming edge satisfying the specified operation.

has_edge_with

def has_edge_with(operation: EdgeOperation) -> NodeOperation

Creates a NodeOperation that evaluates to true if the node has any edge (incoming or outgoing) that satisfies the specified EdgeOperation.

Arguments:

  • operation EdgeOperation - An EdgeOperation to evaluate against edges connected to the node.

Returns:

  • NodeOperation - A NodeOperation indicating if the node has any edge satisfying the specified operation.

has_neighbor_with

def has_neighbor_with(operation: NodeOperation) -> NodeOperation

Creates a NodeOperation that evaluates to true if the node has a neighboring node that satisfies the specified NodeOperation.

Arguments:

  • operation NodeOperation - A NodeOperation to evaluate against neighboring nodes.

Returns:

  • NodeOperation - A NodeOperation indicating if the node has a neighboring node satisfying the specified operation.

attribute

def attribute(attribute: MedRecordAttribute) -> NodeAttributeOperand

Accesses an NodeAttributeOperand for the specified attribute, allowing for the creation of operations based on node attributes.

Arguments:

  • attribute MedRecordAttribute - The attribute of the node to perform operations on.

Returns:

  • NodeAttributeOperand - An operand that represents the specified node attribute, enabling further operations such as comparisons and arithmetic operations.

index

def index() -> NodeIndexOperand

Accesses an NodeIndexOperand, allowing for the creation of operations based on the node index.

Returns:

  • NodeIndexOperand - An operand that represents the specified node index, enabling further operations such as comparisons and arithmetic operations.

node

def node() -> NodeOperand

Factory function to create and return a new NodeOperand instance.

Returns:

  • NodeOperand - An instance of NodeOperand for constructing node-based operations.

EdgeOperand Objects

class EdgeOperand()

connected_target

def connected_target(operand: NodeIndex) -> EdgeOperation

Creates an EdgeOperation that evaluates to true if the edge is connected to a target node with the specified index.

Arguments:

  • operand NodeIndex - The index of the target node to check for a connection.

Returns:

  • EdgeOperation - An EdgeOperation indicating if the edge is connected to the specified target node.

connected_source

def connected_source(operand: NodeIndex) -> EdgeOperation

Generates an EdgeOperation that evaluates to true if the edge originates from a source node with the given index.

Arguments:

  • operand NodeIndex - The index of the source node to check for a connection.

Returns:

  • EdgeOperation - An EdgeOperation indicating if the edge is connected from the specified source node.

connected

def connected(operand: NodeIndex) -> EdgeOperation

Creates an EdgeOperation that evaluates to true if the edge is connected to or from a node with the specified index.

Arguments:

  • operand NodeIndex - The index of the node to check for a connection.

Returns:

  • EdgeOperation - An EdgeOperation indicating if the edge is connected to the specified node.

has_attribute

def has_attribute(operand: MedRecordAttribute) -> EdgeOperation

Creates an EdgeOperation that evaluates to true if the edge has the specified attribute.

Arguments:

  • operand MedRecordAttribute - The attribute to check on the edge.

Returns:

  • EdgeOperation - An EdgeOperation indicating if the edge has the specified attribute.

connected_source_with

def connected_source_with(operation: NodeOperation) -> EdgeOperation

Creates an EdgeOperation that evaluates to true if the edge originates from a source node that satisfies the specified NodeOperation.

Arguments:

  • operation NodeOperation - A NodeOperation to evaluate against the source node.

Returns:

  • EdgeOperation - An EdgeOperation indicating if the source node of the edge satisfies the specified operation.

connected_target_with

def connected_target_with(operation: NodeOperation) -> EdgeOperation

Creates an EdgeOperation that evaluates to true if the edge is connected to a target node that satisfies the specified NodeOperation.

Arguments:

  • operation NodeOperation - A NodeOperation to evaluate against the target node.

Returns:

  • EdgeOperation - An EdgeOperation indicating if the target node of the edge satisfies the specified operation.

connected_with

def connected_with(operation: NodeOperation) -> EdgeOperation

Creates an EdgeOperation that evaluates to true if the edge is connected to or from a node that satisfies the specified NodeOperation.

Arguments:

  • operation NodeOperation - A NodeOperation to evaluate against the connected node.

Returns:

  • EdgeOperation - An EdgeOperation indicating if either the source or target node of the edge satisfies the specified operation.

has_parallel_edges_with

def has_parallel_edges_with(operation: EdgeOperation) -> EdgeOperation

Creates an EdgeOperation that evaluates to true if there are parallel edges that satisfy the specified EdgeOperation.

Arguments:

  • operation EdgeOperation - An EdgeOperation to evaluate against parallel edges.

Returns:

  • EdgeOperation - An EdgeOperation indicating if there are parallel edges satisfying the specified operation.

has_parallel_edges_with_self_comparison

def has_parallel_edges_with_self_comparison(
        operation: EdgeOperation) -> EdgeOperation

Creates an EdgeOperation that evaluates to true if there are parallel edges that satisfy the specified EdgeOperation.

Using edge().attribute(...) in the operation will compare to the attribute of this edge, not the parallel edge.

Arguments:

  • operation EdgeOperation - An EdgeOperation to evaluate against parallel edges.

Returns:

  • EdgeOperation - An EdgeOperation indicating if there are parallel edges satisfying the specified operation.

attribute

def attribute(attribute: MedRecordAttribute) -> EdgeAttributeOperand

Accesses an EdgeAttributeOperand for the specified attribute, allowing for the creation of operations based on edge attributes.

Arguments:

  • attribute MedRecordAttribute - The attribute of the edge to perform operations on.

Returns:

  • EdgeAttributeOperand - An operand that represents the specified edge attribute, enabling further operations such as comparisons and arithmetic operations.

index

def index() -> EdgeIndexOperand

Accesses an EdgeIndexOperand, allowing for the creation of operations based on the edge index.

Returns:

  • EdgeIndexOperand - An operand that represents the specified edge index, enabling further operations such as comparisons and arithmetic operations.

edge

def edge() -> EdgeOperand

Factory function to create and return a new EdgeOperand instance.

Returns:

  • EdgeOperand - An instance of EdgeOperand for constructing edge-based operations.