Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-zope.deferredimport for 
openSUSE:Factory checked in at 2022-09-20 19:23:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-zope.deferredimport (Old)
 and      /work/SRC/openSUSE:Factory/.python-zope.deferredimport.new.2083 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-zope.deferredimport"

Tue Sep 20 19:23:09 2022 rev:3 rq:1004590 version:4.4

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/python-zope.deferredimport/python-zope.deferredimport.changes
    2019-08-13 13:27:17.469323227 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-zope.deferredimport.new.2083/python-zope.deferredimport.changes
  2022-09-20 19:23:11.622406934 +0200
@@ -1,0 +2,7 @@
+Fri Sep 16 19:50:42 UTC 2022 - Yogalakshmi Arunachalam <yarunacha...@suse.com>
+
+- Update to 4.4: 
+  * Add support for Python 3.8, 3.9 and 3.10.
+  * Drop support for Python 3.4. 
+
+-------------------------------------------------------------------

Old:
----
  zope.deferredimport-4.3.1.tar.gz

New:
----
  zope.deferredimport-4.4.tar.gz

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

Other differences:
------------------
++++++ python-zope.deferredimport.spec ++++++
--- /var/tmp/diff_new_pack.FiXv21/_old  2022-09-20 19:23:12.086408265 +0200
+++ /var/tmp/diff_new_pack.FiXv21/_new  2022-09-20 19:23:12.094408288 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package python-zope.deferredimport
 #
-# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2022 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -18,12 +18,12 @@
 
 %{?!python_module:%define python_module() python-%{**} python3-%{**}}
 Name:           python-zope.deferredimport
-Version:        4.3.1
+Version:        4.4
 Release:        0
 Summary:        On-demand import name resolver
 License:        ZPL-2.1
 Group:          Development/Languages/Python
-Url:            http://github.com/zopefoundation/zope.deferredimport
+URL:            http://github.com/zopefoundation/zope.deferredimport
 Source:         
https://files.pythonhosted.org/packages/source/z/zope.deferredimport/zope.deferredimport-%{version}.tar.gz
 BuildRequires:  %{python_module setuptools}
 BuildRequires:  %{python_module zope.proxy}

