X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f X-Recipient: geda-user AT delorie DOT com MIME-Version: 1.0 Date: Tue, 14 Feb 2012 13:36:38 -0700 Message-ID: Subject: [geda-user] PyBIS - A Python based IBIS parser. From: Russell Dill To: si-list AT freelists DOT org Cc: geda-user AT delorie DOT com Content-Type: text/plain; charset=UTF-8 X-Gm-Message-State: ALoCoQmo4rdbc6+u/bp/bdZgSE+XrXp6rpA0h6loCFuba6ojfur6GbEKAFxV/aeu5TssZcVU8Rca Reply-To: geda-user AT delorie DOT com I've released a Python based IBIS parser I've created as part of a project that I'm working on in the hope that others will find it useful, improve on it, and create new projects based on it. The parser manages everything in the 5.0 specification except for AMI files. http://github.com/russdill/pybis http://github.com/russdill/pybis/wiki The IBIS format, partially due to its long history, is somewhat difficult to parse. Due to the licensing terms of the only publically available parser, there is a barrier to entry for projects (especially open) based on the IBIS format. Either write a new parser from scratch, or pay for (and abide by the licensing terms) of the golden parser. With PyBIS, parsing IBIS should be as easy as: import pybis parse_results = pybis.IBSParser().parse('test.ibs') A script that creates a component based on the component information can simply iterate through the components: for component_name, component in parse_results.component.iteritems(): And through the pins of the component: for pin_name, pin in component.pin.iteritems(): And do something with each pin: my_add_pin(component_name, pin_name, pin.signal_name) Information could easily be supplemented by checking the information in the model for the pin as well. The library is licensed under the GNU LGPL v2.1. Its up on github, so feel free to fork, send pull requests, enter issues, or edit the wiki.