diff options
author | Hamilton Kibbe <hamilton.kibbe@gmail.com> | 2016-01-28 12:19:03 -0500 |
---|---|---|
committer | Hamilton Kibbe <hamilton.kibbe@gmail.com> | 2016-01-28 12:19:03 -0500 |
commit | 5df38c014fd09792995b2b12b1982c535c962c9a (patch) | |
tree | 3dd1f118a752b7b6e75511e1f3b3af3ac1b67bdc /gerber/common.py | |
parent | b9f1b106c3006f1dddb1279ae9622630a29d18c7 (diff) | |
download | gerbonara-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.py | 35 |
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') + + |