Hello community,

here is the log from the commit of package python-zope.security for 
openSUSE:Factory checked in at 2020-03-11 18:43:36
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-zope.security (Old)
 and      /work/SRC/openSUSE:Factory/.python-zope.security.new.3160 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-zope.security"

Wed Mar 11 18:43:36 2020 rev:4 rq:782895 version:5.1.0

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/python-zope.security/python-zope.security.changes    
    2020-01-23 16:12:40.999698747 +0100
+++ 
/work/SRC/openSUSE:Factory/.python-zope.security.new.3160/python-zope.security.changes
      2020-03-11 18:46:37.171424124 +0100
@@ -1,0 +2,9 @@
+Mon Mar  9 10:17:25 UTC 2020 - [email protected]
+
+- version update to 5.1.0
+  - Let proxied interfaces be iterated on Python 3. This worked on
+    Python 2, but raised ``ForbiddenAttribute`` an Python 3. See
+    `zope.interface issue 141 
<https://github.com/zopefoundation/zope.interface/issues/141>`_.
+  - Allow to use a common Sphinx version for Python 2 and 3.
+
+-------------------------------------------------------------------

Old:
----
  zope.security-5.0.tar.gz

New:
----
  zope.security-5.1.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-zope.security.spec ++++++
--- /var/tmp/diff_new_pack.bx4RWl/_old  2020-03-11 18:46:40.499426166 +0100
+++ /var/tmp/diff_new_pack.bx4RWl/_new  2020-03-11 18:46:40.503426168 +0100
@@ -27,7 +27,7 @@
 %bcond_with test
 %endif
 Name:           python-zope.security%{psuffix}
-Version:        5.0
+Version:        5.1.0
 Release:        0
 Summary:        Zope Security Framework
 License:        ZPL-2.1

