ztfy/utils/traversing.py
branchZTK-1.1
changeset 149 738abc5935c9
parent 148 d3668ecd9137
child 150 3b6ce9aacac2
--- 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