documentation for tk.call interface

2007-10-16 Thread dbr517
I'm using Python + Tkinter for a small gui . . . there are LOTS of
places inside Tkinter with code like this:

self.tk.call('tkwait', 'variable', name)

(this particular one is from the IntVar class).

I've searched the Tkinter docs with no success; can someone point me
at the documentation for tk.call?

Thanks!

Dan

-- 
http://mail.python.org/mailman/listinfo/python-list


Extending the import mechanism - what is recommended?

2008-01-29 Thread dbr517
I need to extend the import mechanism to support another file type.
I've already written the necessary C library to read the file and
return a python code object.

I found one example which just sub-classed imputil.ImportManager like
this:

from myLib import pye_code as pye_code
class MyImporter(imputil.ImportManager):
def __init__(self):
imputil.ImportManager.__init__(self)
self.add_suffix('.pye', self.import_pye)
self.install()

def import_pye(self, filepath, fileinfo, filename):
data = pye_code(filepath)
return 0, data, {}

This actually works fine if the module is just a few lines of code,
but it won't chain to the "built-in" importers; if the module that I'm
importing does something as simple as 'import re', it fails.

It may be that my confusion here is because (even after reading the
code), I'm not clear on the purposes of imputil.ImportManager vs.
imputil.Importer :-(

What is the "preferred" way to do this type of extension?  One other
note; at this time, I just need to import individual module files with
this extension; I don't need to import packages.

Thanks!

Dan
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Extending the import mechanism - what is recommended?

2008-02-04 Thread dbr517
On Jan 29, 2:36 pm, Steve Holden <[EMAIL PROTECTED]> wrote:
> [EMAIL PROTECTED] wrote:
> > I need to extend the import mechanism to support another file type.
> > I've already written the necessary C library to read the file and
> > return a python code object.
>
> > I found one example which just sub-classed imputil.ImportManager like
> > this:
>
> > from myLib import pye_code as pye_code
> > class MyImporter(imputil.ImportManager):
> > def __init__(self):
> > imputil.ImportManager.__init__(self)
> > self.add_suffix('.pye', self.import_pye)
> > self.install()
>
> > def import_pye(self, filepath, fileinfo, filename):
> > data = pye_code(filepath)
> > return 0, data, {}
>
> > This actually works fine if the module is just a few lines of code,
> > but it won't chain to the "built-in" importers; if the module that I'm
> > importing does something as simple as 'import re', it fails.
>
> > It may be that my confusion here is because (even after reading the
> > code), I'm not clear on the purposes of imputil.ImportManager vs.
> > imputil.Importer :-(
>
> > What is the "preferred" way to do this type of extension?  One other
> > note; at this time, I just need to import individual module files with
> > this extension; I don't need to import packages.
>
> Here's an importer I wrote some time ago to bring modules in from a
> relational database. I won't trouble you with the code to compile the
> modules/packages and add them into the database, but perhaps the
> attached code will be enough to show you what you are doing that's not
> working.
>
> regards
>   Steve
> --
> Steve Holden+1 571 484 6266   +1 800 494 3119
> Holden Web LLC  http://www.holdenweb.com/
>
> [dbimp.py]#
> # Import modules from a database
> #
> # NOTE: could use sys version info to select appropriate module version
> #   - could ask whether to install if absent ... heh, heh :-)
> #
> import sys, db, marshal
> VER = sys.hexversion
--->
> def install():
> sys.path_hooks.append(dbimporter)
> sys.path_importer_cache.clear() # probably not necessary
> sys.path.insert(0, "*db*") # probably not needed with a metea-path hook?

Steve -

Thanks!  Got this to work with one interesting problem . . . if I use
sys.path.insert(0) and insert my hook at the head of the path,
then I can't import anything EXCEPT my special modules . . . If I use
sys.path.append("*pye*") then I'm OK.

One thing I changed was that my load_module function raises
ImportError if it fails; my understanding from reading PEP302 is that
that's what's SUPPOSED to happen . . .

At any rate, I can now import my custom modules . . . thanks!

Dan
-- 
http://mail.python.org/mailman/listinfo/python-list


Help on help()

2008-02-21 Thread dbr517
Is there any technique for preventing help from recursing into the
module tree??

If I do:

import my_module
help(my_module)

I'd like to see ONLY help on my_module, NOT help on all the functions
inherited from the various parent classes . . .

A quick search of the documentation didn't turn up anything . . . .

TIA .. .

Dan
-- 
http://mail.python.org/mailman/listinfo/python-list