I had some modules with circular imports and I only discovered that
this was a problem when I tried to discover why my modules were being
reimported constantly. I would suggest that this code be changed to
log an error that explicitly tells you that there's a circular import,
and what the consequences are.

# Check for a child which refers to one of its
# ancestors. Hopefully this will never occur. If
# it does we will force a reload every time to
# highlight there is a problem.

if label in ancestors:
   # LOG HELPFUL ERROR HERE
   return True

Also, I still chafe every time I have to write:

sidewinder_dir = r'C:\Docume~1\Dan\MyDocu~1\PYROOT\sidewinder\\'
from mod_python import apache
session = apache.import_module(sidewinder_dir+'session.py')
config = apache.import_module(sidewinder_dir+'config.py')

Instead of:
import session
import config

My handler imports modules like so:

IMPORT_PATH = [config.server_options['sidewinder_dir'], config.web['root']]
apache.import_module(mpath, path=IMPORT_PATH)

Which works great, but when those modules import something I have to
use the ugly mess above. Maybe you and I could think of a better way?

I'd like if I could just add an option globally to my httpd.conf like:
PythonOption ChildrenAlwaysInheritImportPath On

Or maybe add another parameter to import_module like:
apache.import_module(mpath, path=IMPORT_PATH, inherit=True)

Or?

Thanks,
-Dan

Reply via email to