from neo4j_runway import DataModel

This is the core data model class of Neo4j Runway. All imported data models will be converted to this data model format.

The standard Graph Data Model representation in Neo4j Runway.

Attributes
----------
nodes : List[Node]
    A list of the nodes in the data model.
relationships : List[Relationship]
    A list of the relationships in the data model.
metadata: Optional[Dict[str, Any]]
    Metadata from an import source such as Solutions
    Workbench.

Class Methods

advanced_validation

get_schema

Get the data model schema.

Parameters
----------
verbose : bool, optional
    Whether to provide more detail, by default True
neo4j_typing : bool, optional
    Whether to use Neo4j types instead of Python types,
    by default False
print_schema : bool, optional
    Whether to auto print the schema, by default False

Returns
-------
str
    The schema

to_arrows

Output the data model to arrows compatible JSON file.

Parameters
----------
file_path : str, optional
    The file path to write if write_file = True, by
    default "data-model.json"
write_file : bool, optional
    Whether to write the file, by default True

Returns
-------
ArrowsDataModel
    A representation of the data model in arrows.app
    format.

to_json

Output the data model to a json file.

Parameters
----------
file_path : str, optional
    The file path to write, by default "data-model.json"

Returns
-------
Dict[str, any]
    A Python dictionary version of the json.

to_solutions_workbench

Output the data model to Solutions Workbench compatible JSON file.

Parameters
----------
file_path : str, optional
    The file path to write if write_file = True, by
    default "data-model.json"
write_file : bool, optional
    Whether to write the file, by default True

Returns
-------
SolutionsWorkbenchDataModel
    A representation of the data model in Solutions
    Workbench format.

to_yaml

Output the data model to a yaml file and String.

Parameters
----------
file_path : str, optional
    The file path to write if write_file = True, by
    default "data-model.yaml"
write_file : bool, optional
    Whether to write the file, by default True

Returns
-------
str
    A String representation of the yaml file.

visualize

Visualize the data model using Graphviz. Requires that Graphviz is installed.

Parameters
----------
detail_level : Literal[1, 2, 3]
    The level of detail to include in the visual

    1: Node labels and Relationship types only

    2: Node labels, Relationship types and basic
    Property info

    3: Node labels, Relationship types and all Property
    info
neo4j_typing : bool, optional
    Whether to use Neo4j types instead of Python types,
    by default False

Returns
-------
Digraph
    The dot for visualization

from_arrows

Construct a DataModel from an arrows data model JSON file.

Parameters
----------
file_path : str
    The location and name of the arrows.app JSON file to
    import.

Raises
------
InvalidArrowsDataModelError
    If the json file is unable to be parsed.

Returns
-------
DataModel
    An instance of a DataModel.

from_solutions_workbench

Construct a DataModel from a Solutions Workbench data model JSON file.

Parameters
----------
file_path : str
    The location and name of the Solutions Workbench
    JSON file to import.

Raises
------
InvalidSolutionsWorkbenchDataModelError
    If the json file is unable to be parsed.

Returns
-------
DataModel
    An instance of a DataModel.

Class Properties

node_dict

Returns a dictionary of node label to Node.

Returns
-------
Dict[str, Node]
    A dictionary with node label keys and Node values.

node_labels

Returns a list of node labels.

Returns
-------
List[str]
    A list of node labels.

relationship_dict

Returns a dictionary of relationship type to Relationships.

Returns
-------
Dict[str, Relationship]
    A dictionary with relationship type keys and
    Relationship values.

relationship_types

Returns a list of relationship types.

Returns
-------
List[str]
    A list of relationship types.