On Wed, Mar 12, 2003 at 10:42:14AM -0500, Greg Ward wrote: >The patch below fixes the problem by turning the ImportError into a >Quixote AccessError, which eventually becomes an HTTP 403. (I don't Catching an ImportError exception is a bit unsettling. How about this simpler patch to get_component? Index: publish.py =================================================================== *** publish.py (revision 21077) --- publish.py (working copy) *************** *** 469,480 **** --- 469,484 ---- # From here on, you can assume that the name is either in # _q_exports, or the name is '_q_index' elif hasattr(container, component): # attribute is in _q_exports and exists object = getattr(container, component) + elif component == '_q_index': + raise errors.AccessError( + private_msg=("_q_index not found in %r" % container)) + elif hasattr(container, "_q_resolve"): object = container._q_resolve(component) if object is None: raise RuntimeError, ("component %r listed in _q_exports, " "but not returned by _q_resolve()" % component) Possibly the "component == '_q_index'" should come after trying _q_resolve. >I think this should probably wait until Quixote 0.6 is released, as it >meddles right in the core of Quixote. I can live with my ImportError >traceback for a while longer. Opinions? I'd be happy with releasing 0.6b4 with the above change, and then calling it 0.6final after another week of further testing. --amk (www.amk.ca) EDMUND: Know thou this, that men are as the time is. -- _King Lear_, V, iii