Skip to content

Commit

Permalink
Improve parser hooks implementation
Browse files Browse the repository at this point in the history
  • Loading branch information
Argmaster committed Dec 29, 2023
1 parent d74842a commit 942a819
Show file tree
Hide file tree
Showing 48 changed files with 937 additions and 163 deletions.
3 changes: 2 additions & 1 deletion src/pygerber/gerberx3/parser2/command_buffer2.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,5 +18,6 @@ def add_command(self, __command: Draw2) -> None:
"""Add draw command to command buffer."""
self.commands.append(__command)

Check warning on line 19 in src/pygerber/gerberx3/parser2/command_buffer2.py

View check run for this annotation

Codecov / codecov/patch

src/pygerber/gerberx3/parser2/command_buffer2.py#L19

Added line #L19 was not covered by tests

def __iter__(self) -> Iterator[Draw2]:
def get_commands(self) -> Iterator[Draw2]:

Check warning on line 21 in src/pygerber/gerberx3/parser2/command_buffer2.py

View check run for this annotation

Codecov / codecov/patch

src/pygerber/gerberx3/parser2/command_buffer2.py#L21

Added line #L21 was not covered by tests
"""Get list of buffered draw commands."""
yield from self.commands

Check warning on line 23 in src/pygerber/gerberx3/parser2/command_buffer2.py

View check run for this annotation

Codecov / codecov/patch

src/pygerber/gerberx3/parser2/command_buffer2.py#L23

Added line #L23 was not covered by tests
13 changes: 7 additions & 6 deletions src/pygerber/gerberx3/parser2/context2.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@
from pygerber.gerberx3.parser2.apertures2.aperture2 import Aperture2
from pygerber.gerberx3.parser2.command_buffer2 import CommandBuffer2
from pygerber.gerberx3.parser2.draws2.draw2 import Draw2
from pygerber.gerberx3.parser2.hooks2 import Hooks2
from pygerber.gerberx3.parser2.ihooks import IHooks
from pygerber.gerberx3.parser2.parser2hooks import Parser2Hooks
from pygerber.gerberx3.parser2.state2 import State2
from pygerber.gerberx3.state_enums import DrawMode, Mirroring, Polarity, Unit
from pygerber.gerberx3.tokenizer.tokens.bases.token import Token
Expand All @@ -36,12 +37,12 @@ def __init__(self, options: Parser2ContextOptions | None = None) -> None:
if self.options.initial_command_buffer is None
else self.options.initial_command_buffer
)
self.hooks: Hooks2 = (
Hooks2() if self.options.hooks is None else self.options.hooks
self.hooks: IHooks = (

Check warning on line 40 in src/pygerber/gerberx3/parser2/context2.py

View check run for this annotation

Codecov / codecov/patch

src/pygerber/gerberx3/parser2/context2.py#L40

Added line #L40 was not covered by tests
Parser2Hooks() if self.options.hooks is None else self.options.hooks
)
self.current_token: Optional[Token] = None

Check warning on line 43 in src/pygerber/gerberx3/parser2/context2.py

View check run for this annotation

Codecov / codecov/patch

src/pygerber/gerberx3/parser2/context2.py#L43

Added line #L43 was not covered by tests

def get_hooks(self) -> Hooks2:
def get_hooks(self) -> IHooks:

Check warning on line 45 in src/pygerber/gerberx3/parser2/context2.py

View check run for this annotation

Codecov / codecov/patch

src/pygerber/gerberx3/parser2/context2.py#L45

Added line #L45 was not covered by tests
"""Get hooks object."""
return self.hooks

Check warning on line 47 in src/pygerber/gerberx3/parser2/context2.py

View check run for this annotation

Codecov / codecov/patch

src/pygerber/gerberx3/parser2/context2.py#L47

Added line #L47 was not covered by tests

Expand Down Expand Up @@ -203,7 +204,7 @@ def get_file_attribute(self, key: str) -> Optional[str]:
"""Get file attributes property."""
return self.get_state().get_file_attribute(key)

Check warning on line 205 in src/pygerber/gerberx3/parser2/context2.py

View check run for this annotation

Codecov / codecov/patch

src/pygerber/gerberx3/parser2/context2.py#L205

Added line #L205 was not covered by tests

def delete_file_attribute(self, key: str) -> Optional[str]:
def delete_file_attribute(self, key: str) -> None:

Check warning on line 207 in src/pygerber/gerberx3/parser2/context2.py

View check run for this annotation

Codecov / codecov/patch

src/pygerber/gerberx3/parser2/context2.py#L207

Added line #L207 was not covered by tests
"""Get file attributes property."""
return self.set_state(self.get_state().delete_file_attribute(key))

Check warning on line 209 in src/pygerber/gerberx3/parser2/context2.py

View check run for this annotation

Codecov / codecov/patch

src/pygerber/gerberx3/parser2/context2.py#L209

Added line #L209 was not covered by tests

Expand Down Expand Up @@ -265,4 +266,4 @@ class Parser2ContextOptions(FrozenGeneralModel):

initial_state: Optional[State2] = Field(default=None)
initial_command_buffer: Optional[CommandBuffer2] = Field(default=None)
hooks: Optional[Hooks2] = Field(default=None)
hooks: Optional[IHooks] = Field(default=None)

Check warning on line 269 in src/pygerber/gerberx3/parser2/context2.py

View check run for this annotation

Codecov / codecov/patch

src/pygerber/gerberx3/parser2/context2.py#L267-L269

Added lines #L267 - L269 were not covered by tests
63 changes: 0 additions & 63 deletions src/pygerber/gerberx3/parser2/hooks2.py

This file was deleted.

Loading

0 comments on commit 942a819

Please sign in to comment.