NEEDED: SQL Parser callable from python?
Anthony Baxter
anthony at interlink.com.au
Mon Aug 26 00:20:14 EDT 2002
Look into the 'introspect' module in the gadfly project, in particular
the 'RemoteView' class. You can subclass this to allow it to be hooked
into the gadfly core.
This comment is in my old snmp-tables-via-gadfly code - it looks like it's
still current.
"""A remote view must define self.column_names
to return a (fixed) list of string column names and
self.listing() to return a possibly varying
list of row values. If there is a single column
the listing() list must return a list of values,
but for multiple columns it must return a list
of tuples with one entry for each column.
The remote view implementation may optionally
redefine __init__ also, please see introspect.py
"""
A simple (untested!) example might be like:
class MySubclassOfRemoteView(RemoteView):
# static = 0 means reconstruct internal structures for each
# query.
static = 0
# these must be fixed
column_names = [ "user", "extension" ]
# but the rows returned by this can vary.
def listing(self):
return [ ('anthony','7015'),
('rjones','7002'),
('rupert','7014'),
]
Once you've subclassed RemoteView, something like
conn = gadfly()
conn.startup("dbtest", "dbtest") # assume directory "dbtest" exists
conn.add_remote_view("name", MySubclassOfRemoteView() )
will add it to the DB.
For more, check out
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/gadfly/gadfly/gadfly/introspection.py?rev=1.3&content-type=text/vnd.viewcvs-markup
I'm pretty sure this still works with the current state-of-the-art gadfly,
but I can't be sure.
I can't remember where I found this stuff out - I suspect it was from
asking Aaron in an email. It could probably do with being documented and
some examples and the like...
Anthony
More information about the Python-list
mailing list