Referencing module.instance
Gnarlodious
gnarlodious at gmail.com
Fri Dec 2 22:49:22 EST 2011
To explain my reasoning, this scheme will allow me to run the script three ways, as shell, as one-shot CGI or as a persistent mod_wsgi module.
So to be more exhaustive:
In __init__ I can say:
import Grid
self.Grid = Grid.Grid
self.Grid is now the instance of Grid inside the module Grid.
then later on I __call__ with the input data:
html=self.Grid(queryString, environ)
and this works great for one module, a default output which is now running on my server.
But now I want to use the query string to load the instance, which means it comes in as text. Say I load a list of modules:
allowedPages=['Gnomon', 'Grid', 'Lexicon', 'Harmonics']
I need to import them all at __init__, and set the instance for each like this:
self.Gnomon=Gnomon.Gnomon
self.Grid=Grid.Grid
self.Lexicon=Lexicon.Lexicon
self.Harmonics=Harmonics.Harmonics
Then dynamically, in __call_, I just use the CGI string to invoke my target object.
What I have now is:
self.modules = {}
page = 'Gnomon'
self.modules[page] = __import__(page)
which gives me
<module 'Gnomon' from '~/Sites/Sectrum/Gnomon.py'>
A solution is to set self.modules[page] to the Gnomon instance of the Gnomon module. How to?
-- Gnarlie
http://Sectrum.com
More information about the Python-list
mailing list