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 <[email protected]>
+
+- 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 [email protected]
-# 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 <[email protected]>"
+project = "launchpadlib"
+copyright = "2008-2019, Canonical Ltd."
+author = "LAZR Developers <[email protected]>"
# 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{}[email protected]\\textgreater{}", # noqa: E501
+ "launchpadlib Documentation",
+ "LAZR Developers
\\textless{}[email protected]\\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