pygerber.tokens package

Submodules

pygerber.tokens.add module

class pygerber.tokens.add.ADD_Token(match_object: re.Match, state: DrawingState)[source]

Bases: pygerber.tokens.token.Token

ARGS = <pygerber.tokens.add.ADD_Token.ARGS_dispatcher object>[source]
class ARGS_dispatcher(pattern: str | Callable)[source]

Bases: pygerber.validators.struct_validator.StructValidator

DIAMETER = <pygerber.validators.coordinate.UnitFloat object>
HOLE_DIAMETER = <pygerber.validators.coordinate.UnitFloat object>
ROTATION = <pygerber.validators.basic.Float object>
VERTICES = <pygerber.validators.basic.Int object>
X = <pygerber.validators.coordinate.UnitFloat object>
Y = <pygerber.validators.coordinate.UnitFloat object>
re_match: re.Match
BASIC_APERTURE = '(?P<TYPE>[CROP]),(?P<ARGS>([-+]?[0-9]*\\.?[0-9]*X?)+)'
CIRCLE_PATTERN = re.compile('(?P<DIAMETER>[-+]?[0-9]*\\.?[0-9]*)(X(?P<HOLE_DIAMETER>[-+]?[0-9]*\\.?[0-9]*))?')
FLOAT_PATTERN = '[-+]?[0-9]*\\.?[0-9]*'
ID = <pygerber.validators.basic.Int object>
NAME = <pygerber.validators.basic.String object>
NAMED_APERTURE = '(?P<NAME>[a-zA-Z0-9]+)'
POLYGON_PATTERN = re.compile('(?P<DIAMETER>[-+]?[0-9]*\\.?[0-9]*)X(?P<VERTICES>[-+]?[0-9]*\\.?[0-9]*)(X(?P<ROTATION>[-+]?[0-9]*\\.?[0-9]*))?(X(?P<HOLE_DIAMETER>[-+]?[0-9]*\\.?[0-9]*))?')
RECTANGLE_PATTERN = re.compile('(?P<X>[-+]?[0-9]*\\.?[0-9]*)X(?P<Y>[-+]?[0-9]*\\.?[0-9]*)(X(?P<HOLE_DIAMETER>[-+]?[0-9]*\\.?[0-9]*))?')
TYPE = <pygerber.validators.basic.String object>
pre_render(renderer: Renderer)[source]
re_match: re.Match
regex: re.Pattern = re.compile('%ADD(?P<ID>[0-9]+)((?P<TYPE>[CROP]),(?P<ARGS>([-+]?[0-9]*\\.?[0-9]*X?)+)|(?P<NAME>[a-zA-Z0-9]+))\\*%')

pygerber.tokens.am module

class pygerber.tokens.am.ApertureMacro_Token(match_object: re.Match, state: DrawingState)[source]

Bases: pygerber.tokens.token.Token

BODY = <pygerber.validators.basic.String object>
NAME = <pygerber.validators.basic.String object>
re_match: re.Match
regex: re.Pattern = re.compile('%AM(?P<NAME>.*?)\\*(?P<BODY>.*?)\\*%', re.DOTALL)

pygerber.tokens.comment module

class pygerber.tokens.comment.G04_Token(match_object: re.Match, state: DrawingState)[source]

Bases: pygerber.tokens.token.Token

STRING = <pygerber.validators.basic.String object>
re_match: re.Match
regex: re.Pattern = re.compile('G04(?P<STRING>.*?)\\*')
class pygerber.tokens.comment.G74_Token(match_object: re.Match, state: DrawingState)[source]

Bases: pygerber.tokens.token.Token

re_match: re.Match
regex: re.Pattern = re.compile('G74\\*')
class pygerber.tokens.comment.G75_Token(match_object: re.Match, state: DrawingState)[source]

Bases: pygerber.tokens.token.Token

re_match: re.Match
regex: re.Pattern = re.compile('G75\\*')
class pygerber.tokens.comment.LoadName_Token(match_object: re.Match, state: DrawingState)[source]

Bases: pygerber.tokens.token.Token

re_match: re.Match
regex: re.Pattern = re.compile('%LN.*?\\*%', re.DOTALL)

pygerber.tokens.control module

class pygerber.tokens.control.EndOfStream_Token(match_object: re.Match, state: DrawingState)[source]

Bases: pygerber.tokens.token.Token

alter_state(state: DrawingState)[source]

This method should be called before render().

re_match: re.Match
regex: re.Pattern = re.compile('M0[02]\\*')
class pygerber.tokens.control.ImagePolarity_Token(match_object: re.Match, state: DrawingState)[source]

Bases: pygerber.tokens.token.Token

POLARITY = <pygerber.validators.basic.String object>
re_match: re.Match
regex: re.Pattern = re.compile('%IP(?P<POLARITY>((POS)|(NEG)))\\*%')
class pygerber.tokens.control.Whitespace_Token(match_object: re.Match, state: DrawingState)[source]

Bases: pygerber.tokens.token.Token

keep: bool = False
regex: re.Pattern = re.compile('\\s+')

