diff options
author | Hamilton Kibbe <hamilton.kibbe@gmail.com> | 2016-11-06 14:44:40 -0500 |
---|---|---|
committer | Hamilton Kibbe <hamilton.kibbe@gmail.com> | 2016-11-06 14:44:40 -0500 |
commit | 422c86bcc684ea94515862b0dd3a39ce0f4bd86f (patch) | |
tree | a1efe6504e40083e61dcbe412c243fd8c00628f3 /gerber/common.py | |
parent | ede065e6d16e1e4ffe970c8b13945139b3f4bcb2 (diff) | |
parent | 22e668c75f24174d2090443ed98e804b3737bd84 (diff) | |
download | gerbonara-422c86bcc684ea94515862b0dd3a39ce0f4bd86f.tar.gz gerbonara-422c86bcc684ea94515862b0dd3a39ce0f4bd86f.tar.bz2 gerbonara-422c86bcc684ea94515862b0dd3a39ce0f4bd86f.zip |
Merge upstream changes
Diffstat (limited to 'gerber/common.py')
-rw-r--r-- | gerber/common.py | 33 |
1 files changed, 15 insertions, 18 deletions
diff --git a/gerber/common.py b/gerber/common.py index cf137dd..f496809 100644 --- a/gerber/common.py +++ b/gerber/common.py @@ -33,42 +33,39 @@ 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=filename) elif fmt == 'excellon': - return excellon.loads(data) + return excellon.loads(data, filename=filename) + elif fmt == 'ipc_d_356': + return ipc356.loads(data, filename=filename) else: - raise TypeError('Unable to detect file format') + raise ParseError('Unable to detect file format') |