def connectionOfPersistent(obj): """ zope2 cxn fetcher for wrapped items """ if not (IAcquirer.providedBy(obj) or hasattr(obj, '__parent__')): return getattr(obj, '_p_jar', None) for parent in aq_iter(obj): conn = getattr(parent, '_p_jar', None) if conn is not None: return conn
def get_root(app): for parent in aq_iter(app, error=AttributeError): if IApplication.providedBy(parent): return parent raise AttributeError('No application found')