[Checkins] SVN: zope.location/trunk/ Add support for PyPy.

Tres Seaver cvs-admin at zope.org
Thu Jun 7 01:32:35 UTC 2012


Log message for revision 126653:
  Add support for PyPy.

Changed:
  _U  zope.location/trunk/
  U   zope.location/trunk/CHANGES.txt
  U   zope.location/trunk/setup.py
  U   zope.location/trunk/src/zope/location/location.py

-=-
Modified: zope.location/trunk/CHANGES.txt
===================================================================
--- zope.location/trunk/CHANGES.txt	2012-06-07 01:32:28 UTC (rev 126652)
+++ zope.location/trunk/CHANGES.txt	2012-06-07 01:32:32 UTC (rev 126653)
@@ -5,6 +5,8 @@
 4.0.0 (unreleased)
 ------------------
 
+- Added support for PyPy.
+
 - Added support for continuous integration using ``tox`` and ``jenkins``.
 
 - 100% unit test coverage.

Modified: zope.location/trunk/setup.py
===================================================================
--- zope.location/trunk/setup.py	2012-06-07 01:32:28 UTC (rev 126652)
+++ zope.location/trunk/setup.py	2012-06-07 01:32:32 UTC (rev 126653)
@@ -46,6 +46,8 @@
           'Programming Language :: Python :: 2',
           'Programming Language :: Python :: 2.6',
           'Programming Language :: Python :: 2.7',
+          'Programming Language :: Python :: Implementation :: CPython',
+          'Programming Language :: Python :: Implementation :: PyPy',
           'Natural Language :: English',
           'Operating System :: OS Independent',
           'Topic :: Internet :: WWW/HTTP',

Modified: zope.location/trunk/src/zope/location/location.py
===================================================================
--- zope.location/trunk/src/zope/location/location.py	2012-06-07 01:32:28 UTC (rev 126652)
+++ zope.location/trunk/src/zope/location/location.py	2012-06-07 01:32:32 UTC (rev 126653)
@@ -91,7 +91,7 @@
     This is a non-picklable proxy that can be put around objects that
     don't implement `ILocation`.
     """
-    __slots__ = '__parent__', '__name__'
+    __slots__ = ('__parent__', '__name__')
     __safe_for_unpickling__ = True
 
     __doc__ = ClassAndInstanceDescr(
@@ -107,6 +107,19 @@
         self.__parent__ = container
         self.__name__ = name
 
+    def __getattribute__(self, name):
+        if name in LocationProxy.__dict__:
+            return object.__getattribute__(self, name)
+        return super(ProxyBase, self).__getattribute__(name)
+
+    def __setattr__(self, name, value):
+        if name in ('_wrapped', '__parent__', '__name__'):
+            try:
+                return ProxyBase.__setattr__(self, name, value)
+            except AttributeError:
+                return object.__setattr__(self, name, value)
+        setattr(self._wrapped, name, value)
+
     @non_overridable
     def __reduce__(self, proto=None):
         raise TypeError("Not picklable")



More information about the checkins mailing list