pygerber.tokens.dispatcher_meta module

class pygerber.tokens.dispatcher_meta.Dispatcher(match_object: re.Match, state: DrawingState)[source]

Bases: object

Base class for all dispatcher objects. Includes tokens and some of the fields.

class pygerber.tokens.dispatcher_meta.DispatcherMeta(name, bases, attributes)[source]

Bases: abc.ABCMeta

get_inherited_validators() dict[source]
get_validators() dict[source]
validators: Dict[str, pygerber.validators.validator.Validator] = {}
pygerber.tokens.dispatcher_meta.getvalidators(mesh_factory: pygerber.tokens.dispatcher_meta.Dispatcher) dict[source]

Returns validators specified for given Dispatcher.

Parameters

mesh_factory (Dispatcher) – Object to fetch validators from.

Returns

dictionary of factory fields.

Return type

dict

pygerber.tokens.dnn module

class pygerber.tokens.dnn.D01_Token(match_object: re.Match, state: DrawingState)[source]

Bases: pygerber.tokens.token.Token

I = <pygerber.validators.coordinate.Coordinate object>
J = <pygerber.validators.coordinate.Coordinate object>
X = <pygerber.validators.coordinate.Coordinate object>
Y = <pygerber.validators.coordinate.Coordinate object>
bbox(renderer: Renderer)[source]
property end
property offset
post_render(renderer: Renderer)[source]
re_match: re.Match
regex: re.Pattern = re.compile('(X(?P<X>[-+]?[0-9]+))?(Y(?P<Y>[-+]?[0-9]+))?(I(?P<I>[-+]?[0-9]+))?(J(?P<J>[-+]?[0-9]+))?D01\\*')
render(renderer: Renderer)[source]

This method should be called only after token is dispatched and after alter_state().

class pygerber.tokens.dnn.D02_Token(match_object: re.Match, state: DrawingState)[source]

Bases: pygerber.tokens.token.Token

X = <pygerber.validators.coordinate.Coordinate object>
Y = <pygerber.validators.coordinate.Coordinate object>
property point
post_render(renderer: Renderer)[source]
re_match: re.Match
regex: re.Pattern = re.compile('(X(?P<X>[-+]?[0-9]+))?(Y(?P<Y>[-+]?[0-9]+))?D02\\*')
class pygerber.tokens.dnn.D03_Token(match_object: re.Match, state: DrawingState)[source]

Bases: pygerber.tokens.dnn.D02_Token

bbox(renderer: Renderer)[source]
post_render(renderer: Renderer)[source]
re_match: re.Match
regex: re.Pattern = re.compile('(X(?P<X>[-+]?[0-9]+))?(Y(?P<Y>[-+]?[0-9]+))?D03\\*')
render(renderer: Renderer)[source]

This method should be called only after token is dispatched and after alter_state().

class pygerber.tokens.dnn.DNN_Loader_Token(match_object: re.Match, state: DrawingState)[source]

Bases: pygerber.tokens.token.Token

ID = <pygerber.validators.basic.Int object>
pre_render(renderer: Renderer)[source]
re_match: re.Match
regex: re.Pattern = re.compile('D(?P<ID>[1-9][0-9]*)\\*')
class pygerber.tokens.dnn.G54DNN_Loader_Token(match_object: re.Match, state: DrawingState)[source]

Bases: pygerber.tokens.dnn.DNN_Loader_Token

re_match: re.Match
regex: re.Pattern = re.compile('G54D(?P<ID>[1-9][0-9]*)\\*')

pygerber.tokens.fs module

class pygerber.tokens.fs.FormatSpecifierToken(match_object: re.Match, state: DrawingState)[source]

Bases: pygerber.tokens.token.Token

property DEC_FORMAT
property INT_FORMAT
X_dec = <pygerber.validators.basic.Int object>
X_int = <pygerber.validators.basic.Int object>
Y_dec = <pygerber.validators.conditional.CallOnCondition object>
Y_int = <pygerber.validators.conditional.CallOnCondition object>
alter_state(state: DrawingState)[source]

This method should be called before render().

property length
mode = <pygerber.validators.basic.String object>
re_match: re.Match
regex: re.Pattern = re.compile('%FS(?P<zeros>[LTD])(?P<mode>[AI])X(?P<X_int>[1-6])(?P<X_dec>[1-6])Y(?P<Y_int>[1-6])(?P<Y_dec>[1-6])\\*%')
zeros = <pygerber.validators.basic.String object>

pygerber.tokens.gnn module

class pygerber.tokens.gnn.G0N_Token(match_object: re.Match, state: DrawingState)[source]

Bases: pygerber.tokens.token.Token

INTERPOLATION = <pygerber.validators.basic.Int object>
alter_state(state: DrawingState)[source]

This method should be called before render().

re_match: re.Match
regex: re.Pattern = re.compile('G0(?P<INTERPOLATION>[1-3])\\*?')
class pygerber.tokens.gnn.G36_Token(match_object: re.Match, state: DrawingState)[source]

