summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaulo Henrique Silva <ph.silva@gmail.com>2015-02-19 00:36:26 -0200
committerPaulo Henrique Silva <ph.silva@gmail.com>2015-02-19 00:36:26 -0200
commit4b92e1b59dcaff48bda4e1c906506432651fcd4f (patch)
treea1e0e32e4988cf66840dcae69c823d731069c1dd
parent67f2af2015914da1cd8e06c254c8b6ff347fc9b2 (diff)
parente71d7a24b5be3e68d36494869595eec934db4bd2 (diff)
downloadgerbonara-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.yml9
-rw-r--r--doc-requirements.txt4
-rwxr-xr-xgerber/excellon.py10
-rw-r--r--gerber/excellon_statements.py2
-rw-r--r--gerber/gerber_statements.py3
-rw-r--r--gerber/tests/test_excellon.py6
-rw-r--r--gerber/tests/test_gerber_statements.py3
-rw-r--r--gerber/tests/tests.py2
-rw-r--r--gerber/utils.py3
-rw-r--r--requirements.txt13
-rw-r--r--test-requirements.txt3
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