Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-zope.proxy for 
openSUSE:Factory checked in at 2024-03-13 22:17:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-zope.proxy (Old)
 and      /work/SRC/openSUSE:Factory/.python-zope.proxy.new.1770 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-zope.proxy"

Wed Mar 13 22:17:05 2024 rev:17 rq:1157516 version:5.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-zope.proxy/python-zope.proxy.changes      
2023-12-17 21:28:59.970338321 +0100
+++ 
/work/SRC/openSUSE:Factory/.python-zope.proxy.new.1770/python-zope.proxy.changes
    2024-03-13 22:17:56.538867382 +0100
@@ -1,0 +2,6 @@
+Wed Mar 13 10:15:43 UTC 2024 - Dirk Müller <[email protected]>
+
+- update to 5.2:
+  * Add preliminary support for Python 3.13 as of 3.13a3.
+
+-------------------------------------------------------------------

Old:
----
  zope.proxy-5.1.tar.gz

New:
----
  zope.proxy-5.2.tar.gz

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

Other differences:
------------------
++++++ python-zope.proxy.spec ++++++
--- /var/tmp/diff_new_pack.B3FDux/_old  2024-03-13 22:17:57.054886365 +0100
+++ /var/tmp/diff_new_pack.B3FDux/_new  2024-03-13 22:17:57.054886365 +0100
@@ -1,7 +1,7 @@
 #
-# spec file
+# spec file for package python-zope.proxy
 #
-# Copyright (c) 2023 SUSE LLC
+# Copyright (c) 2024 SUSE LLC
 # Copyright (c) 2013 LISA GmbH, Bingen, Germany.
 #
 # All modifications and additions to the file contributed by third parties
@@ -28,7 +28,7 @@
 
 %{?sle15_python_module_pythons}
 Name:           python-zope.proxy%{psuffix}
-Version:        5.1
+Version:        5.2
 Release:        0
 Summary:        Generic Transparent Proxies
 License:        ZPL-2.1

++++++ zope.proxy-5.1.tar.gz -> zope.proxy-5.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zope.proxy-5.1/.manylinux-install.sh 
new/zope.proxy-5.2/.manylinux-install.sh
--- old/zope.proxy-5.1/.manylinux-install.sh    2023-10-05 16:39:39.000000000 
+0200
+++ new/zope.proxy-5.2/.manylinux-install.sh    2024-02-09 08:25:19.000000000 
+0100
@@ -28,6 +28,7 @@
 
 tox_env_map() {
     case $1 in
+        *"cp313"*) echo 'py313';;
         *"cp37"*) echo 'py37';;
         *"cp38"*) echo 'py38';;
         *"cp39"*) echo 'py39';;
