Skip to content

Query Loaders

Definition of loader for queries from files and directories.

load_query_data_from_dir_path(dir_path)

Load queries from esdl file.

Parameters:

Name Type Description Default
dir_path Path

path to file with queriesto be parsed.

required

Returns:

Type Description
Dict[str, Union[edgeql_queries.models.Query, QueriesTree]]

List of queries that will be used later by container for them.

Exceptions:

Type Description
ValueError

if dir_path is not directory.

Source code in edgeql_queries/query_loaders.py
def load_query_data_from_dir_path(dir_path: Path) -> QueriesTree:
    """Load queries from esdl file.

    Arguments:
        dir_path: path to file with queriesto be parsed.

    Returns:
        List of [queries][edgeql_queries.models.Query] that will be used
            later by [container][edgeql_queries.queries.Queries] for them.

    Raises:
        ValueError: if dir_path is not directory.
    """
    if not dir_path.is_dir():
        raise ValueError("path {0} must be a directory".format(dir_path))

    return _load_query_data_tree(dir_path, dir_path)

load_query_data_from_edgeql(edgeql)

Load queries from string.

Parameters:

Name Type Description Default
edgeql str

edgeql string that contains queries to be parsed.

required

Returns:

Type Description
List[edgeql_queries.models.Query]

List of queries that will be used later by container for them.

Source code in edgeql_queries/query_loaders.py
def load_query_data_from_edgeql(edgeql: str) -> List[Query]:
    """Load queries from string.

    Arguments:
        edgeql: edgeql string that contains queries to be parsed.

    Returns:
        List of [queries][edgeql_queries.models.Query] that will be used
            later by [container][edgeql_queries.queries.Queries] for them.
    """
    query_data = []
    matches_iter = _iter_pairs(QUERY_DEFINITION_PATTERN.finditer(edgeql))
    for (start_match, end_match) in matches_iter:
        if end_match is not None:
            end_position = end_match.start()
        else:
            end_position = len(edgeql)
        query_data.append(
            parse_query_from_string(
                start_match.groups()[0],
                edgeql[start_match.end() : end_position],
            ),
        )
    return query_data

load_query_data_from_file(file_path)

Load queries from esdl file.

Parameters:

Name Type Description Default
file_path Path

path to file with queries to be parsed.

required

Returns:

Type Description
List[edgeql_queries.models.Query]

List of queries that will be used later by container for them.

Exceptions:

Type Description
FileNotFoundError

if failed to open file. # noqa: DAR402

Source code in edgeql_queries/query_loaders.py
def load_query_data_from_file(file_path: Path) -> List[Query]:
    """Load queries from esdl file.

    Arguments:
        file_path: path to file with queries to be parsed.

    Returns:
        List of [queries][edgeql_queries.models.Query] that will be used
            later by [container][edgeql_queries.queries.Queries] for them.

    Raises:
        FileNotFoundError: if failed to open file.  # noqa: DAR402
    """
    with open(file_path) as edgeql_file:
        return load_query_data_from_edgeql(edgeql_file.read())