++++++ zope.deferredimport-4.3.1.tar.gz -> zope.deferredimport-4.4.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zope.deferredimport-4.3.1/.coveragerc 
new/zope.deferredimport-4.4/.coveragerc
--- old/zope.deferredimport-4.3.1/.coveragerc   2019-08-05 08:11:50.000000000 
+0200
+++ new/zope.deferredimport-4.4/.coveragerc     1970-01-01 01:00:00.000000000 
+0100
@@ -1,13 +0,0 @@
-[run]
-source = zope.deferredimport
-omit =
-   src/zope/deferredimport/samples/sample*.py
-
-[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.deferredimport-4.3.1/.gitignore 
new/zope.deferredimport-4.4/.gitignore
--- old/zope.deferredimport-4.3.1/.gitignore    2019-08-05 08:11:50.000000000 
+0200
+++ new/zope.deferredimport-4.4/.gitignore      1970-01-01 01:00:00.000000000 
+0100
@@ -1,16 +0,0 @@
-*.pyc
-*.so
-*.dll
-__pycache__
-src/*.egg-info
-
-.installed.cfg
-.tox
-bin
-build
-develop-eggs
-parts
-docs/_build/
-.coverage
-coverage.xml
-htmlcov/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zope.deferredimport-4.3.1/.travis.yml 
new/zope.deferredimport-4.4/.travis.yml
--- old/zope.deferredimport-4.3.1/.travis.yml   2019-08-05 08:11:50.000000000 
+0200
+++ new/zope.deferredimport-4.4/.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.deferredimport-4.3.1/CHANGES.rst 
new/zope.deferredimport-4.4/CHANGES.rst
--- old/zope.deferredimport-4.3.1/CHANGES.rst   2019-08-05 08:11:50.000000000 
+0200
+++ new/zope.deferredimport-4.4/CHANGES.rst     2021-12-10 09:16:04.000000000 
+0100
@@ -2,6 +2,14 @@
  Changes
 =========
 
+4.4 (2021-12-10)
+================
+
+- Add support for Python 3.8, 3.9 and 3.10.
+
+- Drop support for Python 3.4.
+
+
 4.3.1 (2019-08-05)
 ==================
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zope.deferredimport-4.3.1/MANIFEST.in 
new/zope.deferredimport-4.4/MANIFEST.in
--- old/zope.deferredimport-4.3.1/MANIFEST.in   2019-08-05 08:11:50.000000000 
+0200
+++ new/zope.deferredimport-4.4/MANIFEST.in     2021-12-10 09:16:04.000000000 
+0100
@@ -1,16 +1,14 @@
+# Generated from:
+# https://github.com/zopefoundation/meta/tree/master/config/pure-python
 include *.rst
 include *.txt
-include *.py
 include buildout.cfg
 include tox.ini
-include .travis.yml
-include .coveragerc
 
-recursive-include src *
-
-global-exclude *.pyc
-
-recursive-include docs *.bat
 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.deferredimport-4.3.1/PKG-INFO 
new/zope.deferredimport-4.4/PKG-INFO
--- old/zope.deferredimport-4.3.1/PKG-INFO      2019-08-05 08:11:51.000000000 
+0200
+++ new/zope.deferredimport-4.4/PKG-INFO        2021-12-10 09:16:06.752614000 
+0100
@@ -1,138 +1,13 @@
 Metadata-Version: 2.1
 Name: zope.deferredimport
-Version: 4.3.1
+Version: 4.4
 Summary: zope.deferredimport allows you to perform imports names that will 
only be resolved when used in the code.
 Home-page: http://github.com/zopefoundation/zope.deferredimport
 Author: Zope Foundation and Contributors
 Author-email: zope-...@zope.org
 License: ZPL 2.1
-Description: =========================
-         ``zope.deferredimport``
-        =========================
-        
-        .. image:: https://img.shields.io/pypi/v/zope.deferredimport.svg
-                :target: https://pypi.python.org/pypi/zope.deferredimport/
-                :alt: Latest release
-        
-        .. image:: 
https://img.shields.io/pypi/pyversions/zope.deferredimport.svg
-                :target: https://pypi.org/project/zope.deferredimport/
-                :alt: Supported Python versions
-        
-        .. image:: 
https://travis-ci.org/zopefoundation/zope.deferredimport.svg?branch=master
-                :target: 
https://travis-ci.org/zopefoundation/zope.deferredimport
-        
-        .. image:: 
https://coveralls.io/repos/github/zopefoundation/zope.deferredimport/badge.svg?branch=master
-                :target: 
https://coveralls.io/github/zopefoundation/zope.deferredimport?branch=master
-        
-        .. image:: 
https://readthedocs.org/projects/zopedeferredimport/badge/?version=latest
-                :target: http://zopedeferredimport.readthedocs.io/en/latest/
-                :alt: Documentation Status
-        
-        Often, especially for package modules, you want to import names for
-        convenience, but not actually perform the imports until necessary.
-        The zope.deferredimport package provided facilities for defining names
-        in modules that will be imported from somewhere else when used.  You
-        can also cause deprecation warnings to be issued when a variable is
-        used.
-        
-        Documentation is hosted at https://zopedeferredimport.readthedocs.io/
-        
-        
-        =========
-         Changes
-        =========
-        
-        4.3.1 (2019-08-05)
-        ==================
-        
-        - Avoid race condition in ``deferredmodule.ModuleProxy.__getattr__``
-          `#8 
<https://github.com/zopefoundation/zope.deferredimport/issues/8>`_.
-        
-        
-        4.3 (2018-10-05)
-        ================
-        
-        - Add support for Python 3.7.
-        
-        
-        4.2.1 (2017-10-24)
-        ==================
-        
-        - Preserve the docstrings of proxied modules created with
-          ``deprecatedFrom``, ``deferredFrom``, etc. See `issue 5
-          <https://github.com/zopefoundation/zope.deferredimport/issues/5>`_.
-        
-        
-        4.2.0 (2017-08-08)
-        ==================
-        
-        - Add support for Python 3.5 and 3.6.
-        
-        - Drop support for Python 2.6 and 3.3.
-        
-        - Convert doctests to Sphinx documentation, including building docs
-          and running doctest snippets under ``tox``.
-        
-        
-        4.1.0 (2014-12-26)
-        ==================
-        
-        - Add support for PyPy.  PyPy3 support is blocked on release of fix 
for:
-          https://bitbucket.org/pypy/pypy/issue/1946
-        
-        - Add support for Python 3.4.
-        
-        - Add support for testing on Travis.
-        
-        
-        4.0.0 (2013-02-28)
-        ==================
-        
-        - Add support for Python 3.3.
-        
-        - Drop support for Python 2.4 and 2.5.
-        
-        
-        3.5.3 (2010-09-25)
-        ==================
-        
-        - Add test extra to declare test dependency on ``zope.testing``.
-        
-        
-        3.5.2 (2010-05-24)
-        ==================
-        
-        - Fix unit tests broken under Python 2.4 by the switch to the standard
-          library ``doctest`` module.
-        
-        
-        3.5.1 (2010-04-30)
-        ==================
-        
-        - Prefer the standard library's ``doctest`` module to the one from
-          ``zope.testing``.
-        
-        
-        3.5.0 (2009-02-04)
-        ==================
-        
-        - Add support to bootstrap on Jython.
-        
-        - Add reference documentation.
-        
-        
-        3.4.0 (2007-07-19)
-        ==================
-        
-        - Finish release of ``zope.deferredimport``.
-        
-        
-        3.4.0b1 (2007-07-09)
-        ====================
-        
-        - Initial release as a separate project, corresponding to the
-          ``zope.deferredimport`` from Zope 3.4.0b1.
-        
+Project-URL: Issue Tracker, 
https://github.com/zopefoundation/zope.deferredimport/issues
+Project-URL: Sources, https://github.com/zopefoundation/zope.deferredimport
 Platform: UNKNOWN
 Classifier: Development Status :: 5 - Production/Stable
 Classifier: Intended Audience :: Developers
@@ -141,15 +16,156 @@
 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 :: Implementation :: CPython
 Classifier: Programming Language :: Python :: Implementation :: PyPy
 Classifier: Natural Language :: English
 Classifier: Operating System :: OS Independent
 Classifier: Topic :: Internet :: WWW/HTTP
 Classifier: Topic :: Software Development
-Provides-Extra: docs
+Requires-Python: >=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*
 Provides-Extra: test
+Provides-Extra: docs
+License-File: LICENSE.txt
+
+=========================
+ ``zope.deferredimport``
+=========================
+
+.. image:: https://img.shields.io/pypi/v/zope.deferredimport.svg
+        :target: https://pypi.python.org/pypi/zope.deferredimport/
+        :alt: Latest release
+
+.. image:: https://img.shields.io/pypi/pyversions/zope.deferredimport.svg
+        :target: https://pypi.org/project/zope.deferredimport/
+        :alt: Supported Python versions
+
+.. image:: 
https://travis-ci.com/zopefoundation/zope.deferredimport.svg?branch=master
+        :target: https://travis-ci.com/zopefoundation/zope.deferredimport
+
+.. image:: 
https://coveralls.io/repos/github/zopefoundation/zope.deferredimport/badge.svg?branch=master
+        :target: 
https://coveralls.io/github/zopefoundation/zope.deferredimport?branch=master
+
+.. image:: 
https://readthedocs.org/projects/zopedeferredimport/badge/?version=latest
+        :target: http://zopedeferredimport.readthedocs.io/en/latest/
+        :alt: Documentation Status
+
+Often, especially for package modules, you want to import names for
+convenience, but not actually perform the imports until necessary.
+The zope.deferredimport package provided facilities for defining names
+in modules that will be imported from somewhere else when used.  You
+can also cause deprecation warnings to be issued when a variable is
+used.
+
+Documentation is hosted at https://zopedeferredimport.readthedocs.io/
+
+
+=========
+ Changes
+=========
+
+4.4 (2021-12-10)
+================
+
+- Add support for Python 3.8, 3.9 and 3.10.
+
+- Drop support for Python 3.4.
+
+
+4.3.1 (2019-08-05)
+==================
+
+- Avoid race condition in ``deferredmodule.ModuleProxy.__getattr__``
+  `#8 <https://github.com/zopefoundation/zope.deferredimport/issues/8>`_.
+
+
+4.3 (2018-10-05)
+================
+
+- Add support for Python 3.7.
+
+
+4.2.1 (2017-10-24)
+==================
+
+- Preserve the docstrings of proxied modules created with
+  ``deprecatedFrom``, ``deferredFrom``, etc. See `issue 5
+  <https://github.com/zopefoundation/zope.deferredimport/issues/5>`_.
+
+
+4.2.0 (2017-08-08)
+==================
+
+- Add support for Python 3.5 and 3.6.
+
+- Drop support for Python 2.6 and 3.3.
+
+- Convert doctests to Sphinx documentation, including building docs
+  and running doctest snippets under ``tox``.
+
+
+4.1.0 (2014-12-26)
+==================
+
+- Add support for PyPy.  PyPy3 support is blocked on release of fix for:
+  https://bitbucket.org/pypy/pypy/issue/1946
+
+- Add support for Python 3.4.
+
+- Add support for testing on Travis.
+
+
+4.0.0 (2013-02-28)
+==================
+
+- Add support for Python 3.3.
+
+- Drop support for Python 2.4 and 2.5.
+
+
+3.5.3 (2010-09-25)
+==================
+
+- Add test extra to declare test dependency on ``zope.testing``.
+
+
+3.5.2 (2010-05-24)
+==================
+
+- Fix unit tests broken under Python 2.4 by the switch to the standard
+  library ``doctest`` module.
+
+
+3.5.1 (2010-04-30)
+==================
+
+- Prefer the standard library's ``doctest`` module to the one from
+  ``zope.testing``.
+
+
+3.5.0 (2009-02-04)
+==================
+
+- Add support to bootstrap on Jython.
+
+- Add reference documentation.
+
+
+3.4.0 (2007-07-19)
+==================
+
+- Finish release of ``zope.deferredimport``.
+
+
+3.4.0b1 (2007-07-09)
+====================
+
+- Initial release as a separate project, corresponding to the
+  ``zope.deferredimport`` from Zope 3.4.0b1.
+
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zope.deferredimport-4.3.1/README.rst 
new/zope.deferredimport-4.4/README.rst
--- old/zope.deferredimport-4.3.1/README.rst    2019-08-05 08:11:50.000000000 
+0200
+++ new/zope.deferredimport-4.4/README.rst      2021-12-10 09:16:04.000000000 
+0100
@@ -10,8 +10,8 @@
         :target: https://pypi.org/project/zope.deferredimport/
         :alt: Supported Python versions
 
-.. image:: 
https://travis-ci.org/zopefoundation/zope.deferredimport.svg?branch=master
-        :target: https://travis-ci.org/zopefoundation/zope.deferredimport
+.. image:: 
https://travis-ci.com/zopefoundation/zope.deferredimport.svg?branch=master
+        :target: https://travis-ci.com/zopefoundation/zope.deferredimport
 
 .. image:: 
https://coveralls.io/repos/github/zopefoundation/zope.deferredimport/badge.svg?branch=master
         :target: 
https://coveralls.io/github/zopefoundation/zope.deferredimport?branch=master
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zope.deferredimport-4.3.1/bootstrap.py 
new/zope.deferredimport-4.4/bootstrap.py
--- old/zope.deferredimport-4.3.1/bootstrap.py  2019-08-05 08:11:50.000000000 
+0200
+++ new/zope.deferredimport-4.4/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.deferredimport-4.3.1/docs/narrative.rst 
new/zope.deferredimport-4.4/docs/narrative.rst
--- old/zope.deferredimport-4.3.1/docs/narrative.rst    2019-08-05 
08:11:50.000000000 +0200
+++ new/zope.deferredimport-4.4/docs/narrative.rst      2021-12-10 
09:16:04.000000000 +0100
@@ -81,17 +81,17 @@
 .. doctest::
 
     >>> create_module(sample1 = '''
-    ...
     ... print("Sampe 1 imported!")
     ...
     ... x = 1
     ...
+    ...
     ... class C:
     ...     y = 2
     ...
+    ...
     ... z = 3
     ... q = 4
-    ...
     ... ''')
 
 Note that the module starts by printing a message.  This allows us to
@@ -102,20 +102,20 @@
 .. doctest::
 
     >>> create_module(sample2 = '''
-    ...
     ... import zope.deferredimport
     ...
     ... zope.deferredimport.define(
-    ...     sample1 = 'zope.deferredimport.sample1',
-    ...     one = 'zope.deferredimport.sample1:x',
-    ...     two = 'zope.deferredimport.sample1:C.y',
+    ...     sample1='zope.deferredimport.sample1',
+    ...     one='zope.deferredimport.sample1:x',
+    ...     two='zope.deferredimport.sample1:C.y',
     ...     )
     ...
     ... three = 3
     ... x = 4
+    ...
+    ...
     ... def getx():
     ...     return x
-    ...
     ... ''')
 
 
@@ -185,28 +185,28 @@
 
 .. doctest::
 
-    >>> create_module(sample3 = '''
-    ...
-    ... import zope.deferredimport
-    ... import zope.deferredimport.sample4
-    ...
-    ... zope.deferredimport.define(
-    ...     sample1 = 'zope.deferredimport.sample1',
-    ...     one = 'zope.deferredimport.sample1:x',
-    ...     two = 'zope.deferredimport.sample1:C.y',
-    ...     )
-    ...
-    ... x = 1
-    ...
-    ... ''')
-
-    >>> create_module(sample4 = '''
-    ... import sample3
-    ...
-    ... def getone():
-    ...     return sample3.one
-    ...
-    ... ''')
+    # >>> create_module(sample3 = '''
+    # ...
+    # ... import zope.deferredimport
+    # ... import zope.deferredimport.sample4
+    # ...
+    # ... zope.deferredimport.define(
+    # ...     sample1 = 'zope.deferredimport.sample1',
+    # ...     one = 'zope.deferredimport.sample1:x',
+    # ...     two = 'zope.deferredimport.sample1:C.y',
+    # ...     )
+    # ...
+    # ... x = 1
+    # ...
+    # ... ''')
+
+    # >>> create_module(sample4 = '''
+    # ... import sample3
+    # ...
+    # ... def getone():
+    # ...     return sample3.one
+    # ...
+    # ... ''')
 
 Here, we have a circular import between sample3 and sample4.  When
 sample3 is imported, it imports sample 4, which then imports sample3.
@@ -216,6 +216,7 @@
 .. code-block:: python
 
    # XXX: Relative imports like this are not possible on Python 3 anymore.
+   # PY2
    #
    #    >>> import zope.deferredimport.sample3
    #    >>> import zope.deferredimport.sample4
@@ -246,29 +247,26 @@
 .. doctest::
 
     >>> create_module(sample5 = '''
-    ...
     ... import zope.deferredimport
     ... zope.deferredimport.initialize()
     ...
-    ... import zope.deferredimport.sample6
+    ... import zope.deferredimport.sample6  # noqa: E402 import not at top
     ...
     ... zope.deferredimport.define(
-    ...     sample1 = 'zope.deferredimport.sample1',
-    ...     one = 'zope.deferredimport.sample1:x',
-    ...     two = 'zope.deferredimport.sample1:C.y',
+    ...     sample1='zope.deferredimport.sample1',
+    ...     one='zope.deferredimport.sample1:x',
+    ...     two='zope.deferredimport.sample1:C.y',
     ...     )
     ...
     ... x = 1
-    ...
     ... ''')
 
     >>> create_module(sample6 = '''
-    ...
     ... import zope.deferredimport.sample5
     ...
+    ...
     ... def getone():
     ...     return zope.deferredimport.sample5.one
-    ...
     ... ''')
 
     >>> import zope.deferredimport.sample5
@@ -290,17 +288,15 @@
 .. doctest::
 
     >>> create_module(sample7 = '''
-    ...
     ... import zope.deferredimport
     ... zope.deferredimport.initialize()
     ...
     ... zope.deferredimport.deprecated(
     ...     "Import from sample1 instead",
-    ...     x = 'zope.deferredimport.sample1:x',
-    ...     y = 'zope.deferredimport.sample1:C.y',
-    ...     z = 'zope.deferredimport.sample1:z',
+    ...     x='zope.deferredimport.sample1:x',
+    ...     y='zope.deferredimport.sample1:C.y',
+    ...     z='zope.deferredimport.sample1:z',
     ...     )
-    ...
     ... ''')
 
 Now, if we use one of these variables, we'll get a deprecation
@@ -332,25 +328,23 @@
 .. doctest::
 
     >>> create_module(sample8 = '''
-    ...
     ... import zope.deferredimport
     ...
     ... zope.deferredimport.deprecatedFrom(
     ...     "Import from sample1 instead",
     ...     'zope.deferredimport.sample1',
     ...     'x', 'z', 'q',
-    ...     )
+    ... )
     ...
     ... zope.deferredimport.defineFrom(
     ...     'zope.deferredimport.sample9',
     ...     'a', 'b', 'c',
-    ...     )
-    ...
+    ... )
     ... ''')
 
     >>> create_module(sample9 = '''
     ... print('Imported sample 9')
-    ... a, b, c = range(10,13)
+    ... a, b, c = range(10, 13)
     ... ''')
 
     >>> import zope.deferredimport.sample8
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zope.deferredimport-4.3.1/setup.cfg 
new/zope.deferredimport-4.4/setup.cfg
--- old/zope.deferredimport-4.3.1/setup.cfg     2019-08-05 08:11:51.000000000 
+0200
+++ new/zope.deferredimport-4.4/setup.cfg       2021-12-10 09:16:06.754081000 
+0100
@@ -1,6 +1,16 @@
 [bdist_wheel]
 universal = 1
 
+[flake8]
+doctests = 1
+
+[check-manifest]
+ignore = 
+       .editorconfig
+       .meta.toml
+       docs/_build/html/_sources/*
+       docs/_build/doctest/*
+
 [egg_info]
 tag_build = 
 tag_date = 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zope.deferredimport-4.3.1/setup.py 
new/zope.deferredimport-4.4/setup.py
--- old/zope.deferredimport-4.3.1/setup.py      2019-08-05 08:11:50.000000000 
+0200
+++ new/zope.deferredimport-4.4/setup.py        2021-12-10 09:16:04.000000000 
+0100
@@ -26,6 +26,7 @@
     with open(os.path.join(os.path.dirname(__file__), *rnames)) as f:
         return f.read()
 
+
 TESTS_REQUIRE = [
     'zope.testrunner',
 ]
@@ -37,11 +38,17 @@
 
 setup(
     name='zope.deferredimport',
-    version='4.3.1',
+    version='4.4',
     url='http://github.com/zopefoundation/zope.deferredimport',
     license='ZPL 2.1',
     description=('zope.deferredimport allows you to perform imports names '
                  'that will only be resolved when used in the code.'),
+    project_urls={
+        'Issue Tracker': ('https://github.com/zopefoundation/'
+                          'zope.deferredimport/issues'),
+        'Sources': 'https://github.com/zopefoundation/zope.deferredimport',
+    },
+
     author='Zope Foundation and Contributors',
     author_email='zope-...@zope.org',
     long_description=(
@@ -57,10 +64,12 @@
         '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 :: Implementation :: CPython',
         'Programming Language :: Python :: Implementation :: PyPy',
         'Natural Language :: English',
@@ -71,6 +80,7 @@
     packages=find_packages('src'),
     package_dir={'': 'src'},
     namespace_packages=['zope'],
+    python_requires='>=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*',
     install_requires=[
         'setuptools',
         'zope.proxy',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zope.deferredimport-4.3.1/src/zope/__init__.py 
new/zope.deferredimport-4.4/src/zope/__init__.py
--- old/zope.deferredimport-4.3.1/src/zope/__init__.py  2019-08-05 
08:11:50.000000000 +0200
+++ new/zope.deferredimport-4.4/src/zope/__init__.py    2021-12-10 
09:16:04.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.deferredimport-4.3.1/src/zope/deferredimport/__init__.py 
new/zope.deferredimport-4.4/src/zope/deferredimport/__init__.py
--- old/zope.deferredimport-4.3.1/src/zope/deferredimport/__init__.py   
2019-08-05 08:11:50.000000000 +0200
+++ new/zope.deferredimport-4.4/src/zope/deferredimport/__init__.py     
2021-12-10 09:16:04.000000000 +0100
@@ -2,4 +2,11 @@
 from zope.deferredimport.deferredmodule import define, defineFrom
 from zope.deferredimport.deferredmodule import deprecated, deprecatedFrom
 
-__all__ = tuple(name for name in globals() if not name.startswith('_'))
+
+__all__ = (
+    'initialize',
+    'define',
+    'defineFrom',
+    'deprecated',
+    'deprecatedFrom',
+)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/zope.deferredimport-4.3.1/src/zope/deferredimport/deferredmodule.py 
new/zope.deferredimport-4.4/src/zope/deferredimport/deferredmodule.py
--- old/zope.deferredimport-4.3.1/src/zope/deferredimport/deferredmodule.py     
2019-08-05 08:11:50.000000000 +0200
+++ new/zope.deferredimport-4.4/src/zope/deferredimport/deferredmodule.py       
2021-12-10 09:16:04.000000000 +0100
@@ -40,6 +40,7 @@
                 v = getattr(v, n)
         return v
 
+
 class DeferredAndDeprecated(Deferred):
 
     def __init__(self, name, specifier, message):
@@ -75,6 +76,7 @@
             pass
         return v
 
+
 def initialize(level=1):
     """Prepare a module to support deferred imports.
 
@@ -104,6 +106,7 @@
         return
     return module
 
+
 def define(**names):
     """Define deferred imports using keyword parameters.
 
@@ -116,6 +119,7 @@
     for name, specifier in names.items():
         __deferred_definitions__[name] = Deferred(name, specifier)
 
+
 def defineFrom(from_name, *names):
     """Define deferred imports from a particular module.
 
@@ -128,6 +132,7 @@
         specifier = from_name + ':' + name
         __deferred_definitions__[name] = Deferred(name, specifier)
 
+
 def deprecated(message, **names):
     """Define deferred and deprecated imports using keyword parameters.
 
@@ -144,6 +149,7 @@
         __deferred_definitions__[name] = DeferredAndDeprecated(
             name, specifier, message)
 
+
 def deprecatedFrom(message, from_name, *names):
     """Define deferred and deprecated imports from a particular module.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/zope.deferredimport-4.3.1/src/zope/deferredimport/samples/sample1.py 
new/zope.deferredimport-4.4/src/zope/deferredimport/samples/sample1.py
--- old/zope.deferredimport-4.3.1/src/zope/deferredimport/samples/sample1.py    
2019-08-05 08:11:50.000000000 +0200
+++ new/zope.deferredimport-4.4/src/zope/deferredimport/samples/sample1.py      
2021-12-10 09:16:04.000000000 +0100
@@ -1,12 +1,12 @@
 
-
 print("Sampe 1 imported!")
 
 x = 1
 
+
 class C:
     y = 2
 
+
 z = 3
 q = 4
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/zope.deferredimport-4.3.1/src/zope/deferredimport/samples/sample2.py 
new/zope.deferredimport-4.4/src/zope/deferredimport/samples/sample2.py
--- old/zope.deferredimport-4.3.1/src/zope/deferredimport/samples/sample2.py    
2019-08-05 08:11:50.000000000 +0200
+++ new/zope.deferredimport-4.4/src/zope/deferredimport/samples/sample2.py      
2021-12-10 09:16:04.000000000 +0100
@@ -1,15 +1,15 @@
 
-
 import zope.deferredimport
 
 zope.deferredimport.define(
-    sample1 = 'zope.deferredimport.sample1',
-    one = 'zope.deferredimport.sample1:x',
-    two = 'zope.deferredimport.sample1:C.y',
+    sample1='zope.deferredimport.sample1',
+    one='zope.deferredimport.sample1:x',
+    two='zope.deferredimport.sample1:C.y',
     )
 
 three = 3
 x = 4
+
+
 def getx():
     return x
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/zope.deferredimport-4.3.1/src/zope/deferredimport/samples/sample3.py 
new/zope.deferredimport-4.4/src/zope/deferredimport/samples/sample3.py
--- old/zope.deferredimport-4.3.1/src/zope/deferredimport/samples/sample3.py    
2019-08-05 08:11:50.000000000 +0200
+++ new/zope.deferredimport-4.4/src/zope/deferredimport/samples/sample3.py      
1970-01-01 01:00:00.000000000 +0100
@@ -1,13 +0,0 @@
-
-
-import zope.deferredimport
-import zope.deferredimport.sample4
-
-zope.deferredimport.define(
-    sample1 = 'zope.deferredimport.sample1',
-    one = 'zope.deferredimport.sample1:x',
-    two = 'zope.deferredimport.sample1:C.y',
-    )
-
-x = 1
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/zope.deferredimport-4.3.1/src/zope/deferredimport/samples/sample4.py 
new/zope.deferredimport-4.4/src/zope/deferredimport/samples/sample4.py
--- old/zope.deferredimport-4.3.1/src/zope/deferredimport/samples/sample4.py    
2019-08-05 08:11:50.000000000 +0200
+++ new/zope.deferredimport-4.4/src/zope/deferredimport/samples/sample4.py      
1970-01-01 01:00:00.000000000 +0100
@@ -1,6 +0,0 @@
-
-import sample3
-
-def getone():
-    return sample3.one
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/zope.deferredimport-4.3.1/src/zope/deferredimport/samples/sample5.py 
new/zope.deferredimport-4.4/src/zope/deferredimport/samples/sample5.py
--- old/zope.deferredimport-4.3.1/src/zope/deferredimport/samples/sample5.py    
2019-08-05 08:11:50.000000000 +0200
+++ new/zope.deferredimport-4.4/src/zope/deferredimport/samples/sample5.py      
2021-12-10 09:16:04.000000000 +0100
@@ -1,15 +1,13 @@
 
-
 import zope.deferredimport
 zope.deferredimport.initialize()
 
-import zope.deferredimport.sample6
+import zope.deferredimport.sample6  # noqa: E402 import not at top
 
 zope.deferredimport.define(
-    sample1 = 'zope.deferredimport.sample1',
-    one = 'zope.deferredimport.sample1:x',
-    two = 'zope.deferredimport.sample1:C.y',
+    sample1='zope.deferredimport.sample1',
+    one='zope.deferredimport.sample1:x',
+    two='zope.deferredimport.sample1:C.y',
     )
 
 x = 1
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/zope.deferredimport-4.3.1/src/zope/deferredimport/samples/sample6.py 
new/zope.deferredimport-4.4/src/zope/deferredimport/samples/sample6.py
--- old/zope.deferredimport-4.3.1/src/zope/deferredimport/samples/sample6.py    
2019-08-05 08:11:50.000000000 +0200
+++ new/zope.deferredimport-4.4/src/zope/deferredimport/samples/sample6.py      
2021-12-10 09:16:04.000000000 +0100
@@ -1,7 +1,6 @@
 
-
 import zope.deferredimport.sample5
 
+
 def getone():
     return zope.deferredimport.sample5.one
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/zope.deferredimport-4.3.1/src/zope/deferredimport/samples/sample7.py 
new/zope.deferredimport-4.4/src/zope/deferredimport/samples/sample7.py
--- old/zope.deferredimport-4.3.1/src/zope/deferredimport/samples/sample7.py    
2019-08-05 08:11:50.000000000 +0200
+++ new/zope.deferredimport-4.4/src/zope/deferredimport/samples/sample7.py      
2021-12-10 09:16:04.000000000 +0100
@@ -1,12 +1,10 @@
 
-
 import zope.deferredimport
 zope.deferredimport.initialize()
 
 zope.deferredimport.deprecated(
     "Import from sample1 instead",
-    x = 'zope.deferredimport.sample1:x',
-    y = 'zope.deferredimport.sample1:C.y',
-    z = 'zope.deferredimport.sample1:z',
+    x='zope.deferredimport.sample1:x',
+    y='zope.deferredimport.sample1:C.y',
+    z='zope.deferredimport.sample1:z',
     )
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/zope.deferredimport-4.3.1/src/zope/deferredimport/samples/sample8.py 
new/zope.deferredimport-4.4/src/zope/deferredimport/samples/sample8.py
--- old/zope.deferredimport-4.3.1/src/zope/deferredimport/samples/sample8.py    
2019-08-05 08:11:50.000000000 +0200
+++ new/zope.deferredimport-4.4/src/zope/deferredimport/samples/sample8.py      
2021-12-10 09:16:04.000000000 +0100
@@ -1,15 +1,13 @@
 
-
 import zope.deferredimport
 
 zope.deferredimport.deprecatedFrom(
     "Import from sample1 instead",
     'zope.deferredimport.sample1',
     'x', 'z', 'q',
-    )
+)
 
 zope.deferredimport.defineFrom(
     'zope.deferredimport.sample9',
     'a', 'b', 'c',
-    )
-
+)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/zope.deferredimport-4.3.1/src/zope/deferredimport/samples/sample9.py 
new/zope.deferredimport-4.4/src/zope/deferredimport/samples/sample9.py
--- old/zope.deferredimport-4.3.1/src/zope/deferredimport/samples/sample9.py    
2019-08-05 08:11:50.000000000 +0200
+++ new/zope.deferredimport-4.4/src/zope/deferredimport/samples/sample9.py      
2021-12-10 09:16:04.000000000 +0100
@@ -1,3 +1,3 @@
 
 print('Imported sample 9')
-a, b, c = range(10,13)
+a, b, c = range(10, 13)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/zope.deferredimport-4.3.1/src/zope.deferredimport.egg-info/PKG-INFO 
new/zope.deferredimport-4.4/src/zope.deferredimport.egg-info/PKG-INFO
--- old/zope.deferredimport-4.3.1/src/zope.deferredimport.egg-info/PKG-INFO     
2019-08-05 08:11:50.000000000 +0200
+++ new/zope.deferredimport-4.4/src/zope.deferredimport.egg-info/PKG-INFO       
2021-12-10 09:16:06.000000000 +0100
@@ -1,138 +1,13 @@
 Metadata-Version: 2.1
 Name: zope.deferredimport
-Version: 4.3.1
+Version: 4.4
 Summary: zope.deferredimport allows you to perform imports names that will 
only be resolved when used in the code.
 Home-page: http://github.com/zopefoundation/zope.deferredimport
 Author: Zope Foundation and Contributors
 Author-email: zope-...@zope.org
 License: ZPL 2.1
-Description: =========================
-         ``zope.deferredimport``
-        =========================
-        
-        .. image:: https://img.shields.io/pypi/v/zope.deferredimport.svg
-                :target: https://pypi.python.org/pypi/zope.deferredimport/
-                :alt: Latest release
-        
-        .. image:: 
https://img.shields.io/pypi/pyversions/zope.deferredimport.svg
-                :target: https://pypi.org/project/zope.deferredimport/
-                :alt: Supported Python versions
-        
-        .. image:: 
https://travis-ci.org/zopefoundation/zope.deferredimport.svg?branch=master
-                :target: 
https://travis-ci.org/zopefoundation/zope.deferredimport
-        
-        .. image:: 
https://coveralls.io/repos/github/zopefoundation/zope.deferredimport/badge.svg?branch=master
-                :target: 
https://coveralls.io/github/zopefoundation/zope.deferredimport?branch=master
-        
-        .. image:: 
https://readthedocs.org/projects/zopedeferredimport/badge/?version=latest
-                :target: http://zopedeferredimport.readthedocs.io/en/latest/
-                :alt: Documentation Status
-        
-        Often, especially for package modules, you want to import names for
-        convenience, but not actually perform the imports until necessary.
-        The zope.deferredimport package provided facilities for defining names
-        in modules that will be imported from somewhere else when used.  You
-        can also cause deprecation warnings to be issued when a variable is
-        used.
-        
-        Documentation is hosted at https://zopedeferredimport.readthedocs.io/
-        
-        
-        =========
-         Changes
-        =========
-        
-        4.3.1 (2019-08-05)
-        ==================
-        
-        - Avoid race condition in ``deferredmodule.ModuleProxy.__getattr__``
-          `#8 
<https://github.com/zopefoundation/zope.deferredimport/issues/8>`_.
-        
-        
-        4.3 (2018-10-05)
-        ================
-        
-        - Add support for Python 3.7.
-        
-        
-        4.2.1 (2017-10-24)
-        ==================
-        
-        - Preserve the docstrings of proxied modules created with
-          ``deprecatedFrom``, ``deferredFrom``, etc. See `issue 5
-          <https://github.com/zopefoundation/zope.deferredimport/issues/5>`_.
-        
-        
-        4.2.0 (2017-08-08)
-        ==================
-        
-        - Add support for Python 3.5 and 3.6.
-        
-        - Drop support for Python 2.6 and 3.3.
-        
-        - Convert doctests to Sphinx documentation, including building docs
-          and running doctest snippets under ``tox``.
-        
-        
-        4.1.0 (2014-12-26)
-        ==================
-        
-        - Add support for PyPy.  PyPy3 support is blocked on release of fix 
for:
-          https://bitbucket.org/pypy/pypy/issue/1946
-        
-        - Add support for Python 3.4.
-        
-        - Add support for testing on Travis.
-        
-        
-        4.0.0 (2013-02-28)
-        ==================
-        
-        - Add support for Python 3.3.
-        
-        - Drop support for Python 2.4 and 2.5.
-        
-        
-        3.5.3 (2010-09-25)
-        ==================
-        
-        - Add test extra to declare test dependency on ``zope.testing``.
-        
-        
-        3.5.2 (2010-05-24)
-        ==================
-        
-        - Fix unit tests broken under Python 2.4 by the switch to the standard
-          library ``doctest`` module.
-        
-        
-        3.5.1 (2010-04-30)
-        ==================
-        
-        - Prefer the standard library's ``doctest`` module to the one from
-          ``zope.testing``.
-        
-        
-        3.5.0 (2009-02-04)
-        ==================
-        
-        - Add support to bootstrap on Jython.
-        
-        - Add reference documentation.
-        
-        
-        3.4.0 (2007-07-19)
-        ==================
-        
-        - Finish release of ``zope.deferredimport``.
-        
-        
-        3.4.0b1 (2007-07-09)
-        ====================
-        
-        - Initial release as a separate project, corresponding to the
-          ``zope.deferredimport`` from Zope 3.4.0b1.
-        
+Project-URL: Issue Tracker, 
https://github.com/zopefoundation/zope.deferredimport/issues
+Project-URL: Sources, https://github.com/zopefoundation/zope.deferredimport
 Platform: UNKNOWN
 Classifier: Development Status :: 5 - Production/Stable
 Classifier: Intended Audience :: Developers
@@ -141,15 +16,156 @@
 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 :: Implementation :: CPython
 Classifier: Programming Language :: Python :: Implementation :: PyPy
 Classifier: Natural Language :: English
 Classifier: Operating System :: OS Independent
 Classifier: Topic :: Internet :: WWW/HTTP
 Classifier: Topic :: Software Development
-Provides-Extra: docs
+Requires-Python: >=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*
 Provides-Extra: test
+Provides-Extra: docs
+License-File: LICENSE.txt
+
+=========================
+ ``zope.deferredimport``
+=========================
+
+.. image:: https://img.shields.io/pypi/v/zope.deferredimport.svg
+        :target: https://pypi.python.org/pypi/zope.deferredimport/
+        :alt: Latest release
+
+.. image:: https://img.shields.io/pypi/pyversions/zope.deferredimport.svg
+        :target: https://pypi.org/project/zope.deferredimport/
+        :alt: Supported Python versions
+
+.. image:: 
https://travis-ci.com/zopefoundation/zope.deferredimport.svg?branch=master
+        :target: https://travis-ci.com/zopefoundation/zope.deferredimport
+
+.. image:: 
https://coveralls.io/repos/github/zopefoundation/zope.deferredimport/badge.svg?branch=master
+        :target: 
https://coveralls.io/github/zopefoundation/zope.deferredimport?branch=master
+
+.. image:: 
https://readthedocs.org/projects/zopedeferredimport/badge/?version=latest
+        :target: http://zopedeferredimport.readthedocs.io/en/latest/
+        :alt: Documentation Status
+
+Often, especially for package modules, you want to import names for
+convenience, but not actually perform the imports until necessary.
+The zope.deferredimport package provided facilities for defining names
+in modules that will be imported from somewhere else when used.  You
+can also cause deprecation warnings to be issued when a variable is
+used.
+
+Documentation is hosted at https://zopedeferredimport.readthedocs.io/
+
+
+=========
+ Changes
+=========
+
+4.4 (2021-12-10)
+================
+
+- Add support for Python 3.8, 3.9 and 3.10.
+
+- Drop support for Python 3.4.
+
+
+4.3.1 (2019-08-05)
+==================
+
+- Avoid race condition in ``deferredmodule.ModuleProxy.__getattr__``
+  `#8 <https://github.com/zopefoundation/zope.deferredimport/issues/8>`_.
+
+
+4.3 (2018-10-05)
+================
+
+- Add support for Python 3.7.
+
+
+4.2.1 (2017-10-24)
+==================
+
+- Preserve the docstrings of proxied modules created with
+  ``deprecatedFrom``, ``deferredFrom``, etc. See `issue 5
+  <https://github.com/zopefoundation/zope.deferredimport/issues/5>`_.
+
+
+4.2.0 (2017-08-08)
+==================
+
+- Add support for Python 3.5 and 3.6.
+
+- Drop support for Python 2.6 and 3.3.
+
+- Convert doctests to Sphinx documentation, including building docs
+  and running doctest snippets under ``tox``.
+
+
+4.1.0 (2014-12-26)
+==================
+
+- Add support for PyPy.  PyPy3 support is blocked on release of fix for:
+  https://bitbucket.org/pypy/pypy/issue/1946
+
+- Add support for Python 3.4.
+
+- Add support for testing on Travis.
+
+
+4.0.0 (2013-02-28)
+==================
+
+- Add support for Python 3.3.
+
+- Drop support for Python 2.4 and 2.5.
+
+
+3.5.3 (2010-09-25)
+==================
+
+- Add test extra to declare test dependency on ``zope.testing``.
+
+
+3.5.2 (2010-05-24)
+==================
+
+- Fix unit tests broken under Python 2.4 by the switch to the standard
+  library ``doctest`` module.
+
+
+3.5.1 (2010-04-30)
+==================
+
+- Prefer the standard library's ``doctest`` module to the one from
+  ``zope.testing``.
+
+
+3.5.0 (2009-02-04)
+==================
+
+- Add support to bootstrap on Jython.
+
+- Add reference documentation.
+
+
+3.4.0 (2007-07-19)
+==================
+
+- Finish release of ``zope.deferredimport``.
+
+
+3.4.0b1 (2007-07-09)
+====================
+
+- Initial release as a separate project, corresponding to the
+  ``zope.deferredimport`` from Zope 3.4.0b1.
+
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/zope.deferredimport-4.3.1/src/zope.deferredimport.egg-info/SOURCES.txt 
new/zope.deferredimport-4.4/src/zope.deferredimport.egg-info/SOURCES.txt
--- old/zope.deferredimport-4.3.1/src/zope.deferredimport.egg-info/SOURCES.txt  
2019-08-05 08:11:51.000000000 +0200
+++ new/zope.deferredimport-4.4/src/zope.deferredimport.egg-info/SOURCES.txt    
2021-12-10 09:16:06.000000000 +0100
@@ -1,12 +1,8 @@
-.coveragerc
-.gitignore
-.travis.yml
 CHANGES.rst
 COPYRIGHT.txt
 LICENSE.txt
 MANIFEST.in
 README.rst
-bootstrap.py
 buildout.cfg
 setup.cfg
 setup.py
@@ -31,8 +27,6 @@
 src/zope/deferredimport/samples/__init__.py
 src/zope/deferredimport/samples/sample1.py
 src/zope/deferredimport/samples/sample2.py
-src/zope/deferredimport/samples/sample3.py
-src/zope/deferredimport/samples/sample4.py
 src/zope/deferredimport/samples/sample5.py
 src/zope/deferredimport/samples/sample6.py
 src/zope/deferredimport/samples/sample7.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zope.deferredimport-4.3.1/tox.ini 
new/zope.deferredimport-4.4/tox.ini
--- old/zope.deferredimport-4.3.1/tox.ini       2019-08-05 08:11:50.000000000 
+0200
+++ new/zope.deferredimport-4.4/tox.ini 2021-12-10 09:16:04.000000000 +0100
@@ -1,29 +1,81 @@
+# 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
+    pypy
+    pypy3
+    docs
+    coverage
 
 [testenv]
-commands =
-    zope-testrunner --test-path=src []
-    sphinx-build -b doctest -d {envdir}/.cache/doctrees docs 
{envdir}/.cache/doctest
-deps =
-    .[test,docs]
-
-[testenv:coverage]
 usedevelop = true
-basepython =
-    python3.7
+deps =
 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 --fail-under=100
+    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:lint]
+basepython = python3
+skip_install = true
 deps =
-    {[testenv]deps}
-    coverage
+    flake8
+    check-manifest
+    check-python-versions >= 0.19.1
+    wheel
+commands =
+    flake8 src setup.py
+    check-manifest
+    check-python-versions
 
 [testenv:docs]
-basepython =
-    python3.6
+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 =
+    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.deferredimport
+
+[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

Reply via email to