@@ -41,14 +42,20 @@
 # Compile wheels
 for PYBIN in /opt/python/*/bin; do
     if \
+       [[ "${PYBIN}" == *"cp313"* ]] || \
        [[ "${PYBIN}" == *"cp311"* ]] || \
        [[ "${PYBIN}" == *"cp312"* ]] || \
        [[ "${PYBIN}" == *"cp37"* ]] || \
        [[ "${PYBIN}" == *"cp38"* ]] || \
        [[ "${PYBIN}" == *"cp39"* ]] || \
        [[ "${PYBIN}" == *"cp310"* ]] ; then
-        "${PYBIN}/pip" install -e /io/
-        "${PYBIN}/pip" wheel /io/ -w wheelhouse/
+        if [[ "${PYBIN}" == *"cp313"* ]] ; then
+            "${PYBIN}/pip" install --pre -e /io/
+            "${PYBIN}/pip" wheel /io/ --pre -w wheelhouse/
+        else
+            "${PYBIN}/pip" install -e /io/
+            "${PYBIN}/pip" wheel /io/ -w wheelhouse/
+        fi
         if [ `uname -m` == 'aarch64' ]; then
           cd /io/
           ${PYBIN}/pip install tox
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zope.proxy-5.1/CHANGES.rst 
new/zope.proxy-5.2/CHANGES.rst
--- old/zope.proxy-5.1/CHANGES.rst      2023-10-05 16:39:39.000000000 +0200
+++ new/zope.proxy-5.2/CHANGES.rst      2024-02-09 08:25:19.000000000 +0100
@@ -2,6 +2,12 @@
  Changes
 =========
 
+5.2 (2024-02-09)
+================
+
+- Add preliminary support for Python 3.13 as of 3.13a3.
+
+
 5.1 (2023-10-05)
 ================
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zope.proxy-5.1/PKG-INFO new/zope.proxy-5.2/PKG-INFO
--- old/zope.proxy-5.1/PKG-INFO 2023-10-05 16:59:54.543065000 +0200
+++ new/zope.proxy-5.2/PKG-INFO 2024-02-09 08:25:20.116096500 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: zope.proxy
-Version: 5.1
+Version: 5.2
 Summary: Generic Transparent Proxies
 Home-page: http://github.com/zopefoundation/zope.proxy
 Author: Zope Foundation and Contributors
@@ -80,6 +80,12 @@
  Changes
 =========
 
+5.2 (2024-02-09)
+================
+
+- Add preliminary support for Python 3.13 as of 3.13a3.
+
+
 5.1 (2023-10-05)
 ================
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zope.proxy-5.1/appveyor.yml 
new/zope.proxy-5.2/appveyor.yml
--- old/zope.proxy-5.1/appveyor.yml     2023-10-05 16:39:39.000000000 +0200
+++ new/zope.proxy-5.2/appveyor.yml     2024-02-09 08:25:19.000000000 +0100
@@ -15,6 +15,9 @@
     - python: 310-x64
     - python: 311-x64
     - python: 312-x64
+    # `multibuild` cannot install non-final versions as they are not on
+    # ftp.python.org, so we skip Python 3.13 until its final release:
+    # - python: 313-x64
 
 install:
   - "SET PYTHONVERSION=%PYTHON%"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zope.proxy-5.1/docs/_build/doctest/output.txt 
new/zope.proxy-5.2/docs/_build/doctest/output.txt
--- old/zope.proxy-5.1/docs/_build/doctest/output.txt   2023-10-05 
12:40:24.000000000 +0200
+++ new/zope.proxy-5.2/docs/_build/doctest/output.txt   1970-01-01 
01:00:00.000000000 +0100
@@ -1,25 +0,0 @@
-Results of doctest builder run on 2023-10-05 12:40:24
-=====================================================
-
-Document: narr
---------------
-1 items passed all tests:
-  37 tests in default
-37 tests in 1 items.
-37 passed and 0 failed.
-Test passed.
-
-Document: api
--------------
-1 items passed all tests:
-  23 tests in default
-23 tests in 1 items.
-23 passed and 0 failed.
-Test passed.
-
-Doctest summary
-===============
-   60 tests
-    0 failures in tests
-    0 failures in setup code
-    0 failures in cleanup code
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zope.proxy-5.1/docs/_build/html/_sources/api.rst.txt 
new/zope.proxy-5.2/docs/_build/html/_sources/api.rst.txt
--- old/zope.proxy-5.1/docs/_build/html/_sources/api.rst.txt    2022-11-02 
11:12:52.000000000 +0100
+++ new/zope.proxy-5.2/docs/_build/html/_sources/api.rst.txt    1970-01-01 
01:00:00.000000000 +0100
@@ -1,95 +0,0 @@
-:mod:`zope.proxy` API
-=====================
-
-:mod:`zope.proxy.interfaces`
-----------------------------
-
-.. automodule:: zope.proxy.interfaces
-
-  .. autointerface:: IProxyIntrospection
-     :members:
-     :member-order: bysource
-
-
-:mod:`zope.proxy`
------------------
-
-.. automodule:: zope.proxy
-   :members:
-
-
-:mod:`zope.proxy.decorator`
----------------------------
-
-.. automodule:: zope.proxy.decorator
-
-   .. doctest::
-
-      >>> from zope.interface import Interface
-      >>> from zope.interface import directlyProvides
-      >>> from zope.interface import implementer
-      >>> class I1(Interface):
-      ...     pass
-      >>> class I2(Interface):
-      ...     pass
-      >>> class I3(Interface):
-      ...     pass
-      >>> class I4(Interface):
-      ...     pass
-      >>> from zope.proxy.decorator import SpecificationDecoratorBase
-      >>> @implementer(I1)
-      ... class D1(SpecificationDecoratorBase):
-      ...   pass
-      >>> @implementer(I2)
-      ... class D2(SpecificationDecoratorBase):
-      ...   pass
-      >>> @implementer(I3)
-      ... class X(object):
-      ...   pass
-      >>> x = X()
-      >>> directlyProvides(x, I4)
-
-   Interfaces of X are ordered with the directly-provided interfaces first.
-
-   .. doctest::
-
-      >>> from zope.interface import providedBy
-      >>> [interface.getName() for interface in list(providedBy(x))]
-      ['I4', 'I3']
-
-   When we decorate objects, what order should the interfaces come
-   in?  One could argue that decorators are less specific, so they
-   should come last.
-
-   .. doctest::
-
-      >>> [interface.getName() for interface in list(providedBy(D1(x)))]
-      ['I4', 'I3', 'I1']
-
-      >>> [interface.getName() for interface in list(providedBy(D2(D1(x))))]
-      ['I4', 'I3', 'I1', 'I2']
-
-   SpecificationDecorators also work with old-style classes:
-
-   .. doctest::
-
-      >>> @implementer(I3)
-      ... class X:
-      ...   pass
-
-      >>> x = X()
-      >>> directlyProvides(x, I4)
-
-      >>> [interface.getName() for interface in list(providedBy(x))]
-      ['I4', 'I3']
-
-      >>> [interface.getName() for interface in list(providedBy(D1(x)))]
-      ['I4', 'I3', 'I1']
-
-      >>> [interface.getName() for interface in list(providedBy(D2(D1(x))))]
-      ['I4', 'I3', 'I1', 'I2']
-
-   .. autoclass:: DecoratorSpecificationDescriptor
-      :members:
-
-   .. autoclass:: SpecificationDecoratorBase
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/zope.proxy-5.1/docs/_build/html/_sources/changes.rst.txt 
new/zope.proxy-5.2/docs/_build/html/_sources/changes.rst.txt
--- old/zope.proxy-5.1/docs/_build/html/_sources/changes.rst.txt        
2022-11-02 11:12:52.000000000 +0100
+++ new/zope.proxy-5.2/docs/_build/html/_sources/changes.rst.txt        
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-.. include:: ../CHANGES.rst
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/zope.proxy-5.1/docs/_build/html/_sources/hacking.rst.txt 
new/zope.proxy-5.2/docs/_build/html/_sources/hacking.rst.txt
--- old/zope.proxy-5.1/docs/_build/html/_sources/hacking.rst.txt        
2022-11-02 11:12:52.000000000 +0100
+++ new/zope.proxy-5.2/docs/_build/html/_sources/hacking.rst.txt        
1970-01-01 01:00:00.000000000 +0100
@@ -1,311 +0,0 @@
-Hacking on :mod:`zope.proxy`
-============================
-
-
-Getting the Code
-################
-
-The main repository for :mod:`zope.proxy` is in the Zope Foundation
-Github repository:
-
-  https://github.com/zopefoundation/zope.proxy
-
-You can get a read-only checkout from there:
-
-.. code-block:: sh
-
-   $ git clone https://github.com/zopefoundation/zope.proxy.git
-
-or fork it and get a writeable checkout of your fork:
-
-.. code-block:: sh
-
-   $ git clone [email protected]/jrandom/zope.proxy.git
-
-The project also mirrors the trunk from the Github repository as a
-Bazaar branch on Launchpad:
-
-https://code.launchpad.net/zope.proxy
-
-You can branch the trunk from there using Bazaar:
-
-.. code-block:: sh
-
-   $ bzr branch lp:zope.proxy
-
-
-Working in a ``virtualenv``
-###########################
-
-Installing
-----------
-
-If you use the ``virtualenv`` package to create lightweight Python
-development environments, you can run the tests using nothing more
-than the ``python`` binary in a virtualenv.  First, create a scratch
-environment:
-
-.. code-block:: sh
-
-   $ /path/to/virtualenv --no-site-packages /tmp/hack-zope.proxy
-
-Next, get this package registered as a "development egg" in the
-environment:
-
-.. code-block:: sh
-
-   $ /tmp/hack-zope.proxy/bin/python setup.py develop
-
-Running the tests
------------------
-
-Then, you canrun the tests using the build-in ``setuptools`` testrunner:
-
-.. code-block:: sh
-
-   $ /tmp/hack-zope.proxy/bin/python setup.py test -q
-   
...................................................................................................................................................
-   ----------------------------------------------------------------------
-   Ran 147 tests in 0.010s
-   
-   OK
-   
-
-If you have the :mod:`nose` package installed in the virtualenv, you can
-use its testrunner too:
-
-.. code-block:: sh
-
-   $ /tmp/hack-zope.proxy/bin/easy_install nose
-   ...
-   $ /tmp/hack-zope.proxy/bin/nosetests
-   
.....................................................................................................................................................
-   ----------------------------------------------------------------------
-   Ran 149 tests in 0.107s
-   
-   OK
-
-If you have the :mod:`coverage` pacakge installed in the virtualenv,
-you can see how well the tests cover the code:
-
-.. code-block:: sh
-
-   $ /tmp/hack-zope.proxy/bin/easy_install nose coverage
-   ...
-   $ /tmp/hack-zope.proxy/bin/nosetests --with coverage
-   
.....................................................................................................................................................
-   Name                    Stmts   Miss  Cover   Missing
-   -----------------------------------------------------
-   zope.proxy                271      0   100%   
-   zope.proxy._compat          2      0   100%   
-   zope.proxy.decorator       18      0   100%   
-   zope.proxy.interfaces      10      0   100%   
-   -----------------------------------------------------
-   TOTAL                     301      0   100%   
-   ----------------------------------------------------------------------
-   Ran 149 tests in 0.148s
-   
-   OK
-
-
-Building the documentation
---------------------------
-
-:mod:`zope.proxy` uses the nifty :mod:`Sphinx` documentation system
-for building its docs.  Using the same virtualenv you set up to run the
-tests, you can build the docs:
-
-.. code-block:: sh
-
-   $ /tmp/hack-zope.proxy/bin/easy_install Sphinx
-   ...
-   $ cd docs
-   $ /tmp/hack-zope.proxy/bin/sphinx-build \
-     -b html -d _build/doctrees   . _build/html
-   ...
-   build succeeded.
-
-You can also test the code snippets in the documentation:
-
-.. code-block:: sh
-
-   $ /tmp/hack-zope.proxy/bin/sphinx-build \
-    -b doctest -d _build/doctrees   . _build/doctest
-   ...
-   running tests...
-
-   Document: api
-   -------------
-   1 items passed all tests:
-     23 tests in default
-   23 tests in 1 items.
-   23 passed and 0 failed.
-   Test passed.
-
-   Document: narr
-   --------------
-   1 items passed all tests:
-     37 tests in default
-   37 tests in 1 items.
-   37 passed and 0 failed.
-   Test passed.
-
-   Doctest summary
-   ===============
-      60 tests
-       0 failures in tests
-       0 failures in setup code
-       0 failures in cleanup code
-   build succeeded.
-
-
-
-Using :mod:`zc.buildout`
-########################
-
-Setting up the buildout
------------------------
-
-:mod:`zope.proxy` ships with its own :file:`buildout.cfg` file and
-:file:`bootstrap.py` for setting up a development buildout:
-
-.. code-block:: sh
-
-   $ /path/to/python2.6 bootstrap.py
-   ...
-   Generated script '.../bin/buildout'
-   $ bin/buildout
-   Develop: '/home/jrandom/projects/Zope/BTK/event/.'
-   ...
-   Generated script '.../bin/test'.
-
-Running the tests
------------------
-
-You can now run the tests:
-
-.. code-block:: sh
-
-   $ bin/test --all
-   Running zope.testing.testrunner.layer.UnitTests tests:
-     Set up zope.testing.testrunner.layer.UnitTests in 0.000 seconds.
-     Ran 147 tests with 0 failures and 0 errors in 0.000 seconds.
-   Tearing down left over layers:
-     Tear down zope.testing.testrunner.layer.UnitTests in 0.000 seconds.
-
-
-
-Using :mod:`tox`
-################
-
-Running Tests on Multiple Python Versions
------------------------------------------
-
-`tox <http://tox.testrun.org/latest/>`_ is a Python-based test automation
-tool designed to run tests against multiple Python versions.  It creates
-a ``virtualenv`` for each configured version, installs the current package
-and configured dependencies into each ``virtualenv``, and then runs the
-configured commands.
-   
-:mod:`zope.proxy` configures the following :mod:`tox` environments via
-its ``tox.ini`` file:
-
-- The ``py26``, ``py27``, ``py33``, ``py34``, and ``pypy`` environments
-  builds a ``virtualenv`` with ``pypy``,
-  installs :mod:`zope.proxy` and dependencies, and runs the tests
-  via ``python setup.py test -q``.
-
-- The ``coverage`` environment builds a ``virtualenv`` with ``python2.6``,
-  installs :mod:`zope.proxy`, installs
-  :mod:`nose` and :mod:`coverage`, and runs ``nosetests`` with statement
-  coverage.
-
-- The ``docs`` environment builds a virtualenv with ``python2.6``, installs
-  :mod:`zope.proxy`, installs ``Sphinx`` and
-  dependencies, and then builds the docs and exercises the doctest snippets.
-
-This example requires that you have a working ``python2.6`` on your path,
-as well as installing ``tox``:
-
-.. code-block:: sh
-
-   $ tox -e py26
-   GLOB sdist-make: .../zope.proxy/setup.py
-   py26 sdist-reinst: .../zope.proxy/.tox/dist/zope.proxy-4.0.2dev.zip
-   py26 runtests: commands[0]
-   ...
-   ----------------------------------------------------------------------
-   Ran 147 tests in 0.000s
-
-   OK
-   ___________________________________ summary 
____________________________________
-   py26: commands succeeded
-   congratulations :)
-
-Running ``tox`` with no arguments runs all the configured environments,
-including building the docs and testing their snippets:
-
-.. code-block:: sh
-
-   $ tox
-   GLOB sdist-make: .../zope.proxy/setup.py
-   py26 sdist-reinst: .../zope.proxy/.tox/dist/zope.proxy-4.0.2dev.zip
-   py26 runtests: commands[0]
-   ...
-   Doctest summary
-   ===============
-    60 tests
-      0 failures in tests
-      0 failures in setup code
-      0 failures in cleanup code
-   build succeeded.
-   ___________________________________ summary 
____________________________________
-   py26: commands succeeded
-   py27: commands succeeded
-   py32: commands succeeded
-   pypy: commands succeeded
-   coverage: commands succeeded
-   docs: commands succeeded
-   congratulations :)
-
-
-Contributing to :mod:`zope.proxy`
-#################################
-
-Submitting a Bug Report
------------------------
-
-:mod:`zope.proxy` tracks its bugs on Github:
-
-  https://github.com/zopefoundation/zope.proxy/issues
-
-Please submit bug reports and feature requests there.
-
-
-Sharing Your Changes
---------------------
-
-.. note::
-
-   Please ensure that all tests are passing before you submit your code.
-   If possible, your submission should include new tests for new features
-   or bug fixes, although it is possible that you may have tested your
-   new code by updating existing tests.
-
-If have made a change you would like to share, the best route is to fork
-the Githb repository, check out your fork, make your changes on a branch
-in your fork, and push it.  You can then submit a pull request from your
-branch:
-
-  https://github.com/zopefoundation/zope.proxy/pulls
-
-If you branched the code from Launchpad using Bazaar, you have another
-option:  you can "push" your branch to Launchpad:
-
-.. code-block:: sh
-
-   $ bzr push lp:~jrandom/zope.proxy/cool_feature
-
-After pushing your branch, you can link it to a bug report on Github,
-or request that the maintainers merge your branch using the Launchpad
-"merge request" feature.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/zope.proxy-5.1/docs/_build/html/_sources/index.rst.txt 
new/zope.proxy-5.2/docs/_build/html/_sources/index.rst.txt
--- old/zope.proxy-5.1/docs/_build/html/_sources/index.rst.txt  2022-11-02 
11:12:52.000000000 +0100
+++ new/zope.proxy-5.2/docs/_build/html/_sources/index.rst.txt  1970-01-01 
01:00:00.000000000 +0100
@@ -1,20 +0,0 @@
-:mod:`zope.proxy`
-=================
-
-Contents:
-
-.. toctree::
-   :maxdepth: 2
-
-   narr
-   api
-   hacking
-   changes
-
-
-Indices and tables
-==================
-
-* :ref:`genindex`
-* :ref:`modindex`
-* :ref:`search`
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/zope.proxy-5.1/docs/_build/html/_sources/narr.rst.txt 
new/zope.proxy-5.2/docs/_build/html/_sources/narr.rst.txt
--- old/zope.proxy-5.1/docs/_build/html/_sources/narr.rst.txt   2022-11-02 
11:12:52.000000000 +0100
+++ new/zope.proxy-5.2/docs/_build/html/_sources/narr.rst.txt   1970-01-01 
01:00:00.000000000 +0100
@@ -1,153 +0,0 @@
-:mod:`zope.proxy` Narrative Documentation
-=========================================
-
-Subclassing :class:`ProxyBase`
-------------------------------
-
-If you subclass a proxy, instances of the subclass have access to
-data defined in the class, including descriptors.
-
-Your subclass instances don't get instance dictionaries, but they
-can have slots.
-
-.. doctest::
-
-   >>> from zope.proxy import ProxyBase
-   >>> class MyProxy(ProxyBase):
-   ...    __slots__ = 'x', 'y'
-   ...
-   ...    def f(self):
-   ...        return self.x
-
-   >>> l = [1, 2, 3]
-   >>> p = MyProxy(l)
-
-You can use attributes defined by the class, including slots:
-
-.. doctest::
-
-   >>> p.x = 'x'
-   >>> p.x
-   'x'
-   >>> p.f()
-   'x'
-
-You can also use attributes of the proxied object:
-
-.. doctest::
-
-   >>> p
-   [1, 2, 3]
-   >>> p.pop()
-   3
-   >>> p
-   [1, 2]
-
-
-Using get descriptors in proxy classes
---------------------------------------
-
-A non-data descriptor in a proxy class doesn't hide an attribute on
-a proxied object or prevent writing the attribute.
-
-.. doctest::
-
-    >>> class ReadDescr(object):
-    ...     def __get__(self, i, c):
-    ...         return 'read'
-
-    >>> from zope.proxy import ProxyBase
-    >>> class MyProxy(ProxyBase):
-    ...    __slots__ = ()
-    ...
-    ...    z = ReadDescr()
-    ...    q = ReadDescr()
-
-    >>> class MyOb:
-    ...    q = 1
-
-    >>> o = MyOb()
-    >>> p = MyProxy(o)
-    >>> p.q
-    1
-
-    >>> p.z
-    'read'
-
-    >>> p.z = 1
-    >>> o.z, p.z
-    (1, 1)
-
-
-Marking proxy attributes as non-overridable
--------------------------------------------
-
-Normally, methods defined in proxies are overridden by
-methods of proxied objects.  This applies to all non-data
-descriptors.  The non_overridable function can be used to
-convert a non-data descriptor to a data descriptor that disallows
-writes.  This function can be used as a decorator to make functions
-defined in proxy classes take precedence over functions defined
-in proxied objects.
-
-.. doctest::
-
-   >>> from zope.proxy import ProxyBase
-   >>> from zope.proxy import non_overridable
-   >>> class MyProxy(ProxyBase):
-   ...    __slots__ = ()
-   ...
-   ...    @non_overridable
-   ...    def foo(self):
-   ...        return 'MyProxy foo'
-
-   >>> class MyOb:
-   ...    def foo(self):
-   ...        return 'MyOb foo'
-
-   >>> o = MyOb()
-   >>> p = MyProxy(o)
-   >>> p.foo()
-   'MyProxy foo'
-
-
-Changing the proxied object
----------------------------
-
-.. doctest::
-
-   >>> from zope.proxy import ProxyBase
-   >>> from zope.proxy import setProxiedObject, getProxiedObject
-
-   >>> class C(object):
-   ...     pass
-
-   >>> c1 = C()
-   >>> c2 = C()
-
-   >>> p = ProxyBase(c1)
-
-`setProxiedObject()` allows us to change the object a proxy refers to,
-returning the previous referent:
-
-.. doctest::
-
-   >>> old = setProxiedObject(p, c2)
-   >>> old is c1
-   True
-
-   >>> getProxiedObject(p) is c2
-   True
-
-The first argument  to `setProxiedObject()` must be a proxy; other objects
-cause it to raise an exception:
-
-.. doctest::
-
-   >>> try:
-   ...     setProxiedObject(c1, None)
-   ... except TypeError:
-   ...     print("TypeError raised")
-   ... else:
-   ...     print("Expected TypeError not raised")
-   TypeError raised
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zope.proxy-5.1/setup.py new/zope.proxy-5.2/setup.py
--- old/zope.proxy-5.1/setup.py 2023-10-05 16:39:39.000000000 +0200
+++ new/zope.proxy-5.2/setup.py 2024-02-09 08:25:19.000000000 +0100
@@ -79,7 +79,7 @@
     headers = [os.path.join('src', 'zope', 'proxy', 'proxy.h')]
 
 setup(name='zope.proxy',
-      version='5.1',
+      version='5.2',
       author='Zope Foundation and Contributors',
       author_email='[email protected]',
       description='Generic Transparent Proxies',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zope.proxy-5.1/src/zope/proxy/_zope_proxy_proxy.c 
new/zope.proxy-5.2/src/zope/proxy/_zope_proxy_proxy.c
--- old/zope.proxy-5.1/src/zope/proxy/_zope_proxy_proxy.c       2023-01-18 
09:02:16.000000000 +0100
+++ new/zope.proxy-5.2/src/zope/proxy/_zope_proxy_proxy.c       2024-02-09 
08:25:19.000000000 +0100
@@ -321,8 +321,7 @@
 wrap_call(PyObject *self, PyObject *args, PyObject *kw)
 {
     if (kw)
-        return PyEval_CallObjectWithKeywords(Proxy_GET_OBJECT(self),
-                                             args, kw);
+        return PyObject_Call(Proxy_GET_OBJECT(self), args, kw);
     else
         return PyObject_CallObject(Proxy_GET_OBJECT(self), args);
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zope.proxy-5.1/src/zope/proxy/tests/test_proxy.py 
new/zope.proxy-5.2/src/zope/proxy/tests/test_proxy.py
--- old/zope.proxy-5.1/src/zope/proxy/tests/test_proxy.py       2023-01-18 
09:02:16.000000000 +0100
+++ new/zope.proxy-5.2/src/zope/proxy/tests/test_proxy.py       2024-02-09 
08:25:19.000000000 +0100
@@ -44,12 +44,6 @@
     getslice = '__getitem__'
     setslice = '__setitem__'
 
-    # Avoid DeprecationWarning for assertRaisesRegexp on Python 3 while
-    # coping with Python 2 not having the Regex spelling variant
-    assertRaisesRegex = getattr(
-        unittest.TestCase, 'assertRaisesRegex',
-        getattr(unittest.TestCase, 'assertRaisesRegexp', None))
-
     def _getTargetClass(self):
         from zope.proxy import PyProxyBase
         return PyProxyBase
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zope.proxy-5.1/src/zope.proxy.egg-info/PKG-INFO 
new/zope.proxy-5.2/src/zope.proxy.egg-info/PKG-INFO
--- old/zope.proxy-5.1/src/zope.proxy.egg-info/PKG-INFO 2023-10-05 
16:59:54.000000000 +0200
+++ new/zope.proxy-5.2/src/zope.proxy.egg-info/PKG-INFO 2024-02-09 
08:25:20.000000000 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: zope.proxy
-Version: 5.1
+Version: 5.2
 Summary: Generic Transparent Proxies
 Home-page: http://github.com/zopefoundation/zope.proxy
 Author: Zope Foundation and Contributors
@@ -80,6 +80,12 @@
  Changes
 =========
 
+5.2 (2024-02-09)
+================
+
+- Add preliminary support for Python 3.13 as of 3.13a3.
+
+
 5.1 (2023-10-05)
 ================
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zope.proxy-5.1/src/zope.proxy.egg-info/SOURCES.txt 
new/zope.proxy-5.2/src/zope.proxy.egg-info/SOURCES.txt
--- old/zope.proxy-5.1/src/zope.proxy.egg-info/SOURCES.txt      2023-10-05 
16:59:54.000000000 +0200
+++ new/zope.proxy-5.2/src/zope.proxy.egg-info/SOURCES.txt      2024-02-09 
08:25:20.000000000 +0100
@@ -22,12 +22,6 @@
 docs/make.bat
 docs/narr.rst
 docs/requirements.txt
-docs/_build/doctest/output.txt
-docs/_build/html/_sources/api.rst.txt
-docs/_build/html/_sources/changes.rst.txt
-docs/_build/html/_sources/hacking.rst.txt
-docs/_build/html/_sources/index.rst.txt
-docs/_build/html/_sources/narr.rst.txt
 src/zope/__init__.py
 src/zope.proxy.egg-info/PKG-INFO
 src/zope.proxy.egg-info/SOURCES.txt
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zope.proxy-5.1/tox.ini new/zope.proxy-5.2/tox.ini
--- old/zope.proxy-5.1/tox.ini  2023-10-05 16:39:39.000000000 +0200
+++ new/zope.proxy-5.2/tox.ini  2024-02-09 08:25:19.000000000 +0100
@@ -10,14 +10,17 @@
     py310,py310-pure
     py311,py311-pure
     py312,py312-pure
+    py313,py313-pure
     pypy3
     docs
     coverage
 
 [testenv]
 usedevelop = true
+pip_pre = py313: true
 deps =
     py37: urllib3 < 2
+    Sphinx
 setenv =
     pure: PURE_PYTHON=1
     !pure-!pypy3: PURE_PYTHON=0
@@ -44,21 +47,32 @@
     coverage run -m zope.testrunner --test-path=src {posargs:-vc}
     coverage html -i
     coverage report -i -m --fail-under=99
-
-[testenv:lint]
+[testenv:release-check]
+description = ensure that the distribution is ready to release
 basepython = python3
 skip_install = true
+deps =
+    twine
+    build
+    check-manifest
+    check-python-versions >= 0.20.0
+    wheel
+commands_pre =
 commands =
-    isort --check-only --diff {toxinidir}/src {toxinidir}/setup.py
-    flake8 src setup.py
     check-manifest
     check-python-versions
+    python -m build --sdist --no-isolation
+    twine check dist/*
+
+[testenv:lint]
+basepython = python3
+skip_install = true
 deps =
-    check-manifest
-    check-python-versions >= 0.19.1
-    wheel
-    flake8
     isort
+    flake8
+commands =
+    isort --check-only --diff {toxinidir}/src {toxinidir}/setup.py
+    flake8 src setup.py
 
 [testenv:isort-apply]
 basepython = python3

Reply via email to