--- a/ztfy/utils/traversing.py Wed Jun 20 16:29:53 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,65 +0,0 @@
-### -*- coding: utf-8 -*- ####################################################
-##############################################################################
-#
-# Copyright (c) 2008 Thierry Florac <tflorac AT ulthar.net>
-# All Rights Reserved.
-#
-# This software is subject to the provisions of the Zope Public License,
-# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
-# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-# FOR A PARTICULAR PURPOSE.
-#
-##############################################################################
-
-
-# import standard packages
-
-# import Zope3 interfaces
-
-# import local interfaces
-
-# import Zope3 packages
-from zope.interface import Interface
-
-# import local packages
-
-
-def getParent(context, interface=Interface, allow_context=True):
- """Get first parent of the given context that implements given interface"""
- if allow_context:
- parent = context
- else:
- parent = getattr(context, '__parent__', None)
- while parent is not None:
- if interface.providedBy(parent):
- return interface(parent)
- parent = getattr(parent, '__parent__', None)
- return None
-
-
-# copied from fanstatic (which copied it from zope.dottedname !)
-def resolve(name, module=None):
- name = name.split('.')
- if not name[0]:
- if module is None:
- raise ValueError("relative name without base module")
- module = module.split('.')
- name.pop(0)
- while not name[0]:
- module.pop()
- name.pop(0)
- name = module + name
-
- used = name.pop(0)
- found = __import__(used)
- for n in name:
- used += '.' + n
- try:
- found = getattr(found, n)
- except AttributeError:
- __import__(used)
- found = getattr(found, n)
-
- return found