Bases: pygerber.tokens.token.Token

alter_state(state: DrawingState)[source]

This method should be called before render().

re_match: re.Match
regex: re.Pattern = re.compile('G36\\*')
class pygerber.tokens.gnn.G37_Token(match_object: re.Match, state: DrawingState)[source]

Bases: pygerber.tokens.token.Token

bbox(renderer: Renderer) BoundingBox[source]
post_render(renderer: Renderer)[source]
pre_render(renderer: Renderer)[source]
re_match: re.Match
regex: re.Pattern = re.compile('G37\\*')
render(renderer: Renderer)[source]

This method should be called only after token is dispatched and after alter_state().

class pygerber.tokens.gnn.G55_Token(match_object: re.Match, state: DrawingState)[source]

Bases: pygerber.tokens.token.Token

re_match: re.Match
regex: re.Pattern = re.compile('G55.*?\\*')
class pygerber.tokens.gnn.G70_Token(match_object: re.Match, state: DrawingState)[source]

Bases: pygerber.tokens.token.Token

alter_state(state: DrawingState)[source]

This method should be called before render().

re_match: re.Match
regex: re.Pattern = re.compile('G70.*?\\*')
class pygerber.tokens.gnn.G71_Token(match_object: re.Match, state: DrawingState)[source]

Bases: pygerber.tokens.token.Token

alter_state(state: DrawingState)[source]

This method should be called before render().

re_match: re.Match
regex: re.Pattern = re.compile('G71.*?\\*')
class pygerber.tokens.gnn.G90_Token(match_object: re.Match, state: DrawingState)[source]

Bases: pygerber.tokens.token.Token

alter_state(state: DrawingState)[source]

This method should be called before render().

re_match: re.Match
regex: re.Pattern = re.compile('G90\\*')
class pygerber.tokens.gnn.G91_Token(match_object: re.Match, state: DrawingState)[source]

Bases: pygerber.tokens.token.Token

alter_state(state: DrawingState)[source]

This method should be called before render().

re_match: re.Match
regex: re.Pattern = re.compile('G91\\*')

pygerber.tokens.load module

class pygerber.tokens.load.LoadMirroringToken(match_object: re.Match, state: DrawingState)[source]

Bases: pygerber.tokens.token.Token

MIRRORING = <pygerber.validators.basic.String object>
alter_state(state: DrawingState)[source]

This method should be called before render().

re_match: re.Match
regex: re.Pattern = re.compile('%LM(?P<MIRRORING>((N)|(X)|(Y)|(XY)))\\*%')
class pygerber.tokens.load.LoadPolarityToken(match_object: re.Match, state: DrawingState)[source]

Bases: pygerber.tokens.token.Token

POLARITY = <pygerber.validators.basic.String object>
alter_state(state: DrawingState)[source]

This method should be called before render().

re_match: re.Match
regex: re.Pattern = re.compile('%LP(?P<POLARITY>[CD])\\*%')
class pygerber.tokens.load.LoadRotationToken(match_object: re.Match, state: DrawingState)[source]

Bases: pygerber.tokens.token.Token

FLOAT_PATTERN = '[-+]?[0-9]*\\.?[0-9]*'
ROTATION = <pygerber.validators.basic.Float object>
alter_state(state: DrawingState)[source]

This method should be called before render().

re_match: re.Match
regex: re.Pattern = re.compile('%LR(?P<ROTATION>[-+]?[0-9]*\\.?[0-9]*)\\*%')
class pygerber.tokens.load.LoadScalingToken(match_object: re.Match, state: DrawingState)[source]

Bases: pygerber.tokens.token.Token

FLOAT_PATTERN = '[-+]?[0-9]*\\.?[0-9]*'
SCALE = <pygerber.validators.basic.Float object>
alter_state(state: DrawingState)[source]

This method should be called before render().

re_match: re.Match
regex: re.Pattern = re.compile('%LS(?P<SCALE>[-+]?[0-9]*\\.?[0-9]*)\\*%')
class pygerber.tokens.load.LoadUnitToken(match_object: re.Match, state: DrawingState)[source]

Bases: pygerber.tokens.token.Token

UNIT = <pygerber.validators.basic.String object>
alter_state(state: DrawingState)[source]

This method should be called before render().

re_match: re.Match
regex: re.Pattern = re.compile('%MO(?P<UNIT>(MM)|(IN))\\*%')

pygerber.tokens.token module

class pygerber.tokens.token.Deprecated(message)[source]

Bases: object

class pygerber.tokens.token.Token(match_object: re.Match, state: DrawingState)[source]

Bases: pygerber.tokens.dispatcher_meta.Dispatcher

alter_state(state: DrawingState)[source]

This method should be called before render().

bbox(renderer: Renderer) BoundingBox[source]
keep: bool = True
post_render(renderer: Renderer)[source]
pre_render(renderer: Renderer)[source]
re_match: re.Match
regex: re.Pattern
render(renderer: Renderer)[source]

This method should be called only after token is dispatched and after alter_state().

renderer: Renderer = None

Module contents