Skip to content

statement_buffer2

statement_buffer2

Module contains class `StatementBuffer2 for macro statements.

StatementBuffer2

Buffer for macro statements.

Source code in src/pygerber/gerberx3/parser2/macro2/statement_buffer2.py
class StatementBuffer2:
    """Buffer for macro statements."""

    def __init__(self) -> None:
        self.statements: list[Statement2] = []

    def add_statement(self, statement: Statement2) -> None:
        """Append a complete statement to the buffer."""
        self.statements.append(statement)

    def get_readonly(self) -> ReadonlyStatementBuffer2:
        """Return readonly buffer."""
        return ReadonlyStatementBuffer2(statements=self.statements)

add_statement

add_statement(statement: Statement2) -> None

Append a complete statement to the buffer.

Source code in src/pygerber/gerberx3/parser2/macro2/statement_buffer2.py
def add_statement(self, statement: Statement2) -> None:
    """Append a complete statement to the buffer."""
    self.statements.append(statement)

get_readonly

get_readonly() -> ReadonlyStatementBuffer2

Return readonly buffer.

Source code in src/pygerber/gerberx3/parser2/macro2/statement_buffer2.py
def get_readonly(self) -> ReadonlyStatementBuffer2:
    """Return readonly buffer."""
    return ReadonlyStatementBuffer2(statements=self.statements)

ReadonlyStatementBuffer2

Bases: FrozenGeneralModel

Read-only macro statement buffer.

Source code in src/pygerber/gerberx3/parser2/macro2/statement_buffer2.py
class ReadonlyStatementBuffer2(FrozenGeneralModel):
    """Read-only macro statement buffer."""

    statements: List[Statement2]

    def __len__(self) -> int:
        """Return length of buffered commands."""
        return len(self.statements)

    def __iter__(self) -> Iterator[Statement2]:  # type: ignore[override]
        """Iterate over buffered draw commands."""
        yield from self.statements

    def __getitem__(self, position: int) -> Statement2:
        """Get draw command at position."""
        return self.statements[position]

__len__

__len__() -> int

Return length of buffered commands.

Source code in src/pygerber/gerberx3/parser2/macro2/statement_buffer2.py
def __len__(self) -> int:
    """Return length of buffered commands."""
    return len(self.statements)

__iter__

__iter__() -> Iterator[Statement2]

Iterate over buffered draw commands.

Source code in src/pygerber/gerberx3/parser2/macro2/statement_buffer2.py
def __iter__(self) -> Iterator[Statement2]:  # type: ignore[override]
    """Iterate over buffered draw commands."""
    yield from self.statements

__getitem__

__getitem__(position: int) -> Statement2

Get draw command at position.

Source code in src/pygerber/gerberx3/parser2/macro2/statement_buffer2.py
def __getitem__(self, position: int) -> Statement2:
    """Get draw command at position."""
    return self.statements[position]