Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-acme for openSUSE:Factory 
checked in at 2021-03-08 15:19:23
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-acme (Old)
 and      /work/SRC/openSUSE:Factory/.python-acme.new.2378 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-acme"

Mon Mar  8 15:19:23 2021 rev:49 rq:877591 version:1.13.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-acme/python-acme.changes  2021-01-08 
17:40:16.825024526 +0100
+++ /work/SRC/openSUSE:Factory/.python-acme.new.2378/python-acme.changes        
2021-03-08 15:21:01.398104154 +0100
@@ -1,0 +2,12 @@
+Mon Mar  8 08:06:00 UTC 2021 - Mark??ta Machov?? <mmach...@suse.com>
+
+- update to version 1.13.0
+  * Support for Python 2 has been removed.
+  * The acme library no longer depends on the security extras from 
+    requests which was needed to support SNI in TLS requests when 
+    using old versions of Python 2.
+  * When revoking a certificate by --cert-name, it is no longer 
+    necessary to specify the --server if the certificate was 
+    obtained from a non-default ACME server.
+
+-------------------------------------------------------------------

Old:
----
  acme-1.11.0.tar.gz
  acme-1.11.0.tar.gz.asc

New:
----
  acme-1.13.0.tar.gz
  acme-1.13.0.tar.gz.asc

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

Other differences:
------------------
++++++ python-acme.spec ++++++
--- /var/tmp/diff_new_pack.FhKluz/_old  2021-03-08 15:21:02.118104682 +0100
+++ /var/tmp/diff_new_pack.FhKluz/_new  2021-03-08 15:21:02.122104685 +0100
@@ -17,9 +17,10 @@
 
 
 %{?!python_module:%define python_module() python-%{**} python3-%{**}}
+%define skip_python2 1
 %define libname acme
 Name:           python-%{libname}
-Version:        1.11.0
+Version:        1.13.0
 Release:        0
 Summary:        Python library for the ACME protocol
 License:        Apache-2.0
@@ -27,31 +28,24 @@
 Source0:        
https://files.pythonhosted.org/packages/source/a/%{libname}/%{libname}-%{version}.tar.gz
 Source1:        
https://files.pythonhosted.org/packages/source/a/%{libname}/%{libname}-%{version}.tar.gz.asc
 Source2:        %{name}.keyring
-BuildRequires:  %{python_module cryptography >= 1.2.3}
+BuildRequires:  %{python_module cryptography >= 2.1.4}
 BuildRequires:  %{python_module josepy >= 1.1.0}
-BuildRequires:  %{python_module mock}
-BuildRequires:  %{python_module pyOpenSSL >= 0.15.1}
+BuildRequires:  %{python_module pyOpenSSL >= 17.3.0}
 BuildRequires:  %{python_module pyRFC3339}
 BuildRequires:  %{python_module pytest}
 BuildRequires:  %{python_module pytz}
 BuildRequires:  %{python_module requests >= 2.6.0}
 BuildRequires:  %{python_module requests-toolbelt >= 0.3.0}
 BuildRequires:  %{python_module setuptools}
-BuildRequires:  %{python_module six >= 1.9.0}
-BuildRequires:  %{python_module tox}
 BuildRequires:  fdupes
 BuildRequires:  python-rpm-macros
-Requires:       python-cryptography >= 1.2.3
+Requires:       python-cryptography >= 2.1.4
 Requires:       python-josepy >= 1.1.0
-Requires:       python-pyOpenSSL >= 0.15.1
+Requires:       python-pyOpenSSL >= 17.3.0
 Requires:       python-pyRFC3339
 Requires:       python-pytz
 Requires:       python-requests >= 2.6.0
 Requires:       python-requests-toolbelt >= 0.3.0
-Requires:       python-six >= 1.9.0
-%ifpython2
-Requires:       python-mock
-%endif
 BuildArch:      noarch
 %if %{?suse_version} < 1500
 BuildRequires:  %{python_module devel}

