On 03/10/12 04:20, Tino Dai wrote:
and the get_class class works sometime for finding modules within a
certain directory. If the get_class
doesn't work, it throws an AttributeError.

I don't really understand what you mean by this. Can you copy and
paste the actual error message (all of it)?


The module exists in the directory, and I'm trying to debug this. Does
anybody have any hints to go about debug
this?


get_class('etl.transfers.bill_subject')      #
etl.transfers.bill_subject does exist under the transfers directory
<module 'etl.transfers.bill_subject' from
'./leg_apps/etl/transfers/bill_subject.pyc'>

I don't understand why you are using the get_class function for this.
It is only useful when you don't know the name of the object until
runtime. Since you know the name, I would suggest that using a regular
import is better:

from etl.transfers import bill_subject

Imports also work differently to getattr, and I believe that is where
you are running into trouble. The (wrongly named) get_class function
uses getattr to extract names from a single top-level module. But that's
not what you are trying to do: you are trying to extract modules from
a package.

Use the right tool for the job: you are trying to use a screwdriver when
you need a screwdriver.

My prediction is that *at some point* in your experiments, you have done
something like:

etl.transfers.bill_subject = bill_subject

*or something with the same effect*. Perhaps the "transfers" module
includes one of these lines:

import bill_subject  # Python 2.5 or older?
from . import bill_subject


Now bill_subject is an attribute of the transfers module, and getattr can
see it. But you haven't done the same for related_bills, and so getattr
cannot see it.

Instead, use the right tool, import, which is designed for solving your
problem:

from etl.transfers import bill_subject
from etl.transfers import related_bills

should both work, unless you have removed the bill_subject.py and
related_bills.py files from the etl/transfers/ directory.



--
Steven
_______________________________________________
Tutor maillist  -  [email protected]
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to