diff options
-rw-r--r-- | .github/workflows/pcb-tools.yml | 26 | ||||
-rw-r--r-- | .travis.yml | 21 | ||||
-rw-r--r-- | README.md | 4 | ||||
-rw-r--r-- | doc-requirements.txt | 4 | ||||
-rw-r--r-- | gerber/excellon_statements.py | 11 | ||||
-rw-r--r-- | gerber/utils.py | 4 | ||||
-rw-r--r-- | requirements-dev.txt | 5 | ||||
-rw-r--r-- | requirements-docs.txt | 6 | ||||
-rw-r--r-- | requirements.txt | 2 | ||||
-rw-r--r-- | test-requirements.txt | 4 |
10 files changed, 50 insertions, 37 deletions
diff --git a/.github/workflows/pcb-tools.yml b/.github/workflows/pcb-tools.yml new file mode 100644 index 0000000..85038a7 --- /dev/null +++ b/.github/workflows/pcb-tools.yml @@ -0,0 +1,26 @@ +name: pcb-tools + +on: [push, pull_request] + +jobs: + test: + strategy: + matrix: + python-version: [2.7, 3.5, 3.6, 3.7, 3.8] + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v1 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v1 + with: + python-version: ${{ matrix.python-version }} + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -r requirements-dev.txt + - name: Test with pytest + run: | + pip install pytest + pytest diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 7525487..0000000 --- a/.travis.yml +++ /dev/null @@ -1,21 +0,0 @@ -dist: precise
-language: python
-python:
- - "2.7"
- - "3.3"
- - "3.4"
- - "3.5"
-
-# command to install dependencies
-install:
- - "pip install -r requirements.txt"
- - "pip install -r test-requirements.txt"
- - "pip install coveralls"
-
-# command to run tests
-script:
- - make test-coverage
-
-# Coveralls
-after_success:
- - coveralls
@@ -48,11 +48,11 @@ Documentation: Development and Testing: ------------------------ -Dependencies for developing and testing pcb-tools are listed in test-requirements.txt. Use of a virtual environment is strongly recommended. +Dependencies for developing and testing pcb-tools are listed in requirements-dev.txt. Use of a virtual environment is strongly recommended. $ virtualenv venv $ source venv/bin/activate - (venv)$ pip install -r test-requirements.txt + (venv)$ pip install -r requirements-dev.txt (venv)$ pip install -e . We use nose to run pcb-tools's suite of unittests and doctests. diff --git a/doc-requirements.txt b/doc-requirements.txt deleted file mode 100644 index a163c9b..0000000 --- a/doc-requirements.txt +++ /dev/null @@ -1,4 +0,0 @@ -# Doc requirements -Sphinx==1.2.3 -numpydoc==0.5 - diff --git a/gerber/excellon_statements.py b/gerber/excellon_statements.py index bcf35e4..2c50ef9 100644 --- a/gerber/excellon_statements.py +++ b/gerber/excellon_statements.py @@ -23,6 +23,7 @@ Excellon Statements import re import uuid +import itertools from .utils import (parse_gerber_value, write_gerber_value, decimal_string, inch, metric) @@ -151,8 +152,7 @@ class ExcellonTool(ExcellonStatement): tool : Tool An ExcellonTool representing the tool defined in `line` """ - commands = re.split('([BCFHSTZ])', line)[1:] - commands = [(command, value) for command, value in pairwise(commands)] + commands = pairwise(re.split('([BCFHSTZ])', line)[1:]) args = {} args['id'] = id nformat = settings.format @@ -973,6 +973,7 @@ def pairwise(iterator): e.g. [1, 2, 3, 4, 5, 6] ==> [(1, 2), (3, 4), (5, 6)] """ - itr = iter(iterator) - while True: - yield tuple([next(itr) for i in range(2)]) + a, b = itertools.tee(iterator) + itr = zip(itertools.islice(a, 0, None, 2), itertools.islice(b, 1, None, 2)) + for elem in itr: + yield elem diff --git a/gerber/utils.py b/gerber/utils.py index 817a36e..3d39df9 100644 --- a/gerber/utils.py +++ b/gerber/utils.py @@ -123,6 +123,10 @@ def write_gerber_value(value, format=(2, 5), zero_suppression='trailing'): value : string The specified value as a Gerber/Excellon-formatted string. """ + + if format[0] == float: + return "%f" %value + # Format precision integer_digits, decimal_digits = format MAX_DIGITS = integer_digits + decimal_digits diff --git a/requirements-dev.txt b/requirements-dev.txt new file mode 100644 index 0000000..c1e695d --- /dev/null +++ b/requirements-dev.txt @@ -0,0 +1,5 @@ +# install base requirements +-r requirements.txt + +coverage==4.5.4 +nose==1.3.7 diff --git a/requirements-docs.txt b/requirements-docs.txt new file mode 100644 index 0000000..128ae8b --- /dev/null +++ b/requirements-docs.txt @@ -0,0 +1,6 @@ +# install base requirements +-r requirements.txt + +# documentation generation support +Sphinx==2.2.1 +numpydoc==0.9.1 diff --git a/requirements.txt b/requirements.txt index a7f5f01..1f769f2 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,2 +1,2 @@ -## The following requirements were added by pip --freeze: +# cairo rendering support cairocffi==0.6 diff --git a/test-requirements.txt b/test-requirements.txt deleted file mode 100644 index 826da33..0000000 --- a/test-requirements.txt +++ /dev/null @@ -1,4 +0,0 @@ -# Test requirements -cairocffi==0.6 -coverage==3.7.1 -nose==1.3.4 |