On 2007-08-17 13:57:05 +0200, Christian Zagrodnick <[EMAIL PROTECTED]> said:

Log message for revision 78902:
  added  method quite like  in zope.app.container.contained

That should have been

"added `located` method quite like `contained` in zope.app.container.contained"




Changed:
  U   zope.location/trunk/src/zope/location/location.py
  U   zope.location/trunk/src/zope/location/location.txt

-=-
Modified: zope.location/trunk/src/zope/location/location.py
===================================================================
--- zope.location/trunk/src/zope/location/location.py 2007-08-17 11:48:10 UTC (rev 78901) +++ zope.location/trunk/src/zope/location/location.py 2007-08-17 11:57:04 UTC (rev 78902)
@@ -44,6 +44,18 @@
     object.__name__ = name


+def located(object, parent, name=None):
+    """Locate an object in another and return it.
+
+    If the object does not provide ILocation a LocationProxy is returned.
+
+    """
+    if ILocation.providedBy(object):
+        locate(object, parent, name)
+        return object
+    return LocationProxy(object, parent, name)
+
+
 def LocationIterator(object):
     while object is not None:
         yield object

Modified: zope.location/trunk/src/zope/location/location.txt
===================================================================
--- zope.location/trunk/src/zope/location/location.txt 2007-08-17 11:48:10 UTC (rev 78901) +++ zope.location/trunk/src/zope/location/location.txt 2007-08-17 11:57:04 UTC (rev 78902)
@@ -75,9 +75,13 @@

 >>> from zope.location.location import LocationProxy
 >>> l = [1, 2, 3]
+>>> ILocation.providedBy(l)
+False
 >>> p = LocationProxy(l, "Dad", "p")
 >>> p
 [1, 2, 3]
+>>> ILocation.providedBy(p)
+True
 >>> p.__parent__
 'Dad'
 >>> p.__name__
@@ -94,3 +98,36 @@
 >>> p.__doc__ == l.__doc__
 True

+
+The `located` function
+======================
+
+`located` locates an object in another and returns it:
+
+>>> from zope.location.location import located
+>>> a = Location()
+>>> parent = Location()
+>>> a_located = located(a, parent, 'a')
+>>> a_located is a
+True
+>>> a_located.__parent__ is parent
+True
+>>> a_located.__name__
+'a'
+
+
+If the object does not provide ILocation a LocationProxy is returned:
+
+>>> l = [1, 2, 3]
+>>> parent = Location()
+>>> l_located = located(l, parent, 'l')
+>>> l_located
+[1, 2, 3]
+>>> l_located.__parent__ is parent
+True
+>>> l_located.__name__
+'l'
+>>> l_located is l
+False
+>>> type(l_located)
+<class 'zope.location.location.LocationProxy'>


--
Christian Zagrodnick

gocept gmbh & co. kg  ·  forsterstrasse 29 · 06112 halle/saale
www.gocept.com · fon. +49 345 12298894 · fax. +49 345 12298891



_______________________________________________
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com

Reply via email to