diff options
author | Paulo Henrique Silva <ph.silva@gmail.com> | 2015-02-19 00:36:26 -0200 |
---|---|---|
committer | Paulo Henrique Silva <ph.silva@gmail.com> | 2015-02-19 00:36:26 -0200 |
commit | 4b92e1b59dcaff48bda4e1c906506432651fcd4f (patch) | |
tree | a1e0e32e4988cf66840dcae69c823d731069c1dd | |
parent | 67f2af2015914da1cd8e06c254c8b6ff347fc9b2 (diff) | |
parent | e71d7a24b5be3e68d36494869595eec934db4bd2 (diff) | |
download | gerbonara-4b92e1b59dcaff48bda4e1c906506432651fcd4f.tar.gz gerbonara-4b92e1b59dcaff48bda4e1c906506432651fcd4f.tar.bz2 gerbonara-4b92e1b59dcaff48bda4e1c906506432651fcd4f.zip |
Merge pull request #19 from curtacircuitos/python3
Python 3 tests passing
-rw-r--r-- | .travis.yml | 9 | ||||
-rw-r--r-- | doc-requirements.txt | 4 | ||||
-rwxr-xr-x | gerber/excellon.py | 10 | ||||
-rw-r--r-- | gerber/excellon_statements.py | 2 | ||||
-rw-r--r-- | gerber/gerber_statements.py | 3 | ||||
-rw-r--r-- | gerber/tests/test_excellon.py | 6 | ||||
-rw-r--r-- | gerber/tests/test_gerber_statements.py | 3 | ||||
-rw-r--r-- | gerber/tests/tests.py | 2 | ||||
-rw-r--r-- | gerber/utils.py | 3 | ||||
-rw-r--r-- | requirements.txt | 13 | ||||
-rw-r--r-- | test-requirements.txt | 3 |
11 files changed, 28 insertions, 30 deletions
diff --git a/.travis.yml b/.travis.yml index 17f7516..2deada8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,16 +1,19 @@ language: python
python:
- "2.7"
+ - "3.3"
+ - "3.4"
# command to install dependencies
-install:
+install:
- "pip install -r requirements.txt"
+ - "pip install -r test-requirements.txt"
- "pip install coveralls"
# command to run tests
-script:
+script:
- make test-coverage
# Coveralls
-after_success:
+after_success:
- coveralls
diff --git a/doc-requirements.txt b/doc-requirements.txt new file mode 100644 index 0000000..a163c9b --- /dev/null +++ b/doc-requirements.txt @@ -0,0 +1,4 @@ +# Doc requirements +Sphinx==1.2.3 +numpydoc==0.5 + diff --git a/gerber/excellon.py b/gerber/excellon.py index a339827..ebc307f 100755 --- a/gerber/excellon.py +++ b/gerber/excellon.py @@ -142,7 +142,7 @@ class ExcellonFile(CamFile): self.units = 'metric'
for statement in self.statements:
statement.to_metric()
- for tool in self.tools.itervalues():
+ for tool in iter(self.tools.values()):
tool.to_metric()
for primitive in self.primitives:
primitive.to_metric()
@@ -290,7 +290,7 @@ class ExcellonParser(object): elif line[0] == 'R' and self.state != 'HEADER':
stmt = RepeatHoleStmt.from_excellon(line, self._settings())
self.statements.append(stmt)
- for i in xrange(stmt.count):
+ for i in range(stmt.count):
self.pos[0] += stmt.xdelta
self.pos[1] += stmt.ydelta
self.hits.append((self.active_tool, tuple(self.pos)))
@@ -390,8 +390,8 @@ def detect_excellon_format(filename): pass
# See if any of the dimensions are left with only a single option
- formats = set(key[0] for key in results.iterkeys())
- zeros = set(key[1] for key in results.iterkeys())
+ formats = set(key[0] for key in iter(results.keys()))
+ zeros = set(key[1] for key in iter(results.keys()))
if len(formats) == 1:
detected_format = formats.pop()
if len(zeros) == 1:
@@ -408,7 +408,7 @@ def detect_excellon_format(filename): size, count, diameter = results[key]
scores[key] = _layer_size_score(size, count, diameter)
minscore = min(scores.values())
- for key in scores.iterkeys():
+ for key in iter(scores.keys()):
if scores[key] == minscore:
return {'format': key[0], 'zeros': key[1]}
diff --git a/gerber/excellon_statements.py b/gerber/excellon_statements.py index 99f7d46..356a96b 100644 --- a/gerber/excellon_statements.py +++ b/gerber/excellon_statements.py @@ -586,4 +586,4 @@ def pairwise(iterator): """ itr = iter(iterator) while True: - yield tuple([itr.next() for i in range(2)]) + yield tuple([next(itr) for i in range(2)]) diff --git a/gerber/gerber_statements.py b/gerber/gerber_statements.py index b231cdb..f8385c0 100644 --- a/gerber/gerber_statements.py +++ b/gerber/gerber_statements.py @@ -93,8 +93,7 @@ class FSParamStmt(ParamStmt): param = stmt_dict.get('param') zeros = 'leading' if stmt_dict.get('zero') == 'L' else 'trailing' notation = 'absolute' if stmt_dict.get('notation') == 'A' else 'incremental' - x = map(int, stmt_dict.get('x')) - fmt = (x[0], x[1]) + fmt = tuple(map(int, stmt_dict.get('x'))) return cls(param, zeros, notation, fmt) def __init__(self, param, zero_suppression='leading', diff --git a/gerber/tests/test_excellon.py b/gerber/tests/test_excellon.py index 24cf793..d47ad6a 100644 --- a/gerber/tests/test_excellon.py +++ b/gerber/tests/test_excellon.py @@ -7,7 +7,7 @@ import os from ..cam import FileSettings from ..excellon import read, detect_excellon_format, ExcellonFile, ExcellonParser from ..excellon_statements import ExcellonTool -from tests import * +from .tests import * NCDRILL_FILE = os.path.join(os.path.dirname(__file__), @@ -47,14 +47,14 @@ def test_conversion(): ncdrill.to_metric() assert_equal(ncdrill.settings.units, 'metric') - for tool in ncdrill_inch.tools.itervalues(): + for tool in iter(ncdrill_inch.tools.values()): tool.to_metric() for primitive in ncdrill_inch.primitives: primitive.to_metric() for statement in ncdrill_inch.statements: statement.to_metric() - for m_tool, i_tool in zip(ncdrill.tools.itervalues(), ncdrill_inch.tools.itervalues()): + for m_tool, i_tool in zip(iter(ncdrill.tools.values()), iter(ncdrill_inch.tools.values())): assert_equal(i_tool, m_tool) for m, i in zip(ncdrill.primitives,ncdrill_inch.primitives): diff --git a/gerber/tests/test_gerber_statements.py b/gerber/tests/test_gerber_statements.py index bf7035f..b473cf9 100644 --- a/gerber/tests/test_gerber_statements.py +++ b/gerber/tests/test_gerber_statements.py @@ -539,7 +539,8 @@ def test_statement_string(): stmt = Statement('PARAM') assert_equal(str(stmt), '<Statement type=PARAM>') stmt.test='PASS' - assert_equal(str(stmt), '<Statement test=PASS type=PARAM>') + assert_true('test=PASS' in str(stmt)) + assert_true('type=PARAM' in str(stmt)) def test_ADParamStmt_factory(): diff --git a/gerber/tests/tests.py b/gerber/tests/tests.py index db02949..2c75acd 100644 --- a/gerber/tests/tests.py +++ b/gerber/tests/tests.py @@ -20,5 +20,5 @@ __all__ = ['assert_in', 'assert_not_in', 'assert_equal', 'assert_not_equal', def assert_array_almost_equal(arr1, arr2, decimal=6): assert_equal(len(arr1), len(arr2)) - for i in xrange(len(arr1)): + for i in range(len(arr1)): assert_almost_equal(arr1[i], arr2[i], decimal) diff --git a/gerber/utils.py b/gerber/utils.py index 542611d..8cd4965 100644 --- a/gerber/utils.py +++ b/gerber/utils.py @@ -74,7 +74,6 @@ def parse_gerber_value(value, format=(2, 5), zero_suppression='trailing'): raise ValueError('Parser only supports precision up to 6:7 format') # Remove extraneous information - #value = value.strip() value = value.lstrip('+') negative = '-' in value if negative: @@ -140,7 +139,7 @@ def write_gerber_value(value, format=(2, 5), zero_suppression='trailing'): digits = [val for val in fmtstring % value if val != '.'] # If all the digits are 0, return '0'. - digit_sum = reduce(lambda x,y:x+int(y), digits, 0) + digit_sum = sum([int(digit) for digit in digits]) if digit_sum == 0: return '0' diff --git a/requirements.txt b/requirements.txt index 29f0717..a97b5f3 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,15 +1,4 @@ ## The following requirements were added by pip --freeze: -Jinja2==2.7.3 -MarkupSafe==0.23 -Pygments==1.6 -Sphinx==1.2.3 cairocffi==0.6 -cffi==0.8.6 -coverage==3.7.1 -docutils==0.12 -nose==1.3.4 -numpydoc==0.5 -pycparser==2.10 -pyparsing==2.0.2 svgwrite==1.1.6 -wsgiref==0.1.2 + diff --git a/test-requirements.txt b/test-requirements.txt new file mode 100644 index 0000000..c88a55a --- /dev/null +++ b/test-requirements.txt @@ -0,0 +1,3 @@ +# Test requirements +coverage==3.7.1 +nose==1.3.4 |