Hello community,
here is the log from the commit of package python-python3-openid for
openSUSE:Factory checked in at 2020-08-06 10:41:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-python3-openid (Old)
and /work/SRC/openSUSE:Factory/.python-python3-openid.new.3399 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-python3-openid"
Thu Aug 6 10:41:30 2020 rev:4 rq:824574 version:3.2.0
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-python3-openid/python-python3-openid.changes
2020-06-09 00:05:34.905485978 +0200
+++
/work/SRC/openSUSE:Factory/.python-python3-openid.new.3399/python-python3-openid.changes
2020-08-06 10:42:03.514118187 +0200
@@ -1,0 +2,8 @@
+Wed Aug 5 08:00:09 UTC 2020 - Marketa Calabkova <[email protected]>
+
+- update to 3.2.0
+ * Import randomString from cryptutil rather than reimplementing
+ * Use non-root logger
+ * Update supported Python versions
+
+-------------------------------------------------------------------
Old:
----
python3-openid-3.1.0.tar.gz
New:
----
python3-openid-3.2.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-python3-openid.spec ++++++
--- /var/tmp/diff_new_pack.gcU2jD/_old 2020-08-06 10:42:04.798118829 +0200
+++ /var/tmp/diff_new_pack.gcU2jD/_new 2020-08-06 10:42:04.802118832 +0200
@@ -21,7 +21,7 @@
# tests are partly broken
%bcond_without test
Name: python-python3-openid
-Version: 3.1.0
+Version: 3.2.0
Release: 0
Summary: OpenID support for Python
License: Apache-2.0
++++++ python3-openid-3.1.0.tar.gz -> python3-openid-3.2.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python3-openid-3.1.0/PKG-INFO
new/python3-openid-3.2.0/PKG-INFO
--- old/python3-openid-3.1.0/PKG-INFO 2017-02-22 17:03:46.000000000 +0100
+++ new/python3-openid-3.2.0/PKG-INFO 2020-06-29 14:15:41.878536200 +0200
@@ -1,12 +1,14 @@
-Metadata-Version: 1.1
+Metadata-Version: 2.1
Name: python3-openid
-Version: 3.1.0
+Version: 3.2.0
Summary: OpenID support for modern servers and consumers.
Home-page: http://github.com/necaris/python3-openid
Author: Rami Chowdhury
Author-email: [email protected]
+Maintainer: Rami Chowdhury
+Maintainer-email: [email protected]
License: UNKNOWN
-Download-URL: http://github.com/necaris/python3-openid/tarball/v3.1.0
+Download-URL: http://github.com/necaris/python3-openid/tarball/v3.2.0
Description: This is a set of Python packages to support use of
the OpenID decentralized identity system in your application, update
to Python
3. Want to enable single sign-on for your web site? Use the
openid.consumer
@@ -24,3 +26,5 @@
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content :: CGI
Tools/Libraries
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: System :: Systems Administration ::
Authentication/Directory
+Provides-Extra: mysql
+Provides-Extra: postgresql
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python3-openid-3.1.0/README.md
new/python3-openid-3.2.0/README.md
--- old/python3-openid-3.1.0/README.md 1970-01-01 01:00:00.000000000 +0100
+++ new/python3-openid-3.2.0/README.md 2020-04-12 20:41:50.000000000 +0200
@@ -0,0 +1,66 @@
+_NOTE_: This started out as a fork of the Python OpenID library, with changes
+to make it Python 3 compatible. It's now a port of that library, including
+cleanups and updates to the code in general.
+
+[](https://travis-ci.org/necaris/python3-openid)
+[](https://coveralls.io/github/necaris/python3-openid?branch=master)
+
+# requirements
+
+- Python 3.5+ (tested on CPython 3.5-3.8, and PyPy3 (although some tests may
fail on PyPy))
+
+# installation
+
+The recommended way is to install from PyPI with `pip`:
+
+ pip install python3-openid
+
+Alternatively, you can run the following command from a source checkout:
+
+ python setup.py install
+
+If you want to use MySQL or PostgreSQL storage options, be sure to install
+the relevant "extra":
+
+ pip install python3-openid[mysql]
+
+# getting started
+
+The library should follow the existing `python-openid` API as closely as
possible.
+
+_NOTE_: documentation will be auto-generated as soon as I can figure out how to
+update the documentation tools.
+
+_NOTE_: The examples directory includes an example server and consumer
+implementation. See the README file in that directory for more
+information on running the examples.
+
+# logging
+
+This library offers a logging hook that will record unexpected
+conditions that occur in library code. If a condition is recoverable,
+the library will recover and issue a log message. If it is not
+recoverable, the library will raise an exception. See the
+documentation for the `openid.oidutil` module for more on the logging
+hook.
+
+# documentation
+
+The documentation in this library is in Epydoc format, which is
+detailed at:
+
+http://epydoc.sourceforge.net/
+
+# contact
+
+Bug reports, suggestions, and feature requests are [very welcome](issues)!
+
+There are also the `#python-openid` and `#openid` channels on FreeNode IRC.
+
+# contributors
+
+- @necaris
+- @moreati
+- @vstoykov
+- @earthday
+- @bkmgit
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python3-openid-3.1.0/admin/build_discover_data.py
new/python3-openid-3.2.0/admin/build_discover_data.py
--- old/python3-openid-3.1.0/admin/build_discover_data.py 2017-02-22
16:32:14.000000000 +0100
+++ new/python3-openid-3.2.0/admin/build_discover_data.py 2020-04-12
19:26:16.000000000 +0200
@@ -53,8 +53,8 @@
discoverdata.example_xrds)
out_file_name = os.path.join(out_dir, test_name)
- out_file = open(out_file_name, 'w', encoding="utf-8")
- out_file.write(data)
+ with open(out_file_name, 'w', encoding="utf-8") as out_file:
+ out_file.write(data)
manifest = [manifest_header]
for success, input_name, id_name, result_name in discoverdata.testlist:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python3-openid-3.1.0/background-associations.txt
new/python3-openid-3.2.0/background-associations.txt
--- old/python3-openid-3.1.0/background-associations.txt 2017-01-15
04:10:11.000000000 +0100
+++ new/python3-openid-3.2.0/background-associations.txt 2020-04-12
19:48:01.000000000 +0200
@@ -73,19 +73,19 @@
def refresh(consumer, endpoint):
if consumer.store.getAssociation(endpoint.server_url):
- logging.info("We don't need to associate with %r",
endpoint.server_url)
+ logger.info("We don't need to associate with %r",
endpoint.server_url)
return
- logging.info("Associating with %r", endpoint.server_url)
+ logger.info("Associating with %r", endpoint.server_url)
now = time.time()
assoc = consumer._negotiateAssociation(endpoint)
if assoc:
elapsed = time.time() - now
- logging.info('(%0.2f seconds) Associated with %r', elapsed,
+ logger.info('(%0.2f seconds) Associated with %r', elapsed,
endpoint.server_url)
consumer.store.storeAssociation(endpoint.server_url, assoc)
else:
- logging.error('Failed to make an association with %r',
+ logger.error('Failed to make an association with %r',
endpoint.server_url)
The code in this example logs the amount of time that the association
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python3-openid-3.1.0/examples/consumer.py
new/python3-openid-3.2.0/examples/consumer.py
--- old/python3-openid-3.1.0/examples/consumer.py 2017-02-22
16:32:14.000000000 +0100
+++ new/python3-openid-3.2.0/examples/consumer.py 2020-04-12
20:41:50.000000000 +0200
@@ -9,14 +9,14 @@
__copyright__ = 'Copyright 2005-2008, Janrain, Inc.'
from http.cookies import SimpleCookie
-import cgi
+import html
import urllib.parse
import cgitb
import sys
def quoteattr(s):
- qs = cgi.escape(s, 1)
+ qs = html.escape(s, 1)
return '"%s"' % (qs, )
@@ -42,6 +42,7 @@
from openid.cryptutil import randomString
from openid.fetchers import setDefaultFetcher, Urllib2Fetcher
from openid.extensions import pape, sreg
+from random import randrange
# Used with an OpenID provider affiliate program.
OPENID_PROVIDER_NAME = 'MyOpenID'
@@ -132,7 +133,7 @@
try:
self.parsed_uri = urllib.parse.urlparse(self.path)
self.query = {}
- for k, v in cgi.parse_qsl(self.parsed_uri[4]):
+ for k, v in urllib.parse.parse_qsl(self.parsed_uri[4]):
self.query[k] = v
path = self.parsed_uri[2]
@@ -179,7 +180,7 @@
request = oidconsumer.begin(openid_url)
except consumer.DiscoveryFailure as exc:
fetch_error_string = 'Error in discovery: %s' % (
- cgi.escape(str(exc)))
+ html.escape(str(exc)))
self.render(
fetch_error_string,
css_class='error',
@@ -187,7 +188,7 @@
else:
if request is None:
msg = 'No OpenID services found for <code>%s</code>' % (
- cgi.escape(openid_url), )
+ html.escape(openid_url), )
self.render(msg, css_class='error', form_contents=openid_url)
else:
# Then, ask the library to begin the authorization.
@@ -249,7 +250,7 @@
# URL that we were verifying. We include it in the error
# message to help the user figure out what happened.
fmt = "Verification of %s failed: %s"
- message = fmt % (cgi.escape(display_identifier), info.message)
+ message = fmt % (html.escape(display_identifier), info.message)
elif info.status == consumer.SUCCESS:
# Success means that the transaction completed without
# error. If info is None, it means that the user cancelled
@@ -260,7 +261,7 @@
# was a real application, we would do our login,
# comment posting, etc. here.
fmt = "You have successfully verified %s as your identity."
- message = fmt % (cgi.escape(display_identifier), )
+ message = fmt % (html.escape(display_identifier), )
sreg_resp = sreg.SRegResponse.fromSuccessResponse(info)
pape_resp = pape.Response.fromSuccessResponse(info)
if info.endpoint.canonicalID:
@@ -269,7 +270,7 @@
# way their account with you is not compromised if their
# i-name registration expires and is bought by someone else.
message += (" This is an i-name, and its persistent ID is %s"
- % (cgi.escape(info.endpoint.canonicalID), ))
+ % (html.escape(info.endpoint.canonicalID), ))
elif info.status == consumer.CANCEL:
# cancelled
message = 'Verification cancelled'
@@ -322,7 +323,7 @@
odd = ' class="odd"'
for k, v in sreg_list:
field_name = sreg.data_fields.get(k, k)
- value = cgi.escape(v.encode('UTF-8'))
+ value = html.escape(v.encode('UTF-8'))
self.wfile.write(
bytes('<tr%s><td>%s</td><td>%s</td></tr>' % (
odd, field_name, value), 'utf-8'))
@@ -345,7 +346,7 @@
for policy_uri in pape_data.auth_policies:
self.wfile.write(
- bytes('<li><tt>%s</tt></li>' % (cgi.escape(policy_uri), ),
+ bytes('<li><tt>%s</tt></li>' % (html.escape(policy_uri), ),
'utf-8'))
if not pape_data.auth_policies:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python3-openid-3.1.0/examples/server.py
new/python3-openid-3.2.0/examples/server.py
--- old/python3-openid-3.1.0/examples/server.py 2017-02-22 16:32:14.000000000
+0100
+++ new/python3-openid-3.2.0/examples/server.py 2020-04-12 20:41:50.000000000
+0200
@@ -4,16 +4,17 @@
from http.server import HTTPServer, BaseHTTPRequestHandler
from urllib.parse import urlparse
+from urllib.parse import parse_qsl
import time
import http.cookies
-import cgi
+import html
import cgitb
import sys
def quoteattr(s):
- qs = cgi.escape(s, 1)
+ qs = html.escape(s, 1)
return '"%s"' % (qs, )
@@ -68,7 +69,7 @@
try:
self.parsed_uri = urlparse(self.path)
self.query = {}
- for k, v in cgi.parse_qsl(self.parsed_uri[4]):
+ for k, v in parse_qsl(self.parsed_uri[4]):
self.query[k] = v
self.setUser()
@@ -112,7 +113,7 @@
post_data = self.rfile.read(content_length)
self.query = {}
- for k, v in cgi.parse_qsl(post_data):
+ for k, v in parse_qsl(post_data):
self.query[k] = v
path = self.parsed_uri[2]
@@ -231,7 +232,7 @@
webresponse = self.server.openid.encodeResponse(response)
except server.EncodingError as why:
text = why.response.encodeToKVForm()
- self.showErrorPage('<pre>%s</pre>' % cgi.escape(text))
+ self.showErrorPage('<pre>%s</pre>' % html.escape(text))
return
self.send_response(webresponse.code)
@@ -275,7 +276,7 @@
def link(url):
url_attr = quoteattr(url)
- url_text = cgi.escape(url)
+ url_text = html.escape(url)
return '<a href=%s><code>%s</code></a>' % (url_attr, url_text)
def term(url, text):
@@ -446,7 +447,7 @@
approved_trust_roots = []
for (aident, trust_root) in list(self.server.approved.keys()):
if aident == ident:
- trs = '<li><tt>%s</tt></li>\n' % cgi.escape(trust_root)
+ trs = '<li><tt>%s</tt></li>\n' % html.escape(trust_root)
approved_trust_roots.append(trs)
if approved_trust_roots:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python3-openid-3.1.0/openid/__init__.py
new/python3-openid-3.2.0/openid/__init__.py
--- old/python3-openid-3.1.0/openid/__init__.py 2017-02-22 16:43:07.000000000
+0100
+++ new/python3-openid-3.2.0/openid/__init__.py 2020-06-29 14:10:18.000000000
+0200
@@ -23,7 +23,8 @@
and limitations under the License.
"""
-version_info = (3, 1, 0)
+version_info = (3, 2, 0)
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python3-openid-3.1.0/openid/consumer/consumer.py
new/python3-openid-3.2.0/openid/consumer/consumer.py
--- old/python3-openid-3.1.0/openid/consumer/consumer.py 2017-02-22
16:32:15.000000000 +0100
+++ new/python3-openid-3.2.0/openid/consumer/consumer.py 2020-04-12
19:48:01.000000000 +0200
@@ -219,6 +219,7 @@
'SETUP_NEEDED',
]
+logger = logging.getLogger(__name__)
def makeKVPost(request_message, server_url):
"""Make a Direct Request to an OpenID Provider and return the
@@ -672,7 +673,7 @@
try:
self._verifyReturnToArgs(message.toPostArgs())
except ProtocolError as why:
- logging.exception("Verifying return_to arguments: %s" % (why, ))
+ logger.exception("Verifying return_to arguments: %s" % (why, ))
return False
# Check the return_to base URL against the one in the message.
@@ -737,7 +738,7 @@
# Verify discovery information:
endpoint = self._verifyDiscoveryResults(message, endpoint)
- logging.info("Received id_res response from %s using association %s" %
+ logger.info("Received id_res response from %s using association %s" %
(endpoint.server_url,
message.getArg(OPENID_NS, 'assoc_handle')))
@@ -933,10 +934,10 @@
# endpoints and responses that didn't match the original
# request.
if not endpoint:
- logging.info('No pre-discovered information supplied.')
+ logger.info('No pre-discovered information supplied.')
endpoint = self._discoverAndVerify(to_match.claimed_id, [to_match])
elif endpoint.isOPIdentifier():
- logging.info(
+ logger.info(
'Pre-discovered information based on OP-ID; need to
rediscover.'
)
endpoint = self._discoverAndVerify(to_match.claimed_id, [to_match])
@@ -947,10 +948,10 @@
try:
self._verifyDiscoverySingle(endpoint, to_match)
except ProtocolError as e:
- logging.exception(
+ logger.exception(
"Error attempting to use stored discovery information: " +
str(e))
- logging.info("Attempting discovery to verify endpoint")
+ logger.info("Attempting discovery to verify endpoint")
endpoint = self._discoverAndVerify(to_match.claimed_id,
[to_match])
@@ -993,10 +994,10 @@
except TypeURIMismatch:
self._verifyDiscoverySingle(endpoint, to_match_1_0)
except ProtocolError as e:
- logging.exception(
+ logger.exception(
"Error attempting to use stored discovery information: " +
str(e))
- logging.info("Attempting discovery to verify endpoint")
+ logger.info("Attempting discovery to verify endpoint")
else:
return endpoint
@@ -1066,7 +1067,7 @@
@raises DiscoveryFailure: when discovery fails.
"""
- logging.info('Performing discovery on %s' % (claimed_id, ))
+ logger.info('Performing discovery on %s' % (claimed_id, ))
_, services = self._discover(claimed_id)
if not services:
raise DiscoveryFailure('No OpenID information found at %s' %
@@ -1092,10 +1093,10 @@
# succeeded. Return this endpoint.
return endpoint
else:
- logging.error('Discovery verification failure for %s' %
+ logger.error('Discovery verification failure for %s' %
(claimed_id, ))
for failure_message in failure_messages:
- logging.error(' * Endpoint mismatch: ' + failure_message)
+ logger.error(' * Endpoint mismatch: ' + failure_message)
raise DiscoveryFailure(
'No matching endpoint found after discovering %s' %
@@ -1107,7 +1108,7 @@
@returns: True if the request is valid.
@rtype: bool
"""
- logging.info('Using OpenID check_authentication')
+ logger.info('Using OpenID check_authentication')
request = self._createCheckAuthRequest(message)
if request is None:
return False
@@ -1115,7 +1116,7 @@
response = self._makeKVPost(request, server_url)
except (fetchers.HTTPFetchingError, ServerError) as e:
e0 = e.args[0]
- logging.exception('check_authentication failed: %s' % e0)
+ logger.exception('check_authentication failed: %s' % e0)
return False
else:
return self._processCheckAuthResponse(response, server_url)
@@ -1129,12 +1130,12 @@
if isinstance(signed, bytes):
signed = str(signed, encoding="utf-8")
for k in signed.split(','):
- logging.info(k)
+ logger.info(k)
val = message.getAliasedArg(k)
# Signed value is missing
if val is None:
- logging.info('Missing signed field %r' % (k, ))
+ logger.info('Missing signed field %r' % (k, ))
return None
check_auth_message = message.copy()
@@ -1149,10 +1150,10 @@
invalidate_handle = response.getArg(OPENID_NS, 'invalidate_handle')
if invalidate_handle is not None:
- logging.info('Received "invalidate_handle" from server %s' %
+ logger.info('Received "invalidate_handle" from server %s' %
(server_url, ))
if self.store is None:
- logging.error('Unexpectedly got invalidate_handle without '
+ logger.error('Unexpectedly got invalidate_handle without '
'a store!')
else:
self.store.removeAssociation(server_url, invalidate_handle)
@@ -1160,7 +1161,7 @@
if is_valid == 'true':
return True
else:
- logging.error('Server responds that checkAuth call is not valid')
+ logger.error('Server responds that checkAuth call is not valid')
return False
def _getAssociation(self, endpoint):
@@ -1212,7 +1213,7 @@
except ServerError as why:
# Do not keep trying, since it rejected the
# association type that it told us to use.
- logging.error(
+ logger.error(
'Server %s refused its suggested association '
'type: session_type=%s, assoc_type=%s' % (
endpoint.server_url, session_type, assoc_type))
@@ -1235,7 +1236,7 @@
# should be considered a total failure.
if server_error.error_code != 'unsupported-type' or \
server_error.message.isOpenID1():
- logging.error(
+ logger.error(
'Server error when requesting an association from %r: %s' %
(endpoint.server_url, server_error.error_text))
return None
@@ -1243,7 +1244,7 @@
# The server didn't like the association/session type
# that we sent, and it sent us back a message that
# might tell us how to handle it.
- logging.error('Unsupported association type %s: %s' %
+ logger.error('Unsupported association type %s: %s' %
(assoc_type, server_error.error_text, ))
# Extract the session_type and assoc_type from the
@@ -1252,13 +1253,13 @@
session_type = server_error.message.getArg(OPENID_NS, 'session_type')
if assoc_type is None or session_type is None:
- logging.error('Server responded with unsupported association '
+ logger.error('Server responded with unsupported association '
'session but did not supply a fallback.')
return None
elif not self.negotiator.isAllowed(assoc_type, session_type):
fmt = ('Server sent unsupported session/association type: '
'session_type=%s, assoc_type=%s')
- logging.error(fmt % (session_type, assoc_type))
+ logger.error(fmt % (session_type, assoc_type))
return None
else:
return assoc_type, session_type
@@ -1278,18 +1279,18 @@
try:
response = self._makeKVPost(args, endpoint.server_url)
except fetchers.HTTPFetchingError as why:
- logging.exception('openid.associate request failed: %s' % (why, ))
+ logger.exception('openid.associate request failed: %s' % (why, ))
return None
try:
assoc = self._extractAssociation(response, assoc_session)
except KeyError as why:
- logging.exception(
+ logger.exception(
'Missing required parameter in response from %s: %s' %
(endpoint.server_url, why))
return None
except ProtocolError as why:
- logging.exception('Protocol error parsing response from %s: %s' %
+ logger.exception('Protocol error parsing response from %s: %s' %
(endpoint.server_url, why))
return None
else:
@@ -1366,7 +1367,7 @@
# OpenID 1, but we'll accept it anyway, while issuing a
# warning.
if session_type == 'no-encryption':
- logging.warning('OpenID server sent "no-encryption"'
+ logger.warning('OpenID server sent "no-encryption"'
'for OpenID 1.X')
# Missing or empty session type is the way to flag a
@@ -1616,7 +1617,7 @@
else:
assoc_log_msg = 'using stateless mode.'
- logging.info("Generated %s request to %s %s" %
+ logger.info("Generated %s request to %s %s" %
(mode, self.endpoint.server_url, assoc_log_msg))
return message
@@ -1804,7 +1805,7 @@
for key in msg_args.keys():
if not self.isSigned(ns_uri, key):
- logging.info(
+ logger.info(
"SuccessResponse.getSignedNS: (%s, %s) not signed." %
(ns_uri, key))
return None
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python3-openid-3.1.0/openid/consumer/discover.py
new/python3-openid-3.2.0/openid/consumer/discover.py
--- old/python3-openid-3.1.0/openid/consumer/discover.py 2017-02-22
16:32:15.000000000 +0100
+++ new/python3-openid-3.2.0/openid/consumer/discover.py 2020-04-12
19:48:01.000000000 +0200
@@ -37,6 +37,8 @@
from openid.message import OPENID1_NS as OPENID_1_0_MESSAGE_NS
from openid.message import OPENID2_NS as OPENID_2_0_MESSAGE_NS
+logger = logging.getLogger(__name__)
+
class OpenIDServiceEndpoint(object):
"""Object representing an OpenID service endpoint.
@@ -418,7 +420,7 @@
for service_element in services:
endpoints.extend(flt.getServiceEndpoints(iname, service_element))
except XRDSError:
- logging.exception('xrds error on ' + iname)
+ logger.exception('xrds error on ' + iname)
for endpoint in endpoints:
# Is there a way to pass this through the filter to the endpoint
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python3-openid-3.1.0/openid/extensions/draft/pape5.py
new/python3-openid-3.2.0/openid/extensions/draft/pape5.py
--- old/python3-openid-3.1.0/openid/extensions/draft/pape5.py 2017-02-22
16:32:15.000000000 +0100
+++ new/python3-openid-3.2.0/openid/extensions/draft/pape5.py 2020-04-12
19:26:16.000000000 +0200
@@ -32,7 +32,7 @@
AUTH_NONE = \
'http://schemas.openid.net/pape/policies/2007/06/none'
-TIME_VALIDATOR = re.compile('^\d\d\d\d-\d\d-\d\dT\d\d:\d\d:\d\dZ$')
+TIME_VALIDATOR = re.compile(r'^\d\d\d\d-\d\d-\d\dT\d\d:\d\d:\d\dZ$')
LEVELS_NIST =
'http://csrc.nist.gov/publications/nistpubs/800-63/SP800-63V1_0_2.pdf'
LEVELS_JISA = 'http://www.jisa.or.jp/spec/auth_level.html'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python3-openid-3.1.0/openid/extensions/sreg.py
new/python3-openid-3.2.0/openid/extensions/sreg.py
--- old/python3-openid-3.1.0/openid/extensions/sreg.py 2017-02-22
16:32:15.000000000 +0100
+++ new/python3-openid-3.2.0/openid/extensions/sreg.py 2020-04-12
19:48:01.000000000 +0200
@@ -40,6 +40,8 @@
from openid.extension import Extension
import logging
+logger = logging.getLogger(__name__)
+
try:
str #pylint:disable-msg=W0104
except NameError:
@@ -97,7 +99,7 @@
try:
registerNamespaceAlias(ns_uri_1_1, 'sreg')
except NamespaceAliasRegistrationError as e:
- logging.exception('registerNamespaceAlias(%r, %r) failed: %s' %
+ logger.exception('registerNamespaceAlias(%r, %r) failed: %s' %
(ns_uri_1_1, 'sreg', str(e), ))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python3-openid-3.1.0/openid/kvform.py
new/python3-openid-3.2.0/openid/kvform.py
--- old/python3-openid-3.1.0/openid/kvform.py 2017-02-22 16:32:14.000000000
+0100
+++ new/python3-openid-3.2.0/openid/kvform.py 2020-04-12 19:48:01.000000000
+0200
@@ -1,5 +1,7 @@
import logging
+logger = logging.getLogger(__name__)
+
__all__ = ['seqToKV', 'kvToSeq', 'dictToKV', 'kvToDict']
@@ -23,7 +25,7 @@
if strict:
raise KVFormError(formatted)
else:
- logging.warning(formatted)
+ logger.warning(formatted)
lines = []
for k, v in seq:
@@ -79,7 +81,7 @@
if strict:
raise KVFormError(formatted)
else:
- logging.warning(formatted)
+ logger.warning(formatted)
if isinstance(data, bytes):
data = data.decode("utf-8")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python3-openid-3.1.0/openid/oidutil.py
new/python3-openid-3.2.0/openid/oidutil.py
--- old/python3-openid-3.1.0/openid/oidutil.py 2017-02-22 16:32:14.000000000
+0100
+++ new/python3-openid-3.2.0/openid/oidutil.py 2020-04-12 21:15:02.000000000
+0200
@@ -1,8 +1,5 @@
"""This module contains general utility code that is used throughout
the library.
-
-For users of this library, the C{L{log}} function is probably the most
-interesting.
"""
__all__ = [
@@ -16,6 +13,8 @@
# import urllib.parse as urlparse
from urllib.parse import urlencode
+logger = logging.getLogger(__name__)
+
xxe_safe_elementtree_modules = [
'defusedxml.cElementTree',
'defusedxml.ElementTree',
@@ -113,7 +112,7 @@
except (SystemExit, MemoryError, AssertionError):
raise
except:
- logging.exception(
+ logger.exception(
'Not using ElementTree library %r because it failed to '
'parse a trivial document: %s' % mod_name)
else:
@@ -127,7 +126,7 @@
def log(message, level=0):
"""Handle a log message from the OpenID library.
- This is a legacy function which redirects to logging.error.
+ This is a legacy function which redirects to logger.error.
The logging module should be used instead of this
@param message: A string containing a debugging message from the
@@ -142,7 +141,7 @@
@returns: Nothing.
"""
- logging.error("This is a legacy log message, please use the "
+ logger.error("This is a legacy log message, please use the "
"logging module. Message: %s", message)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python3-openid-3.1.0/openid/server/server.py
new/python3-openid-3.2.0/openid/server/server.py
--- old/python3-openid-3.1.0/openid/server/server.py 2017-02-22
16:32:16.000000000 +0100
+++ new/python3-openid-3.2.0/openid/server/server.py 2020-04-12
19:48:01.000000000 +0200
@@ -132,6 +132,8 @@
OPENID_NS, OPENID2_NS, IDENTIFIER_SELECT, OPENID1_URL_LIMIT
from openid.urinorm import urinorm
+logger = logging.getLogger(__name__)
+
HTTP_OK = 200
HTTP_REDIRECT = 302
HTTP_ERROR = 400
@@ -418,7 +420,7 @@
if message.isOpenID1():
session_type = message.getArg(OPENID_NS, 'session_type')
if session_type == 'no-encryption':
- logging.warning(
+ logger.warning(
'Received OpenID 1 request with a no-encryption '
'assocaition session type. Continuing anyway.')
elif not session_type:
@@ -1170,14 +1172,14 @@
"""
assoc = self.getAssociation(assoc_handle, dumb=True)
if not assoc:
- logging.error("failed to get assoc with handle %r to verify "
+ logger.error("failed to get assoc with handle %r to verify "
"message %r" % (assoc_handle, message))
return False
try:
valid = assoc.checkMessageSignature(message)
except ValueError as ex:
- logging.exception("Error in verifying %s with %s: %s" %
+ logger.exception("Error in verifying %s with %s: %s" %
(message, assoc, ex))
return False
return valid
@@ -1281,7 +1283,7 @@
key = self._normal_key
assoc = self.store.getAssociation(key, assoc_handle)
if assoc is not None and assoc.expiresIn <= 0:
- logging.info("requested %sdumb key %r is expired (by %s seconds)" %
+ logger.info("requested %sdumb key %r is expired (by %s seconds)" %
((not dumb) and 'not-' or '', assoc_handle,
assoc.expiresIn))
if checkExpiration:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python3-openid-3.1.0/openid/server/trustroot.py
new/python3-openid-3.2.0/openid/server/trustroot.py
--- old/python3-openid-3.1.0/openid/server/trustroot.py 2017-02-22
16:32:16.000000000 +0100
+++ new/python3-openid-3.2.0/openid/server/trustroot.py 2020-04-12
19:48:01.000000000 +0200
@@ -24,6 +24,8 @@
import re
import logging
+logger = logging.getLogger(__name__)
+
############################################
_protocols = ['http', 'https']
_top_level_domains = [
@@ -443,12 +445,12 @@
try:
allowable_urls = _vrfy(realm.buildDiscoveryURL())
except RealmVerificationRedirected as err:
- logging.exception(str(err))
+ logger.exception(str(err))
return False
if returnToMatches(allowable_urls, return_to):
return True
else:
- logging.error("Failed to validate return_to %r for realm %r, was not "
+ logger.error("Failed to validate return_to %r for realm %r, was not "
"in %s" % (return_to, realm_str, allowable_urls))
return False
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python3-openid-3.1.0/openid/store/filestore.py
new/python3-openid-3.2.0/openid/store/filestore.py
--- old/python3-openid-3.1.0/openid/store/filestore.py 2017-02-22
16:32:15.000000000 +0100
+++ new/python3-openid-3.2.0/openid/store/filestore.py 2020-04-12
19:48:01.000000000 +0200
@@ -18,6 +18,8 @@
from openid.store import nonce
from openid import cryptutil, oidutil
+logger = logging.getLogger(__name__)
+
_filename_allowed = string.ascii_letters + string.digits + '.'
_isFilenameSafe = set(_filename_allowed).__contains__
@@ -342,7 +344,7 @@
association_file = open(association_filename, 'rb')
except IOError as why:
if why.errno == ENOENT:
- logging.exception("%s disappeared during %s._allAssocs" % (
+ logger.exception("%s disappeared during %s._allAssocs" % (
association_filename, self.__class__.__name__))
else:
raise
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python3-openid-3.1.0/openid/store/sqlstore.py
new/python3-openid-3.2.0/openid/store/sqlstore.py
--- old/python3-openid-3.1.0/openid/store/sqlstore.py 2017-02-22
16:32:15.000000000 +0100
+++ new/python3-openid-3.2.0/openid/store/sqlstore.py 2020-04-12
19:26:16.000000000 +0200
@@ -10,12 +10,6 @@
import re
import time
-try:
- import psycopg2
-except ImportError:
- from psycopg2cffi import compat
- compat.register()
-
from openid.association import Association
from openid.store.interface import OpenIDStore
from openid.store import nonce
@@ -433,6 +427,13 @@
All other methods are implementation details.
"""
+
+ try:
+ import psycopg2
+ except ImportError:
+ from psycopg2cffi import compat
+ compat.register()
+
exceptions = None
create_nonce_sql = """
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python3-openid-3.1.0/openid/test/support.py
new/python3-openid-3.2.0/openid/test/support.py
--- old/python3-openid-3.1.0/openid/test/support.py 2017-02-22
16:32:15.000000000 +0100
+++ new/python3-openid-3.2.0/openid/test/support.py 2020-04-12
19:48:01.000000000 +0200
@@ -3,6 +3,7 @@
import logging
+
class TestHandler(BufferingHandler):
def __init__(self, messages):
BufferingHandler.__init__(self, 0)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python3-openid-3.1.0/openid/test/test_accept.py
new/python3-openid-3.2.0/openid/test/test_accept.py
--- old/python3-openid-3.1.0/openid/test/test_accept.py 2017-02-22
16:32:15.000000000 +0100
+++ new/python3-openid-3.2.0/openid/test/test_accept.py 2020-04-12
19:26:16.000000000 +0200
@@ -9,11 +9,8 @@
() -> [(int, str)]
"""
filename = os.path.join(os.path.dirname(__file__), 'data', 'accept.txt')
- i = 1
- lines = []
- for line in open(filename):
- lines.append((i, line))
- i += 1
+ with open(filename, 'rt') as data_file:
+ lines = list(enumerate(data_file, 1))
return lines
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python3-openid-3.1.0/openid/test/test_parsehtml.py
new/python3-openid-3.2.0/openid/test/test_parsehtml.py
--- old/python3-openid-3.1.0/openid/test/test_parsehtml.py 2017-02-22
16:32:17.000000000 +0100
+++ new/python3-openid-3.2.0/openid/test/test_parsehtml.py 2020-04-12
19:26:16.000000000 +0200
@@ -74,7 +74,8 @@
cases = []
for filename in test_files:
test_num = 0
- data = open(filename).read()
+ with open(filename) as data_file:
+ data = data_file.read()
for expected, case in parseCases(data):
test_num += 1
cases.append((filename, test_num, expected, case))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python3-openid-3.1.0/openid/urinorm.py
new/python3-openid-3.2.0/openid/urinorm.py
--- old/python3-openid-3.1.0/openid/urinorm.py 2017-02-22 16:32:14.000000000
+0100
+++ new/python3-openid-3.2.0/openid/urinorm.py 2020-04-12 19:26:16.000000000
+0200
@@ -13,7 +13,7 @@
#
# unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~"
-uri_illegal_char_re = re.compile("[^-A-Za-z0-9:/?#[\]@!$&'()*+,;=._~%]",
+uri_illegal_char_re = re.compile(r"[^-A-Za-z0-9:/?#[\]@!$&'()*+,;=._~%]",
re.UNICODE)
authority_pattern = r'^([^@]*@)?([^:]*)(:.*)?'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python3-openid-3.1.0/openid/yadis/filters.py
new/python3-openid-3.2.0/openid/yadis/filters.py
--- old/python3-openid-3.1.0/openid/yadis/filters.py 2017-02-22
16:32:18.000000000 +0100
+++ new/python3-openid-3.2.0/openid/yadis/filters.py 2020-04-12
19:26:16.000000000 +0200
@@ -12,7 +12,10 @@
]
from openid.yadis.etxrd import expandService
-import collections
+try:
+ from collections.abc import Callable
+except ImportError:
+ from collections import Callable
class BasicServiceEndpoint(object):
@@ -192,7 +195,7 @@
# conversion attribute into the list of endpoint
# transformers
transformers.append(subfilter.fromBasicServiceEndpoint)
- elif isinstance(subfilter, collections.Callable):
+ elif isinstance(subfilter, Callable):
# It's a simple callable, so add it to the list of
# endpoint transformers
transformers.append(subfilter)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python3-openid-3.1.0/openid/yadis/xri.py
new/python3-openid-3.2.0/openid/yadis/xri.py
--- old/python3-openid-3.1.0/openid/yadis/xri.py 2017-02-22
16:32:18.000000000 +0100
+++ new/python3-openid-3.2.0/openid/yadis/xri.py 2020-04-12
19:26:16.000000000 +0200
@@ -31,7 +31,7 @@
return escapeForIRI(xri)
-_xref_re = re.compile('\((.*?)\)')
+_xref_re = re.compile(r'\((.*?)\)')
def _escape_xref(xref_match):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python3-openid-3.1.0/python3_openid.egg-info/PKG-INFO
new/python3-openid-3.2.0/python3_openid.egg-info/PKG-INFO
--- old/python3-openid-3.1.0/python3_openid.egg-info/PKG-INFO 2017-02-22
17:03:45.000000000 +0100
+++ new/python3-openid-3.2.0/python3_openid.egg-info/PKG-INFO 2020-06-29
14:15:41.000000000 +0200
@@ -1,12 +1,14 @@
-Metadata-Version: 1.1
+Metadata-Version: 2.1
Name: python3-openid
-Version: 3.1.0
+Version: 3.2.0
Summary: OpenID support for modern servers and consumers.
Home-page: http://github.com/necaris/python3-openid
Author: Rami Chowdhury
Author-email: [email protected]
+Maintainer: Rami Chowdhury
+Maintainer-email: [email protected]
License: UNKNOWN
-Download-URL: http://github.com/necaris/python3-openid/tarball/v3.1.0
+Download-URL: http://github.com/necaris/python3-openid/tarball/v3.2.0
Description: This is a set of Python packages to support use of
the OpenID decentralized identity system in your application, update
to Python
3. Want to enable single sign-on for your web site? Use the
openid.consumer
@@ -24,3 +26,5 @@
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content :: CGI
Tools/Libraries
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: System :: Systems Administration ::
Authentication/Directory
+Provides-Extra: mysql
+Provides-Extra: postgresql
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python3-openid-3.1.0/python3_openid.egg-info/SOURCES.txt
new/python3-openid-3.2.0/python3_openid.egg-info/SOURCES.txt
--- old/python3-openid-3.1.0/python3_openid.egg-info/SOURCES.txt
2017-02-22 17:03:46.000000000 +0100
+++ new/python3-openid-3.2.0/python3_openid.egg-info/SOURCES.txt
2020-06-29 14:15:41.000000000 +0200
@@ -1,6 +1,7 @@
LICENSE
MANIFEST.in
NEWS.md
+README.md
background-associations.txt
setup.cfg
setup.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python3-openid-3.1.0/python3_openid.egg-info/requires.txt
new/python3-openid-3.2.0/python3_openid.egg-info/requires.txt
--- old/python3-openid-3.1.0/python3_openid.egg-info/requires.txt
2017-02-22 17:03:45.000000000 +0100
+++ new/python3-openid-3.2.0/python3_openid.egg-info/requires.txt
2020-06-29 14:15:41.000000000 +0200
@@ -1 +1,7 @@
defusedxml
+
+[mysql]
+mysql-connector-python
+
+[postgresql]
+psycopg2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python3-openid-3.1.0/setup.cfg
new/python3-openid-3.2.0/setup.cfg
--- old/python3-openid-3.1.0/setup.cfg 2017-02-22 17:03:46.000000000 +0100
+++ new/python3-openid-3.2.0/setup.cfg 2020-06-29 14:15:41.881869600 +0200
@@ -1,6 +1,6 @@
[sdist]
force_manifest = 1
-formats = gztar, zip
+formats = gztar
[bdist_wheel]
universal = 0
@@ -8,5 +8,4 @@
[egg_info]
tag_build =
tag_date = 0
-tag_svn_revision = 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python3-openid-3.1.0/setup.py
new/python3-openid-3.2.0/setup.py
--- old/python3-openid-3.1.0/setup.py 2017-02-22 16:39:30.000000000 +0100
+++ new/python3-openid-3.2.0/setup.py 2020-04-12 19:26:16.000000000 +0200
@@ -38,6 +38,10 @@
download_url=('http://github.com/necaris/python3-openid/tarball'
'/v{}'.format(version)),
install_requires=install_requires,
+ extras_require={
+ 'mysql': ['mysql-connector-python'],
+ 'postgresql': ['psycopg2'],
+ },
classifiers=[
"Development Status :: 5 - Production/Stable",
"Environment :: Web Environment",