# {py:mod}`simvx.core.scene_io.source._source_ast.trivia` ```{py:module} simvx.core.scene_io.source._source_ast.trivia ``` ```{autodoc2-docstring} simvx.core.scene_io.source._source_ast.trivia :allowtitles: ``` ## Module Contents ### Classes ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`LogicalLine ` - ```{autodoc2-docstring} simvx.core.scene_io.source._source_ast.trivia.LogicalLine :summary: ``` * - {py:obj}`Trivia ` - ```{autodoc2-docstring} simvx.core.scene_io.source._source_ast.trivia.Trivia :summary: ``` * - {py:obj}`SuiteTrivia ` - ```{autodoc2-docstring} simvx.core.scene_io.source._source_ast.trivia.SuiteTrivia :summary: ``` * - {py:obj}`TokenIndex ` - ```{autodoc2-docstring} simvx.core.scene_io.source._source_ast.trivia.TokenIndex :summary: ``` ```` ### Functions ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`scan ` - ```{autodoc2-docstring} simvx.core.scene_io.source._source_ast.trivia.scan :summary: ``` ```` ### Data ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`__all__ ` - ```{autodoc2-docstring} simvx.core.scene_io.source._source_ast.trivia.__all__ :summary: ``` ```` ### API ````{py:data} __all__ :canonical: simvx.core.scene_io.source._source_ast.trivia.__all__ :value: > ['LogicalLine', 'SuiteTrivia', 'TokenIndex', 'Trivia', 'scan'] ```{autodoc2-docstring} simvx.core.scene_io.source._source_ast.trivia.__all__ ``` ```` `````{py:class} LogicalLine :canonical: simvx.core.scene_io.source._source_ast.trivia.LogicalLine ```{autodoc2-docstring} simvx.core.scene_io.source._source_ast.trivia.LogicalLine ``` ````{py:attribute} span :canonical: simvx.core.scene_io.source._source_ast.trivia.LogicalLine.span :type: simvx.core.scene_io.source._source_ast.spans.Span :value: > None ```{autodoc2-docstring} simvx.core.scene_io.source._source_ast.trivia.LogicalLine.span ``` ```` ````{py:attribute} trailing_comment :canonical: simvx.core.scene_io.source._source_ast.trivia.LogicalLine.trailing_comment :type: simvx.core.scene_io.source._source_ast.spans.Span | None :value: > None ```{autodoc2-docstring} simvx.core.scene_io.source._source_ast.trivia.LogicalLine.trailing_comment ``` ```` ````` `````{py:class} Trivia :canonical: simvx.core.scene_io.source._source_ast.trivia.Trivia ```{autodoc2-docstring} simvx.core.scene_io.source._source_ast.trivia.Trivia ``` ````{py:attribute} gap :canonical: simvx.core.scene_io.source._source_ast.trivia.Trivia.gap :type: simvx.core.scene_io.source._source_ast.spans.Span :value: > None ```{autodoc2-docstring} simvx.core.scene_io.source._source_ast.trivia.Trivia.gap ``` ```` ````{py:attribute} leading :canonical: simvx.core.scene_io.source._source_ast.trivia.Trivia.leading :type: simvx.core.scene_io.source._source_ast.spans.Span :value: > None ```{autodoc2-docstring} simvx.core.scene_io.source._source_ast.trivia.Trivia.leading ``` ```` ````{py:attribute} indent :canonical: simvx.core.scene_io.source._source_ast.trivia.Trivia.indent :type: simvx.core.scene_io.source._source_ast.spans.Span :value: > None ```{autodoc2-docstring} simvx.core.scene_io.source._source_ast.trivia.Trivia.indent ``` ```` ````{py:attribute} comments :canonical: simvx.core.scene_io.source._source_ast.trivia.Trivia.comments :type: tuple[simvx.core.scene_io.source._source_ast.spans.Span, ...] :value: > None ```{autodoc2-docstring} simvx.core.scene_io.source._source_ast.trivia.Trivia.comments ``` ```` ````{py:attribute} blank_lines :canonical: simvx.core.scene_io.source._source_ast.trivia.Trivia.blank_lines :type: int :value: > None ```{autodoc2-docstring} simvx.core.scene_io.source._source_ast.trivia.Trivia.blank_lines ``` ```` ````{py:attribute} trailing_comment :canonical: simvx.core.scene_io.source._source_ast.trivia.Trivia.trailing_comment :type: simvx.core.scene_io.source._source_ast.spans.Span | None :value: > None ```{autodoc2-docstring} simvx.core.scene_io.source._source_ast.trivia.Trivia.trailing_comment ``` ```` ````{py:attribute} line_end :canonical: simvx.core.scene_io.source._source_ast.trivia.Trivia.line_end :type: int :value: > None ```{autodoc2-docstring} simvx.core.scene_io.source._source_ast.trivia.Trivia.line_end ``` ```` ````{py:attribute} group_index :canonical: simvx.core.scene_io.source._source_ast.trivia.Trivia.group_index :type: int :value: > None ```{autodoc2-docstring} simvx.core.scene_io.source._source_ast.trivia.Trivia.group_index ``` ```` ````{py:attribute} group_size :canonical: simvx.core.scene_io.source._source_ast.trivia.Trivia.group_size :type: int :value: > None ```{autodoc2-docstring} simvx.core.scene_io.source._source_ast.trivia.Trivia.group_size ``` ```` ````{py:property} shares_line :canonical: simvx.core.scene_io.source._source_ast.trivia.Trivia.shares_line :type: bool ```{autodoc2-docstring} simvx.core.scene_io.source._source_ast.trivia.Trivia.shares_line ``` ```` ````{py:property} first_in_group :canonical: simvx.core.scene_io.source._source_ast.trivia.Trivia.first_in_group :type: bool ```{autodoc2-docstring} simvx.core.scene_io.source._source_ast.trivia.Trivia.first_in_group ``` ```` ````` `````{py:class} SuiteTrivia :canonical: simvx.core.scene_io.source._source_ast.trivia.SuiteTrivia ```{autodoc2-docstring} simvx.core.scene_io.source._source_ast.trivia.SuiteTrivia ``` ````{py:attribute} spans :canonical: simvx.core.scene_io.source._source_ast.trivia.SuiteTrivia.spans :type: tuple[simvx.core.scene_io.source._source_ast.spans.Span, ...] :value: > None ```{autodoc2-docstring} simvx.core.scene_io.source._source_ast.trivia.SuiteTrivia.spans ``` ```` ````{py:attribute} records :canonical: simvx.core.scene_io.source._source_ast.trivia.SuiteTrivia.records :type: tuple[simvx.core.scene_io.source._source_ast.trivia.Trivia, ...] :value: > None ```{autodoc2-docstring} simvx.core.scene_io.source._source_ast.trivia.SuiteTrivia.records ``` ```` ````{py:attribute} tail :canonical: simvx.core.scene_io.source._source_ast.trivia.SuiteTrivia.tail :type: simvx.core.scene_io.source._source_ast.spans.Span :value: > None ```{autodoc2-docstring} simvx.core.scene_io.source._source_ast.trivia.SuiteTrivia.tail ``` ```` ````{py:method} reconstruct(source: str) -> str :canonical: simvx.core.scene_io.source._source_ast.trivia.SuiteTrivia.reconstruct ```{autodoc2-docstring} simvx.core.scene_io.source._source_ast.trivia.SuiteTrivia.reconstruct ``` ```` ````{py:method} groups() -> list[list[int]] :canonical: simvx.core.scene_io.source._source_ast.trivia.SuiteTrivia.groups ```{autodoc2-docstring} simvx.core.scene_io.source._source_ast.trivia.SuiteTrivia.groups ``` ```` ````` `````{py:class} TokenIndex(table: simvx.core.scene_io.source._source_ast.spans.LineTable) :canonical: simvx.core.scene_io.source._source_ast.trivia.TokenIndex ```{autodoc2-docstring} simvx.core.scene_io.source._source_ast.trivia.TokenIndex ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} simvx.core.scene_io.source._source_ast.trivia.TokenIndex.__init__ ``` ````{py:attribute} __slots__ :canonical: simvx.core.scene_io.source._source_ast.trivia.TokenIndex.__slots__ :value: > ('_table', '_lines', '_line_starts', '_line_stops', '_comment_starts', 'comments') ```{autodoc2-docstring} simvx.core.scene_io.source._source_ast.trivia.TokenIndex.__slots__ ``` ```` ````{py:property} table :canonical: simvx.core.scene_io.source._source_ast.trivia.TokenIndex.table :type: simvx.core.scene_io.source._source_ast.spans.LineTable ```{autodoc2-docstring} simvx.core.scene_io.source._source_ast.trivia.TokenIndex.table ``` ```` ````{py:property} logical_lines :canonical: simvx.core.scene_io.source._source_ast.trivia.TokenIndex.logical_lines :type: tuple[simvx.core.scene_io.source._source_ast.trivia.LogicalLine, ...] ```{autodoc2-docstring} simvx.core.scene_io.source._source_ast.trivia.TokenIndex.logical_lines ``` ```` ````{py:method} module(tree: ast.Module) -> simvx.core.scene_io.source._source_ast.trivia.SuiteTrivia :canonical: simvx.core.scene_io.source._source_ast.trivia.TokenIndex.module ```{autodoc2-docstring} simvx.core.scene_io.source._source_ast.trivia.TokenIndex.module ``` ```` ````{py:method} nested(statements: collections.abc.Sequence[ast.stmt]) -> simvx.core.scene_io.source._source_ast.trivia.SuiteTrivia :canonical: simvx.core.scene_io.source._source_ast.trivia.TokenIndex.nested ```{autodoc2-docstring} simvx.core.scene_io.source._source_ast.trivia.TokenIndex.nested ``` ```` ````{py:method} suite(statements: collections.abc.Sequence[ast.stmt], *, start: int, end: int | None = None) -> simvx.core.scene_io.source._source_ast.trivia.SuiteTrivia :canonical: simvx.core.scene_io.source._source_ast.trivia.TokenIndex.suite ```{autodoc2-docstring} simvx.core.scene_io.source._source_ast.trivia.TokenIndex.suite ``` ```` ````` ````{py:function} scan(text: str) -> simvx.core.scene_io.source._source_ast.trivia.TokenIndex :canonical: simvx.core.scene_io.source._source_ast.trivia.scan ```{autodoc2-docstring} simvx.core.scene_io.source._source_ast.trivia.scan ``` ````