++++++ acme-1.11.0.tar.gz -> acme-1.13.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/acme-1.11.0/PKG-INFO new/acme-1.13.0/PKG-INFO
--- old/acme-1.11.0/PKG-INFO    2021-01-05 18:37:12.923076200 +0100
+++ new/acme-1.13.0/PKG-INFO    2021-03-02 22:37:11.656468600 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: acme
-Version: 1.11.0
+Version: 1.13.0
 Summary: ACME protocol implementation in Python
 Home-page: https://github.com/letsencrypt/letsencrypt
 Author: Certbot Project
@@ -12,8 +12,6 @@
 Classifier: Intended Audience :: Developers
 Classifier: License :: OSI Approved :: Apache Software License
 Classifier: Programming Language :: Python
-Classifier: Programming Language :: Python :: 2
-Classifier: Programming Language :: Python :: 2.7
 Classifier: Programming Language :: Python :: 3
 Classifier: Programming Language :: Python :: 3.6
 Classifier: Programming Language :: Python :: 3.7
@@ -21,6 +19,6 @@
 Classifier: Programming Language :: Python :: 3.9
 Classifier: Topic :: Internet :: WWW/HTTP
 Classifier: Topic :: Security
-Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*
+Requires-Python: >=3.6
 Provides-Extra: dev
 Provides-Extra: docs
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/acme-1.11.0/acme/__init__.py 
new/acme-1.13.0/acme/__init__.py
--- old/acme-1.11.0/acme/__init__.py    2021-01-05 18:37:05.000000000 +0100
+++ new/acme-1.13.0/acme/__init__.py    2021-03-02 22:37:04.000000000 +0100
@@ -6,7 +6,6 @@
 
 """
 import sys
-import warnings
 
 # This code exists to keep backwards compatibility with people using acme.jose
 # before it became the standalone josepy package.
@@ -20,10 +19,3 @@
     # preserved (acme.jose.* is josepy.*)
     if mod == 'josepy' or mod.startswith('josepy.'):
         sys.modules['acme.' + mod.replace('josepy', 'jose', 1)] = 
sys.modules[mod]
-
-if sys.version_info[0] == 2:
-    warnings.warn(
-        "Python 2 support will be dropped in the next release of acme. "
-        "Please upgrade your Python version.",
-        PendingDeprecationWarning,
-    )  # pragma: no cover
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/acme-1.11.0/acme/challenges.py 
new/acme-1.13.0/acme/challenges.py
--- old/acme-1.11.0/acme/challenges.py  2021-01-05 18:37:05.000000000 +0100
+++ new/acme-1.13.0/acme/challenges.py  2021-03-02 22:37:04.000000000 +0100
@@ -9,7 +9,6 @@
 from cryptography.hazmat.primitives import hashes  # type: ignore
 import josepy as jose
 import requests
-import six
 from OpenSSL import SSL  # type: ignore # 
https://github.com/python/typeshed/issues/2052
 from OpenSSL import crypto
 
@@ -145,12 +144,11 @@
         return jobj
 
 
-@six.add_metaclass(abc.ABCMeta)
-class KeyAuthorizationChallenge(_TokenChallenge):
+class KeyAuthorizationChallenge(_TokenChallenge, metaclass=abc.ABCMeta):
     """Challenge based on Key Authorization.
 
     :param response_cls: Subclass of `KeyAuthorizationChallengeResponse`
