Ejemplo n.º 1
0
 def build(self) -> StructureRenderer:
     return renderers.NodeRendererFromParts(
         self._header,
         None,
         self._details,
         tuple(self._children) + tuple(self._transformation_child()),
     )
Ejemplo n.º 2
0
def sequence_of_at_least_2_operands(parts: Sequence[WithNodeDescription]) -> StructureRenderer:
    return renderers.NodeRendererFromParts(
        string_source.CONCAT_NAME,
        None,
        (),
        [part.structure() for part in parts],
    )
Ejemplo n.º 3
0
 def _structure(self) -> StructureRenderer:
     return renderers.NodeRendererFromParts(
         self.name,
         None,
         (),
         (),
     )
Ejemplo n.º 4
0
 def new_structure_tree(negated: WithNodeDescription) -> StructureRenderer:
     return renderers.NodeRendererFromParts(
         Negation.NAME,
         None,
         (),
         (negated.structure(), ),
     )
Ejemplo n.º 5
0
 def new_structure_tree(glob_pattern: DetailsRenderer) -> StructureRenderer:
     return renderers.NodeRendererFromParts(
         MatchesGlobPattern.NAME,
         None,
         (glob_pattern, ),
         (),
     )
Ejemplo n.º 6
0
 def new_structure_tree(name: str, line_matcher: WithNodeDescription) -> StructureRenderer:
     return renderers.NodeRendererFromParts(
         name,
         None,
         (),
         (line_matcher.structure(),),
     )
Ejemplo n.º 7
0
 def new_structure_tree(transformer: StructureRenderer,
                        on_transformed: StructureRenderer) -> StructureRenderer:
     return renderers.NodeRendererFromParts(
         StringMatcherWithTransformation.NAME,
         None,
         (details.Tree(transformer),),
         (on_transformed,),
     )
Ejemplo n.º 8
0
def sequence_of_at_least_2_operands__renderers(
        operands: Sequence[StructureRenderer]) -> StructureRenderer:
    return renderers.NodeRendererFromParts(
        string_transformer.SEQUENCE_OPERATOR_NAME,
        None,
        (),
        operands,
    )
Ejemplo n.º 9
0
def sequence_of_at_least_2_operands(
        operands: Sequence[WithNodeDescription]) -> StructureRenderer:
    return renderers.NodeRendererFromParts(
        string_transformer.SEQUENCE_OPERATOR_NAME,
        None,
        (),
        [operand.structure() for operand in operands],
    )
Ejemplo n.º 10
0
 def new_structure_tree(is_full_match: bool,
                        expected_regex: DetailsRenderer) -> StructureRenderer:
     return renderers.NodeRendererFromParts(
         MatchesRegex.NAME,
         None,
         (custom_details.regex_with_config_renderer(is_full_match, expected_regex),),
         (),
     )
Ejemplo n.º 11
0
def _new_structure_tree(name: str, options: DetailsRenderer,
                        contents_matcher: MatcherWTrace) -> StructureRenderer:
    return renderers.NodeRendererFromParts(
        name,
        None,
        (options, ),
        (contents_matcher.structure(), ),
    )
Ejemplo n.º 12
0
 def new_structure_tree(
         operands: Sequence[WithNodeDescription]) -> StructureRenderer:
     return renderers.NodeRendererFromParts(
         Disjunction.NAME,
         None,
         (),
         [operand.structure() for operand in operands],
     )
Ejemplo n.º 13
0
 def new_structure_tree(
         string_matcher: StructureRenderer) -> StructureRenderer:
     return renderers.NodeRendererFromParts(
         _LineContentsMatcher.NAME,
         None,
         (),
         (string_matcher, ),
     )
Ejemplo n.º 14
0
 def new_structure_tree(
         quantifier: Quantifier, element_rendering: ElementRendering,
         predicate: WithNodeDescription) -> StructureRenderer:
     return renderers.NodeRendererFromParts(
         _QuantifierBase.__name(quantifier, element_rendering),
         None,
         (),
         (predicate.structure(), ),
     )
Ejemplo n.º 15
0
 def _renderer(self) -> StructureRenderer:
     return renderers.NodeRendererFromParts(
         self._structure_header,
         None,
         (
             custom_details.optional_option(
                 names.RUN_WITH_IGNORED_EXIT_CODE_OPTION_NAME,
                 self._ignore_exit_code),
             custom_details.TreeStructure(self._program()),
         ),
         (),
     )
Ejemplo n.º 16
0
 def _transformation_child(self) -> Sequence[StructureRenderer]:
     mb_transformer = string_transformer_descr.sequence_of_renderers__optional(
         self._transformations)
     if mb_transformer is None:
         return ()
     else:
         transformation_renderer = renderers.NodeRendererFromParts(
             string_transformer.WITH_TRANSFORMED_CONTENTS_OPTION,
             None,
             (),
             (mb_transformer, ),
         )
         return (transformation_renderer, )
Ejemplo n.º 17
0
def stdin_node_renderer(
    string_sources: Sequence[WithNodeDescription]
) -> Optional[StructureRenderer]:
    if not string_sources:
        return None
    else:
        string_source = str_src_descr.sequence_of_unknown_num_operands(
            string_sources)
        return renderers.NodeRendererFromParts(
            _STDIN_NAME,
            None,
            (),
            (string_source, ),
        )
Ejemplo n.º 18
0
def _transformation_node(
    transformations: Sequence[WithNodeDescription]
) -> Optional[StructureRenderer]:
    if not transformations:
        return None
    else:
        transformer = string_transformer_descr.sequence_of_unknown_num_operands(
            transformations)
        return renderers.NodeRendererFromParts(
            _TRANSFORMER_NAME,
            None,
            (),
            (transformer, ),
        )
Ejemplo n.º 19
0
 def _renderer(self) -> StructureRenderer:
     return renderers.NodeRendererFromParts(
         names.REPLACE_TRANSFORMER_NAME,
         None,
         (
             self._lines_selection_renderer(),
             custom_details.optional_option(names.PRESERVE_NEW_LINES_OPTION_NAME, self._preserve_new_lines),
             details.HeaderAndValue(self._PATTERN_HEADER,
                                    self._pattern),
             details.HeaderAndValue(self._REPLACEMENT_HEADER,
                                    self._replacement),
         ),
         (),
     )
Ejemplo n.º 20
0
 def _render(self) -> StructureRenderer:
     ranges = [
         (
             repr(r)
             if r == '' or r.isspace()
             else
             r
         )
         for r in [str(r) for r in self._ranges]
     ]
     range_list = ' '.join(ranges)
     return renderers.NodeRendererFromParts(
         self._name,
         None,
         (details.String(range_list),),
         (),
     )