Skip to content

token

token

Base class for creating token classes.

Token

Bases: FrozenGeneralModel

Base class for creating token classes.

Source code in src/pygerber/gerberx3/tokenizer/tokens/token.py
class Token(FrozenGeneralModel):
    """Base class for creating token classes."""

    @classmethod
    def wrap(
        cls,
        expr: ParserElement,
        *,
        use_group: bool = True,
    ) -> ParserElement:
        """Set parse result to be instance of this class."""
        expr = expr.set_parse_action(cls.new)

        if use_group:
            return Group(expr)

        return expr

    @classmethod
    def new(cls, _string: str, _location: int, tokens: ParseResults) -> Self:
        """Create instance of this class.

        Created to be used as callback in `ParserElement.set_parse_action()`.
        """
        return cls.from_tokens(**dict(tokens))

    @classmethod
    def from_tokens(cls, **_tokens: Any) -> Self:
        """Initialize token object."""
        return cls()

    def __str__(self) -> str:
        return f"<TOKEN {self.__class__.__qualname__}>"

    def __repr__(self) -> str:
        """Return pretty representation of comment token."""
        string = str(self)
        repr_string = f"<TOKEN {self.__class__.__qualname__}>"

        if repr_string == string:
            return repr_string

        return f"<{self.__class__.__qualname__} {string!r}>"

    def get_debug_format(self) -> str:
        """Return debug formatted token object."""
        return super().__repr__()

    def __getitem__(self, _: int) -> Self:
        """Index return self."""
        return self

    def update_drawing_state(
        self,
        state: State,
        _backend: Backend,
    ) -> Tuple[State, Iterable[DrawCommand]]:
        """Update drawing state."""
        return state, ()

wrap classmethod

wrap(
    expr: ParserElement, *, use_group: bool = True
) -> ParserElement

Set parse result to be instance of this class.

Source code in src/pygerber/gerberx3/tokenizer/tokens/token.py
@classmethod
def wrap(
    cls,
    expr: ParserElement,
    *,
    use_group: bool = True,
) -> ParserElement:
    """Set parse result to be instance of this class."""
    expr = expr.set_parse_action(cls.new)

    if use_group:
        return Group(expr)

    return expr

new classmethod

new(
    _string: str, _location: int, tokens: ParseResults
) -> Self

Create instance of this class.

Created to be used as callback in ParserElement.set_parse_action().

Source code in src/pygerber/gerberx3/tokenizer/tokens/token.py
@classmethod
def new(cls, _string: str, _location: int, tokens: ParseResults) -> Self:
    """Create instance of this class.

    Created to be used as callback in `ParserElement.set_parse_action()`.
    """
    return cls.from_tokens(**dict(tokens))

from_tokens classmethod

from_tokens(**_tokens: Any) -> Self

Initialize token object.

Source code in src/pygerber/gerberx3/tokenizer/tokens/token.py
@classmethod
def from_tokens(cls, **_tokens: Any) -> Self:
    """Initialize token object."""
    return cls()

__repr__

__repr__() -> str

Return pretty representation of comment token.

Source code in src/pygerber/gerberx3/tokenizer/tokens/token.py
def __repr__(self) -> str:
    """Return pretty representation of comment token."""
    string = str(self)
    repr_string = f"<TOKEN {self.__class__.__qualname__}>"

    if repr_string == string:
        return repr_string

    return f"<{self.__class__.__qualname__} {string!r}>"

get_debug_format

get_debug_format() -> str

Return debug formatted token object.

Source code in src/pygerber/gerberx3/tokenizer/tokens/token.py
def get_debug_format(self) -> str:
    """Return debug formatted token object."""
    return super().__repr__()

__getitem__

__getitem__(_: int) -> Self

Index return self.

Source code in src/pygerber/gerberx3/tokenizer/tokens/token.py
def __getitem__(self, _: int) -> Self:
    """Index return self."""
    return self

update_drawing_state

update_drawing_state(
    state: State, _backend: Backend
) -> Tuple[State, Iterable[DrawCommand]]

Update drawing state.

Source code in src/pygerber/gerberx3/tokenizer/tokens/token.py
def update_drawing_state(
    self,
    state: State,
    _backend: Backend,
) -> Tuple[State, Iterable[DrawCommand]]:
    """Update drawing state."""
    return state, ()

GerberX3Token

Bases: Token

Base class for tokens which are part of Gerber X3 standard.

Source code in src/pygerber/gerberx3/tokenizer/tokens/token.py
class GerberX3Token(Token):
    """Base class for tokens which are part of Gerber X3 standard."""

DeprecatedToken

Bases: Token

Base class for tokens which are deprecated.

Source code in src/pygerber/gerberx3/tokenizer/tokens/token.py
class DeprecatedToken(Token):
    """Base class for tokens which are deprecated."""