def _get_edge_properties(
    query: str, e_labels: List[str], types: Dict[str, Any]
) -> List:
    """Get the edge properties for the label."""
    edge_properties_query = """
        MATCH ()-[e:`{e_label}`]->()
        RETURN properties(e) AS props
        LIMIT 100
        """
    edge_properties = []
    for label in e_labels:
        q = edge_properties_query.format(e_label=label)
        data = {"label": label, "properties": query(q)}
        s = set({})
        for p in data["properties"]:
            for k, v in p["props"].items():
                data_type = types[type(v).__name__]
                if types[type(v).__name__] == "STRING":
                    try:
                        if bool(parser.parse(v)):
                            data_type = "DATETIME"
                        else:
                            data_type = "STRING"
                    except ValueError:
                        data_type = "STRING"
                s.add((k, data_type))

        ep = {
            "type": label,
            "properties": [{"property": k, "type": v} for k, v in s],
        }
        edge_properties.append(ep)

    return edge_properties
Get the edge properties for the label.
llama-index-integrations/graph_stores/llama-index-graph-stores-neptune/llama_index/graph_stores/neptune/neptune.py