Skip to content

extract_lefts_and_rights

Given a spaCy token, extract recursively all tokens in its dependency subtree in inorder traversal.

Source code in src/library_analyzer/processing/dependencies/_get_dependency.py
def extract_lefts_and_rights(curr_token: Token, extracted: list | None = None) -> list:
    """Given a spaCy token, extract recursively all tokens in its dependency subtree in inorder traversal."""
    if extracted is None:
        extracted = []

    token_lefts = list(curr_token.lefts)
    for token in token_lefts:
        extract_lefts_and_rights(token, extracted)

    extracted.append(curr_token.text)

    token_rights = list(curr_token.rights)
    for token in token_rights:
        extract_lefts_and_rights(token, extracted)

    return extracted