-        that will be used to generate `response`.
+        that will be used to generate ``response``.
     :param str typ: type of the challenge
     """
     typ = NotImplemented
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/acme-1.11.0/acme/client.py 
new/acme-1.13.0/acme/client.py
--- old/acme-1.11.0/acme/client.py      2021-01-05 18:37:05.000000000 +0100
+++ new/acme-1.13.0/acme/client.py      2021-03-02 22:37:04.000000000 +0100
@@ -4,9 +4,9 @@
 import datetime
 from email.utils import parsedate_tz
 import heapq
+import http.client as http_client
 import logging
 import re
-import sys
 import time
 
 import josepy as jose
@@ -15,8 +15,6 @@
 from requests.adapters import HTTPAdapter
 from requests.utils import parse_header_links
 from requests_toolbelt.adapters.source import SourceAddressAdapter
-import six
-from six.moves import http_client
 
 from acme import crypto_util
 from acme import errors
@@ -30,23 +28,12 @@
 
 logger = logging.getLogger(__name__)
 
-# Prior to Python 2.7.9 the stdlib SSL module did not allow a user to configure
-# many important security related options. On these platforms we use PyOpenSSL
-# for SSL, which does allow these options to be configured.
-# 
https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning
-if sys.version_info < (2, 7, 9):  # pragma: no cover
-    try:
-        requests.packages.urllib3.contrib.pyopenssl.inject_into_urllib3()  # 
type: ignore
-    except AttributeError:
-        import urllib3.contrib.pyopenssl
-        urllib3.contrib.pyopenssl.inject_into_urllib3()
-
 DEFAULT_NETWORK_TIMEOUT = 45
 
 DER_CONTENT_TYPE = 'application/pkix-cert'
 
 
-class ClientBase(object):
+class ClientBase:
     """ACME client base object.
 
     :ivar messages.Directory directory:
@@ -260,7 +247,7 @@
         if net is None:
             net = ClientNetwork(key, alg=alg, verify_ssl=verify_ssl)
 
-        if isinstance(directory, six.string_types):
+        if isinstance(directory, str):
             directory = messages.Directory.from_json(
                 net.get(directory).json())
         super(Client, self).__init__(directory=directory,
@@ -475,7 +462,7 @@
                     exhausted.add(authzr)
 
         if exhausted or any(authzr.body.status == messages.STATUS_INVALID
-                            for authzr in six.itervalues(updated)):
+                            for authzr in updated.values()):
             raise errors.PollError(exhausted, updated)
 
         updated_authzrs = tuple(updated[authzr] for authzr in authzrs)
@@ -808,7 +795,7 @@
                 if 'rel' in l and 'url' in l and l['rel'] == relation_type]
 
 
-class BackwardsCompatibleClientV2(object):
+class BackwardsCompatibleClientV2:
     """ACME client wrapper that tends towards V2-style calls, but
     supports V1 servers.
 
@@ -951,7 +938,7 @@
         return self.client.external_account_required()
 
 
-class ClientNetwork(object):
+class ClientNetwork:
     """Wrapper around requests that signs POSTs for authentication.
 
     Also adds user agent, and handles Content-Type.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/acme-1.11.0/acme/crypto_util.py 
new/acme-1.13.0/acme/crypto_util.py
--- old/acme-1.11.0/acme/crypto_util.py 2021-01-05 18:37:05.000000000 +0100
+++ new/acme-1.13.0/acme/crypto_util.py 2021-03-02 22:37:04.000000000 +0100
@@ -27,7 +27,7 @@
 _DEFAULT_SSL_METHOD = SSL.SSLv23_METHOD  # type: ignore
 
 
-class _DefaultCertSelection(object):
+class _DefaultCertSelection:
     def __init__(self, certs):
         self.certs = certs
 
@@ -36,7 +36,7 @@
         return self.certs.get(server_name, None)
 
 
