Source code for text_lint.sequencers.lookups

"""LookupsSequencer class."""

from typing import TYPE_CHECKING

from text_lint.operations.lookups import lookup_registry
from text_lint.sequencers.bases.operator_base import OperatorBase

if TYPE_CHECKING:  # pragma: no cover
  from text_lint.operations.lookups.bases.lookup_base import LookupBase
  from text_lint.operations.validators.args.lookup_expression import (
      LookupExpression,
  )


[docs] class LookupsSequencer(OperatorBase["LookupBase"]): """Iterator that returns ResultForest lookups in the correct sequence."""
[docs] def __init__( self, lookup_expression: "LookupExpression", requesting_operation_name: str, ) -> None: """Initialize LookupsSequencer instances. :param lookup_expression: The lookup expression being evaluated. :param requesting_operation_name: The validator for this lookup expression. """ instances = [ lookup_registry[lookup.name]( lookup.name, lookup_expression, lookup.params, requesting_operation_name, ) for lookup in lookup_expression.lookups ] super().__init__(instances)