Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-zope.copy for
openSUSE:Factory checked in at 2022-12-09 13:16:39
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-zope.copy (Old)
and /work/SRC/openSUSE:Factory/.python-zope.copy.new.1835 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-zope.copy"
Fri Dec 9 13:16:39 2022 rev:3 rq:1041382 version:4.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-zope.copy/python-zope.copy.changes
2022-10-14 15:40:30.035714140 +0200
+++
/work/SRC/openSUSE:Factory/.python-zope.copy.new.1835/python-zope.copy.changes
2022-12-09 13:16:45.270674511 +0100
@@ -1,0 +2,7 @@
+Wed Dec 7 22:50:21 UTC 2022 - Yogalakshmi Arunachalam <[email protected]>
+
+- Update to version 4.3
+ * Add support for Python 3.8, 3.9, 3.10, 3.11.
+ * Drop support for Python 3.4.
+
+-------------------------------------------------------------------
Old:
----
zope.copy-4.2.tar.gz
New:
----
zope.copy-4.3.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-zope.copy.spec ++++++
--- /var/tmp/diff_new_pack.yyb0U1/_old 2022-12-09 13:16:45.834677507 +0100
+++ /var/tmp/diff_new_pack.yyb0U1/_new 2022-12-09 13:16:45.838677528 +0100
@@ -26,7 +26,7 @@
%bcond_with test
%endif
Name: python-zope.copy
-Version: 4.2
+Version: 4.3
Release: 0
Summary: Pluggable object copying mechanism
License: ZPL-2.1
++++++ zope.copy-4.2.tar.gz -> zope.copy-4.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/zope.copy-4.2/.bzrignore new/zope.copy-4.3/.bzrignore
--- old/zope.copy-4.2/.bzrignore 2018-10-04 10:44:56.000000000 +0200
+++ new/zope.copy-4.3/.bzrignore 1970-01-01 01:00:00.000000000 +0100
@@ -1,7 +0,0 @@
-*.egg-info
-docs/_build
-.coverage
-coverage.xml
-nosetests.xml
-.tox
-__pycache__
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/zope.copy-4.2/.coveragerc
new/zope.copy-4.3/.coveragerc
--- old/zope.copy-4.2/.coveragerc 2018-10-04 10:44:56.000000000 +0200
+++ new/zope.copy-4.3/.coveragerc 1970-01-01 01:00:00.000000000 +0100
@@ -1,11 +0,0 @@
-[run]
-source = zope.copy
-
-[report]
-precision = 2
-exclude_lines =
- pragma: no cover
- if __name__ == '__main__':
- raise NotImplementedError
- self.fail
- raise AssertionError
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/zope.copy-4.2/.gitignore new/zope.copy-4.3/.gitignore
--- old/zope.copy-4.2/.gitignore 2018-10-04 10:44:56.000000000 +0200
+++ new/zope.copy-4.3/.gitignore 1970-01-01 01:00:00.000000000 +0100
@@ -1,14 +0,0 @@
-*.pyc
-__pycache__
-*.egg-info
-docs/_build
-.installed.cfg
-bin
-develop-eggs
-eggs
-parts
-.tox
-.coverage
-coverage.xml
-nosetests.xml
-htmlcov/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/zope.copy-4.2/.travis.yml
new/zope.copy-4.3/.travis.yml
--- old/zope.copy-4.2/.travis.yml 2018-10-04 10:44:56.000000000 +0200
+++ new/zope.copy-4.3/.travis.yml 1970-01-01 01:00:00.000000000 +0100
@@ -1,26 +0,0 @@
-language: python
-sudo: false
-python:
- - 2.7
- - 3.4
- - 3.5
- - 3.6
- - pypy
- - pypy3
-matrix:
- include:
- - python: "3.7"
- dist: xenial
- sudo: true
-install:
- - pip install -U pip setuptools
- - pip install -U coverage coveralls
- - pip install -U -e .[test,docs]
-script:
- - coverage run -m zope.testrunner --test-path=src
- - coverage run -a -m sphinx -b doctest -d docs/_build/doctrees docs
docs/_build/doctest
-after_success:
- - coveralls
-notifications:
- email: false
-cache: pip
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/zope.copy-4.2/CHANGES.rst
new/zope.copy-4.3/CHANGES.rst
--- old/zope.copy-4.2/CHANGES.rst 2018-10-04 10:44:56.000000000 +0200
+++ new/zope.copy-4.3/CHANGES.rst 2022-11-29 09:59:02.000000000 +0100
@@ -2,6 +2,14 @@
Changes
=========
+4.3 (2022-11-29)
+================
+
+- Add support for Python 3.8, 3.9, 3.10, 3.11.
+
+- Drop support for Python 3.4.
+
+
4.2 (2018-10-04)
================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/zope.copy-4.2/CONTRIBUTING.md
new/zope.copy-4.3/CONTRIBUTING.md
--- old/zope.copy-4.2/CONTRIBUTING.md 1970-01-01 01:00:00.000000000 +0100
+++ new/zope.copy-4.3/CONTRIBUTING.md 2022-11-29 09:59:02.000000000 +0100
@@ -0,0 +1,23 @@
+<!--
+Generated from:
+https://github.com/zopefoundation/meta/tree/master/config/pure-python
+-->
+# Contributing to zopefoundation projects
+
+The projects under the zopefoundation GitHub organization are open source and
+welcome contributions in different forms:
+
+* bug reports
+* code improvements and bug fixes
+* documentation improvements
+* pull request reviews
+
+For any changes in the repository besides trivial typo fixes you are required
+to sign the contributor agreement. See
+https://www.zope.dev/developer/becoming-a-committer.html for details.
+
+Please visit our [Developer
+Guidelines](https://www.zope.dev/developer/guidelines.html) if you'd like to
+contribute code changes and our [guidelines for reporting
+bugs](https://www.zope.dev/developer/reporting-bugs.html) if you want to file a
+bug report.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/zope.copy-4.2/MANIFEST.in
new/zope.copy-4.3/MANIFEST.in
--- old/zope.copy-4.2/MANIFEST.in 2018-10-04 10:44:56.000000000 +0200
+++ new/zope.copy-4.3/MANIFEST.in 2022-11-29 09:59:02.000000000 +0100
@@ -1,9 +1,15 @@
-include *.py
+# Generated from:
+# https://github.com/zopefoundation/meta/tree/master/config/pure-python
+include *.md
include *.rst
include *.txt
include buildout.cfg
include tox.ini
-include .travis.yml
-include .coveragerc
-exclude .coverage
-recursive-include docs *.py *.bat *.rst Makefile .gitignore
+
+recursive-include docs *.py
+recursive-include docs *.rst
+recursive-include docs *.txt
+recursive-include docs Makefile
+
+recursive-include src *.py
+recursive-include docs *.bat
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/zope.copy-4.2/PKG-INFO new/zope.copy-4.3/PKG-INFO
--- old/zope.copy-4.2/PKG-INFO 2018-10-04 10:44:56.000000000 +0200
+++ new/zope.copy-4.3/PKG-INFO 2022-11-29 09:59:06.165219500 +0100
@@ -1,112 +1,15 @@
Metadata-Version: 2.1
Name: zope.copy
-Version: 4.2
+Version: 4.3
Summary: Pluggable object copying mechanism
Home-page: http://github.com/zopefoundation/zope.copy
Author: Zope Foundation and Contributors
Author-email: [email protected]
License: ZPL 2.1
-Description: ===============
- ``zope.copy``
- ===============
-
- .. image:: https://img.shields.io/pypi/v/zope.copy.svg
- :target: https://pypi.python.org/pypi/zope.copy/
- :alt: Latest release
-
- .. image:: https://img.shields.io/pypi/pyversions/zope.copy.svg
- :target: https://pypi.org/project/zope.copy/
- :alt: Supported Python versions
-
- .. image::
https://travis-ci.org/zopefoundation/zope.copy.svg?branch=master
- :target: https://travis-ci.org/zopefoundation/zope.copy
-
- .. image::
https://coveralls.io/repos/github/zopefoundation/zope.copy/badge.svg?branch=master
- :target:
https://coveralls.io/github/zopefoundation/zope.copy?branch=master
-
- .. image::
https://readthedocs.org/projects/zopecopy/badge/?version=latest
- :target: http://zopecopy.readthedocs.org/en/latest/
- :alt: Documentation Status
-
- This package provides a pluggable mechanism for copying persistent
objects.
-
- Documentation is hosted at https://zopecopy.readthedocs.io/en/latest/
-
-
- =========
- Changes
- =========
-
- 4.2 (2018-10-04)
- ================
-
- - Use the latest and fastest protocol when pickling and unpickling and
object
- during the clone operation
-
- - Add support for Python 3.7.
-
-
- 4.1.0 (2017-07-31)
- ==================
-
- - Drop support for Python 2.6, 3.2 and 3.3.
-
- - Add support for Python 3.5 and 3.6.
-
- - Restore ``zope.component`` as a testing requirement for running
doctests.
-
- 4.0.3 (2014-12-26)
- ==================
-
- - Add support for PyPy3.
-
- 4.0.2 (2014-03-19)
- ==================
-
- - Add support for Python 3.3 and 3.4.
-
- - Update ``boostrap.py`` to version 2.2.
-
- 4.0.1 (2012-12-31)
- ==================
-
- - Flesh out PyPI Trove classifiers.
-
- 4.0.0 (2012-06-13)
- ==================
-
- - Add support for Python 3.2.
-
- - Drop ``zope.component`` as a testing requirement. Instead, register
- explicit (dummy) adapter hooks where needed.
-
- - Add PyPy support.
-
- - 100% unit test coverage.
-
- - Add support for continuous integration using ``tox`` and ``jenkins``.
-
- - Add Sphinx documentation: moved doctest examples to API reference.
-
- - Add 'setup.py docs' alias (installs ``Sphinx`` and dependencies).
-
- - Add 'setup.py dev' alias (runs ``setup.py develop`` plus installs
- ``nose``, ``coverage``, and testing dependencies).
-
- - Drop support for Python 2.4 and 2.5.
-
- - Include tests of the LocationCopyHook from zope.location.
-
- 3.5.0 (2009-02-09)
- ==================
-
- - Initial release. The functionality was extracted from ``zc.copy`` to
- provide a generic object copying mechanism with minimal dependencies.
-
Keywords: zope3 copying cloning
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
-Classifier: Framework :: Zope3
+Classifier: Framework :: Zope :: 3
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Zope Public License
Classifier: Operating System :: OS Independent
@@ -114,12 +17,123 @@
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
+Classifier: Programming Language :: Python :: 3.8
+Classifier: Programming Language :: Python :: 3.9
+Classifier: Programming Language :: Python :: 3.10
+Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Database
Provides-Extra: test
Provides-Extra: docs
+License-File: LICENSE.txt
+
+===============
+ ``zope.copy``
+===============
+
+.. image:: https://img.shields.io/pypi/v/zope.copy.svg
+ :target: https://pypi.python.org/pypi/zope.copy/
+ :alt: Latest release
+
+.. image:: https://img.shields.io/pypi/pyversions/zope.copy.svg
+ :target: https://pypi.org/project/zope.copy/
+ :alt: Supported Python versions
+
+.. image::
https://github.com/zopefoundation/zope.copy/actions/workflows/tests.yml/badge.svg
+ :target:
https://github.com/zopefoundation/zope.copy/actions/workflows/tests.yml
+
+.. image::
https://coveralls.io/repos/github/zopefoundation/zope.copy/badge.svg?branch=master
+ :target:
https://coveralls.io/github/zopefoundation/zope.copy?branch=master
+
+.. image:: https://readthedocs.org/projects/zopecopy/badge/?version=latest
+ :target: http://zopecopy.readthedocs.org/en/latest/
+ :alt: Documentation Status
+
+This package provides a pluggable mechanism for copying persistent objects.
+
+Documentation is hosted at https://zopecopy.readthedocs.io/
+
+
+=========
+ Changes
+=========
+
+4.3 (2022-11-29)
+================
+
+- Add support for Python 3.8, 3.9, 3.10, 3.11.
+
+- Drop support for Python 3.4.
+
+
+4.2 (2018-10-04)
+================
+
+- Use the latest and fastest protocol when pickling and unpickling and object
+ during the clone operation
+
+- Add support for Python 3.7.
+
+
+4.1.0 (2017-07-31)
+==================
+
+- Drop support for Python 2.6, 3.2 and 3.3.
+
+- Add support for Python 3.5 and 3.6.
+
+- Restore ``zope.component`` as a testing requirement for running doctests.
+
+4.0.3 (2014-12-26)
+==================
+
+- Add support for PyPy3.
+
+4.0.2 (2014-03-19)
+==================
+
+- Add support for Python 3.3 and 3.4.
+
+- Update ``boostrap.py`` to version 2.2.
+
+4.0.1 (2012-12-31)
+==================
+
+- Flesh out PyPI Trove classifiers.
+
+4.0.0 (2012-06-13)
+==================
+
+- Add support for Python 3.2.
+
+- Drop ``zope.component`` as a testing requirement. Instead, register
+ explicit (dummy) adapter hooks where needed.
+
+- Add PyPy support.
+
+- 100% unit test coverage.
+
+- Add support for continuous integration using ``tox`` and ``jenkins``.
+
+- Add Sphinx documentation: moved doctest examples to API reference.
+
+- Add 'setup.py docs' alias (installs ``Sphinx`` and dependencies).
+
+- Add 'setup.py dev' alias (runs ``setup.py develop`` plus installs
+ ``nose``, ``coverage``, and testing dependencies).
+
+- Drop support for Python 2.4 and 2.5.
+
+- Include tests of the LocationCopyHook from zope.location.
+
+3.5.0 (2009-02-09)
+==================
+
+- Initial release. The functionality was extracted from ``zc.copy`` to
+ provide a generic object copying mechanism with minimal dependencies.
+
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/zope.copy-4.2/README.rst new/zope.copy-4.3/README.rst
--- old/zope.copy-4.2/README.rst 2018-10-04 10:44:56.000000000 +0200
+++ new/zope.copy-4.3/README.rst 2022-11-29 09:59:02.000000000 +0100
@@ -10,8 +10,8 @@
:target: https://pypi.org/project/zope.copy/
:alt: Supported Python versions
-.. image:: https://travis-ci.org/zopefoundation/zope.copy.svg?branch=master
- :target: https://travis-ci.org/zopefoundation/zope.copy
+.. image::
https://github.com/zopefoundation/zope.copy/actions/workflows/tests.yml/badge.svg
+ :target:
https://github.com/zopefoundation/zope.copy/actions/workflows/tests.yml
.. image::
https://coveralls.io/repos/github/zopefoundation/zope.copy/badge.svg?branch=master
:target:
https://coveralls.io/github/zopefoundation/zope.copy?branch=master
@@ -22,4 +22,4 @@
This package provides a pluggable mechanism for copying persistent objects.
-Documentation is hosted at https://zopecopy.readthedocs.io/en/latest/
+Documentation is hosted at https://zopecopy.readthedocs.io/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/zope.copy-4.2/bootstrap.py
new/zope.copy-4.3/bootstrap.py
--- old/zope.copy-4.2/bootstrap.py 2018-10-04 10:44:56.000000000 +0200
+++ new/zope.copy-4.3/bootstrap.py 1970-01-01 01:00:00.000000000 +0100
@@ -1,210 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2006 Zope Foundation and Contributors.
-# 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.
-#
-##############################################################################
-"""Bootstrap a buildout-based project
-
-Simply run this script in a directory containing a buildout.cfg.
-The script accepts buildout command-line options, so you can
-use the -c option to specify an alternate configuration file.
-"""
-
-import os
-import shutil
-import sys
-import tempfile
-
-from optparse import OptionParser
-
-__version__ = '2015-07-01'
-# See zc.buildout's changelog if this version is up to date.
-
-tmpeggs = tempfile.mkdtemp(prefix='bootstrap-')
-
-usage = '''\
-[DESIRED PYTHON FOR BUILDOUT] bootstrap.py [options]
-
-Bootstraps a buildout-based project.
-
-Simply run this script in a directory containing a buildout.cfg, using the
-Python that you want bin/buildout to use.
-
-Note that by using --find-links to point to local resources, you can keep
-this script from going over the network.
-'''
-
-parser = OptionParser(usage=usage)
-parser.add_option("--version",
- action="store_true", default=False,
- help=("Return bootstrap.py version."))
-parser.add_option("-t", "--accept-buildout-test-releases",
- dest='accept_buildout_test_releases',
- action="store_true", default=False,
- help=("Normally, if you do not specify a --version, the "
- "bootstrap script and buildout gets the newest "
- "*final* versions of zc.buildout and its recipes and "
- "extensions for you. If you use this flag, "
- "bootstrap and buildout will get the newest releases "
- "even if they are alphas or betas."))
-parser.add_option("-c", "--config-file",
- help=("Specify the path to the buildout configuration "
- "file to be used."))
-parser.add_option("-f", "--find-links",
- help=("Specify a URL to search for buildout releases"))
-parser.add_option("--allow-site-packages",
- action="store_true", default=False,
- help=("Let bootstrap.py use existing site packages"))
-parser.add_option("--buildout-version",
- help="Use a specific zc.buildout version")
-parser.add_option("--setuptools-version",
- help="Use a specific setuptools version")
-parser.add_option("--setuptools-to-dir",
- help=("Allow for re-use of existing directory of "
- "setuptools versions"))
-
-options, args = parser.parse_args()
-if options.version:
- print("bootstrap.py version %s" % __version__)
- sys.exit(0)
-
-
-######################################################################
-# load/install setuptools
-
-try:
- from urllib.request import urlopen
-except ImportError:
- from urllib2 import urlopen
-
-ez = {}
-if os.path.exists('ez_setup.py'):
- exec(open('ez_setup.py').read(), ez)
-else:
- exec(urlopen('https://bootstrap.pypa.io/ez_setup.py').read(), ez)
-
-if not options.allow_site_packages:
- # ez_setup imports site, which adds site packages
- # this will remove them from the path to ensure that incompatible versions
- # of setuptools are not in the path
- import site
- # inside a virtualenv, there is no 'getsitepackages'.
- # We can't remove these reliably
- if hasattr(site, 'getsitepackages'):
- for sitepackage_path in site.getsitepackages():
- # Strip all site-packages directories from sys.path that
- # are not sys.prefix; this is because on Windows
- # sys.prefix is a site-package directory.
- if sitepackage_path != sys.prefix:
- sys.path[:] = [x for x in sys.path
- if sitepackage_path not in x]
-
-setup_args = dict(to_dir=tmpeggs, download_delay=0)
-
-if options.setuptools_version is not None:
- setup_args['version'] = options.setuptools_version
-if options.setuptools_to_dir is not None:
- setup_args['to_dir'] = options.setuptools_to_dir
-
-ez['use_setuptools'](**setup_args)
-import setuptools
-import pkg_resources
-
-# This does not (always?) update the default working set. We will
-# do it.
-for path in sys.path:
- if path not in pkg_resources.working_set.entries:
- pkg_resources.working_set.add_entry(path)
-
-######################################################################
-# Install buildout
-
-ws = pkg_resources.working_set
-
-setuptools_path = ws.find(
- pkg_resources.Requirement.parse('setuptools')).location
-
-# Fix sys.path here as easy_install.pth added before PYTHONPATH
-cmd = [sys.executable, '-c',
- 'import sys; sys.path[0:0] = [%r]; ' % setuptools_path +
- 'from setuptools.command.easy_install import main; main()',
- '-mZqNxd', tmpeggs]
-
-find_links = os.environ.get(
- 'bootstrap-testing-find-links',
- options.find_links or
- ('http://downloads.buildout.org/'
- if options.accept_buildout_test_releases else None)
- )
-if find_links:
- cmd.extend(['-f', find_links])
-
-requirement = 'zc.buildout'
-version = options.buildout_version
-if version is None and not options.accept_buildout_test_releases:
- # Figure out the most recent final version of zc.buildout.
- import setuptools.package_index
- _final_parts = '*final-', '*final'
-
- def _final_version(parsed_version):
- try:
- return not parsed_version.is_prerelease
- except AttributeError:
- # Older setuptools
- for part in parsed_version:
- if (part[:1] == '*') and (part not in _final_parts):
- return False
- return True
-
- index = setuptools.package_index.PackageIndex(
- search_path=[setuptools_path])
- if find_links:
- index.add_find_links((find_links,))
- req = pkg_resources.Requirement.parse(requirement)
- if index.obtain(req) is not None:
- best = []
- bestv = None
- for dist in index[req.project_name]:
- distv = dist.parsed_version
- if _final_version(distv):
- if bestv is None or distv > bestv:
- best = [dist]
- bestv = distv
- elif distv == bestv:
- best.append(dist)
- if best:
- best.sort()
- version = best[-1].version
-if version:
- requirement = '=='.join((requirement, version))
-cmd.append(requirement)
-
-import subprocess
-if subprocess.call(cmd) != 0:
- raise Exception(
- "Failed to execute command:\n%s" % repr(cmd)[1:-1])
-
-######################################################################
-# Import and run buildout
-
-ws.add_entry(tmpeggs)
-ws.require(requirement)
-import zc.buildout.buildout
-
-if not [a for a in args if '=' not in a]:
- args.append('bootstrap')
-
-# if -c was provided, we push it back into args for buildout' main function
-if options.config_file is not None:
- args[0:0] = ['-c', options.config_file]
-
-zc.buildout.buildout.main(args)
-shutil.rmtree(tmpeggs)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/zope.copy-4.2/setup.cfg new/zope.copy-4.3/setup.cfg
--- old/zope.copy-4.2/setup.cfg 2018-10-04 10:44:56.000000000 +0200
+++ new/zope.copy-4.3/setup.cfg 2022-11-29 09:59:06.167215000 +0100
@@ -1,10 +1,27 @@
-[aliases]
-dev = develop easy_install zope.copy[testing]
-docs = easy_install zope.copy[docs]
-
[bdist_wheel]
universal = 1
+[flake8]
+doctests = 1
+
+[check-manifest]
+ignore =
+ .editorconfig
+ .meta.toml
+ docs/_build/html/_sources/*
+ docs/_build/doctest/*
+
+[isort]
+force_single_line = True
+combine_as_imports = True
+sections = FUTURE,STDLIB,THIRDPARTY,ZOPE,FIRSTPARTY,LOCALFOLDER
+known_third_party = six, docutils, pkg_resources
+known_zope =
+known_first_party =
+default_section = ZOPE
+line_length = 79
+lines_after_imports = 2
+
[egg_info]
tag_build =
tag_date = 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/zope.copy-4.2/setup.py new/zope.copy-4.3/setup.py
--- old/zope.copy-4.2/setup.py 2018-10-04 10:44:56.000000000 +0200
+++ new/zope.copy-4.3/setup.py 2022-11-29 09:59:02.000000000 +0100
@@ -14,13 +14,16 @@
"""Setup for zope.copy package
"""
import os
-from setuptools import setup, find_packages
+
+from setuptools import find_packages
+from setuptools import setup
def read(*rnames):
with open(os.path.join(os.path.dirname(__file__), *rnames)) as f:
return f.read()
+
TESTS_REQUIRE = [
'zope.component',
'zope.location',
@@ -29,7 +32,7 @@
]
setup(name='zope.copy',
- version='4.2',
+ version='4.3',
author='Zope Foundation and Contributors',
author_email='[email protected]',
description='Pluggable object copying mechanism',
@@ -37,7 +40,7 @@
keywords="zope3 copying cloning",
classifiers=[
'Development Status :: 5 - Production/Stable',
- 'Framework :: Zope3',
+ 'Framework :: Zope :: 3',
'Intended Audience :: Developers',
'License :: OSI Approved :: Zope Public License',
'Operating System :: OS Independent',
@@ -45,10 +48,13 @@
'Programming Language :: Python :: 2',
'Programming Language :: Python :: 2.7',
'Programming Language :: Python :: 3',
- 'Programming Language :: Python :: 3.4',
'Programming Language :: Python :: 3.5',
'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: 3.7',
+ 'Programming Language :: Python :: 3.8',
+ 'Programming Language :: Python :: 3.9',
+ 'Programming Language :: Python :: 3.10',
+ 'Programming Language :: Python :: 3.11',
'Programming Language :: Python :: Implementation :: CPython',
'Programming Language :: Python :: Implementation :: PyPy',
'Topic :: Database',
@@ -72,4 +78,4 @@
'repoze.sphinx.autointerface',
],
},
-)
+ )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/zope.copy-4.2/src/zope/__init__.py
new/zope.copy-4.3/src/zope/__init__.py
--- old/zope.copy-4.2/src/zope/__init__.py 2018-10-04 10:44:56.000000000
+0200
+++ new/zope.copy-4.3/src/zope/__init__.py 2022-11-29 09:59:02.000000000
+0100
@@ -1 +1 @@
-__import__('pkg_resources').declare_namespace(__name__) # pragma: no cover
+__import__('pkg_resources').declare_namespace(__name__) # pragma: no cover
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/zope.copy-4.2/src/zope/copy/__init__.py
new/zope.copy-4.3/src/zope/copy/__init__.py
--- old/zope.copy-4.2/src/zope/copy/__init__.py 2018-10-04 10:44:56.000000000
+0200
+++ new/zope.copy-4.3/src/zope/copy/__init__.py 2022-11-29 09:59:02.000000000
+0100
@@ -16,8 +16,8 @@
from zope.copy import interfaces
from zope.copy._compat import Pickler
from zope.copy._compat import Unpickler
-from zope.copy._compat import _get_pid
from zope.copy._compat import _get_obj
+from zope.copy._compat import _get_pid
def clone(obj):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/zope.copy-4.2/src/zope/copy/_compat.py
new/zope.copy-4.3/src/zope/copy/_compat.py
--- old/zope.copy-4.2/src/zope/copy/_compat.py 2018-10-04 10:44:56.000000000
+0200
+++ new/zope.copy-4.3/src/zope/copy/_compat.py 2022-11-29 09:59:02.000000000
+0100
@@ -14,27 +14,30 @@
import sys
+
PY3 = sys.version_info[0] >= 3
try:
from cPickle import Pickler
- from cPickle import Unpickler
+ from cPickle import Unpickler # pragma: no cover
except ImportError:
- from pickle import Pickler
- from pickle import Unpickler
+ from pickle import Pickler # noqa: F401 imported but unused
+ from pickle import Unpickler # noqa: F401 imported but unused
if PY3:
def _memo(pickler):
# Python 3 uses a "PicklerMemoProxy" which is not subscriptable
# by itself
return pickler.memo.copy()
-else:
+else: # pragma: no cover
from operator import attrgetter
_memo = attrgetter('memo')
+
def _get_pid(pickler, oid):
return _memo(pickler)[oid][0]
+
def _get_obj(unpickler, pid):
return _memo(unpickler)[pid]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/zope.copy-4.2/src/zope/copy/interfaces.py
new/zope.copy-4.3/src/zope/copy/interfaces.py
--- old/zope.copy-4.2/src/zope/copy/interfaces.py 2018-10-04
10:44:56.000000000 +0200
+++ new/zope.copy-4.3/src/zope/copy/interfaces.py 2022-11-29
09:59:02.000000000 +0100
@@ -15,6 +15,7 @@
"""
import zope.interface
+
class ResumeCopy(Exception):
"""Don't use the hook, resume the copy.
@@ -24,6 +25,7 @@
See ICopyHook.__call__ method documentation.
"""
+
class ICopyHook(zope.interface.Interface):
"""An adapter to an object that is being copied"""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/zope.copy-4.2/src/zope/copy/tests/__init__.py
new/zope.copy-4.3/src/zope/copy/tests/__init__.py
--- old/zope.copy-4.2/src/zope/copy/tests/__init__.py 2018-10-04
10:44:56.000000000 +0200
+++ new/zope.copy-4.3/src/zope/copy/tests/__init__.py 2022-11-29
09:59:02.000000000 +0100
@@ -1 +1 @@
-#package
+# package
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/zope.copy-4.2/src/zope/copy/tests/test_copy.py
new/zope.copy-4.3/src/zope/copy/tests/test_copy.py
--- old/zope.copy-4.2/src/zope/copy/tests/test_copy.py 2018-10-04
10:44:56.000000000 +0200
+++ new/zope.copy-4.3/src/zope/copy/tests/test_copy.py 2022-11-29
09:59:02.000000000 +0100
@@ -13,6 +13,7 @@
##############################################################################
import unittest
+
class _Base(object):
def setUp(self):
@@ -41,16 +42,19 @@
self.assertTrue(copied.isFrozen())
def test_w_simple_hook(self):
- from zope.copy.interfaces import ICopyHook
from zope.copy.examples import Data
from zope.copy.examples import Demo
+ from zope.copy.interfaces import ICopyHook
demo = Demo()
demo.freeze()
+
class Hook(object):
def __init__(self, context):
self.context = context
+
def __call__(self, obj, register):
return None
+
def _adapt(iface, obj):
if iface is ICopyHook and isinstance(obj, Data):
return Hook(obj)
@@ -63,6 +67,7 @@
def test_subobject_wo_post_copy_hook(self):
from zope.location.location import Location
from zope.location.location import locate
+
from zope.copy.examples import Subobject
o = Location()
s = Subobject()
@@ -78,10 +83,11 @@
self.assertEqual(o.subobject(), 3)
def test_subobject_w_post_copy_hook(self):
- from zope.copy.interfaces import ICopyHook
from zope.location.location import Location
from zope.location.location import locate
+
from zope.copy.examples import Subobject
+ from zope.copy.interfaces import ICopyHook
o = Location()
s = Subobject()
o.subobject = s
@@ -90,15 +96,19 @@
self.assertEqual(o.subobject(), 0)
self.assertEqual(o.subobject(), 1)
self.assertEqual(o.subobject(), 2)
+
class Hook(object):
def __init__(self, context):
self.context = context
+
def __call__(self, obj, register):
obj = Subobject()
+
def reparent(translate):
obj.__parent__ = translate(self.context.__parent__)
register(reparent)
return obj
+
def _adapt(iface, obj):
if iface is ICopyHook and isinstance(obj, Subobject):
return Hook(obj)
@@ -128,12 +138,14 @@
self.assertEqual(copied.__name__, None)
def test_w_readonly___parent___and___name__(self):
- global Foo #make unpicklable
+ global Foo # make unpicklable
parent = object()
+
class Foo(object):
@property
def __parent__(self):
return parent
+
@property
def __name__(self):
return 'foo'
@@ -172,14 +184,17 @@
obj = object()
cp = self._makeOne(obj)
cp.pids_by_id[id(obj)] = 'PID'
+
class Hook(object):
def __init__(self, context):
self.context = context
+
def __call__(self, obj, register):
raise AssertionError("Not called")
+
def _adapt(iface, obj):
- if iface is ICopyHook:
- return Hook(obj)
+ assert iface is ICopyHook
+ return Hook(obj)
_registerAdapterHook(_adapt)
self.assertEqual(cp.id(obj), 'PID')
@@ -188,14 +203,17 @@
from zope.copy.interfaces import ResumeCopy
obj = object()
cp = self._makeOne(obj)
+
class Hook(object):
def __init__(self, context):
self.context = context
+
def __call__(self, obj, register):
raise ResumeCopy()
+
def _adapt(iface, obj):
- if iface is ICopyHook:
- return Hook(obj)
+ assert iface is ICopyHook
+ return Hook(obj)
_registerAdapterHook(_adapt)
self.assertEqual(cp.id(obj), None)
@@ -203,14 +221,17 @@
from zope.copy.interfaces import ICopyHook
obj = object()
cp = self._makeOne(obj)
+
class Hook(object):
def __init__(self, context):
self.context = context
+
def __call__(self, obj, register):
return None
+
def _adapt(iface, obj):
- if iface is ICopyHook:
- return Hook(obj)
+ assert iface is ICopyHook
+ return Hook(obj)
_registerAdapterHook(_adapt)
self.assertEqual(cp.id(obj), 1)
obj2 = object()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/zope.copy-4.2/src/zope.copy.egg-info/PKG-INFO
new/zope.copy-4.3/src/zope.copy.egg-info/PKG-INFO
--- old/zope.copy-4.2/src/zope.copy.egg-info/PKG-INFO 2018-10-04
10:44:56.000000000 +0200
+++ new/zope.copy-4.3/src/zope.copy.egg-info/PKG-INFO 2022-11-29
09:59:04.000000000 +0100
@@ -1,112 +1,15 @@
Metadata-Version: 2.1
Name: zope.copy
-Version: 4.2
+Version: 4.3
Summary: Pluggable object copying mechanism
Home-page: http://github.com/zopefoundation/zope.copy
Author: Zope Foundation and Contributors
Author-email: [email protected]
License: ZPL 2.1
-Description: ===============
- ``zope.copy``
- ===============
-
- .. image:: https://img.shields.io/pypi/v/zope.copy.svg
- :target: https://pypi.python.org/pypi/zope.copy/
- :alt: Latest release
-
- .. image:: https://img.shields.io/pypi/pyversions/zope.copy.svg
- :target: https://pypi.org/project/zope.copy/
- :alt: Supported Python versions
-
- .. image::
https://travis-ci.org/zopefoundation/zope.copy.svg?branch=master
- :target: https://travis-ci.org/zopefoundation/zope.copy
-
- .. image::
https://coveralls.io/repos/github/zopefoundation/zope.copy/badge.svg?branch=master
- :target:
https://coveralls.io/github/zopefoundation/zope.copy?branch=master
-
- .. image::
https://readthedocs.org/projects/zopecopy/badge/?version=latest
- :target: http://zopecopy.readthedocs.org/en/latest/
- :alt: Documentation Status
-
- This package provides a pluggable mechanism for copying persistent
objects.
-
- Documentation is hosted at https://zopecopy.readthedocs.io/en/latest/
-
-
- =========
- Changes
- =========
-
- 4.2 (2018-10-04)
- ================
-
- - Use the latest and fastest protocol when pickling and unpickling and
object
- during the clone operation
-
- - Add support for Python 3.7.
-
-
- 4.1.0 (2017-07-31)
- ==================
-
- - Drop support for Python 2.6, 3.2 and 3.3.
-
- - Add support for Python 3.5 and 3.6.
-
- - Restore ``zope.component`` as a testing requirement for running
doctests.
-
- 4.0.3 (2014-12-26)
- ==================
-
- - Add support for PyPy3.
-
- 4.0.2 (2014-03-19)
- ==================
-
- - Add support for Python 3.3 and 3.4.
-
- - Update ``boostrap.py`` to version 2.2.
-
- 4.0.1 (2012-12-31)
- ==================
-
- - Flesh out PyPI Trove classifiers.
-
- 4.0.0 (2012-06-13)
- ==================
-
- - Add support for Python 3.2.
-
- - Drop ``zope.component`` as a testing requirement. Instead, register
- explicit (dummy) adapter hooks where needed.
-
- - Add PyPy support.
-
- - 100% unit test coverage.
-
- - Add support for continuous integration using ``tox`` and ``jenkins``.
-
- - Add Sphinx documentation: moved doctest examples to API reference.
-
- - Add 'setup.py docs' alias (installs ``Sphinx`` and dependencies).
-
- - Add 'setup.py dev' alias (runs ``setup.py develop`` plus installs
- ``nose``, ``coverage``, and testing dependencies).
-
- - Drop support for Python 2.4 and 2.5.
-
- - Include tests of the LocationCopyHook from zope.location.
-
- 3.5.0 (2009-02-09)
- ==================
-
- - Initial release. The functionality was extracted from ``zc.copy`` to
- provide a generic object copying mechanism with minimal dependencies.
-
Keywords: zope3 copying cloning
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
-Classifier: Framework :: Zope3
+Classifier: Framework :: Zope :: 3
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Zope Public License
Classifier: Operating System :: OS Independent
@@ -114,12 +17,123 @@
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
+Classifier: Programming Language :: Python :: 3.8
+Classifier: Programming Language :: Python :: 3.9
+Classifier: Programming Language :: Python :: 3.10
+Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Database
Provides-Extra: test
Provides-Extra: docs
+License-File: LICENSE.txt
+
+===============
+ ``zope.copy``
+===============
+
+.. image:: https://img.shields.io/pypi/v/zope.copy.svg
+ :target: https://pypi.python.org/pypi/zope.copy/
+ :alt: Latest release
+
+.. image:: https://img.shields.io/pypi/pyversions/zope.copy.svg
+ :target: https://pypi.org/project/zope.copy/
+ :alt: Supported Python versions
+
+.. image::
https://github.com/zopefoundation/zope.copy/actions/workflows/tests.yml/badge.svg
+ :target:
https://github.com/zopefoundation/zope.copy/actions/workflows/tests.yml
+
+.. image::
https://coveralls.io/repos/github/zopefoundation/zope.copy/badge.svg?branch=master
+ :target:
https://coveralls.io/github/zopefoundation/zope.copy?branch=master
+
+.. image:: https://readthedocs.org/projects/zopecopy/badge/?version=latest
+ :target: http://zopecopy.readthedocs.org/en/latest/
+ :alt: Documentation Status
+
+This package provides a pluggable mechanism for copying persistent objects.
+
+Documentation is hosted at https://zopecopy.readthedocs.io/
+
+
+=========
+ Changes
+=========
+
+4.3 (2022-11-29)
+================
+
+- Add support for Python 3.8, 3.9, 3.10, 3.11.
+
+- Drop support for Python 3.4.
+
+
+4.2 (2018-10-04)
+================
+
+- Use the latest and fastest protocol when pickling and unpickling and object
+ during the clone operation
+
+- Add support for Python 3.7.
+
+
+4.1.0 (2017-07-31)
+==================
+
+- Drop support for Python 2.6, 3.2 and 3.3.
+
+- Add support for Python 3.5 and 3.6.
+
+- Restore ``zope.component`` as a testing requirement for running doctests.
+
+4.0.3 (2014-12-26)
+==================
+
+- Add support for PyPy3.
+
+4.0.2 (2014-03-19)
+==================
+
+- Add support for Python 3.3 and 3.4.
+
+- Update ``boostrap.py`` to version 2.2.
+
+4.0.1 (2012-12-31)
+==================
+
+- Flesh out PyPI Trove classifiers.
+
+4.0.0 (2012-06-13)
+==================
+
+- Add support for Python 3.2.
+
+- Drop ``zope.component`` as a testing requirement. Instead, register
+ explicit (dummy) adapter hooks where needed.
+
+- Add PyPy support.
+
+- 100% unit test coverage.
+
+- Add support for continuous integration using ``tox`` and ``jenkins``.
+
+- Add Sphinx documentation: moved doctest examples to API reference.
+
+- Add 'setup.py docs' alias (installs ``Sphinx`` and dependencies).
+
+- Add 'setup.py dev' alias (runs ``setup.py develop`` plus installs
+ ``nose``, ``coverage``, and testing dependencies).
+
+- Drop support for Python 2.4 and 2.5.
+
+- Include tests of the LocationCopyHook from zope.location.
+
+3.5.0 (2009-02-09)
+==================
+
+- Initial release. The functionality was extracted from ``zc.copy`` to
+ provide a generic object copying mechanism with minimal dependencies.
+
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/zope.copy-4.2/src/zope.copy.egg-info/SOURCES.txt
new/zope.copy-4.3/src/zope.copy.egg-info/SOURCES.txt
--- old/zope.copy-4.2/src/zope.copy.egg-info/SOURCES.txt 2018-10-04
10:44:56.000000000 +0200
+++ new/zope.copy-4.3/src/zope.copy.egg-info/SOURCES.txt 2022-11-29
09:59:05.000000000 +0100
@@ -1,13 +1,9 @@
-.bzrignore
-.coveragerc
-.gitignore
-.travis.yml
CHANGES.rst
+CONTRIBUTING.md
COPYRIGHT.txt
LICENSE.txt
MANIFEST.in
README.rst
-bootstrap.py
buildout.cfg
rtd.txt
setup.cfg
@@ -20,7 +16,6 @@
docs/index.rst
docs/make.bat
docs/narr.rst
-docs/_static/.gitignore
src/zope/__init__.py
src/zope.copy.egg-info/PKG-INFO
src/zope.copy.egg-info/SOURCES.txt
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/zope.copy-4.2/tox.ini new/zope.copy-4.3/tox.ini
--- old/zope.copy-4.2/tox.ini 2018-10-04 10:44:56.000000000 +0200
+++ new/zope.copy-4.3/tox.ini 2022-11-29 09:59:02.000000000 +0100
@@ -1,31 +1,92 @@
+# Generated from:
+# https://github.com/zopefoundation/meta/tree/master/config/pure-python
[tox]
+minversion = 3.18
envlist =
- py27,py34,py35,py36,py37,pypy,pypy3,coverage
+ lint
+ py27
+ py35
+ py36
+ py37
+ py38
+ py39
+ py310
+ py311
+ pypy
+ pypy3
+ docs
+ coverage
[testenv]
-commands =
- zope-testrunner --test-path=src []
- sphinx-build -b doctest -d {envdir}/.cache/doctrees docs
{envdir}/.cache/doctest
+usedevelop = true
deps =
- .[test,docs]
+commands =
+ zope-testrunner --test-path=src {posargs:-vc}
+ !py27-!pypy: sphinx-build -b doctest -d {envdir}/.cache/doctrees docs
{envdir}/.cache/doctest
+extras =
+ test
+ docs
-[testenv:coverage]
-usedevelop = true
-basepython =
- python3.7
+[testenv:lint]
+basepython = python3
+skip_install = true
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 report
+ isort --check-only --diff {toxinidir}/src {toxinidir}/setup.py
+ flake8 src setup.py
+ check-manifest
+ check-python-versions
deps =
- {[testenv]deps}
- coverage
+ check-manifest
+ check-python-versions >= 0.19.1
+ wheel
+ flake8
+ isort
+
+[testenv:isort-apply]
+basepython = python3
+commands_pre =
+deps =
+ isort
+commands =
+ isort {toxinidir}/src {toxinidir}/setup.py []
[testenv:docs]
-basepython =
- python3.7
+basepython = python3
+skip_install = false
+commands_pre =
commands =
sphinx-build -b html -d docs/_build/doctrees docs docs/_build/html
sphinx-build -b doctest -d docs/_build/doctrees docs docs/_build/doctest
+
+[testenv:coverage]
+basepython = python3
+allowlist_externals =
+ mkdir
deps =
- .[test,docs]
+ coverage
+ coverage-python-version
+commands =
+ mkdir -p {toxinidir}/parts/htmlcov
+ coverage run -m zope.testrunner --test-path=src {posargs:-vc}
+ coverage run -a -m sphinx -b doctest -d {envdir}/.cache/doctrees docs
{envdir}/.cache/doctest
+ coverage html
+ coverage report -m --fail-under=100
+
+[coverage:run]
+branch = True
+plugins = coverage_python_version
+source = zope.copy
+
+[coverage:report]
+precision = 2
+exclude_lines =
+ pragma: no cover
+ pragma: nocover
+ except ImportError:
+ raise NotImplementedError
+ if __name__ == '__main__':
+ self.fail
+ raise AssertionError
+
+[coverage:html]
+directory = parts/htmlcov