summaryrefslogtreecommitdiff
path: root/gerber/common.py
diff options
context:
space:
mode:
authorHamilton Kibbe <hamilton.kibbe@gmail.com>2016-01-28 12:19:03 -0500
committerHamilton Kibbe <hamilton.kibbe@gmail.com>2016-01-28 12:19:03 -0500
commit5df38c014fd09792995b2b12b1982c535c962c9a (patch)
tree3dd1f118a752b7b6e75511e1f3b3af3ac1b67bdc /gerber/common.py
parentb9f1b106c3006f1dddb1279ae9622630a29d18c7 (diff)
downloadgerbonara-5df38c014fd09792995b2b12b1982c535c962c9a.tar.gz
gerbonara-5df38c014fd09792995b2b12b1982c535c962c9a.tar.bz2
gerbonara-5df38c014fd09792995b2b12b1982c535c962c9a.zip
Cleanup, rendering fixes.
fixed rendering of tented vias fixed rendering of semi-transparent layers fixed file type detection issues added some examples
Diffstat (limited to 'gerber/common.py')
-rw-r--r--gerber/common.py35
1 files changed, 17 insertions, 18 deletions
diff --git a/gerber/common.py b/gerber/common.py
index cf137dd..334714b 100644
--- a/gerber/common.py
+++ b/gerber/common.py
@@ -33,42 +33,41 @@ def read(filename):
Returns
-------
file : CncFile subclass
- CncFile object representing the file, either GerberFile or
- ExcellonFile. Returns None if file is not an Excellon or Gerber file.
+ CncFile object representing the file, either GerberFile, ExcellonFile,
+ or IPCNetlist. Returns None if file is not of the proper type.
"""
with open(filename, 'rU') as f:
data = f.read()
- fmt = detect_file_format(data)
- if fmt == 'rs274x':
- return rs274x.read(filename)
- elif fmt == 'excellon':
- return excellon.read(filename)
- elif fmt == 'ipc_d_356':
- return ipc356.read(filename)
- else:
- raise ParseError('Unable to detect file format')
+ return loads(data, filename)
-def loads(data):
+def loads(data, filename=None):
""" Read gerber or excellon file contents from a string and return a
representative object.
Parameters
----------
data : string
- gerber or excellon file contents as a string.
+ Source file contents as a string.
+
+ filename : string, optional
+ String containing the filename of the data source.
Returns
-------
file : CncFile subclass
- CncFile object representing the file, either GerberFile or
- ExcellonFile. Returns None if file is not an Excellon or Gerber file.
+ CncFile object representing the data, either GerberFile, ExcellonFile,
+ or IPCNetlist. Returns None if data is not of the proper type.
"""
fmt = detect_file_format(data)
if fmt == 'rs274x':
- return rs274x.loads(data)
+ return rs274x.loads(data, filename)
elif fmt == 'excellon':
- return excellon.loads(data)
+ return excellon.loads(data, filename)
+ elif fmt == 'ipc_d_356':
+ return ipc356.loads(data, filename)
else:
- raise TypeError('Unable to detect file format')
+ raise ParseError('Unable to detect file format')
+
+