Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-launchpadlib for 
openSUSE:Factory checked in at 2024-11-08 12:01:06
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-launchpadlib (Old)
 and      /work/SRC/openSUSE:Factory/.python-launchpadlib.new.2017 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-launchpadlib"

Fri Nov  8 12:01:06 2024 rev:2 rq:1222644 version:2.0.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-launchpadlib/python-launchpadlib.changes  
2024-06-05 17:39:26.795654298 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-launchpadlib.new.2017/python-launchpadlib.changes
        2024-11-08 12:05:17.648276253 +0100
@@ -1,0 +2,7 @@
+Fri Nov  8 06:21:44 UTC 2024 - Matej Cepl <mc...@cepl.eu>
+
+- Update to 2.0.0:
+  - Remove support for Python 2.
+- Remove upstreamed patch 0001-Remove-support-for-Python-2.patch
+
+-------------------------------------------------------------------

Old:
----
  0001-Remove-support-for-Python-2.patch
  launchpadlib-1.11.0.tar.gz

New:
----
  launchpadlib-2.0.0.tar.gz

BETA DEBUG BEGIN:
  Old:  - Remove support for Python 2.
- Remove upstreamed patch 0001-Remove-support-for-Python-2.patch
BETA DEBUG END:

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

Other differences:
------------------
++++++ python-launchpadlib.spec ++++++
--- /var/tmp/diff_new_pack.n5x5Rq/_old  2024-11-08 12:05:18.064293675 +0100
+++ /var/tmp/diff_new_pack.n5x5Rq/_new  2024-11-08 12:05:18.064293675 +0100
@@ -17,16 +17,12 @@
 
 
 Name:           python-launchpadlib
-Version:        1.11.0
+Version:        2.0.0
 Release:        0
 Summary:        Python client library for Launchpad's web service
 License:        LGPL-3.0-only
 URL:            https://pypi.org/project/launchpadlib/
 Source:         
https://launchpad.net/launchpadlib/trunk/%{version}/+download/launchpadlib-%{version}.tar.gz
-# PATCH-FEATURE-UPSTREAM 0001-Remove-support-for-Python-2.patch mc...@suse.com
-# Code from 
https://code.launchpad.net/~cjwatson/launchpadlib/+git/launchpadlib/+merge/461678
-# Remove support for Python 2
-Patch0:         0001-Remove-support-for-Python-2.patch
 BuildRequires:  %{python_module base >= 3.7}
 BuildRequires:  %{python_module httplib2}
 BuildRequires:  %{python_module lazr.restfulclient}
@@ -56,14 +52,16 @@
 
 %install
 %pyproject_install
-%python_expand %fdupes %{buildroot}%{$python_sitelib}
+%{python_expand rm -r %{buildroot}%{$python_sitelib}/launchpadlib/docs
+%fdupes %{buildroot}%{$python_sitelib}
+}
 
 %check
 %pyunittest discover -v src/launchpadlib/tests/
 
 %files %{python_files}
 %license COPYING.txt
-%doc CONTRIBUTING.rst NEWS.rst README.rst
+%doc README.rst src/launchpadlib/docs/
 %{python_sitelib}/launchpadlib
 %{python_sitelib}/launchpadlib-%{version}*-info
 

++++++ launchpadlib-1.11.0.tar.gz -> launchpadlib-2.0.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/launchpadlib-1.11.0/MANIFEST.in 
new/launchpadlib-2.0.0/MANIFEST.in
--- old/launchpadlib-1.11.0/MANIFEST.in 2021-10-26 17:42:25.000000000 +0200
+++ new/launchpadlib-2.0.0/MANIFEST.in  2024-07-17 11:39:42.000000000 +0200
@@ -3,3 +3,4 @@
 include src/launchpadlib/docs/Makefile src/launchpadlib/docs/conf.py
 prune src/launchpadlib/docs/_build
 prune .tox
