39 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| import gds
 | |
| import sys
 | |
| 
 | |
| import math
 | |
| import progress.bar
 | |
| 
 | |
| global bar
 | |
| 
 | |
| def callback(parser):
 | |
|     global bar
 | |
| 
 | |
|     bar.max = parser.total
 | |
|     bar.index = parser.current
 | |
|     bar.update()
 | |
| 
 | |
| for arg in sys.argv[1:]:
 | |
|     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)))
 | |
|                 
 | |
|         bar = progress.bar.IncrementalBar("linking structure references")
 | |
|         lib.link_srefs(callback)
 | |
| 
 | |
|     except gds.ParserError as e:
 | |
|         print("parser error: {}".format(e))
 | |
|     finally:
 | |
|         f.close()
 |