def build(self) -> StructureRenderer: return renderers.NodeRendererFromParts( self._header, None, self._details, tuple(self._children) + tuple(self._transformation_child()), )
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], )
def _structure(self) -> StructureRenderer: return renderers.NodeRendererFromParts( self.name, None, (), (), )
def new_structure_tree(negated: WithNodeDescription) -> StructureRenderer: return renderers.NodeRendererFromParts( Negation.NAME, None, (), (negated.structure(), ), )
def new_structure_tree(glob_pattern: DetailsRenderer) -> StructureRenderer: return renderers.NodeRendererFromParts( MatchesGlobPattern.NAME, None, (glob_pattern, ), (), )
def new_structure_tree(name: str, line_matcher: WithNodeDescription) -> StructureRenderer: return renderers.NodeRendererFromParts( name, None, (), (line_matcher.structure(),), )
def new_structure_tree(transformer: StructureRenderer, on_transformed: StructureRenderer) -> StructureRenderer: return renderers.NodeRendererFromParts( StringMatcherWithTransformation.NAME, None, (details.Tree(transformer),), (on_transformed,), )
def sequence_of_at_least_2_operands__renderers( operands: Sequence[StructureRenderer]) -> StructureRenderer: return renderers.NodeRendererFromParts( string_transformer.SEQUENCE_OPERATOR_NAME, None, (), operands, )
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], )
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),), (), )
def _new_structure_tree(name: str, options: DetailsRenderer, contents_matcher: MatcherWTrace) -> StructureRenderer: return renderers.NodeRendererFromParts( name, None, (options, ), (contents_matcher.structure(), ), )
def new_structure_tree( operands: Sequence[WithNodeDescription]) -> StructureRenderer: return renderers.NodeRendererFromParts( Disjunction.NAME, None, (), [operand.structure() for operand in operands], )
def new_structure_tree( string_matcher: StructureRenderer) -> StructureRenderer: return renderers.NodeRendererFromParts( _LineContentsMatcher.NAME, None, (), (string_matcher, ), )
def new_structure_tree( quantifier: Quantifier, element_rendering: ElementRendering, predicate: WithNodeDescription) -> StructureRenderer: return renderers.NodeRendererFromParts( _QuantifierBase.__name(quantifier, element_rendering), None, (), (predicate.structure(), ), )
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()), ), (), )
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, )
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, ), )
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, ), )
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), ), (), )
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),), (), )