Source code for text_lint.operations.lookups.to_reversed

"""ReversedLookup class."""

from typing import TYPE_CHECKING

from text_lint.config import LOOKUP_TRANSFORMATION_PREFIX
from text_lint.operations.lookups.bases.lookup_encoder_base import (
    LookupEncoderBase,
)
from text_lint.operations.lookups.encoders.reversed import ReversedEncoder
from text_lint.utilities.translations import _

if TYPE_CHECKING:  # pragma: no cover
  from text_lint.linter.states import LookupState

YAML_EXAMPLE_COMPONENTS = (
    _("reversed transformation lookup example"),
)
YAML_EXAMPLE = """

- name: {0}
  operation: validate_debug
  saved:
    - example.capture(1).0.to_reversed()

""".format(*YAML_EXAMPLE_COMPONENTS)


[docs] class ReversedLookup(LookupEncoderBase): """ReversedLookup operation for ResultForest instances.""" encoder_class = ReversedEncoder hint = _("reverse the order of a save id") operation = LOOKUP_TRANSFORMATION_PREFIX + "reversed" yaml_example = YAML_EXAMPLE
[docs] def apply( self, state: "LookupState", ) -> None: """Reverse the order of the current lookup results.""" if isinstance(state.results, str): state.results = "".join(reversed(list(state.results))) else: state.results = self.encode(state.results)