+prune dist
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/launchpadlib-1.11.0/NEWS.rst 
new/launchpadlib-2.0.0/NEWS.rst
--- old/launchpadlib-1.11.0/NEWS.rst    2023-01-09 10:46:40.000000000 +0100
+++ new/launchpadlib-2.0.0/NEWS.rst     2024-07-19 12:30:09.000000000 +0200
@@ -2,6 +2,10 @@
 NEWS for launchpadlib
 =====================
 
+2.0.0 (2024-07-19)
+==================
+- Remove support for Python 2.
+
 1.11.0 (2023-01-09)
 ===================
 - Move the ``keyring`` dependency to a new ``keyring`` extra.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/launchpadlib-1.11.0/PKG-INFO 
new/launchpadlib-2.0.0/PKG-INFO
--- old/launchpadlib-1.11.0/PKG-INFO    2023-01-09 10:52:32.067530600 +0100
+++ new/launchpadlib-2.0.0/PKG-INFO     2024-07-19 12:44:38.909896400 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: launchpadlib
-Version: 1.11.0
+Version: 2.0.0
 Summary: Script Launchpad through its web services interfaces.  Officially 
supported.
 Home-page: https://help.launchpad.net/API/launchpadlib
 Download-URL: https://launchpad.net/launchpadlib/+download
@@ -27,11 +27,22 @@
 Classifier: Programming Language :: Python :: 3.9
 Classifier: Programming Language :: Python :: 3.10
 Classifier: Programming Language :: Python :: 3.11
+Requires-Python: >=3.5
+License-File: COPYING.txt
+Requires-Dist: httplib2
+Requires-Dist: importlib-metadata; python_version < "3.8"
+Requires-Dist: lazr.restfulclient>=0.14.2
+Requires-Dist: lazr.uri
 Provides-Extra: keyring
+Requires-Dist: keyring; extra == "keyring"
 Provides-Extra: docs
+Requires-Dist: Sphinx; extra == "docs"
 Provides-Extra: testing
+Requires-Dist: testresources; extra == "testing"
+Requires-Dist: wadllib; extra == "testing"
 Provides-Extra: test
-License-File: COPYING.txt
+Requires-Dist: coverage; extra == "test"
+Requires-Dist: pytest; extra == "test"
 
 ..
     This file is part of launchpadlib.
@@ -58,6 +69,10 @@
 NEWS for launchpadlib
 =====================
 
+2.0.0 (2024-07-19)
+==================
+- Remove support for Python 2.
+
 1.11.0 (2023-01-09)
 ===================
 - Move the ``keyring`` dependency to a new ``keyring`` extra.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/launchpadlib-1.11.0/pyproject.toml 
new/launchpadlib-2.0.0/pyproject.toml
--- old/launchpadlib-1.11.0/pyproject.toml      2021-11-17 02:30:15.000000000 
+0100
+++ new/launchpadlib-2.0.0/pyproject.toml       2024-07-17 11:31:21.000000000 
+0200
@@ -1,3 +1,3 @@
 [tool.black]
 line-length = 79
-target-version = ['py27']
+target-version = ['py35']
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/launchpadlib-1.11.0/setup.cfg 
new/launchpadlib-2.0.0/setup.cfg
--- old/launchpadlib-1.11.0/setup.cfg   2023-01-09 10:52:32.067530600 +0100
+++ new/launchpadlib-2.0.0/setup.cfg    2024-07-19 12:44:38.909896400 +0200
@@ -1,6 +1,3 @@
-[bdist_wheel]
-universal = 1
-
 [flake8]
 ignore = 
        E203
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/launchpadlib-1.11.0/setup.py 
new/launchpadlib-2.0.0/setup.py
--- old/launchpadlib-1.11.0/setup.py    2023-01-09 10:46:54.000000000 +0100
+++ new/launchpadlib-2.0.0/setup.py     2024-07-17 11:35:30.000000000 +0200
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 
 # Copyright 2008-2022 Canonical Ltd.
 #
@@ -46,12 +46,11 @@
     'importlib-metadata; python_version < "3.8"',
     "lazr.restfulclient>=0.14.2",
     "lazr.uri",