-class SSLSocket(object):  # pylint: disable=too-few-public-methods
+class SSLSocket:  # pylint: disable=too-few-public-methods
     """SSL wrapper for sockets.
 
     :ivar socket sock: Original wrapped socket.
@@ -93,7 +93,7 @@
             new_context.set_alpn_select_callback(self.alpn_selection)
         connection.set_context(new_context)
 
-    class FakeConnection(object):
+    class FakeConnection:
         """Fake OpenSSL.SSL.Connection."""
 
         # pylint: disable=missing-function-docstring
@@ -166,7 +166,7 @@
             " from {0}:{1}".format(
                 source_address[0],
                 source_address[1]
-            ) if socket_kwargs else ""
+            ) if any(source_address) else ""
         )
         socket_tuple = (host, port)  # type: Tuple[str, int]
         sock = socket.create_connection(socket_tuple, **socket_kwargs)  # 
type: ignore
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/acme-1.11.0/acme/errors.py 
new/acme-1.13.0/acme/errors.py
--- old/acme-1.11.0/acme/errors.py      2021-01-05 18:37:05.000000000 +0100
+++ new/acme-1.13.0/acme/errors.py      2021-03-02 22:37:04.000000000 +0100
@@ -49,7 +49,7 @@
     Replay-Nonce header field in each successful response to a POST it
     provides to a client (...)".
 
-    :ivar requests.Response response: HTTP Response
+    :ivar requests.Response ~.response: HTTP Response
 
     """
     def __init__(self, response, *args, **kwargs):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/acme-1.11.0/acme/magic_typing.py 
new/acme-1.13.0/acme/magic_typing.py
--- old/acme-1.11.0/acme/magic_typing.py        2021-01-05 18:37:05.000000000 
+0100
+++ new/acme-1.13.0/acme/magic_typing.py        2021-03-02 22:37:04.000000000 
+0100
@@ -1,16 +1,14 @@
-"""Shim class to not have to depend on typing module in prod."""
-import sys
+"""Simple shim around the typing module.
 
+This was useful when this code supported Python 2 and typing wasn't always
+available. This code is being kept for now for backwards compatibility.
 
-class TypingClass(object):
+"""
+from typing import *  # pylint: disable=wildcard-import, unused-wildcard-import
+from typing import Collection, IO  # type: ignore
+
+
+class TypingClass:
     """Ignore import errors by getting anything"""
     def __getattr__(self, name):
-        return None
-
-try:
-    # mypy doesn't respect modifying sys.modules
-    from typing import *  # pylint: disable=wildcard-import, 
unused-wildcard-import
-    from typing import Collection, IO  # type: ignore
-except ImportError:
-    # mypy complains because TypingClass is not a module
-    sys.modules[__name__] = TypingClass()  # type: ignore
+        return None  # pragma: no cover
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/acme-1.11.0/acme/messages.py 
new/acme-1.13.0/acme/messages.py
--- old/acme-1.11.0/acme/messages.py    2021-01-05 18:37:05.000000000 +0100
+++ new/acme-1.13.0/acme/messages.py    2021-03-02 22:37:04.000000000 +0100
@@ -1,8 +1,8 @@
 """ACME protocol messages."""
 import json
+from collections.abc import Hashable
 
 import josepy as jose
-import six
 
 from acme import challenges
 from acme import errors
@@ -11,13 +11,6 @@
 from acme import util
 from acme.mixins import ResourceMixin
 
-try:
-    from collections.abc import Hashable
-except ImportError:  # pragma: no cover
-    from collections import Hashable
-
-
-
 OLD_ERROR_PREFIX = "urn:acme:error:"
 ERROR_PREFIX = "urn:ietf:params:acme:error:"
 
@@ -68,7 +61,6 @@
     return False
 
 
-@six.python_2_unicode_compatible
 class Error(jose.JSONObjectWithFields, errors.Error):
     """ACME error.
 
@@ -158,9 +150,6 @@
     def __hash__(self):
         return hash((self.__class__, self.name))
 
-    def __ne__(self, other):
-        return not self == other
-
 
 class Status(_Constant):
     """ACME "status" field."""
@@ -275,7 +264,7 @@
 class ResourceWithURI(Resource):
     """ACME Resource with URI.
 
