pygds/tests/__main__.py

58 lines
1.6 KiB
Python
Raw Normal View History

2019-07-04 22:09:56 +02:00
import sys
import os
import math
import progress.bar
import glob
# allow import from parent directory
sys.path.append(os.path.dirname(sys.path[0]))
import pygds as gds
2019-07-04 22:09:56 +02:00
global bar
def callback(parser):
global bar
bar.max = parser.total
bar.index = parser.current
bar.update()
for arg in glob.glob("{}/tests/*.gds".format(sys.path[0])):
f = open(arg, "rb")
try:
bar = progress.bar.IncrementalBar("parsing file")
lib = gds.parse_file(f, progress_func=callback)
print()
print("file version: {}".format(lib.version))
print("last access: {}".format(lib.last_access.isoformat()))
print("last modification: {}".format(lib.last_mod.isoformat()))
print("m/unit : {}".format(lib.meters_per_unit))
print("unit/dbunit : {}".format(lib.units_per_dbunit))
print("library name : {}".format(lib.name))
print("contains a total of {} structure(s)".format(len(lib.structures)))
for name in lib.structures.keys():
#print(name, end = " ")
print("- {}".format(name))
for elem in lib.structures[name].elements:
if isinstance(elem, gds.Boundary):
for coord in elem.points:
coord = (coord[0] * lib.units_per_dbunit , coord[1] * lib.units_per_dbunit)
print("linking structure references")
lib.link_all_refs(callback)
#except gds.ParserError as e:
# print("parser error: {}".format(e))
# exit(1)
2019-07-04 22:09:56 +02:00
except KeyboardInterrupt:
continue
finally:
f.close()
print("all done")