Skip to content

point

point

Point wrapper token.

Point

Bases: Token

Point wrapper token.

Source code in src/pygerber/gerberx3/tokenizer/tokens/macro/point.py
class Point(Token):
    """Point wrapper token."""

    def __init__(
        self,
        string: str,
        location: int,
        x: MacroExpressionToken,
        y: MacroExpressionToken,
    ) -> None:
        super().__init__(string, location)
        self.x = x
        self.y = y

    @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()`.
        """
        x = MacroExpressionToken.ensure_type(tokens["x"])
        y = MacroExpressionToken.ensure_type(tokens["y"])

        return cls(
            string=string,
            location=location,
            x=x,
            y=y,
        )

    def to_parser2_point2(self, context: Parser2Context) -> Point2:
        """Convert to `Expression2` descendant class."""
        return Point2(
            x=self.x.to_parser2_expression(context=context),
            y=self.y.to_parser2_expression(context=context),
        )

    def get_gerber_code(
        self,
        indent: str = "",
        endline: str = "\n",
    ) -> str:
        """Get gerber code from iterable of tokens."""
        return (
            f"{self.x.get_gerber_code(indent, endline)},"
            f"{self.y.get_gerber_code(indent, endline)}"
        )

    def __str__(self) -> str:
        return f"{super().__str__()}::[{self.x}, {self.y}]"

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/macro/point.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()`.
    """
    x = MacroExpressionToken.ensure_type(tokens["x"])
    y = MacroExpressionToken.ensure_type(tokens["y"])

    return cls(
        string=string,
        location=location,
        x=x,
        y=y,
    )

to_parser2_point2

to_parser2_point2(context: Parser2Context) -> Point2

Convert to Expression2 descendant class.

Source code in src/pygerber/gerberx3/tokenizer/tokens/macro/point.py
def to_parser2_point2(self, context: Parser2Context) -> Point2:
    """Convert to `Expression2` descendant class."""
    return Point2(
        x=self.x.to_parser2_expression(context=context),
        y=self.y.to_parser2_expression(context=context),
    )

get_gerber_code

get_gerber_code(
    indent: str = "", endline: str = "\n"
) -> str

Get gerber code from iterable of tokens.

Source code in src/pygerber/gerberx3/tokenizer/tokens/macro/point.py
def get_gerber_code(
    self,
    indent: str = "",
    endline: str = "\n",
) -> str:
    """Get gerber code from iterable of tokens."""
    return (
        f"{self.x.get_gerber_code(indent, endline)},"
        f"{self.y.get_gerber_code(indent, endline)}"
    )