-    :ivar unicode uri: Location of the resource.
+    :ivar unicode ~.uri: Location of the resource.
 
     """
     uri = jose.Field('uri')  # no ChallengeResource.uri
@@ -285,7 +274,7 @@
     """ACME Resource Body."""
 
 
-class ExternalAccountBinding(object):
+class ExternalAccountBinding:
     """ACME External Account Binding"""
 
     @classmethod
@@ -627,7 +616,7 @@
     :ivar str finalize: URL to POST to to request issuance once all
         authorizations have "valid" status.
     :ivar datetime.datetime expires: When the order expires.
-    :ivar .Error error: Any error that occurred during finalization, if 
applicable.
+    :ivar ~.Error error: Any error that occurred during finalization, if 
applicable.
     """
     identifiers = jose.Field('identifiers', omitempty=True)
     status = jose.Field('status', decoder=Status.from_json,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/acme-1.11.0/acme/mixins.py 
new/acme-1.13.0/acme/mixins.py
--- old/acme-1.11.0/acme/mixins.py      2021-01-05 18:37:05.000000000 +0100
+++ new/acme-1.13.0/acme/mixins.py      2021-03-02 22:37:04.000000000 +0100
@@ -1,7 +1,7 @@
 """Useful mixins for Challenge and Resource objects"""
 
 
-class VersionedLEACMEMixin(object):
+class VersionedLEACMEMixin:
     """This mixin stores the version of Let's Encrypt's endpoint being used."""
     @property
     def le_acme_version(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/acme-1.11.0/acme/standalone.py 
new/acme-1.13.0/acme/standalone.py
--- old/acme-1.11.0/acme/standalone.py  2021-01-05 18:37:05.000000000 +0100
+++ new/acme-1.13.0/acme/standalone.py  2021-03-02 22:37:04.000000000 +0100
@@ -1,14 +1,13 @@
 """Support for standalone client challenge solvers. """
 import collections
 import functools
+import http.client as http_client
+import http.server as BaseHTTPServer
 import logging
 import socket
+import socketserver
 import threading
 
-from six.moves import BaseHTTPServer  # type: ignore
-from six.moves import http_client
-from six.moves import socketserver  # type: ignore
-
 from acme import challenges
 from acme import crypto_util
 from acme.magic_typing import List
@@ -54,7 +53,7 @@
     allow_reuse_address = True
 
 
-class BaseDualNetworkedServers(object):
+class BaseDualNetworkedServers:
     """Base class for a pair of IPv6 and IPv4 servers that tries to do 
everything
        it's asked for both servers, but where failures in one server don't
        affect the other.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/acme-1.11.0/acme/util.py new/acme-1.13.0/acme/util.py
--- old/acme-1.11.0/acme/util.py        2021-01-05 18:37:05.000000000 +0100
+++ new/acme-1.13.0/acme/util.py        2021-03-02 22:37:04.000000000 +0100
@@ -1,7 +1,6 @@
 """ACME utilities."""
-import six
 
 
 def map_keys(dikt, func):
     """Map dictionary keys."""
-    return {func(key): value for key, value in six.iteritems(dikt)}
+    return {func(key): value for key, value in dikt.items()}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/acme-1.11.0/acme.egg-info/PKG-INFO 
new/acme-1.13.0/acme.egg-info/PKG-INFO
--- old/acme-1.11.0/acme.egg-info/PKG-INFO      2021-01-05 18:37:12.000000000 
+0100
+++ new/acme-1.13.0/acme.egg-info/PKG-INFO      2021-03-02 22:37:11.000000000 
+0100
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: acme
-Version: 1.11.0
+Version: 1.13.0
 Summary: ACME protocol implementation in Python
 Home-page: https://github.com/letsencrypt/letsencrypt
 Author: Certbot Project
@@ -12,8 +12,6 @@
 Classifier: Intended Audience :: Developers
 Classifier: License :: OSI Approved :: Apache Software License
 Classifier: Programming Language :: Python
-Classifier: Programming Language :: Python :: 2
-Classifier: Programming Language :: Python :: 2.7
 Classifier: Programming Language :: Python :: 3
 Classifier: Programming Language :: Python :: 3.6
 Classifier: Programming Language :: Python :: 3.7
@@ -21,6 +19,6 @@
 Classifier: Programming Language :: Python :: 3.9
 Classifier: Topic :: Internet :: WWW/HTTP
 Classifier: Topic :: Security
-Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*
+Requires-Python: >=3.6
 Provides-Extra: dev
 Provides-Extra: docs
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/acme-1.11.0/acme.egg-info/requires.txt 
new/acme-1.13.0/acme.egg-info/requires.txt
--- old/acme-1.11.0/acme.egg-info/requires.txt  2021-01-05 18:37:12.000000000 
+0100
+++ new/acme-1.13.0/acme.egg-info/requires.txt  2021-03-02 22:37:11.000000000 
+0100
@@ -1,15 +1,11 @@
-cryptography>=1.2.3
+cryptography>=2.1.4
 josepy>=1.1.0
-PyOpenSSL>=0.15.1
+PyOpenSSL>=17.3.0
 pyrfc3339
 pytz
-requests[security]>=2.6.0
+requests>=2.6.0
 requests-toolbelt>=0.3.0
-setuptools
-six>=1.9.0
-
-[:python_version < "3.3"]
-mock
+setuptools>=39.0.1
 
 [dev]
 pytest
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/acme-1.11.0/docs/conf.py new/acme-1.13.0/docs/conf.py
--- old/acme-1.11.0/docs/conf.py        2021-01-05 18:37:05.000000000 +0100
+++ new/acme-1.13.0/docs/conf.py        2021-03-02 22:37:04.000000000 +0100
@@ -85,7 +85,9 @@
 
 # List of patterns, relative to source directory, that match files and
 # directories to ignore when looking for source files.
-exclude_patterns = ['_build']
+exclude_patterns = [
+    '_build',
+]
 
 # The reST default role (used for this markup: `text`) to use for all
 # documents.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/acme-1.11.0/docs/man/jws.rst 
new/acme-1.13.0/docs/man/jws.rst
--- old/acme-1.11.0/docs/man/jws.rst    2021-01-05 18:37:05.000000000 +0100
+++ new/acme-1.13.0/docs/man/jws.rst    2021-03-02 22:37:04.000000000 +0100
@@ -1 +1,3 @@
+:orphan:
+
 .. literalinclude:: ../jws-help.txt
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/acme-1.11.0/setup.py new/acme-1.13.0/setup.py
--- old/acme-1.11.0/setup.py    2021-01-05 18:37:06.000000000 +0100
+++ new/acme-1.13.0/setup.py    2021-03-02 22:37:05.000000000 +0100
@@ -1,40 +1,25 @@
-from distutils.version import LooseVersion
 import sys
 
-from setuptools import __version__ as setuptools_version
 from setuptools import find_packages
 from setuptools import setup
 
-version = '1.11.0'
+version = '1.13.0'
 
 # Please update tox.ini when modifying dependency version requirements
 install_requires = [
-    # load_pem_private/public_key (>=0.6)
-    # rsa_recover_prime_factors (>=0.8)
-    'cryptography>=1.2.3',
+    'cryptography>=2.1.4',
     # formerly known as acme.jose:
     # 1.1.0+ is required to avoid the warnings described at
     # https://github.com/certbot/josepy/issues/13.
     'josepy>=1.1.0',
-    # Connection.set_tlsext_host_name (>=0.13) + matching Xenial requirements 
(>=0.15.1)
-    'PyOpenSSL>=0.15.1',
+    'PyOpenSSL>=17.3.0',
     'pyrfc3339',
     'pytz',
-    'requests[security]>=2.6.0',  # security extras added in 2.4.1
+    'requests>=2.6.0',
     'requests-toolbelt>=0.3.0',
-    'setuptools',
-    'six>=1.9.0',  # needed for python_2_unicode_compatible
+    'setuptools>=39.0.1',
 ]
 
-setuptools_known_environment_markers = (LooseVersion(setuptools_version) >= 
LooseVersion('36.2'))
-if setuptools_known_environment_markers:
-    install_requires.append('mock ; python_version < "3.3"')
-elif 'bdist_wheel' in sys.argv[1:]:
-    raise RuntimeError('Error, you are trying to build certbot wheels using an 
old version '
-                       'of setuptools. Version 36.2+ of setuptools is 
required.')
-elif sys.version_info < (3,3):
-    install_requires.append('mock')
-
 dev_extras = [
     'pytest',
     'pytest-xdist',
@@ -54,14 +39,12 @@
     author="Certbot Project",
     author_email='client-...@letsencrypt.org',
     license='Apache License 2.0',
-    python_requires='>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, 
!=3.5.*',
+    python_requires='>=3.6',
     classifiers=[
         'Development Status :: 5 - Production/Stable',
         'Intended Audience :: Developers',
         'License :: OSI Approved :: Apache Software License',
         'Programming Language :: Python',
-        'Programming Language :: Python :: 2',
-        'Programming Language :: Python :: 2.7',
         'Programming Language :: Python :: 3',
         'Programming Language :: Python :: 3.6',
         'Programming Language :: Python :: 3.7',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/acme-1.11.0/tests/challenges_test.py 
new/acme-1.13.0/tests/challenges_test.py
--- old/acme-1.11.0/tests/challenges_test.py    2021-01-05 18:37:05.000000000 
+0100
+++ new/acme-1.13.0/tests/challenges_test.py    2021-03-02 22:37:04.000000000 
+0100
@@ -1,14 +1,11 @@
 """Tests for acme.challenges."""
+import urllib.parse as urllib_parse
 import unittest
+from unittest import mock
 
 import josepy as jose
 import OpenSSL
-try:
-    import mock
-except ImportError: # pragma: no cover
-    from unittest import mock # type: ignore
 import requests
-from six.moves.urllib import parse as urllib_parse
 
 from acme import errors
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/acme-1.11.0/tests/client_test.py 
new/acme-1.13.0/tests/client_test.py
--- old/acme-1.11.0/tests/client_test.py        2021-01-05 18:37:05.000000000 
+0100
+++ new/acme-1.13.0/tests/client_test.py        2021-03-02 22:37:04.000000000 
+0100
@@ -2,17 +2,14 @@
 # pylint: disable=too-many-lines
 import copy
 import datetime
+import http.client as http_client
 import json
 import unittest
+from unittest import mock
 
 import josepy as jose
-try:
-    import mock
-except ImportError: # pragma: no cover
-    from unittest import mock # type: ignore
 import OpenSSL
 import requests
-from six.moves import http_client  # pylint: disable=import-error
 
 from acme import challenges
 from acme import errors
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/acme-1.11.0/tests/crypto_util_test.py 
new/acme-1.13.0/tests/crypto_util_test.py
--- old/acme-1.11.0/tests/crypto_util_test.py   2021-01-05 18:37:05.000000000 
+0100
+++ new/acme-1.13.0/tests/crypto_util_test.py   2021-03-02 22:37:04.000000000 
+0100
@@ -1,14 +1,13 @@
 """Tests for acme.crypto_util."""
 import itertools
 import socket
+import socketserver
 import threading
 import time
 import unittest
 
 import josepy as jose
 import OpenSSL
-import six
-from six.moves import socketserver  # type: ignore  # pylint: 
disable=import-error
 
 from acme import errors
 import test_util
@@ -27,8 +26,6 @@
 
         class _TestServer(socketserver.TCPServer):
 
-            # six.moves.* | pylint: 
disable=attribute-defined-outside-init,no-init
-
             def server_bind(self):  # pylint: disable=missing-docstring
                 self.socket = SSLSocket(socket.socket(),
                         certs)
@@ -62,7 +59,6 @@
         self.assertRaises(errors.Error, self._probe, b'bar')
 
     def test_probe_connection_error(self):
-        # pylint has a hard time with six
         self.server.server_close()
         original_timeout = socket.getdefaulttimeout()
         try:
@@ -121,9 +117,9 @@
     @classmethod
     def _get_idn_names(cls):
         """Returns expected names from '{cert,csr}-idnsans.pem'."""
-        chars = [six.unichr(i) for i in itertools.chain(range(0x3c3, 0x400),
-                                                        range(0x641, 0x6fc),
-                                                        range(0x1820, 0x1877))]
+        chars = [chr(i) for i in itertools.chain(range(0x3c3, 0x400),
+                                                 range(0x641, 0x6fc),
+                                                 range(0x1820, 0x1877))]
         return [''.join(chars[i: i + 45]) + '.invalid'
                 for i in range(0, len(chars), 45)]
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/acme-1.11.0/tests/errors_test.py 
new/acme-1.13.0/tests/errors_test.py
--- old/acme-1.11.0/tests/errors_test.py        2021-01-05 18:37:05.000000000 
+0100
+++ new/acme-1.13.0/tests/errors_test.py        2021-03-02 22:37:04.000000000 
+0100
@@ -1,10 +1,6 @@
 """Tests for acme.errors."""
 import unittest
-
-try:
-    import mock
-except ImportError: # pragma: no cover
-    from unittest import mock # type: ignore
+from unittest import mock
 
 
 class BadNonceTest(unittest.TestCase):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/acme-1.11.0/tests/magic_typing_test.py 
new/acme-1.13.0/tests/magic_typing_test.py
--- old/acme-1.11.0/tests/magic_typing_test.py  2021-01-05 18:37:05.000000000 
+0100
+++ new/acme-1.13.0/tests/magic_typing_test.py  2021-03-02 22:37:04.000000000 
+0100
@@ -1,11 +1,7 @@
 """Tests for acme.magic_typing."""
 import sys
 import unittest
-
-try:
-    import mock
-except ImportError: # pragma: no cover
-    from unittest import mock # type: ignore
+from unittest import mock
 
 
 class MagicTypingTest(unittest.TestCase):
@@ -26,19 +22,6 @@
         del sys.modules['acme.magic_typing']
         sys.modules['typing'] = temp_typing
 
-    def test_import_failure(self):
-        try:
-            import typing as temp_typing
-        except ImportError: # pragma: no cover
-            temp_typing = None # pragma: no cover
-        sys.modules['typing'] = None
-        if 'acme.magic_typing' in sys.modules:
-            del sys.modules['acme.magic_typing'] # pragma: no cover
-        from acme.magic_typing import Text
-        self.assertTrue(Text is None)
-        del sys.modules['acme.magic_typing']
-        sys.modules['typing'] = temp_typing
-
 
 if __name__ == '__main__':
     unittest.main()  # pragma: no cover
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/acme-1.11.0/tests/messages_test.py 
new/acme-1.13.0/tests/messages_test.py
--- old/acme-1.11.0/tests/messages_test.py      2021-01-05 18:37:05.000000000 
+0100
+++ new/acme-1.13.0/tests/messages_test.py      2021-03-02 22:37:04.000000000 
+0100
@@ -1,11 +1,8 @@
 """Tests for acme.messages."""
 import unittest
+from unittest import mock
 
 import josepy as jose
-try:
-    import mock
-except ImportError: # pragma: no cover
-    from unittest import mock # type: ignore
 
 from acme import challenges
 import test_util
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/acme-1.11.0/tests/standalone_test.py 
new/acme-1.13.0/tests/standalone_test.py
--- old/acme-1.11.0/tests/standalone_test.py    2021-01-05 18:37:05.000000000 
+0100
+++ new/acme-1.13.0/tests/standalone_test.py    2021-03-02 22:37:04.000000000 
+0100
@@ -1,16 +1,13 @@
 """Tests for acme.standalone."""
+import http.client as http_client
 import socket
+import socketserver
 import threading
 import unittest
+from unittest import mock
 
 import josepy as jose
-try:
-    import mock
-except ImportError: # pragma: no cover
-    from unittest import mock # type: ignore
 import requests
-from six.moves import http_client  # pylint: disable=import-error
-from six.moves import socketserver  # type: ignore  # pylint: 
disable=import-error
 
 from acme import challenges
 from acme import crypto_util

Reply via email to