module naming?

Michal Wallace (sabren) sabren at manifestation.com
Sun Apr 16 20:39:00 EDT 2000


Hey All,

 I've got a package I'm getting ready to share named zdc, and it has
some submodules: zdc.Record, zdc.Field, zdc.IdxDict.. Each one of
those contains a class with the corresponding name: zdc.Record.Record,
zdc.Field.Field, zdc.IdxDict.IdxDict.

  I've read the essay on built-in package support,
( http://www.python.org/doc/essays/packages.html ), but I just don't like
the notion of having to say:

   import zdc.Record
   rec = zdc.Record.Record()


when this looks so much nicer:

   import zdc
   rec = zdc.Record()


Now, I know I can do this by putting all my classes in zdc.py, but I
think it's a lot cleaner to keep my classes in their own files.

I also don't want to do "from zdc import *" because people who use my
modules will probably only want one of the classes at a time. Or at
least I will. :)

The other approach I'm considering is changing my module names to
lowercase, and doing something like this in zdc/__init__.py :


def Record(dbc, table):
   import zdc.record, zdc
   zdc.Record = zdc.record.Record
   return zdc.record.Record(dbc, table)


.. That way, the first time you call zdc.Record() it imports
zdc.record, and every time after that, it just initializes a
zdc.record.Record object... 

Is there a better way to do this?

Cheers,

- Michal
-------------------------------------------------------------------------
http://www.manifestation.com/         http://www.linkwatcher.com/metalog/
-------------------------------------------------------------------------





More information about the Python-list mailing list