-    "six",
 ]
 
 setup(
     name="launchpadlib",
-    version="1.11.0",
+    version="2.0.0",
     packages=find_packages("src"),
     package_dir={"": "src"},
     include_package_data=True,
@@ -64,6 +63,7 @@
     description=open("README.rst").readline().strip(),
     long_description=generate("src/launchpadlib/docs/index.rst", "NEWS.rst"),
     license="LGPL v3",
+    python_requires=">=3.5",
     install_requires=install_requires,
     url="https://help.launchpad.net/API/launchpadlib";,
     project_urls={
@@ -99,7 +99,6 @@
         # Dependencies only needed by launchpadlib's own tests.
         "test": [
             "coverage",
-            'mock; python_version < "3"',
             "pytest",
         ],
     },
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/launchpadlib-1.11.0/src/launchpadlib/apps.py 
new/launchpadlib-2.0.0/src/launchpadlib/apps.py
--- old/launchpadlib-1.11.0/src/launchpadlib/apps.py    2021-11-17 
02:30:15.000000000 +0100
+++ new/launchpadlib-2.0.0/src/launchpadlib/apps.py     2024-07-17 
11:31:21.000000000 +0200
@@ -30,7 +30,7 @@
 from launchpadlib.uris import lookup_web_root
 
 
-class RequestTokenApp(object):
+class RequestTokenApp:
     """An application that creates request tokens."""
 
     def __init__(self, web_root, consumer_name, context):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/launchpadlib-1.11.0/src/launchpadlib/credentials.py 
new/launchpadlib-2.0.0/src/launchpadlib/credentials.py
--- old/launchpadlib-1.11.0/src/launchpadlib/credentials.py     2021-11-17 
10:42:31.000000000 +0100
+++ new/launchpadlib-2.0.0/src/launchpadlib/credentials.py      2024-07-17 
11:31:21.000000000 +0200
@@ -14,11 +14,8 @@
 # You should have received a copy of the GNU Lesser General Public License
 # along with launchpadlib. If not, see <http://www.gnu.org/licenses/>.
 
-from __future__ import print_function
-
 """launchpadlib credentials and authentication support."""
 
-__metaclass__ = type
 __all__ = [
     "AccessToken",
     "AnonymousAccessToken",
@@ -29,40 +26,20 @@
     "Credentials",
 ]
 
-try:
-    from cStringIO import StringIO
-except ImportError:
-    from io import StringIO
-
+from base64 import (
+    b64decode,
+    b64encode,
+)
 import httplib2
+from io import StringIO
 import json
 import os
 from select import select
 import stat
 from sys import stdin
 import time
-
-try:
-    from urllib.parse import urlencode
-except ImportError:
-    from urllib import urlencode
-try:
-    from urllib.parse import urljoin
-except ImportError:
-    from urlparse import urljoin
+from urllib.parse import urlencode, urljoin, parse_qs
 import webbrowser
-from base64 import (
-    b64decode,
-    b64encode,
-)
-
-from six.moves.urllib.parse import parse_qs
-
-if bytes is str:
-    # Python 2
-    unicode_type = unicode  # noqa: F821
-else:
-    unicode_type = str
 
 from lazr.restfulclient.errors import HTTPError
 from lazr.restfulclient.authorize.oauth import (
@@ -135,7 +112,7 @@
         sio = StringIO()
         self.save(sio)
         serialized = sio.getvalue()
-        if isinstance(serialized, unicode_type):
+        if isinstance(serialized, str):
             serialized = serialized.encode("utf-8")
         return serialized
 
@@ -146,7 +123,7 @@
         This should probably be moved into OAuthAuthorizer.
         """
         credentials = cls()
-        if not isinstance(value, unicode_type):
+        if not isinstance(value, str):
             value = value.decode("utf-8")
         credentials.load(StringIO(value))
         return credentials
@@ -255,7 +232,7 @@
     @classmethod
     def from_string(cls, query_string):
         """Create and return a new `AccessToken` from the given string."""
-        if not isinstance(query_string, unicode_type):
+        if not isinstance(query_string, str):
             query_string = query_string.decode("utf-8")
         params = parse_qs(query_string, keep_blank_values=False)
         key = params["oauth_token"]
@@ -280,10 +257,10 @@
     """
 
     def __init__(self):
-        super(AnonymousAccessToken, self).__init__("", "")
+        super().__init__("", "")
 
 
-class CredentialStore(object):
+class CredentialStore:
     """Store OAuth credentials locally.
 
     This is a generic superclass. To implement a specific way of
@@ -369,7 +346,7 @@
     B64MARKER = b"<B64>"
 
     def __init__(self, credential_save_failed=None, fallback=False):
-        super(KeyringCredentialStore, self).__init__(credential_save_failed)
+        super().__init__(credential_save_failed)
         self._fallback = None
         if fallback:
             self._fallback = MemoryCredentialStore(credential_save_failed)
@@ -438,7 +415,7 @@
             else:
                 raise
         if credential_string is not None:
-            if isinstance(credential_string, unicode_type):
+            if isinstance(credential_string, str):
                 credential_string = credential_string.encode("utf8")
             if credential_string.startswith(self.B64MARKER):
                 try:
@@ -468,9 +445,7 @@
     """
 
     def __init__(self, filename, credential_save_failed=None):
-        super(UnencryptedFileCredentialStore, self).__init__(
-            credential_save_failed
-        )
+        super().__init__(credential_save_failed)
         self.filename = filename
 
     def do_save(self, credentials, unique_key):
@@ -495,7 +470,7 @@
     """
 
     def __init__(self, credential_save_failed=None):
-        super(MemoryCredentialStore, self).__init__(credential_save_failed)
+        super().__init__(credential_save_failed)
         self._credentials = {}
 
     def do_save(self, credentials, unique_key):
@@ -507,7 +482,7 @@
         return self._credentials.get(unique_key)
 
 
-class RequestTokenAuthorizationEngine(object):
+class RequestTokenAuthorizationEngine:
     """The superclass of all request token authorizers.
 
     This base class does not implement request token authorization,
@@ -774,15 +749,13 @@
         # It doesn't look like we're doing anything here, but we
         # are discarding the passed-in values for consumer_name and
         # allow_access_levels.
-        super(AuthorizeRequestTokenWithBrowser, self).__init__(
+        super().__init__(
             service_root, application_name, None, credential_save_failed
         )
 
     def notify_end_user_authorization_url(self, authorization_url):
         """Notify the end-user of the URL."""
-        super(
-            AuthorizeRequestTokenWithBrowser, self
-        ).notify_end_user_authorization_url(authorization_url)
+        super().notify_end_user_authorization_url(authorization_url)
 
         try:
             browser_obj = webbrowser.get()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/launchpadlib-1.11.0/src/launchpadlib/docs/NEWS.rst 
new/launchpadlib-2.0.0/src/launchpadlib/docs/NEWS.rst
--- old/launchpadlib-1.11.0/src/launchpadlib/docs/NEWS.rst      2023-01-09 
10:46:40.000000000 +0100
+++ new/launchpadlib-2.0.0/src/launchpadlib/docs/NEWS.rst       2024-07-19 
12:30:09.000000000 +0200
@@ -2,6 +2,10 @@
 NEWS for launchpadlib
 =====================
 
+2.0.0 (2024-07-19)
+==================
+- Remove support for Python 2.
+
 1.11.0 (2023-01-09)
 ===================
 - Move the ``keyring`` dependency to a new ``keyring`` extra.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/launchpadlib-1.11.0/src/launchpadlib/docs/conf.py 
new/launchpadlib-2.0.0/src/launchpadlib/docs/conf.py
--- old/launchpadlib-1.11.0/src/launchpadlib/docs/conf.py       2021-11-05 
23:40:06.000000000 +0100
+++ new/launchpadlib-2.0.0/src/launchpadlib/docs/conf.py        2024-07-17 
11:31:21.000000000 +0200
@@ -1,5 +1,3 @@
-# -*- coding: utf-8 -*-
-#
 # launchpadlib documentation build configuration file, created by
 # sphinx-quickstart on Tue Nov  5 23:48:15 2019.
 #
@@ -47,9 +45,9 @@
 master_doc = "index"
 
 # General information about the project.
-project = u"launchpadlib"
-copyright = u"2008-2019, Canonical Ltd."
-author = u"LAZR Developers <lazr-develop...@lists.launchpad.net>"
+project = "launchpadlib"
+copyright = "2008-2019, Canonical Ltd."
+author = "LAZR Developers <lazr-develop...@lists.launchpad.net>"
 
 # The version info for the project you're documenting, acts as replacement for
 # |version| and |release|, also used in various other places throughout the
@@ -65,7 +63,7 @@
 #
 # This is also used if you do content translation via gettext catalogs.
 # Usually you set "language" from the command line for these cases.
-language = None
+language = "en"
 
 # List of patterns, relative to source directory, that match files and
 # directories to ignore when looking for source files.
@@ -140,8 +138,8 @@
     (
         master_doc,
         "launchpadlib.tex",
-        u"launchpadlib Documentation",
-        u"LAZR Developers 
\\textless{}lazr-develop...@lists.launchpad.net\\textgreater{}",  # noqa: E501
+        "launchpadlib Documentation",
+        "LAZR Developers 
\\textless{}lazr-develop...@lists.launchpad.net\\textgreater{}",  # noqa: E501
         "manual",
     ),
 ]
@@ -152,7 +150,7 @@
 # One entry per manual page. List of tuples
 # (source start file, name, description, authors, manual section).
 man_pages = [
-    (master_doc, "launchpadlib", u"launchpadlib Documentation", [author], 1)
+    (master_doc, "launchpadlib", "launchpadlib Documentation", [author], 1)
 ]
 
 
@@ -165,7 +163,7 @@
     (
         master_doc,
         "launchpadlib",
-        u"launchpadlib Documentation",
+        "launchpadlib Documentation",
         author,
         "launchpadlib",
         "One line description of project.",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/launchpadlib-1.11.0/src/launchpadlib/launchpad.py 
new/launchpadlib-2.0.0/src/launchpadlib/launchpad.py
--- old/launchpadlib-1.11.0/src/launchpadlib/launchpad.py       2022-01-21 
15:12:11.000000000 +0100
+++ new/launchpadlib-2.0.0/src/launchpadlib/launchpad.py        2024-07-17 
11:31:21.000000000 +0200
@@ -16,18 +16,13 @@
 
 """Root Launchpad API class."""
 
-__metaclass__ = type
 __all__ = [
     "Launchpad",
 ]
 
 import errno
 import os
-
-try:
-    from urllib.parse import urlsplit
-except ImportError:
-    from urlparse import urlsplit
+from urllib.parse import urlsplit
 import warnings
 
 try:
@@ -130,7 +125,7 @@
     def __init__(self, launchpad, authorization_engine, *args):
         self.launchpad = launchpad
         self.authorization_engine = authorization_engine
-        super(LaunchpadOAuthAwareHttp, self).__init__(*args)
+        super().__init__(*args)
 
     def _bad_oauth_token(self, response, content):
         """Helper method to detect an error caused by a bad OAuth token."""
@@ -141,9 +136,7 @@
         )
 
     def _request(self, *args):
-        response, content = super(LaunchpadOAuthAwareHttp, self)._request(
-            *args
-        )
+        response, content = super()._request(*args)
         return self.retry_on_bad_token(response, content, *args)
 
     def retry_on_bad_token(self, response, content, *args):
@@ -227,7 +220,7 @@
         # case we need to authorize a new token during use.
         self.authorization_engine = authorization_engine
 
-        super(Launchpad, self).__init__(
+        super().__init__(
             credentials, service_root, cache, timeout, proxy_info, version
         )
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/launchpadlib-1.11.0/src/launchpadlib/testing/helpers.py 
new/launchpadlib-2.0.0/src/launchpadlib/testing/helpers.py
--- old/launchpadlib-1.11.0/src/launchpadlib/testing/helpers.py 2021-10-29 
15:45:13.000000000 +0200
+++ new/launchpadlib-2.0.0/src/launchpadlib/testing/helpers.py  2024-07-17 
11:31:21.000000000 +0200
@@ -18,8 +18,6 @@
 
 """launchpadlib testing helpers."""
 
-
-__metaclass__ = type
 __all__ = [
     "BadSaveKeyring",
     "fake_keyring",
@@ -64,7 +62,7 @@
     ACCESS_TOKEN_KEY = "access_key:84"
 
     def __init__(self, *args, **kwargs):
-        super(NoNetworkAuthorizationEngine, self).__init__(*args, **kwargs)
+        super().__init__(*args, **kwargs)
         # Set up some instrumentation.
         self.request_tokens_obtained = 0
         self.access_tokens_obtained = 0
@@ -144,7 +142,7 @@
             generally pass in fully-formed Credentials objects.
         :param service_root: Defaults to 'test_dev'.
         """
-        super(TestableLaunchpad, self).__init__(
+        super().__init__(
             credentials,
             authorization_engine,
             credential_store,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/launchpadlib-1.11.0/src/launchpadlib/testing/launchpad.py 
new/launchpadlib-2.0.0/src/launchpadlib/testing/launchpad.py
--- old/launchpadlib-1.11.0/src/launchpadlib/testing/launchpad.py       
2023-01-09 10:45:40.000000000 +0100
+++ new/launchpadlib-2.0.0/src/launchpadlib/testing/launchpad.py        
2024-07-17 11:31:21.000000000 +0200
@@ -65,23 +65,15 @@
 also in the WADL file itelf.
 """
 
+from collections.abc import Callable
 from datetime import datetime
 
-try:
-    from collections.abc import Callable
-except ImportError:
-    from collections import Callable
-import sys
-
-if sys.version_info[0] >= 3:
-    basestring = str
-
 
 class IntegrityError(Exception):
     """Raised when bad sample data is used with a L{FakeLaunchpad} instance."""
 
 
-class FakeLaunchpad(object):
+class FakeLaunchpad:
     """A fake Launchpad API class for unit tests that depend on L{Launchpad}.
 
     @param application: A C{wadllib.application.Application} instance for a
@@ -188,7 +180,7 @@
     return "{http://research.sun.com/wadl/2006/10}"; + tag_name
 
 
-class FakeResource(object):
+class FakeResource:
     """
     Represents valid sample data on L{FakeLaunchpad} instances.
 
@@ -434,7 +426,7 @@
             if param is None:
                 raise IntegrityError("%s not found" % name)
             if param.type is None:
-                if not isinstance(value, basestring):
+                if not isinstance(value, str):
                     raise IntegrityError(
                         "%s is not a str or unicode for %s" % (value, name)
                     )
@@ -594,7 +586,7 @@
         resource_type = application.get_resource_type(
             application.markup_url + "#service-root"
         )
-        super(FakeRoot, self).__init__(application, resource_type)
+        super().__init__(application, resource_type)
 
 
 class FakeEntry(FakeResource):
@@ -612,9 +604,7 @@
         name=None,
         child_resource_type=None,
     ):
-        super(FakeCollection, self).__init__(
-            application, resource_type, values
-        )
+        super().__init__(application, resource_type, values)
         self.__dict__.update(
             {"_name": name, "_child_resource_type": child_resource_type}
         )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/launchpadlib-1.11.0/src/launchpadlib/testing/tests/test_launchpad.py 
new/launchpadlib-2.0.0/src/launchpadlib/testing/tests/test_launchpad.py
--- old/launchpadlib-1.11.0/src/launchpadlib/testing/tests/test_launchpad.py    
2023-01-09 10:45:40.000000000 +0100
+++ new/launchpadlib-2.0.0/src/launchpadlib/testing/tests/test_launchpad.py     
2024-07-17 11:31:21.000000000 +0200
@@ -160,8 +160,8 @@
         dicts that represent objects.  Plain string values can be represented
         as C{unicode} strings.
         """
-        self.launchpad.me = dict(name=u"foo")
-        self.assertEqual(u"foo", self.launchpad.me.name)
+        self.launchpad.me = dict(name="foo")
+        self.assertEqual("foo", self.launchpad.me.name)
 
     def test_datetime_property(self):
         """
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/launchpadlib-1.11.0/src/launchpadlib/tests/test_credential_store.py 
new/launchpadlib-2.0.0/src/launchpadlib/tests/test_credential_store.py
--- old/launchpadlib-1.11.0/src/launchpadlib/tests/test_credential_store.py     
2021-11-05 23:40:06.000000000 +0100
+++ new/launchpadlib-2.0.0/src/launchpadlib/tests/test_credential_store.py      
2024-07-17 11:31:21.000000000 +0200
@@ -169,9 +169,7 @@
         # handled correctly.  (See bug lp:877374)
         class UnicodeInMemoryKeyring(InMemoryKeyring):
             def get_password(self, service, username):
-                password = super(UnicodeInMemoryKeyring, self).get_password(
-                    service, username
-                )
+                password = super().get_password(service, username)
                 if isinstance(password, unicode_type):
                     password = password.encode("utf-8")
                 return password
@@ -194,9 +192,7 @@
 
         class UnencodedInMemoryKeyring(InMemoryKeyring):
             def get_password(self, service, username):
-                pw = super(UnencodedInMemoryKeyring, self).get_password(
-                    service, username
-                )
+                pw = super().get_password(service, username)
                 return b64decode(pw[5:])
 
         self.keyring = UnencodedInMemoryKeyring()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/launchpadlib-1.11.0/src/launchpadlib/tests/test_http.py 
new/launchpadlib-2.0.0/src/launchpadlib/tests/test_http.py
--- old/launchpadlib-1.11.0/src/launchpadlib/tests/test_http.py 2021-11-17 
02:30:15.000000000 +0100
+++ new/launchpadlib-2.0.0/src/launchpadlib/tests/test_http.py  2024-07-17 
11:31:21.000000000 +0200
@@ -17,15 +17,10 @@
 """Tests for the LaunchpadOAuthAwareHTTP class."""
 
 from collections import deque
-from json import dumps
+from json import dumps, JSONDecodeError
 import tempfile
 import unittest
 
-try:
-    from json import JSONDecodeError
-except ImportError:
-    JSONDecodeError = ValueError
-
 from launchpadlib.errors import Unauthorized
 from launchpadlib.credentials import UnencryptedFileCredentialStore
 from launchpadlib.launchpad import (
@@ -75,7 +70,7 @@
         :param responses: A list of HttpResponse objects to use
             in response to requests.
         """
-        super(SimulatedResponsesHttp, self).__init__(*args)
+        super().__init__(*args)
         self.sent_responses = []
         self.unsent_responses = responses
         self.cache = None
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/launchpadlib-1.11.0/src/launchpadlib/tests/test_launchpad.py 
new/launchpadlib-2.0.0/src/launchpadlib/tests/test_launchpad.py
--- old/launchpadlib-1.11.0/src/launchpadlib/tests/test_launchpad.py    
2023-01-05 13:20:42.000000000 +0100
+++ new/launchpadlib-2.0.0/src/launchpadlib/tests/test_launchpad.py     
2024-07-17 11:31:21.000000000 +0200
@@ -16,8 +16,6 @@
 
 """Tests for the Launchpad class."""
 
-__metaclass__ = type
-
 from contextlib import contextmanager
 import os
 import shutil
@@ -25,11 +23,7 @@
 import stat
 import tempfile
 import unittest
-
-try:
-    from unittest.mock import patch
-except ImportError:
-    from mock import patch
+from unittest.mock import patch
 import warnings
 
 from lazr.restfulclient.resource import ServiceRoot
@@ -351,11 +345,11 @@
     """Tests for Launchpad.login_with()."""
 
     def setUp(self):
-        super(TestLaunchpadLoginWith, self).setUp()
+        super().setUp()
         self.temp_dir = tempfile.mkdtemp()
 
     def tearDown(self):
-        super(TestLaunchpadLoginWith, self).tearDown()
+        super().tearDown()
         shutil.rmtree(self.temp_dir)
 
     def test_dirs_created(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/launchpadlib-1.11.0/src/launchpadlib/uris.py 
new/launchpadlib-2.0.0/src/launchpadlib/uris.py
--- old/launchpadlib-1.11.0/src/launchpadlib/uris.py    2021-11-05 
23:40:06.000000000 +0100
+++ new/launchpadlib-2.0.0/src/launchpadlib/uris.py     2024-07-17 
11:31:21.000000000 +0200
@@ -20,18 +20,15 @@
 "https://api.staging.launchpad.net/";.
 """
 
-__metaclass__ = type
 __all__ = [
     "lookup_service_root",
     "lookup_web_root",
     "web_root_for_service_root",
 ]
-try:
-    from urllib.parse import urlparse
-except ImportError:
-    from urlparse import urlparse
 
+from urllib.parse import urlparse
 import warnings
+
 from lazr.uri import URI
 
 LPNET_SERVICE_ROOT = "https://api.launchpad.net/";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/launchpadlib-1.11.0/src/launchpadlib.egg-info/PKG-INFO 
new/launchpadlib-2.0.0/src/launchpadlib.egg-info/PKG-INFO
--- old/launchpadlib-1.11.0/src/launchpadlib.egg-info/PKG-INFO  2023-01-09 
10:52:29.000000000 +0100
+++ new/launchpadlib-2.0.0/src/launchpadlib.egg-info/PKG-INFO   2024-07-19 
12:44:38.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: launchpadlib
-Version: 1.11.0
+Version: 2.0.0
 Summary: Script Launchpad through its web services interfaces.  Officially 
supported.
 Home-page: https://help.launchpad.net/API/launchpadlib
 Download-URL: https://launchpad.net/launchpadlib/+download
@@ -27,11 +27,22 @@
 Classifier: Programming Language :: Python :: 3.9
 Classifier: Programming Language :: Python :: 3.10
 Classifier: Programming Language :: Python :: 3.11
+Requires-Python: >=3.5
+License-File: COPYING.txt
+Requires-Dist: httplib2
+Requires-Dist: importlib-metadata; python_version < "3.8"
+Requires-Dist: lazr.restfulclient>=0.14.2
+Requires-Dist: lazr.uri
 Provides-Extra: keyring
+Requires-Dist: keyring; extra == "keyring"
 Provides-Extra: docs
+Requires-Dist: Sphinx; extra == "docs"
 Provides-Extra: testing
+Requires-Dist: testresources; extra == "testing"
+Requires-Dist: wadllib; extra == "testing"
 Provides-Extra: test
-License-File: COPYING.txt
+Requires-Dist: coverage; extra == "test"
+Requires-Dist: pytest; extra == "test"
 
 ..
     This file is part of launchpadlib.
@@ -58,6 +69,10 @@
 NEWS for launchpadlib
 =====================
 
+2.0.0 (2024-07-19)
+==================
+- Remove support for Python 2.
+
 1.11.0 (2023-01-09)
 ===================
 - Move the ``keyring`` dependency to a new ``keyring`` extra.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/launchpadlib-1.11.0/src/launchpadlib.egg-info/requires.txt 
new/launchpadlib-2.0.0/src/launchpadlib.egg-info/requires.txt
--- old/launchpadlib-1.11.0/src/launchpadlib.egg-info/requires.txt      
2023-01-09 10:52:29.000000000 +0100
+++ new/launchpadlib-2.0.0/src/launchpadlib.egg-info/requires.txt       
2024-07-19 12:44:38.000000000 +0200
@@ -1,7 +1,6 @@
 httplib2
 lazr.restfulclient>=0.14.2
 lazr.uri
-six
 
 [:python_version < "3.8"]
 importlib-metadata
@@ -16,9 +15,6 @@
 coverage
 pytest
 
-[test:python_version < "3"]
-mock
-
 [testing]
 testresources
 wadllib

Reply via email to