Make the check for string types also work on Python 3.
Fixes #37
diff --git a/ChangeLog b/ChangeLog
index 6912eac..7be4262 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -11,6 +11,7 @@
~~~
- First try to utf8 encode, but skip for python3. [evgen]
+- Make the checks for string type work. [Patrick Uiterwijk, Sergey]
1.2.1 (2014-01-26)
diff --git a/flask_openid.py b/flask_openid.py
index 59cacb4..d9325bb 100644
--- a/flask_openid.py
+++ b/flask_openid.py
@@ -17,6 +17,7 @@
import tempfile
from functools import wraps
from datetime import date
+import sys
from flask import request, session, redirect, current_app, url_for
from werkzeug import url_quote
@@ -102,6 +103,12 @@
except (ValueError, TypeError):
return None
+def isstring(x):
+ if sys.version_info.major >= 3:
+ return isinstance(x, str)
+ else:
+ return isinstance(x, basestring)
+
class SessionWrapper(object):
name_mapping = {
@@ -333,7 +340,7 @@
def __init__(self, app=None, fs_store_path=None, store_factory=None,
fallback_endpoint=None, extension_responses=None, safe_roots=None):
# backwards compatibility support
- if isinstance(app, basestring):
+ if isstring(app):
from warnings import warn
warn(DeprecationWarning('OpenID constructor expects application '
'as first argument now. If you want to '
@@ -357,7 +364,7 @@
if not extension_responses:
extension_responses = []
self.extension_responses = extension_responses
- if isinstance(safe_roots, basestring):
+ if isstring(safe_roots):
self.safe_roots = [safe_roots]
else:
self.safe_roots = safe_roots