diff options
author | Paulo Henrique Silva <ph.silva@gmail.com> | 2019-11-25 11:30:53 -0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-11-25 11:30:53 -0300 |
commit | 2e32abef6ad46e5604cbd6f6086d857b8bc4f7be (patch) | |
tree | 6ca55a4d19f19f2db86324309a8b8abc1c1f8e37 | |
parent | 2601ae8eab8d7be807bdbed264cd943e441a8da0 (diff) | |
parent | c08457f7addf2001f07fac5d30091b33b3ddcb0c (diff) | |
download | gerbonara-2e32abef6ad46e5604cbd6f6086d857b8bc4f7be.tar.gz gerbonara-2e32abef6ad46e5604cbd6f6086d857b8bc4f7be.tar.bz2 gerbonara-2e32abef6ad46e5604cbd6f6086d857b8bc4f7be.zip |
Merge pull request #104 from MarinMikael/allow_float_fmt_and_fix_3.7
Allow float fmt and fix 3.7
-rw-r--r-- | gerber/excellon_statements.py | 11 | ||||
-rw-r--r-- | gerber/utils.py | 4 |
2 files changed, 10 insertions, 5 deletions
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 |