++++++ zope.security-5.0.tar.gz -> zope.security-5.1.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zope.security-5.0/.manylinux-install.sh 
new/zope.security-5.1.0/.manylinux-install.sh
--- old/zope.security-5.0/.manylinux-install.sh 1970-01-01 01:00:00.000000000 
+0100
+++ new/zope.security-5.1.0/.manylinux-install.sh       2020-02-14 
11:20:18.000000000 +0100
@@ -0,0 +1,22 @@
+#!/usr/bin/env bash
+
+set -e -x
+
+# Compile wheels
+for PYBIN in /opt/python/*/bin; do
+    if [[ "${PYBIN}" == *"cp27"* ]] || \
+       [[ "${PYBIN}" == *"cp35"* ]] || \
+       [[ "${PYBIN}" == *"cp36"* ]] || \
+       [[ "${PYBIN}" == *"cp37"* ]] || \
+       [[ "${PYBIN}" == *"cp38"* ]]; then
+        "${PYBIN}/pip" install -U pip setuptools cffi
+        "${PYBIN}/pip" install -e /io/
+        "${PYBIN}/pip" wheel /io/ -w wheelhouse/
+        rm -rf /io/build /io/*.egg-info
+    fi
+done
+
+# Bundle external shared libraries into the wheels
+for whl in wheelhouse/zope.security*.whl; do
+    auditwheel repair "$whl" -w /io/wheelhouse/
+done
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zope.security-5.0/.manylinux.sh 
new/zope.security-5.1.0/.manylinux.sh
--- old/zope.security-5.0/.manylinux.sh 1970-01-01 01:00:00.000000000 +0100
+++ new/zope.security-5.1.0/.manylinux.sh       2020-02-14 11:20:18.000000000 
+0100
@@ -0,0 +1,5 @@
+#!/usr/bin/env bash
+
+set -e -x
+
+docker run --rm -v "$(pwd)":/io $DOCKER_IMAGE $PRE_CMD 
/io/.manylinux-install.sh
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zope.security-5.0/.travis.yml 
new/zope.security-5.1.0/.travis.yml
--- old/zope.security-5.0/.travis.yml   2019-11-11 19:14:44.000000000 +0100
+++ new/zope.security-5.1.0/.travis.yml 2020-02-14 11:20:18.000000000 +0100
@@ -57,7 +57,7 @@
     - name: Python 3.6 wheels for MacOS
       os: osx
       language: generic
-      env: TERRYFY_PYTHON='macpython 3.6.0'
+      env: TERRYFY_PYTHON='macpython 3.6.2'
     - name: Python 3.7 wheels for MacOS
       os: osx
       language: generic
@@ -72,21 +72,21 @@
     fi
 
 install:
-  - pip install -U pip setuptools
-  - pip install -U coveralls coverage
+  - python -m pip install -U pip setuptools
+  - python -m pip install -U coveralls coverage
   # pip install zope.proxy here because because setup_requires will use
   # easy_install, which fails on Python 3.5 on Mac OS
-  - pip install -U zope.proxy
-  - pip install -U -e .[test,docs]
+  - python -m pip install -U zope.proxy
+  - python -m pip install -U -e .[test,docs]
 
 script:
   - python --version
-  - coverage run -m zope.testrunner --test-path=src
-  - coverage run -a -m sphinx -b doctest -d docs/_build/doctrees docs 
docs/_build/doctest
+  - python -m coverage run -m zope.testrunner --test-path=src
+  - python -m coverage run -a -m sphinx -b doctest -d docs/_build/doctrees 
docs docs/_build/doctest
   - python setup.py bdist_wheel
 
 after_success:
-  - coveralls
+  - python -m coveralls
   - |
     if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
       # macpython 3.5 doesn't support recent TLS protocols which causes twine
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zope.security-5.0/CHANGES.rst 
new/zope.security-5.1.0/CHANGES.rst
--- old/zope.security-5.0/CHANGES.rst   2019-11-11 19:14:44.000000000 +0100
+++ new/zope.security-5.1.0/CHANGES.rst 2020-02-14 11:20:18.000000000 +0100
@@ -2,8 +2,18 @@
  Changes
 =========
 
-5.0 (2019-11-11)
-================
+5.1.0 (2020-02-14)
+==================
+
+- Let proxied interfaces be iterated on Python 3. This worked on
+  Python 2, but raised ``ForbiddenAttribute`` an Python 3. See
+  `zope.interface issue 141 
<https://github.com/zopefoundation/zope.interface/issues/141>`_.
+
+- Allow to use a common Sphinx version for Python 2 and 3.
+
+
+5.0.0 (2019-11-11)
+==================
 
 - Drop support for Python 3.4.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zope.security-5.0/MANIFEST.in 
new/zope.security-5.1.0/MANIFEST.in
--- old/zope.security-5.0/MANIFEST.in   2019-11-11 19:14:44.000000000 +0100
+++ new/zope.security-5.1.0/MANIFEST.in 2020-02-14 11:20:18.000000000 +0100
@@ -6,13 +6,12 @@
 include .travis.yml
 include tox.ini
 include buildout.cfg
+include *.sh
+recursive-include docs *.bat
+recursive-include docs *.py
+recursive-include docs *.rst
+recursive-include docs Makefile
+recursive-include src *.py
+recursive-include src *.zcml
 
-recursive-include docs *
-recursive-include src *
-
-global-exclude *.dll
-global-exclude *.pyc
-global-exclude *.pyo
-global-exclude *.so
-
-prune docs/_build
+prune docs/_static
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zope.security-5.0/PKG-INFO 
new/zope.security-5.1.0/PKG-INFO
--- old/zope.security-5.0/PKG-INFO      2019-11-11 19:14:48.000000000 +0100
+++ new/zope.security-5.1.0/PKG-INFO    2020-02-14 11:20:18.000000000 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: zope.security
-Version: 5.0
+Version: 5.1.0
 Summary: Zope Security Framework
 Home-page: http://github.com/zopefoundation/zope.security
 Author: Zope Foundation and Contributors
@@ -39,8 +39,18 @@
          Changes
         =========
         
-        5.0 (2019-11-11)
-        ================
+        5.1.0 (2020-02-14)
+        ==================
+        
+        - Let proxied interfaces be iterated on Python 3. This worked on
+          Python 2, but raised ``ForbiddenAttribute`` an Python 3. See
+          `zope.interface issue 141 
<https://github.com/zopefoundation/zope.interface/issues/141>`_.
+        
+        - Allow to use a common Sphinx version for Python 2 and 3.
+        
+        
+        5.0.0 (2019-11-11)
+        ==================
         
         - Drop support for Python 3.4.
         
@@ -649,8 +659,8 @@
 Classifier: Topic :: Internet :: WWW/HTTP
 Classifier: Framework :: Zope :: 3
 Requires-Python: >=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*
-Provides-Extra: docs
 Provides-Extra: pytz
-Provides-Extra: test
+Provides-Extra: docs
 Provides-Extra: untrustedpython
+Provides-Extra: test
 Provides-Extra: zcml
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zope.security-5.0/setup.py 
new/zope.security-5.1.0/setup.py
--- old/zope.security-5.0/setup.py      2019-11-11 19:14:44.000000000 +0100
+++ new/zope.security-5.1.0/setup.py    2020-02-14 11:20:18.000000000 +0100
@@ -32,7 +32,6 @@
 from setuptools.command.build_ext import build_ext
 from setuptools import find_packages
 from setuptools import setup
-from setuptools import Feature
 
 class optional_build_ext(build_ext):
     """This class subclasses build_ext and allows
@@ -87,22 +86,19 @@
 
 include = [ModuleHeaderDir('zope.proxy')]
 
-codeoptimization = Feature(
-    "Optional code optimizations",
-    standard=True,
-    ext_modules=[
-        Extension(
-            "zope.security._proxy",
-            [os.path.join('src', 'zope', 'security', "_proxy.c")],
-            include_dirs=include,
-        ),
-        Extension(
-            "zope.security._zope_security_checker",
-            [os.path.join('src', 'zope', 'security',
-                          "_zope_security_checker.c")]
-        ),
-    ]
-)
+codeoptimization = [
+    Extension(
+        "zope.security._proxy",
+        [os.path.join('src', 'zope', 'security', "_proxy.c")],
+        include_dirs=include,
+    ),
+    Extension(
+        "zope.security._zope_security_checker",
+        [os.path.join('src', 'zope', 'security',
+                      "_zope_security_checker.c")]
+    ),
+]
+
 
 # Jython cannot build the C optimizations, while on PyPy they are
 # anti-optimizations (the C extension compatibility layer is known-slow,
@@ -114,12 +110,11 @@
 
 if is_pypy or is_jython:
     setup_requires = []
-    features = {}
+    ext_modules = []
 else:
     setup_requires = ['zope.proxy >= 4.3.0']
-    features = {
-        'codeoptimization': codeoptimization,
-    }
+    ext_modules = codeoptimization
+
 
 TESTS_REQUIRE = [
     'BTrees',
@@ -132,7 +127,7 @@
 
 
 setup(name='zope.security',
-      version='5.0',
+      version='5.1.0',
       author='Zope Foundation and Contributors',
       author_email='[email protected]',
       description='Zope Security Framework',
@@ -171,7 +166,7 @@
       cmdclass={
           'build_ext': optional_build_ext,
       },
-      features=features,
+      ext_modules=ext_modules,
       python_requires='>=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*',
       install_requires=[
           'setuptools',
@@ -196,8 +191,7 @@
           ],
           'test': TESTS_REQUIRE,
           'docs': [
-              'Sphinx < 2; python_version < "3"',
-              'Sphinx >= 2; python_version >= "3"',
+              'Sphinx',
               'repoze.sphinx.autointerface',
           ],
       },
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zope.security-5.0/src/zope/security/checker.py 
new/zope.security-5.1.0/src/zope/security/checker.py
--- old/zope.security-5.0/src/zope/security/checker.py  2019-11-11 
19:14:44.000000000 +0100
+++ new/zope.security-5.1.0/src/zope/security/checker.py        2020-02-14 
11:20:18.000000000 +0100
@@ -858,8 +858,14 @@
     type(f()): _iteratorChecker,
     type(Interface): InterfaceChecker(
         IInterface,
-        __str__=CheckerPublic, _implied=CheckerPublic, subscribe=CheckerPublic,
-        ),
+        __str__=CheckerPublic,
+        _implied=CheckerPublic,
+        subscribe=CheckerPublic,
+        # To iterate, Python calls __len__ as a hint.
+        # Python 2 ignores AttributeErrors, but Python 3
+        # lets them pass.
+        __len__=CheckerPublic,
+    ),
     zope.interface.interface.Method: InterfaceChecker(
         zope.interface.interfaces.IMethod),
     zope.interface.declarations.ProvidesClass: _Declaration_checker,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/zope.security-5.0/src/zope/security/tests/test_proxy.py 
new/zope.security-5.1.0/src/zope/security/tests/test_proxy.py
--- old/zope.security-5.0/src/zope/security/tests/test_proxy.py 2019-11-11 
19:14:44.000000000 +0100
+++ new/zope.security-5.1.0/src/zope/security/tests/test_proxy.py       
2020-02-14 11:20:18.000000000 +0100
@@ -27,6 +27,7 @@
         raise NotImplementedError("Not on Python 3")
     cmp = coerce
     long = int
+    unicode = str
 
 class AbstractProxyTestBase(object):
 
@@ -1770,7 +1771,7 @@
         return x == 42
 
 
-class ProxyTests(unittest.TestCase):
+class ProxyFactoryTests(unittest.TestCase):
 
     def setUp(self):
         from zope.security.proxy import ProxyFactory
@@ -1958,6 +1959,11 @@
     if PYTHON2:
         unops.append("long(x)")
 
+    def _make_eval(self, expr, locs):
+        def _eval(*args):
+            eval(expr, globals(), locs)
+        return _eval
+
     def test_unops(self):
         # We want the starting value of the expressions to be a proxy,
         # but we don't want to create new proxies as a result of
@@ -1968,6 +1974,7 @@
         self.c.unproxied_types = {str, int, float}
         if PYTHON2:
             self.c.unproxied_types.add(long)
+
         for expr in self.unops:
             x = 1
             y = eval(expr)
@@ -1976,7 +1983,7 @@
             z = eval(expr)
             self.assertEqual(removeSecurityProxy(z), y,
                              "x=%r; expr=%r" % (x, expr))
-            self.shouldFail(lambda x: eval(expr), x)
+            self.shouldFail(self._make_eval(expr, locals()), x)
 
     @_skip_if_not_Py2
     def test_odd_unops(self):
@@ -2007,7 +2014,7 @@
                     else:
                         self.assertEqual(removeSecurityProxy(eval(expr)), z,
                                          "x=%r; y=%r; expr=%r" % (x, y, expr))
-                        self.shouldFail(lambda x, y: eval(expr), x, y)
+                        self.shouldFail(self._make_eval(expr, locals()), x, y)
 
     def test_inplace(self):
         # TODO: should test all inplace operators...
@@ -2101,6 +2108,20 @@
         self.assertIs(type(removeSecurityProxy(a)), float)
         self.assertIs(b, y)
 
+    def test_iterate_interface(self):
+        # This used to work on Python 2, but fail on Python 3.
+        # See https://github.com/zopefoundation/zope.interface/issues/141
+        from zope.interface import Interface
+        from zope.security.proxy import ProxyFactory
+
+        class IFoo(Interface):
+            def x():
+                """A method"""
+
+        proxy = ProxyFactory(IFoo)
+        self.assertEqual(list(IFoo), ['x'])
+        self.assertEqual(list(proxy), list(IFoo))
+
 
 def test_using_mapping_slots_hack():
     """The security proxy will use mapping slots, on the checker to go faster
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/zope.security-5.0/src/zope.security.egg-info/PKG-INFO 
new/zope.security-5.1.0/src/zope.security.egg-info/PKG-INFO
--- old/zope.security-5.0/src/zope.security.egg-info/PKG-INFO   2019-11-11 
19:14:48.000000000 +0100
+++ new/zope.security-5.1.0/src/zope.security.egg-info/PKG-INFO 2020-02-14 
11:20:18.000000000 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: zope.security
-Version: 5.0
+Version: 5.1.0
 Summary: Zope Security Framework
 Home-page: http://github.com/zopefoundation/zope.security
 Author: Zope Foundation and Contributors
@@ -39,8 +39,18 @@
          Changes
         =========
         
-        5.0 (2019-11-11)
-        ================
+        5.1.0 (2020-02-14)
+        ==================
+        
+        - Let proxied interfaces be iterated on Python 3. This worked on
+          Python 2, but raised ``ForbiddenAttribute`` an Python 3. See
+          `zope.interface issue 141 
<https://github.com/zopefoundation/zope.interface/issues/141>`_.
+        
+        - Allow to use a common Sphinx version for Python 2 and 3.
+        
+        
+        5.0.0 (2019-11-11)
+        ==================
         
         - Drop support for Python 3.4.
         
@@ -649,8 +659,8 @@
 Classifier: Topic :: Internet :: WWW/HTTP
 Classifier: Framework :: Zope :: 3
 Requires-Python: >=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*
-Provides-Extra: docs
 Provides-Extra: pytz
-Provides-Extra: test
+Provides-Extra: docs
 Provides-Extra: untrustedpython
+Provides-Extra: test
 Provides-Extra: zcml
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/zope.security-5.0/src/zope.security.egg-info/SOURCES.txt 
new/zope.security-5.1.0/src/zope.security.egg-info/SOURCES.txt
--- old/zope.security-5.0/src/zope.security.egg-info/SOURCES.txt        
2019-11-11 19:14:48.000000000 +0100
+++ new/zope.security-5.1.0/src/zope.security.egg-info/SOURCES.txt      
2020-02-14 11:20:18.000000000 +0100
@@ -1,4 +1,6 @@
 .coveragerc
+.manylinux-install.sh
+.manylinux.sh
 .travis.yml
 CHANGES.rst
 COPYRIGHT.txt
@@ -20,7 +22,6 @@
 docs/make.bat
 docs/narr.rst
 docs/proxy.rst
-docs/_static/.gitignore
 docs/api/adapter.rst
 docs/api/checker.rst
 docs/api/decorator.rst
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/zope.security-5.0/src/zope.security.egg-info/requires.txt 
new/zope.security-5.1.0/src/zope.security.egg-info/requires.txt
--- old/zope.security-5.0/src/zope.security.egg-info/requires.txt       
2019-11-11 19:14:48.000000000 +0100
+++ new/zope.security-5.1.0/src/zope.security.egg-info/requires.txt     
2020-02-14 11:20:18.000000000 +0100
@@ -7,14 +7,9 @@
 zope.schema>=4.2.0
 
 [docs]
+Sphinx
 repoze.sphinx.autointerface
 
-[docs:python_version < "3"]
-Sphinx<2
-
-[docs:python_version >= "3"]
-Sphinx>=2
-
 [pytz]
 pytz
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zope.security-5.0/tox.ini 
new/zope.security-5.1.0/tox.ini
--- old/zope.security-5.0/tox.ini       2019-11-11 19:14:44.000000000 +0100
+++ new/zope.security-5.1.0/tox.ini     2020-02-14 11:20:18.000000000 +0100
@@ -9,8 +9,10 @@
 commands =
     zope-testrunner --test-path=src []
     sphinx-build -b doctest -d {envdir}/.cache/doctrees docs 
{envdir}/.cache/doctest
+extras =
+    test
+    docs
 deps =
-    .[test,docs]
 
 [testenv:py27-watch]
 basepython =
@@ -41,6 +43,7 @@
 commands =
     coverage run -m zope.testrunner --test-path=src []
     coverage run -a -m sphinx -b doctest -d {envdir}/.cache/doctrees docs 
{envdir}/.cache/doctest
+    coverage html
     coverage report --fail-under=100
 deps =
     {[testenv]deps}


Reply via email to