From 4eb0e063bcd34c21b737023aa6ed5baed80658d1 Mon Sep 17 00:00:00 2001 From: jaseg Date: Sun, 13 Jun 2021 15:00:17 +0200 Subject: [PATCH] Repo re-org, make gerberex tests run --- gerberex/__init__.py | 15 -------- {gerber => gerbonara/gerber}/__init__.py | 7 ++-- {gerber => gerbonara/gerber}/__main__.py | 0 {gerber => gerbonara/gerber}/am_eval.py | 0 {gerber => gerbonara/gerber}/am_read.py | 0 {gerber => gerbonara/gerber}/am_statements.py | 0 {gerber => gerbonara/gerber}/cam.py | 0 {gerber => gerbonara/gerber}/common.py | 0 {gerber => gerbonara/gerber}/excellon.py | 0 .../gerber}/excellon_report/excellon_drr.py | 0 .../gerber}/excellon_settings.py | 0 .../gerber}/excellon_statements.py | 0 {gerber => gerbonara/gerber}/excellon_tool.py | 0 {gerber => gerbonara/gerber}/exceptions.py | 0 .../gerber}/gerber_statements.py | 0 {gerber => gerbonara/gerber}/ipc356.py | 0 {gerber => gerbonara/gerber}/layers.py | 0 .../gerber}/ncparam/allegro.py | 0 {gerber => gerbonara/gerber}/operations.py | 0 gerbonara/gerber/panelize/__init__.py | 8 ++++ .../gerber/panelize}/am_expression.py | 6 +-- .../gerber/panelize}/am_primitive.py | 8 ++-- .../gerber/panelize}/common.py | 27 ++++++------- .../gerber/panelize}/composition.py | 26 ++++++------- .../gerber/panelize}/dxf.py | 18 ++++----- .../gerber/panelize}/dxf_path.py | 16 ++++---- .../gerber/panelize}/excellon.py | 16 ++++---- .../gerber/panelize}/gerber_statements.py | 6 +-- .../gerber/panelize}/rs274x.py | 18 ++++----- .../gerber/panelize}/utility.py | 0 {gerber => gerbonara/gerber}/pcb.py | 0 {gerber => gerbonara/gerber}/primitives.py | 0 .../gerber}/render/__init__.py | 0 .../gerber}/render/cairo_backend.py | 0 .../gerber}/render/excellon_backend.py | 0 {gerber => gerbonara/gerber}/render/render.py | 0 .../gerber}/render/rs274x_backend.py | 0 {gerber => gerbonara/gerber}/render/theme.py | 0 {gerber => gerbonara/gerber}/rs274x.py | 0 .../gerber}/tests/__init__.py | 0 .../golden/example_am_exposure_modifier.png | Bin .../tests/golden/example_coincident_hole.png | Bin .../tests/golden/example_cutin_multiple.png | Bin .../tests/golden/example_flash_circle.png | Bin .../tests/golden/example_flash_obround.png | Bin .../tests/golden/example_flash_polygon.png | Bin .../tests/golden/example_flash_rectangle.png | Bin .../tests/golden/example_fully_coincident.png | Bin .../tests/golden/example_holes_dont_clear.png | Bin .../example_not_overlapping_contour.png | Bin .../example_not_overlapping_touching.png | Bin .../golden/example_overlapping_contour.png | Bin .../golden/example_overlapping_touching.png | Bin .../tests/golden/example_simple_contour.png | Bin .../tests/golden/example_single_contour.png | Bin .../tests/golden/example_single_contour_3.png | Bin .../tests/golden/example_single_quadrant.gbr | 0 .../tests/golden/example_single_quadrant.png | Bin .../tests/golden/example_two_square_boxes.gbr | 0 .../tests/golden/example_two_square_boxes.png | Bin .../gerber}/tests/resources/board_outline.GKO | 0 .../gerber}/tests/resources/bottom_copper.GBL | 0 .../gerber}/tests/resources/bottom_mask.GBS | 0 .../gerber}/tests/resources/bottom_silk.GBO | 0 .../example_am_exposure_modifier.gbr | 0 .../resources/example_coincident_hole.gbr | 0 .../gerber}/tests/resources/example_cutin.gbr | 0 .../resources/example_cutin_multiple.gbr | 0 .../tests/resources/example_flash_circle.gbr | 0 .../tests/resources/example_flash_obround.gbr | 0 .../tests/resources/example_flash_polygon.gbr | 0 .../resources/example_flash_rectangle.gbr | 0 .../resources/example_fully_coincident.gbr | 0 .../resources/example_guess_by_content.g0 | 0 .../resources/example_holes_dont_clear.gbr | 0 .../tests/resources/example_level_holes.gbr | 0 .../example_not_overlapping_contour.gbr | 0 .../example_not_overlapping_touching.gbr | 0 .../resources/example_overlapping_contour.gbr | 0 .../example_overlapping_touching.gbr | 0 .../resources/example_simple_contour.gbr | 0 .../resources/example_single_contour_1.gbr | 0 .../resources/example_single_contour_2.gbr | 0 .../resources/example_single_contour_3.gbr | 0 .../resources/example_single_quadrant.gbr | 0 .../resources/example_two_square_boxes.gbr | 0 .../gerber}/tests/resources/ipc-d-356.ipc | 0 .../tests/resources/multiline_read.ger | 0 .../gerber}/tests/resources/ncdrill.DRD | 0 .../gerber}/tests/resources/top_copper.GTL | 0 .../gerber}/tests/resources/top_mask.GTS | 0 .../gerber}/tests/resources/top_silk.GTO | 0 .../gerber}/tests/test_am_statements.py | 0 .../gerber}/tests/test_cairo_backend.py | 0 .../gerber}/tests/test_cam.py | 0 .../gerber}/tests/test_common.py | 0 .../gerber}/tests/test_excellon.py | 0 .../gerber}/tests/test_excellon_statements.py | 0 .../gerber}/tests/test_gerber_statements.py | 0 .../gerber}/tests/test_ipc356.py | 0 .../gerber}/tests/test_layers.py | 0 .../gerber}/tests/test_primitives.py | 0 .../gerber}/tests/test_rs274x.py | 0 .../gerber}/tests/test_rs274x_backend.py | 0 .../gerber}/tests/test_utils.py | 0 {gerber => gerbonara/gerber}/utils.py | 0 setup.py | 4 +- tests/test_am_expression.py | 8 ++-- tests/test_dxf.py | 36 +++++++++--------- tests/test_excellon.py | 12 +++--- tests/test_rs274x.py | 14 +++---- tests/test_utility.py | 2 +- 112 files changed, 120 insertions(+), 127 deletions(-) delete mode 100644 gerberex/__init__.py rename {gerber => gerbonara/gerber}/__init__.py (86%) rename {gerber => gerbonara/gerber}/__main__.py (100%) rename {gerber => gerbonara/gerber}/am_eval.py (100%) rename {gerber => gerbonara/gerber}/am_read.py (100%) rename {gerber => gerbonara/gerber}/am_statements.py (100%) rename {gerber => gerbonara/gerber}/cam.py (100%) rename {gerber => gerbonara/gerber}/common.py (100%) rename {gerber => gerbonara/gerber}/excellon.py (100%) rename {gerber => gerbonara/gerber}/excellon_report/excellon_drr.py (100%) rename {gerber => gerbonara/gerber}/excellon_settings.py (100%) rename {gerber => gerbonara/gerber}/excellon_statements.py (100%) rename {gerber => gerbonara/gerber}/excellon_tool.py (100%) rename {gerber => gerbonara/gerber}/exceptions.py (100%) rename {gerber => gerbonara/gerber}/gerber_statements.py (100%) rename {gerber => gerbonara/gerber}/ipc356.py (100%) rename {gerber => gerbonara/gerber}/layers.py (100%) rename {gerber => gerbonara/gerber}/ncparam/allegro.py (100%) rename {gerber => gerbonara/gerber}/operations.py (100%) create mode 100644 gerbonara/gerber/panelize/__init__.py rename {gerberex => gerbonara/gerber/panelize}/am_expression.py (98%) rename {gerberex => gerbonara/gerber/panelize}/am_primitive.py (98%) rename {gerberex => gerbonara/gerber/panelize}/common.py (59%) rename {gerberex => gerbonara/gerber/panelize}/composition.py (90%) rename {gerberex => gerbonara/gerber/panelize}/dxf.py (98%) rename {gerberex => gerbonara/gerber/panelize}/dxf_path.py (97%) rename {gerberex => gerbonara/gerber/panelize}/excellon.py (97%) rename {gerberex => gerbonara/gerber/panelize}/gerber_statements.py (95%) rename {gerberex => gerbonara/gerber/panelize}/rs274x.py (96%) rename {gerberex => gerbonara/gerber/panelize}/utility.py (100%) rename {gerber => gerbonara/gerber}/pcb.py (100%) rename {gerber => gerbonara/gerber}/primitives.py (100%) rename {gerber => gerbonara/gerber}/render/__init__.py (100%) rename {gerber => gerbonara/gerber}/render/cairo_backend.py (100%) rename {gerber => gerbonara/gerber}/render/excellon_backend.py (100%) rename {gerber => gerbonara/gerber}/render/render.py (100%) rename {gerber => gerbonara/gerber}/render/rs274x_backend.py (100%) rename {gerber => gerbonara/gerber}/render/theme.py (100%) rename {gerber => gerbonara/gerber}/rs274x.py (100%) rename {gerber => gerbonara/gerber}/tests/__init__.py (100%) rename {gerber => gerbonara/gerber}/tests/golden/example_am_exposure_modifier.png (100%) rename {gerber => gerbonara/gerber}/tests/golden/example_coincident_hole.png (100%) rename {gerber => gerbonara/gerber}/tests/golden/example_cutin_multiple.png (100%) rename {gerber => gerbonara/gerber}/tests/golden/example_flash_circle.png (100%) rename {gerber => gerbonara/gerber}/tests/golden/example_flash_obround.png (100%) rename {gerber => gerbonara/gerber}/tests/golden/example_flash_polygon.png (100%) rename {gerber => gerbonara/gerber}/tests/golden/example_flash_rectangle.png (100%) rename {gerber => gerbonara/gerber}/tests/golden/example_fully_coincident.png (100%) rename {gerber => gerbonara/gerber}/tests/golden/example_holes_dont_clear.png (100%) rename {gerber => gerbonara/gerber}/tests/golden/example_not_overlapping_contour.png (100%) rename {gerber => gerbonara/gerber}/tests/golden/example_not_overlapping_touching.png (100%) rename {gerber => gerbonara/gerber}/tests/golden/example_overlapping_contour.png (100%) rename {gerber => gerbonara/gerber}/tests/golden/example_overlapping_touching.png (100%) rename {gerber => gerbonara/gerber}/tests/golden/example_simple_contour.png (100%) rename {gerber => gerbonara/gerber}/tests/golden/example_single_contour.png (100%) rename {gerber => gerbonara/gerber}/tests/golden/example_single_contour_3.png (100%) rename {gerber => gerbonara/gerber}/tests/golden/example_single_quadrant.gbr (100%) rename {gerber => gerbonara/gerber}/tests/golden/example_single_quadrant.png (100%) rename {gerber => gerbonara/gerber}/tests/golden/example_two_square_boxes.gbr (100%) rename {gerber => gerbonara/gerber}/tests/golden/example_two_square_boxes.png (100%) rename {gerber => gerbonara/gerber}/tests/resources/board_outline.GKO (100%) rename {gerber => gerbonara/gerber}/tests/resources/bottom_copper.GBL (100%) rename {gerber => gerbonara/gerber}/tests/resources/bottom_mask.GBS (100%) rename {gerber => gerbonara/gerber}/tests/resources/bottom_silk.GBO (100%) rename {gerber => gerbonara/gerber}/tests/resources/example_am_exposure_modifier.gbr (100%) rename {gerber => gerbonara/gerber}/tests/resources/example_coincident_hole.gbr (100%) rename {gerber => gerbonara/gerber}/tests/resources/example_cutin.gbr (100%) rename {gerber => gerbonara/gerber}/tests/resources/example_cutin_multiple.gbr (100%) rename {gerber => gerbonara/gerber}/tests/resources/example_flash_circle.gbr (100%) rename {gerber => gerbonara/gerber}/tests/resources/example_flash_obround.gbr (100%) rename {gerber => gerbonara/gerber}/tests/resources/example_flash_polygon.gbr (100%) rename {gerber => gerbonara/gerber}/tests/resources/example_flash_rectangle.gbr (100%) rename {gerber => gerbonara/gerber}/tests/resources/example_fully_coincident.gbr (100%) rename {gerber => gerbonara/gerber}/tests/resources/example_guess_by_content.g0 (100%) rename {gerber => gerbonara/gerber}/tests/resources/example_holes_dont_clear.gbr (100%) rename {gerber => gerbonara/gerber}/tests/resources/example_level_holes.gbr (100%) rename {gerber => gerbonara/gerber}/tests/resources/example_not_overlapping_contour.gbr (100%) rename {gerber => gerbonara/gerber}/tests/resources/example_not_overlapping_touching.gbr (100%) rename {gerber => gerbonara/gerber}/tests/resources/example_overlapping_contour.gbr (100%) rename {gerber => gerbonara/gerber}/tests/resources/example_overlapping_touching.gbr (100%) rename {gerber => gerbonara/gerber}/tests/resources/example_simple_contour.gbr (100%) rename {gerber => gerbonara/gerber}/tests/resources/example_single_contour_1.gbr (100%) rename {gerber => gerbonara/gerber}/tests/resources/example_single_contour_2.gbr (100%) rename {gerber => gerbonara/gerber}/tests/resources/example_single_contour_3.gbr (100%) rename {gerber => gerbonara/gerber}/tests/resources/example_single_quadrant.gbr (100%) rename {gerber => gerbonara/gerber}/tests/resources/example_two_square_boxes.gbr (100%) rename {gerber => gerbonara/gerber}/tests/resources/ipc-d-356.ipc (100%) rename {gerber => gerbonara/gerber}/tests/resources/multiline_read.ger (100%) rename {gerber => gerbonara/gerber}/tests/resources/ncdrill.DRD (100%) rename {gerber => gerbonara/gerber}/tests/resources/top_copper.GTL (100%) rename {gerber => gerbonara/gerber}/tests/resources/top_mask.GTS (100%) rename {gerber => gerbonara/gerber}/tests/resources/top_silk.GTO (100%) rename {gerber => gerbonara/gerber}/tests/test_am_statements.py (100%) rename {gerber => gerbonara/gerber}/tests/test_cairo_backend.py (100%) rename {gerber => gerbonara/gerber}/tests/test_cam.py (100%) rename {gerber => gerbonara/gerber}/tests/test_common.py (100%) rename {gerber => gerbonara/gerber}/tests/test_excellon.py (100%) rename {gerber => gerbonara/gerber}/tests/test_excellon_statements.py (100%) rename {gerber => gerbonara/gerber}/tests/test_gerber_statements.py (100%) rename {gerber => gerbonara/gerber}/tests/test_ipc356.py (100%) rename {gerber => gerbonara/gerber}/tests/test_layers.py (100%) rename {gerber => gerbonara/gerber}/tests/test_primitives.py (100%) rename {gerber => gerbonara/gerber}/tests/test_rs274x.py (100%) rename {gerber => gerbonara/gerber}/tests/test_rs274x_backend.py (100%) rename {gerber => gerbonara/gerber}/tests/test_utils.py (100%) rename {gerber => gerbonara/gerber}/utils.py (100%) diff --git a/gerberex/__init__.py b/gerberex/__init__.py deleted file mode 100644 index f379c1c..0000000 --- a/gerberex/__init__.py +++ /dev/null @@ -1,15 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -# Copyright 2019 Hiroshi Murayama -""" -Gerber Tools Extension -====================== -**Gerber Tools Extenstion** -gerber-tools-extension is a extention package for gerber-tools. -This package provide panelizing of PCB fucntion. -""" - -from gerberex.common import read, loads, rectangle -from gerberex.composition import GerberComposition, DrillComposition -from gerberex.dxf import DxfFile diff --git a/gerber/__init__.py b/gerbonara/gerber/__init__.py similarity index 86% rename from gerber/__init__.py rename to gerbonara/gerber/__init__.py index 1faba53..a3d4753 100644 --- a/gerber/__init__.py +++ b/gerbonara/gerber/__init__.py @@ -15,11 +15,10 @@ # See the License for the specific language governing permissions and # limitations under the License. """ -Gerber Tools -============ -**Gerber Tools** +Gerbonara +========= -gerber-tools provides utilities for working with Gerber (RS-274X) and Excellon +gerbonara provides utilities for working with Gerber (RS-274X) and Excellon files in python. """ diff --git a/gerber/__main__.py b/gerbonara/gerber/__main__.py similarity index 100% rename from gerber/__main__.py rename to gerbonara/gerber/__main__.py diff --git a/gerber/am_eval.py b/gerbonara/gerber/am_eval.py similarity index 100% rename from gerber/am_eval.py rename to gerbonara/gerber/am_eval.py diff --git a/gerber/am_read.py b/gerbonara/gerber/am_read.py similarity index 100% rename from gerber/am_read.py rename to gerbonara/gerber/am_read.py diff --git a/gerber/am_statements.py b/gerbonara/gerber/am_statements.py similarity index 100% rename from gerber/am_statements.py rename to gerbonara/gerber/am_statements.py diff --git a/gerber/cam.py b/gerbonara/gerber/cam.py similarity index 100% rename from gerber/cam.py rename to gerbonara/gerber/cam.py diff --git a/gerber/common.py b/gerbonara/gerber/common.py similarity index 100% rename from gerber/common.py rename to gerbonara/gerber/common.py diff --git a/gerber/excellon.py b/gerbonara/gerber/excellon.py similarity index 100% rename from gerber/excellon.py rename to gerbonara/gerber/excellon.py diff --git a/gerber/excellon_report/excellon_drr.py b/gerbonara/gerber/excellon_report/excellon_drr.py similarity index 100% rename from gerber/excellon_report/excellon_drr.py rename to gerbonara/gerber/excellon_report/excellon_drr.py diff --git a/gerber/excellon_settings.py b/gerbonara/gerber/excellon_settings.py similarity index 100% rename from gerber/excellon_settings.py rename to gerbonara/gerber/excellon_settings.py diff --git a/gerber/excellon_statements.py b/gerbonara/gerber/excellon_statements.py similarity index 100% rename from gerber/excellon_statements.py rename to gerbonara/gerber/excellon_statements.py diff --git a/gerber/excellon_tool.py b/gerbonara/gerber/excellon_tool.py similarity index 100% rename from gerber/excellon_tool.py rename to gerbonara/gerber/excellon_tool.py diff --git a/gerber/exceptions.py b/gerbonara/gerber/exceptions.py similarity index 100% rename from gerber/exceptions.py rename to gerbonara/gerber/exceptions.py diff --git a/gerber/gerber_statements.py b/gerbonara/gerber/gerber_statements.py similarity index 100% rename from gerber/gerber_statements.py rename to gerbonara/gerber/gerber_statements.py diff --git a/gerber/ipc356.py b/gerbonara/gerber/ipc356.py similarity index 100% rename from gerber/ipc356.py rename to gerbonara/gerber/ipc356.py diff --git a/gerber/layers.py b/gerbonara/gerber/layers.py similarity index 100% rename from gerber/layers.py rename to gerbonara/gerber/layers.py diff --git a/gerber/ncparam/allegro.py b/gerbonara/gerber/ncparam/allegro.py similarity index 100% rename from gerber/ncparam/allegro.py rename to gerbonara/gerber/ncparam/allegro.py diff --git a/gerber/operations.py b/gerbonara/gerber/operations.py similarity index 100% rename from gerber/operations.py rename to gerbonara/gerber/operations.py diff --git a/gerbonara/gerber/panelize/__init__.py b/gerbonara/gerber/panelize/__init__.py new file mode 100644 index 0000000..a3de2c1 --- /dev/null +++ b/gerbonara/gerber/panelize/__init__.py @@ -0,0 +1,8 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright 2019 Hiroshi Murayama + +from .common import read, loads, rectangle +from .composition import GerberComposition, DrillComposition +from .dxf import DxfFile diff --git a/gerberex/am_expression.py b/gerbonara/gerber/panelize/am_expression.py similarity index 98% rename from gerberex/am_expression.py rename to gerbonara/gerber/panelize/am_expression.py index f43ba2e..9e19f71 100644 --- a/gerberex/am_expression.py +++ b/gerbonara/gerber/panelize/am_expression.py @@ -3,9 +3,9 @@ # Copyright 2019 Hiroshi Murayama -from gerber.utils import * -from gerber.am_eval import OpCode -from gerber.am_statements import * +from ..utils import * +from ..am_eval import OpCode +from ..am_statements import * class AMExpression(object): CONSTANT = 1 diff --git a/gerberex/am_primitive.py b/gerbonara/gerber/panelize/am_primitive.py similarity index 98% rename from gerberex/am_primitive.py rename to gerbonara/gerber/panelize/am_primitive.py index a3ad824..123f030 100644 --- a/gerberex/am_primitive.py +++ b/gerbonara/gerber/panelize/am_primitive.py @@ -3,11 +3,11 @@ # Copyright 2019 Hiroshi Murayama -from gerber.utils import * -from gerber.am_statements import * -from gerber.am_eval import OpCode +from ..utils import * +from ..am_statements import * +from ..am_eval import OpCode -from gerberex.am_expression import eval_macro, AMConstantExpression, AMOperatorExpression +from .am_expression import eval_macro, AMConstantExpression, AMOperatorExpression class AMPrimitiveDef(AMPrimitive): def __init__(self, code, exposure=None, rotation=None): diff --git a/gerberex/common.py b/gerbonara/gerber/panelize/common.py similarity index 59% rename from gerberex/common.py rename to gerbonara/gerber/panelize/common.py index 6e8a832..03bf9b0 100644 --- a/gerberex/common.py +++ b/gerbonara/gerber/panelize/common.py @@ -4,14 +4,15 @@ # Copyright 2019 Hiroshi Murayama import os -from gerber.common import loads as loads_org -from gerber.exceptions import ParseError -from gerber.utils import detect_file_format -import gerber.rs274x -import gerber.ipc356 -import gerberex.rs274x -import gerberex.excellon -import gerberex.dxf +from ..common import loads as loads_org +from ..exceptions import ParseError +from ..utils import detect_file_format +from .. import rs274x +from .. import ipc356 + +from . import rs274x as ex_rs274x +from . import excellon +from . import dxf def read(filename, format=None): with open(filename, 'rU') as f: @@ -21,14 +22,14 @@ def read(filename, format=None): def loads(data, filename=None, format=None): if os.path.splitext(filename if filename else '')[1].lower() == '.dxf': - return gerberex.dxf.loads(data, filename) + return dxf.loads(data, filename) fmt = detect_file_format(data) if fmt == 'rs274x': - file = gerberex.rs274x.loads(data, filename=filename) - return gerberex.rs274x.GerberFile.from_gerber_file(file) + file = ex_rs274x.loads(data, filename=filename) + return ex_rs274x.GerberFile.from_gerber_file(file) elif fmt == 'excellon': - return gerberex.excellon.loads(data, filename=filename, format=format) + return excellon.loads(data, filename=filename, format=format) elif fmt == 'ipc_d_356': return ipc356.loads(data, filename=filename) else: @@ -36,5 +37,5 @@ def loads(data, filename=None, format=None): def rectangle(width, height, left=0, bottom=0, units='metric', draw_mode=None, filename=None): - return gerberex.dxf.DxfFile.rectangle( + return dxf.DxfFile.rectangle( width, height, left, bottom, units, draw_mode, filename) diff --git a/gerberex/composition.py b/gerbonara/gerber/panelize/composition.py similarity index 90% rename from gerberex/composition.py rename to gerbonara/gerber/panelize/composition.py index b5dffb1..619a0cf 100644 --- a/gerberex/composition.py +++ b/gerbonara/gerber/panelize/composition.py @@ -4,13 +4,13 @@ # Copyright 2019 Hiroshi Murayama import os from functools import reduce -from gerber.cam import FileSettings -from gerber.gerber_statements import EofStmt -from gerber.excellon_statements import * -from gerber.excellon import DrillSlot, DrillHit -import gerberex.rs274x -import gerberex.excellon -import gerberex.dxf +from ..cam import FileSettings +from ..gerber_statements import EofStmt +from ..excellon_statements import * +from ..excellon import DrillSlot, DrillHit +from . import rs274x +from . import excellon +from . import dxf class Composition(object): def __init__(self, settings = None, comments = None): @@ -27,9 +27,9 @@ class GerberComposition(Composition): self.drawings = [] def merge(self, file): - if isinstance(file, gerberex.rs274x.GerberFile): + if isinstance(file, rs274x.GerberFile): self._merge_gerber(file) - elif isinstance(file, gerberex.dxf.DxfFile): + elif isinstance(file, dxf.DxfFile): self._merge_dxf(file) else: raise Exception('unsupported file type') @@ -46,7 +46,7 @@ class GerberComposition(Composition): self.settings.notation = 'absolute' self.settings.zeros = 'trailing' with open(path, 'w') as f: - gerberex.rs274x.write_gerber_header(f, self.settings) + rs274x.write_gerber_header(f, self.settings) for statement in statements(): f.write(statement.to_gerber(self.settings) + '\n') @@ -120,9 +120,9 @@ class DrillComposition(Composition): self.dxf_statements = [] def merge(self, file): - if isinstance(file, gerberex.excellon.ExcellonFileEx): + if isinstance(file, excellon.ExcellonFileEx): self._merge_excellon(file) - elif isinstance(file, gerberex.DxfFile): + elif isinstance(file, DxfFile): self._merge_dxf(file) else: raise Exception('unsupported file type') @@ -142,7 +142,7 @@ class DrillComposition(Composition): self.settings.notation = 'absolute' self.settings.zeros = 'trailing' with open(path, 'w') as f: - gerberex.excellon.write_excellon_header(f, self.settings, self.tools) + excellon.write_excellon_header(f, self.settings, self.tools) for statement in statements(): f.write(statement + '\n') diff --git a/gerberex/dxf.py b/gerbonara/gerber/panelize/dxf.py similarity index 98% rename from gerberex/dxf.py rename to gerbonara/gerber/panelize/dxf.py index 2341092..9eb9217 100644 --- a/gerberex/dxf.py +++ b/gerbonara/gerber/panelize/dxf.py @@ -6,15 +6,15 @@ import io, sys from math import pi, cos, sin, tan, atan, atan2, acos, asin, sqrt import dxfgrabber -from gerber.cam import CamFile, FileSettings -from gerber.utils import inch, metric, write_gerber_value, rotate_point -from gerber.gerber_statements import ADParamStmt -from gerber.excellon_statements import ExcellonTool -from gerber.excellon_statements import CoordinateStmt -from gerberex.utility import is_equal_point, is_equal_value -from gerberex.dxf_path import generate_paths, judge_containment -from gerberex.excellon import write_excellon_header -from gerberex.rs274x import write_gerber_header +from ..cam import CamFile, FileSettings +from ..utils import inch, metric, write_gerber_value, rotate_point +from ..gerber_statements import ADParamStmt +from ..excellon_statements import ExcellonTool +from ..excellon_statements import CoordinateStmt +from .utility import is_equal_point, is_equal_value +from .dxf_path import generate_paths, judge_containment +from .excellon import write_excellon_header +from .rs274x import write_gerber_header ACCEPTABLE_ERROR = 0.001 diff --git a/gerberex/dxf_path.py b/gerbonara/gerber/panelize/dxf_path.py similarity index 97% rename from gerberex/dxf_path.py rename to gerbonara/gerber/panelize/dxf_path.py index 960b054..201dcff 100644 --- a/gerberex/dxf_path.py +++ b/gerbonara/gerber/panelize/dxf_path.py @@ -3,10 +3,10 @@ # Copyright 2019 Hiroshi Murayama -from gerber.utils import inch, metric, write_gerber_value -from gerber.cam import FileSettings -from gerberex.utility import is_equal_point, is_equal_value, normalize_vec2d, dot_vec2d -from gerberex.excellon import CoordinateStmtEx +from ..utils import inch, metric, write_gerber_value +from ..cam import FileSettings +from .utility import is_equal_point, is_equal_value, normalize_vec2d, dot_vec2d +from .excellon import CoordinateStmtEx class DxfPath(object): def __init__(self, statements, error_range=0): @@ -176,7 +176,7 @@ class DxfPath(object): return True def to_gerber(self, settings=FileSettings(), pitch=0, width=0): - from gerberex.dxf import DxfArcStatement + from .dxf import DxfArcStatement if pitch == 0: x0, y0 = self.statements[0].start gerber = 'G01*\nX{0}Y{1}D02*\nG75*'.format( @@ -222,7 +222,7 @@ class DxfPath(object): return gerber def to_excellon(self, settings=FileSettings(), pitch=0, width=0): - from gerberex.dxf import DxfArcStatement + from .dxf import DxfArcStatement if pitch == 0: x0, y0 = self.statements[0].start excellon = 'G00{0}\nM15\n'.format( @@ -322,7 +322,7 @@ class DxfPath(object): raise Exception('inconsistensy is detected while cross judgement between paths') def generate_paths(statements, error_range=0): - from gerberex.dxf import DxfPolylineStatement + from .dxf import DxfPolylineStatement paths = [] for statement in filter(lambda s: isinstance(s, DxfPolylineStatement), statements): @@ -365,7 +365,7 @@ def generate_paths(statements, error_range=0): return (closed_path, open_path) def judge_containment(path1, path2, error_range=0): - from gerberex.dxf import DxfArcStatement, DxfLineStatement + from .dxf import DxfArcStatement, DxfLineStatement nocontainment = (None, None) if not path1.may_be_in_collision(path2): diff --git a/gerberex/excellon.py b/gerbonara/gerber/panelize/excellon.py similarity index 97% rename from gerberex/excellon.py rename to gerbonara/gerber/panelize/excellon.py index f7787d3..ae0b68e 100644 --- a/gerberex/excellon.py +++ b/gerbonara/gerber/panelize/excellon.py @@ -5,24 +5,24 @@ import operator -import gerber.excellon -from gerber.excellon import ExcellonParser, detect_excellon_format, ExcellonFile, DrillHit, DrillSlot -from gerber.excellon_statements import ExcellonStatement, UnitStmt, CoordinateStmt, UnknownStmt, \ +from .. import excellon +from ..excellon import ExcellonParser, detect_excellon_format, ExcellonFile, DrillHit, DrillSlot +from ..excellon_statements import ExcellonStatement, UnitStmt, CoordinateStmt, UnknownStmt, \ SlotStmt, DrillModeStmt, RouteModeStmt, LinearModeStmt, \ ToolSelectionStmt, ZAxisRoutPositionStmt, \ RetractWithClampingStmt, RetractWithoutClampingStmt, \ EndOfProgramStmt -from gerber.cam import FileSettings -from gerber.utils import inch, metric, write_gerber_value, parse_gerber_value -from gerberex.utility import rotate +from ..cam import FileSettings +from ..utils import inch, metric, write_gerber_value, parse_gerber_value +from .utility import rotate def loads(data, filename=None, settings=None, tools=None, format=None): if not settings: settings = FileSettings(**detect_excellon_format(data)) if format: settings.format = format - gerber.excellon.CoordinateStmt = CoordinateStmtEx - gerber.excellon.UnitStmt = UnitStmtEx + excellon.CoordinateStmt = CoordinateStmtEx + excellon.UnitStmt = UnitStmtEx file = ExcellonParser(settings, tools).parse_raw(data, filename) return ExcellonFileEx.from_file(file) diff --git a/gerberex/gerber_statements.py b/gerbonara/gerber/panelize/gerber_statements.py similarity index 95% rename from gerberex/gerber_statements.py rename to gerbonara/gerber/panelize/gerber_statements.py index c2eb565..875d656 100644 --- a/gerberex/gerber_statements.py +++ b/gerbonara/gerber/panelize/gerber_statements.py @@ -3,9 +3,9 @@ # Copyright 2019 Hiroshi Murayama -from gerber.gerber_statements import AMParamStmt, ADParamStmt -from gerber.utils import inch, metric -from gerberex.am_primitive import to_primitive_defs +from ..gerber_statements import AMParamStmt, ADParamStmt +from ..utils import inch, metric +from .am_primitive import to_primitive_defs class AMParamStmtEx(AMParamStmt): @classmethod diff --git a/gerberex/rs274x.py b/gerbonara/gerber/panelize/rs274x.py similarity index 96% rename from gerberex/rs274x.py rename to gerbonara/gerber/panelize/rs274x.py index 3a3a712..2f44cd4 100644 --- a/gerberex/rs274x.py +++ b/gerbonara/gerber/panelize/rs274x.py @@ -3,15 +3,15 @@ # Copyright 2019 Hiroshi Murayama -from gerber.cam import FileSettings -import gerber.rs274x -from gerber.gerber_statements import * -from gerberex.gerber_statements import AMParamStmt, AMParamStmtEx, ADParamStmtEx -from gerberex.utility import rotate +from ..cam import FileSettings +from .. import rs274x +from ..gerber_statements import * +from .gerber_statements import AMParamStmt, AMParamStmtEx, ADParamStmtEx +from .utility import rotate import re def loads(data, filename=None): - cls = gerber.rs274x.GerberParser + cls = rs274x.GerberParser cls.SF = \ r"(?PSF)(A(?P{decimal}))?(B(?P{decimal}))?".format(decimal=cls.DECIMAL) cls.PARAMS = (cls.FS, cls.MO, cls.LP, cls.AD_CIRCLE, @@ -27,11 +27,11 @@ def write_gerber_header(file, settings): FSParamStmt('FS', settings.zero_suppression, settings.notation, settings.format).to_gerber(settings))) -class GerberFile(gerber.rs274x.GerberFile): +class GerberFile(rs274x.GerberFile): @classmethod def from_gerber_file(cls, gerber_file): - if not isinstance(gerber_file, gerber.rs274x.GerberFile): - raise Exception('only gerber.rs274x.GerberFile object is specified') + if not isinstance(gerber_file, rs274x.GerberFile): + raise Exception('only gerbonara.gerber.rs274x.GerberFile object is specified') return cls(gerber_file.statements, gerber_file.settings, gerber_file.primitives,\ gerber_file.apertures, gerber_file.filename) diff --git a/gerberex/utility.py b/gerbonara/gerber/panelize/utility.py similarity index 100% rename from gerberex/utility.py rename to gerbonara/gerber/panelize/utility.py diff --git a/gerber/pcb.py b/gerbonara/gerber/pcb.py similarity index 100% rename from gerber/pcb.py rename to gerbonara/gerber/pcb.py diff --git a/gerber/primitives.py b/gerbonara/gerber/primitives.py similarity index 100% rename from gerber/primitives.py rename to gerbonara/gerber/primitives.py diff --git a/gerber/render/__init__.py b/gerbonara/gerber/render/__init__.py similarity index 100% rename from gerber/render/__init__.py rename to gerbonara/gerber/render/__init__.py diff --git a/gerber/render/cairo_backend.py b/gerbonara/gerber/render/cairo_backend.py similarity index 100% rename from gerber/render/cairo_backend.py rename to gerbonara/gerber/render/cairo_backend.py diff --git a/gerber/render/excellon_backend.py b/gerbonara/gerber/render/excellon_backend.py similarity index 100% rename from gerber/render/excellon_backend.py rename to gerbonara/gerber/render/excellon_backend.py diff --git a/gerber/render/render.py b/gerbonara/gerber/render/render.py similarity index 100% rename from gerber/render/render.py rename to gerbonara/gerber/render/render.py diff --git a/gerber/render/rs274x_backend.py b/gerbonara/gerber/render/rs274x_backend.py similarity index 100% rename from gerber/render/rs274x_backend.py rename to gerbonara/gerber/render/rs274x_backend.py diff --git a/gerber/render/theme.py b/gerbonara/gerber/render/theme.py similarity index 100% rename from gerber/render/theme.py rename to gerbonara/gerber/render/theme.py diff --git a/gerber/rs274x.py b/gerbonara/gerber/rs274x.py similarity index 100% rename from gerber/rs274x.py rename to gerbonara/gerber/rs274x.py diff --git a/gerber/tests/__init__.py b/gerbonara/gerber/tests/__init__.py similarity index 100% rename from gerber/tests/__init__.py rename to gerbonara/gerber/tests/__init__.py diff --git a/gerber/tests/golden/example_am_exposure_modifier.png b/gerbonara/gerber/tests/golden/example_am_exposure_modifier.png similarity index 100% rename from gerber/tests/golden/example_am_exposure_modifier.png rename to gerbonara/gerber/tests/golden/example_am_exposure_modifier.png diff --git a/gerber/tests/golden/example_coincident_hole.png b/gerbonara/gerber/tests/golden/example_coincident_hole.png similarity index 100% rename from gerber/tests/golden/example_coincident_hole.png rename to gerbonara/gerber/tests/golden/example_coincident_hole.png diff --git a/gerber/tests/golden/example_cutin_multiple.png b/gerbonara/gerber/tests/golden/example_cutin_multiple.png similarity index 100% rename from gerber/tests/golden/example_cutin_multiple.png rename to gerbonara/gerber/tests/golden/example_cutin_multiple.png diff --git a/gerber/tests/golden/example_flash_circle.png b/gerbonara/gerber/tests/golden/example_flash_circle.png similarity index 100% rename from gerber/tests/golden/example_flash_circle.png rename to gerbonara/gerber/tests/golden/example_flash_circle.png diff --git a/gerber/tests/golden/example_flash_obround.png b/gerbonara/gerber/tests/golden/example_flash_obround.png similarity index 100% rename from gerber/tests/golden/example_flash_obround.png rename to gerbonara/gerber/tests/golden/example_flash_obround.png diff --git a/gerber/tests/golden/example_flash_polygon.png b/gerbonara/gerber/tests/golden/example_flash_polygon.png similarity index 100% rename from gerber/tests/golden/example_flash_polygon.png rename to gerbonara/gerber/tests/golden/example_flash_polygon.png diff --git a/gerber/tests/golden/example_flash_rectangle.png b/gerbonara/gerber/tests/golden/example_flash_rectangle.png similarity index 100% rename from gerber/tests/golden/example_flash_rectangle.png rename to gerbonara/gerber/tests/golden/example_flash_rectangle.png diff --git a/gerber/tests/golden/example_fully_coincident.png b/gerbonara/gerber/tests/golden/example_fully_coincident.png similarity index 100% rename from gerber/tests/golden/example_fully_coincident.png rename to gerbonara/gerber/tests/golden/example_fully_coincident.png diff --git a/gerber/tests/golden/example_holes_dont_clear.png b/gerbonara/gerber/tests/golden/example_holes_dont_clear.png similarity index 100% rename from gerber/tests/golden/example_holes_dont_clear.png rename to gerbonara/gerber/tests/golden/example_holes_dont_clear.png diff --git a/gerber/tests/golden/example_not_overlapping_contour.png b/gerbonara/gerber/tests/golden/example_not_overlapping_contour.png similarity index 100% rename from gerber/tests/golden/example_not_overlapping_contour.png rename to gerbonara/gerber/tests/golden/example_not_overlapping_contour.png diff --git a/gerber/tests/golden/example_not_overlapping_touching.png b/gerbonara/gerber/tests/golden/example_not_overlapping_touching.png similarity index 100% rename from gerber/tests/golden/example_not_overlapping_touching.png rename to gerbonara/gerber/tests/golden/example_not_overlapping_touching.png diff --git a/gerber/tests/golden/example_overlapping_contour.png b/gerbonara/gerber/tests/golden/example_overlapping_contour.png similarity index 100% rename from gerber/tests/golden/example_overlapping_contour.png rename to gerbonara/gerber/tests/golden/example_overlapping_contour.png diff --git a/gerber/tests/golden/example_overlapping_touching.png b/gerbonara/gerber/tests/golden/example_overlapping_touching.png similarity index 100% rename from gerber/tests/golden/example_overlapping_touching.png rename to gerbonara/gerber/tests/golden/example_overlapping_touching.png diff --git a/gerber/tests/golden/example_simple_contour.png b/gerbonara/gerber/tests/golden/example_simple_contour.png similarity index 100% rename from gerber/tests/golden/example_simple_contour.png rename to gerbonara/gerber/tests/golden/example_simple_contour.png diff --git a/gerber/tests/golden/example_single_contour.png b/gerbonara/gerber/tests/golden/example_single_contour.png similarity index 100% rename from gerber/tests/golden/example_single_contour.png rename to gerbonara/gerber/tests/golden/example_single_contour.png diff --git a/gerber/tests/golden/example_single_contour_3.png b/gerbonara/gerber/tests/golden/example_single_contour_3.png similarity index 100% rename from gerber/tests/golden/example_single_contour_3.png rename to gerbonara/gerber/tests/golden/example_single_contour_3.png diff --git a/gerber/tests/golden/example_single_quadrant.gbr b/gerbonara/gerber/tests/golden/example_single_quadrant.gbr similarity index 100% rename from gerber/tests/golden/example_single_quadrant.gbr rename to gerbonara/gerber/tests/golden/example_single_quadrant.gbr diff --git a/gerber/tests/golden/example_single_quadrant.png b/gerbonara/gerber/tests/golden/example_single_quadrant.png similarity index 100% rename from gerber/tests/golden/example_single_quadrant.png rename to gerbonara/gerber/tests/golden/example_single_quadrant.png diff --git a/gerber/tests/golden/example_two_square_boxes.gbr b/gerbonara/gerber/tests/golden/example_two_square_boxes.gbr similarity index 100% rename from gerber/tests/golden/example_two_square_boxes.gbr rename to gerbonara/gerber/tests/golden/example_two_square_boxes.gbr diff --git a/gerber/tests/golden/example_two_square_boxes.png b/gerbonara/gerber/tests/golden/example_two_square_boxes.png similarity index 100% rename from gerber/tests/golden/example_two_square_boxes.png rename to gerbonara/gerber/tests/golden/example_two_square_boxes.png diff --git a/gerber/tests/resources/board_outline.GKO b/gerbonara/gerber/tests/resources/board_outline.GKO similarity index 100% rename from gerber/tests/resources/board_outline.GKO rename to gerbonara/gerber/tests/resources/board_outline.GKO diff --git a/gerber/tests/resources/bottom_copper.GBL b/gerbonara/gerber/tests/resources/bottom_copper.GBL similarity index 100% rename from gerber/tests/resources/bottom_copper.GBL rename to gerbonara/gerber/tests/resources/bottom_copper.GBL diff --git a/gerber/tests/resources/bottom_mask.GBS b/gerbonara/gerber/tests/resources/bottom_mask.GBS similarity index 100% rename from gerber/tests/resources/bottom_mask.GBS rename to gerbonara/gerber/tests/resources/bottom_mask.GBS diff --git a/gerber/tests/resources/bottom_silk.GBO b/gerbonara/gerber/tests/resources/bottom_silk.GBO similarity index 100% rename from gerber/tests/resources/bottom_silk.GBO rename to gerbonara/gerber/tests/resources/bottom_silk.GBO diff --git a/gerber/tests/resources/example_am_exposure_modifier.gbr b/gerbonara/gerber/tests/resources/example_am_exposure_modifier.gbr similarity index 100% rename from gerber/tests/resources/example_am_exposure_modifier.gbr rename to gerbonara/gerber/tests/resources/example_am_exposure_modifier.gbr diff --git a/gerber/tests/resources/example_coincident_hole.gbr b/gerbonara/gerber/tests/resources/example_coincident_hole.gbr similarity index 100% rename from gerber/tests/resources/example_coincident_hole.gbr rename to gerbonara/gerber/tests/resources/example_coincident_hole.gbr diff --git a/gerber/tests/resources/example_cutin.gbr b/gerbonara/gerber/tests/resources/example_cutin.gbr similarity index 100% rename from gerber/tests/resources/example_cutin.gbr rename to gerbonara/gerber/tests/resources/example_cutin.gbr diff --git a/gerber/tests/resources/example_cutin_multiple.gbr b/gerbonara/gerber/tests/resources/example_cutin_multiple.gbr similarity index 100% rename from gerber/tests/resources/example_cutin_multiple.gbr rename to gerbonara/gerber/tests/resources/example_cutin_multiple.gbr diff --git a/gerber/tests/resources/example_flash_circle.gbr b/gerbonara/gerber/tests/resources/example_flash_circle.gbr similarity index 100% rename from gerber/tests/resources/example_flash_circle.gbr rename to gerbonara/gerber/tests/resources/example_flash_circle.gbr diff --git a/gerber/tests/resources/example_flash_obround.gbr b/gerbonara/gerber/tests/resources/example_flash_obround.gbr similarity index 100% rename from gerber/tests/resources/example_flash_obround.gbr rename to gerbonara/gerber/tests/resources/example_flash_obround.gbr diff --git a/gerber/tests/resources/example_flash_polygon.gbr b/gerbonara/gerber/tests/resources/example_flash_polygon.gbr similarity index 100% rename from gerber/tests/resources/example_flash_polygon.gbr rename to gerbonara/gerber/tests/resources/example_flash_polygon.gbr diff --git a/gerber/tests/resources/example_flash_rectangle.gbr b/gerbonara/gerber/tests/resources/example_flash_rectangle.gbr similarity index 100% rename from gerber/tests/resources/example_flash_rectangle.gbr rename to gerbonara/gerber/tests/resources/example_flash_rectangle.gbr diff --git a/gerber/tests/resources/example_fully_coincident.gbr b/gerbonara/gerber/tests/resources/example_fully_coincident.gbr similarity index 100% rename from gerber/tests/resources/example_fully_coincident.gbr rename to gerbonara/gerber/tests/resources/example_fully_coincident.gbr diff --git a/gerber/tests/resources/example_guess_by_content.g0 b/gerbonara/gerber/tests/resources/example_guess_by_content.g0 similarity index 100% rename from gerber/tests/resources/example_guess_by_content.g0 rename to gerbonara/gerber/tests/resources/example_guess_by_content.g0 diff --git a/gerber/tests/resources/example_holes_dont_clear.gbr b/gerbonara/gerber/tests/resources/example_holes_dont_clear.gbr similarity index 100% rename from gerber/tests/resources/example_holes_dont_clear.gbr rename to gerbonara/gerber/tests/resources/example_holes_dont_clear.gbr diff --git a/gerber/tests/resources/example_level_holes.gbr b/gerbonara/gerber/tests/resources/example_level_holes.gbr similarity index 100% rename from gerber/tests/resources/example_level_holes.gbr rename to gerbonara/gerber/tests/resources/example_level_holes.gbr diff --git a/gerber/tests/resources/example_not_overlapping_contour.gbr b/gerbonara/gerber/tests/resources/example_not_overlapping_contour.gbr similarity index 100% rename from gerber/tests/resources/example_not_overlapping_contour.gbr rename to gerbonara/gerber/tests/resources/example_not_overlapping_contour.gbr diff --git a/gerber/tests/resources/example_not_overlapping_touching.gbr b/gerbonara/gerber/tests/resources/example_not_overlapping_touching.gbr similarity index 100% rename from gerber/tests/resources/example_not_overlapping_touching.gbr rename to gerbonara/gerber/tests/resources/example_not_overlapping_touching.gbr diff --git a/gerber/tests/resources/example_overlapping_contour.gbr b/gerbonara/gerber/tests/resources/example_overlapping_contour.gbr similarity index 100% rename from gerber/tests/resources/example_overlapping_contour.gbr rename to gerbonara/gerber/tests/resources/example_overlapping_contour.gbr diff --git a/gerber/tests/resources/example_overlapping_touching.gbr b/gerbonara/gerber/tests/resources/example_overlapping_touching.gbr similarity index 100% rename from gerber/tests/resources/example_overlapping_touching.gbr rename to gerbonara/gerber/tests/resources/example_overlapping_touching.gbr diff --git a/gerber/tests/resources/example_simple_contour.gbr b/gerbonara/gerber/tests/resources/example_simple_contour.gbr similarity index 100% rename from gerber/tests/resources/example_simple_contour.gbr rename to gerbonara/gerber/tests/resources/example_simple_contour.gbr diff --git a/gerber/tests/resources/example_single_contour_1.gbr b/gerbonara/gerber/tests/resources/example_single_contour_1.gbr similarity index 100% rename from gerber/tests/resources/example_single_contour_1.gbr rename to gerbonara/gerber/tests/resources/example_single_contour_1.gbr diff --git a/gerber/tests/resources/example_single_contour_2.gbr b/gerbonara/gerber/tests/resources/example_single_contour_2.gbr similarity index 100% rename from gerber/tests/resources/example_single_contour_2.gbr rename to gerbonara/gerber/tests/resources/example_single_contour_2.gbr diff --git a/gerber/tests/resources/example_single_contour_3.gbr b/gerbonara/gerber/tests/resources/example_single_contour_3.gbr similarity index 100% rename from gerber/tests/resources/example_single_contour_3.gbr rename to gerbonara/gerber/tests/resources/example_single_contour_3.gbr diff --git a/gerber/tests/resources/example_single_quadrant.gbr b/gerbonara/gerber/tests/resources/example_single_quadrant.gbr similarity index 100% rename from gerber/tests/resources/example_single_quadrant.gbr rename to gerbonara/gerber/tests/resources/example_single_quadrant.gbr diff --git a/gerber/tests/resources/example_two_square_boxes.gbr b/gerbonara/gerber/tests/resources/example_two_square_boxes.gbr similarity index 100% rename from gerber/tests/resources/example_two_square_boxes.gbr rename to gerbonara/gerber/tests/resources/example_two_square_boxes.gbr diff --git a/gerber/tests/resources/ipc-d-356.ipc b/gerbonara/gerber/tests/resources/ipc-d-356.ipc similarity index 100% rename from gerber/tests/resources/ipc-d-356.ipc rename to gerbonara/gerber/tests/resources/ipc-d-356.ipc diff --git a/gerber/tests/resources/multiline_read.ger b/gerbonara/gerber/tests/resources/multiline_read.ger similarity index 100% rename from gerber/tests/resources/multiline_read.ger rename to gerbonara/gerber/tests/resources/multiline_read.ger diff --git a/gerber/tests/resources/ncdrill.DRD b/gerbonara/gerber/tests/resources/ncdrill.DRD similarity index 100% rename from gerber/tests/resources/ncdrill.DRD rename to gerbonara/gerber/tests/resources/ncdrill.DRD diff --git a/gerber/tests/resources/top_copper.GTL b/gerbonara/gerber/tests/resources/top_copper.GTL similarity index 100% rename from gerber/tests/resources/top_copper.GTL rename to gerbonara/gerber/tests/resources/top_copper.GTL diff --git a/gerber/tests/resources/top_mask.GTS b/gerbonara/gerber/tests/resources/top_mask.GTS similarity index 100% rename from gerber/tests/resources/top_mask.GTS rename to gerbonara/gerber/tests/resources/top_mask.GTS diff --git a/gerber/tests/resources/top_silk.GTO b/gerbonara/gerber/tests/resources/top_silk.GTO similarity index 100% rename from gerber/tests/resources/top_silk.GTO rename to gerbonara/gerber/tests/resources/top_silk.GTO diff --git a/gerber/tests/test_am_statements.py b/gerbonara/gerber/tests/test_am_statements.py similarity index 100% rename from gerber/tests/test_am_statements.py rename to gerbonara/gerber/tests/test_am_statements.py diff --git a/gerber/tests/test_cairo_backend.py b/gerbonara/gerber/tests/test_cairo_backend.py similarity index 100% rename from gerber/tests/test_cairo_backend.py rename to gerbonara/gerber/tests/test_cairo_backend.py diff --git a/gerber/tests/test_cam.py b/gerbonara/gerber/tests/test_cam.py similarity index 100% rename from gerber/tests/test_cam.py rename to gerbonara/gerber/tests/test_cam.py diff --git a/gerber/tests/test_common.py b/gerbonara/gerber/tests/test_common.py similarity index 100% rename from gerber/tests/test_common.py rename to gerbonara/gerber/tests/test_common.py diff --git a/gerber/tests/test_excellon.py b/gerbonara/gerber/tests/test_excellon.py similarity index 100% rename from gerber/tests/test_excellon.py rename to gerbonara/gerber/tests/test_excellon.py diff --git a/gerber/tests/test_excellon_statements.py b/gerbonara/gerber/tests/test_excellon_statements.py similarity index 100% rename from gerber/tests/test_excellon_statements.py rename to gerbonara/gerber/tests/test_excellon_statements.py diff --git a/gerber/tests/test_gerber_statements.py b/gerbonara/gerber/tests/test_gerber_statements.py similarity index 100% rename from gerber/tests/test_gerber_statements.py rename to gerbonara/gerber/tests/test_gerber_statements.py diff --git a/gerber/tests/test_ipc356.py b/gerbonara/gerber/tests/test_ipc356.py similarity index 100% rename from gerber/tests/test_ipc356.py rename to gerbonara/gerber/tests/test_ipc356.py diff --git a/gerber/tests/test_layers.py b/gerbonara/gerber/tests/test_layers.py similarity index 100% rename from gerber/tests/test_layers.py rename to gerbonara/gerber/tests/test_layers.py diff --git a/gerber/tests/test_primitives.py b/gerbonara/gerber/tests/test_primitives.py similarity index 100% rename from gerber/tests/test_primitives.py rename to gerbonara/gerber/tests/test_primitives.py diff --git a/gerber/tests/test_rs274x.py b/gerbonara/gerber/tests/test_rs274x.py similarity index 100% rename from gerber/tests/test_rs274x.py rename to gerbonara/gerber/tests/test_rs274x.py diff --git a/gerber/tests/test_rs274x_backend.py b/gerbonara/gerber/tests/test_rs274x_backend.py similarity index 100% rename from gerber/tests/test_rs274x_backend.py rename to gerbonara/gerber/tests/test_rs274x_backend.py diff --git a/gerber/tests/test_utils.py b/gerbonara/gerber/tests/test_utils.py similarity index 100% rename from gerber/tests/test_utils.py rename to gerbonara/gerber/tests/test_utils.py diff --git a/gerber/utils.py b/gerbonara/gerber/utils.py similarity index 100% rename from gerber/utils.py rename to gerbonara/gerber/utils.py diff --git a/setup.py b/setup.py index f26885a..4e576c6 100644 --- a/setup.py +++ b/setup.py @@ -29,8 +29,8 @@ def version(): setup( name='gerbonara', version=version(), - author='XenGi, Jaseg', - author_email='contact@gerbonara.io', + author='XenGi, jaseg', + author_email='contact@gerbonara.jaseg.de', description='Tools to handle Gerber and Excellon files in Python', long_description=long_description(), long_description_content_type='text/markdown', diff --git a/tests/test_am_expression.py b/tests/test_am_expression.py index 7490284..cf30ab7 100644 --- a/tests/test_am_expression.py +++ b/tests/test_am_expression.py @@ -4,10 +4,10 @@ # Copyright 2019 Hiroshi Murayama import unittest -from gerberex.am_expression import * -from gerberex.am_expression import AMOperatorExpression as Op -from gerber.utils import inch, metric -from gerber.am_read import read_macro +from gerbonara.gerber.panelize.am_expression import * +from gerbonara.gerber.panelize.am_expression import AMOperatorExpression as Op +from gerbonara.gerber.utils import inch, metric +from gerbonara.gerber.am_read import read_macro class TestAMConstantExpression(unittest.TestCase): def setUp(self): diff --git a/tests/test_dxf.py b/tests/test_dxf.py index 782c8c7..e138320 100644 --- a/tests/test_dxf.py +++ b/tests/test_dxf.py @@ -5,8 +5,8 @@ import os import unittest -import gerberex -from gerber.utils import inch, metric +from gerbonara.gerber import panelize +from gerbonara.gerber.utils import inch, metric class TestExcellon(unittest.TestCase): @@ -34,7 +34,7 @@ class TestExcellon(unittest.TestCase): def test_save_line(self): outfile = os.path.join(self.OUTDIR, self.OUTPREFIX + 'save_line.gtl') - dxf = gerberex.read(self.METRIC_FILE) + dxf = panelize.read(self.METRIC_FILE) dxf.draw_mode = dxf.DM_LINE dxf.width = 0.2 dxf.write(outfile) @@ -42,14 +42,14 @@ class TestExcellon(unittest.TestCase): def test_save_fill(self): outfile = os.path.join(self.OUTDIR, self.OUTPREFIX + 'save_fill.gtl') - dxf = gerberex.read(self.METRIC_FILE) + dxf = panelize.read(self.METRIC_FILE) dxf.draw_mode = dxf.DM_FILL dxf.write(outfile) self._checkResult(outfile) def test_save_fill_simple(self): outfile = os.path.join(self.OUTDIR, self.OUTPREFIX + 'save_fill_simple.gtl') - dxf = gerberex.read(self.METRIC_FILE) + dxf = panelize.read(self.METRIC_FILE) dxf.draw_mode = dxf.DM_FILL dxf.fill_mode = dxf.FM_SIMPLE dxf.write(outfile) @@ -57,7 +57,7 @@ class TestExcellon(unittest.TestCase): def test_save_mousebites(self): outfile = os.path.join(self.OUTDIR, self.OUTPREFIX + 'save_mousebites.gtl') - dxf = gerberex.read(self.METRIC_FILE) + dxf = panelize.read(self.METRIC_FILE) dxf.draw_mode = dxf.DM_MOUSE_BITES dxf.width = 0.5 dxf.pitch = 1.4 @@ -67,7 +67,7 @@ class TestExcellon(unittest.TestCase): def test_save_excellon(self): outfile = os.path.join( self.OUTDIR, self.OUTPREFIX + 'save_line.txt') - dxf = gerberex.read(self.METRIC_FILE) + dxf = panelize.read(self.METRIC_FILE) dxf.draw_mode = dxf.DM_LINE dxf.format = (3,3) dxf.width = 0.2 @@ -77,7 +77,7 @@ class TestExcellon(unittest.TestCase): def test_save_excellon_mousebites(self): outfile = os.path.join( self.OUTDIR, self.OUTPREFIX + 'save_mousebites.txt') - dxf = gerberex.read(self.METRIC_FILE) + dxf = panelize.read(self.METRIC_FILE) dxf.draw_mode = dxf.DM_MOUSE_BITES dxf.format = (3, 3) dxf.width = 0.5 @@ -87,7 +87,7 @@ class TestExcellon(unittest.TestCase): def test_to_inch(self): outfile = os.path.join(self.OUTDIR, self.OUTPREFIX + 'to_inch.gtl') - dxf = gerberex.read(self.METRIC_FILE) + dxf = panelize.read(self.METRIC_FILE) dxf.to_inch() dxf.format = (2, 5) dxf.write(outfile) @@ -95,7 +95,7 @@ class TestExcellon(unittest.TestCase): def _test_to_metric(self): outfile = os.path.join(self.OUTDIR, self.OUTPREFIX + 'to_metric.gtl') - dxf = gerberex.read(self.INCH_FILE) + dxf = panelize.read(self.INCH_FILE) dxf.to_metric() dxf.format = (3, 5) dxf.write(outfile) @@ -103,34 +103,34 @@ class TestExcellon(unittest.TestCase): def test_offset(self): outfile = os.path.join(self.OUTDIR, self.OUTPREFIX + 'offset.gtl') - dxf = gerberex.read(self.METRIC_FILE) + dxf = panelize.read(self.METRIC_FILE) dxf.offset(11, 5) dxf.write(outfile) self._checkResult(outfile) def test_rotate(self): outfile = os.path.join(self.OUTDIR, self.OUTPREFIX + 'rotate.gtl') - dxf = gerberex.read(self.METRIC_FILE) + dxf = panelize.read(self.METRIC_FILE) dxf.rotate(20, (10, 10)) dxf.write(outfile) self._checkResult(outfile) def test_rectangle_metric(self): outfile = os.path.join(self.OUTDIR, self.OUTPREFIX + 'rectangle_metric.gtl') - dxf = gerberex.DxfFile.rectangle(width=10, height=10, units='metric') + dxf = panelize.DxfFile.rectangle(width=10, height=10, units='metric') dxf.write(outfile) self._checkResult(outfile) def test_rectangle_inch(self): outfile = os.path.join( self.OUTDIR, self.OUTPREFIX + 'rectangle_inch.gtl') - dxf = gerberex.DxfFile.rectangle(width=inch(10), height=inch(10), units='inch') + dxf = panelize.DxfFile.rectangle(width=inch(10), height=inch(10), units='inch') dxf.write(outfile) self._checkResult(outfile) def test_complex_fill(self): outfile = os.path.join(self.OUTDIR, self.OUTPREFIX + 'complex_fill.gtl') - dxf = gerberex.read(self.COMPLEX_FILE) + dxf = panelize.read(self.COMPLEX_FILE) dxf.draw_mode = dxf.DM_FILL dxf.write(outfile) self._checkResult(outfile) @@ -138,11 +138,11 @@ class TestExcellon(unittest.TestCase): def test_complex_fill_flip(self): outfile = os.path.join( self.OUTDIR, self.OUTPREFIX + 'complex_fill_flip.gtl') - ctx = gerberex.GerberComposition() - base = gerberex.rectangle(width=100, height=100, left=0, bottom=0, units='metric') + ctx = panelize.GerberComposition() + base = panelize.rectangle(width=100, height=100, left=0, bottom=0, units='metric') base.draw_mode = base.DM_FILL ctx.merge(base) - dxf = gerberex.read(self.COMPLEX_FILE) + dxf = panelize.read(self.COMPLEX_FILE) dxf.negate_polarity() dxf.draw_mode = dxf.DM_FILL ctx.merge(dxf) diff --git a/tests/test_excellon.py b/tests/test_excellon.py index 36093cd..4aa6dcf 100644 --- a/tests/test_excellon.py +++ b/tests/test_excellon.py @@ -5,7 +5,7 @@ import os import unittest -import gerberex +from gerbonara.gerber import panelize class TestExcellon(unittest.TestCase): @@ -33,13 +33,13 @@ class TestExcellon(unittest.TestCase): def test_save(self): outfile = os.path.join(self.OUTDIR, self.OUTPREFIX + 'save.txt') - drill = gerberex.read(self.METRIC_FILE) + drill = panelize.read(self.METRIC_FILE) drill.write(outfile) self._checkResult(outfile) def test_to_inch(self): outfile = os.path.join(self.OUTDIR, self.OUTPREFIX + 'to_inch.txt') - drill = gerberex.read(self.METRIC_FILE) + drill = panelize.read(self.METRIC_FILE) drill.to_inch() drill.format = (2, 4) drill.write(outfile) @@ -47,7 +47,7 @@ class TestExcellon(unittest.TestCase): def test_to_metric(self): outfile = os.path.join(self.OUTDIR, self.OUTPREFIX + 'to_metric.txt') - drill = gerberex.read(self.INCH_FILE) + drill = panelize.read(self.INCH_FILE) drill.to_metric() drill.format = (3, 3) drill.write(outfile) @@ -55,14 +55,14 @@ class TestExcellon(unittest.TestCase): def test_offset(self): outfile = os.path.join(self.OUTDIR, self.OUTPREFIX + 'offset.txt') - drill = gerberex.read(self.METRIC_FILE) + drill = panelize.read(self.METRIC_FILE) drill.offset(11, 5) drill.write(outfile) self._checkResult(outfile) def test_rotate(self): outfile = os.path.join(self.OUTDIR, self.OUTPREFIX + 'rotate.txt') - drill = gerberex.read(self.METRIC_FILE) + drill = panelize.read(self.METRIC_FILE) drill.rotate(20, (10, 10)) drill.write(outfile) self._checkResult(outfile) diff --git a/tests/test_rs274x.py b/tests/test_rs274x.py index dbb5f62..1a1475a 100644 --- a/tests/test_rs274x.py +++ b/tests/test_rs274x.py @@ -5,7 +5,7 @@ import os import unittest -import gerberex +from gerbonara.gerber import panelize class TestRs274x(unittest.TestCase): @classmethod @@ -32,13 +32,13 @@ class TestRs274x(unittest.TestCase): def test_save(self): outfile=os.path.join(self.OUTDIR, self.OUTPREFIX + 'save.gtl') - gerber = gerberex.read(self.METRIC_FILE) + gerber = panelize.read(self.METRIC_FILE) gerber.write(outfile) self._checkResult(outfile) def test_to_inch(self): outfile = os.path.join(self.OUTDIR, self.OUTPREFIX + 'to_inch.gtl') - gerber = gerberex.read(self.METRIC_FILE) + gerber = panelize.read(self.METRIC_FILE) gerber.to_inch() gerber.format = (2,5) gerber.write(outfile) @@ -46,7 +46,7 @@ class TestRs274x(unittest.TestCase): def test_to_metric(self): outfile = os.path.join(self.OUTDIR, self.OUTPREFIX + 'to_metric.gtl') - gerber = gerberex.read(self.INCH_FILE) + gerber = panelize.read(self.INCH_FILE) gerber.to_metric() gerber.format = (3, 4) gerber.write(outfile) @@ -54,21 +54,21 @@ class TestRs274x(unittest.TestCase): def test_offset(self): outfile = os.path.join(self.OUTDIR, self.OUTPREFIX + 'offset.gtl') - gerber = gerberex.read(self.METRIC_FILE) + gerber = panelize.read(self.METRIC_FILE) gerber.offset(11, 5) gerber.write(outfile) self._checkResult(outfile) def test_rotate(self): outfile = os.path.join(self.OUTDIR, self.OUTPREFIX + 'rotate.gtl') - gerber = gerberex.read(self.METRIC_FILE) + gerber = panelize.read(self.METRIC_FILE) gerber.rotate(20, (10,10)) gerber.write(outfile) self._checkResult(outfile) def test_single_quadrant(self): outfile = os.path.join(self.OUTDIR, self.OUTPREFIX + 'single_quadrant.gtl') - gerber = gerberex.read(self.SQ_FILE) + gerber = panelize.read(self.SQ_FILE) gerber.write(outfile) self._checkResult(outfile) diff --git a/tests/test_utility.py b/tests/test_utility.py index 4ede8d5..d7a4101 100644 --- a/tests/test_utility.py +++ b/tests/test_utility.py @@ -5,7 +5,7 @@ import unittest -from gerberex.utility import * +from gerbonara.gerber.panelize.utility import * from math import sqrt class TestUtility(unittest.TestCase):