summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Merickel <michael@merickel.org>2018-11-14 18:58:56 -0600
committerMichael Merickel <michael@merickel.org>2018-11-14 19:00:57 -0600
commit8c0cbe3be52a56ba9dc8ab6ced028dab9b48b333 (patch)
tree005ad55806606c0e5c5600fd2d461614d0c4860f
parenta480acfa4381604320525b5e76e22bfb16d9c964 (diff)
downloadpyramid-8c0cbe3be52a56ba9dc8ab6ced028dab9b48b333.tar.gz
pyramid-8c0cbe3be52a56ba9dc8ab6ced028dab9b48b333.tar.bz2
pyramid-8c0cbe3be52a56ba9dc8ab6ced028dab9b48b333.zip
move is_nonstr_iter to pyramid.util
-rw-r--r--src/pyramid/authorization.py4
-rw-r--r--src/pyramid/compat.py6
-rw-r--r--src/pyramid/config/predicates.py3
-rw-r--r--src/pyramid/config/tweens.py8
-rw-r--r--src/pyramid/config/views.py4
-rw-r--r--src/pyramid/encode.py2
-rw-r--r--src/pyramid/predicates.py4
-rw-r--r--src/pyramid/traversal.py2
-rw-r--r--src/pyramid/urldispatch.py4
-rw-r--r--src/pyramid/util.py8
10 files changed, 24 insertions, 21 deletions
diff --git a/src/pyramid/authorization.py b/src/pyramid/authorization.py
index 974748765..6056a8d25 100644
--- a/src/pyramid/authorization.py
+++ b/src/pyramid/authorization.py
@@ -4,10 +4,10 @@ from pyramid.interfaces import IAuthorizationPolicy
from pyramid.location import lineage
-from pyramid.compat import is_nonstr_iter
-
from pyramid.security import ACLAllowed, ACLDenied, Allow, Deny, Everyone
+from pyramid.util import is_nonstr_iter
+
@implementer(IAuthorizationPolicy)
class ACLAuthorizationPolicy(object):
diff --git a/src/pyramid/compat.py b/src/pyramid/compat.py
index 17527271e..1010e93f1 100644
--- a/src/pyramid/compat.py
+++ b/src/pyramid/compat.py
@@ -62,12 +62,6 @@ url_unquote_text = url_unquote
url_unquote_native = url_unquote
-def is_nonstr_iter(v):
- if isinstance(v, str):
- return False
- return hasattr(v, '__iter__')
-
-
# see PEP 3333 for why we encode WSGI PATH_INFO to latin-1 before
# decoding it to utf-8
def decode_path_info(path):
diff --git a/src/pyramid/config/predicates.py b/src/pyramid/config/predicates.py
index 31e770562..789bcd6ae 100644
--- a/src/pyramid/config/predicates.py
+++ b/src/pyramid/config/predicates.py
@@ -1,12 +1,13 @@
from hashlib import md5
from webob.acceptparse import Accept
-from pyramid.compat import bytes_, is_nonstr_iter
+from pyramid.compat import bytes_
from pyramid.exceptions import ConfigurationError
from pyramid.interfaces import IPredicateList, PHASE1_CONFIG
from pyramid.predicates import Notted
from pyramid.registry import predvalseq
from pyramid.util import TopologicalSorter
+from pyramid.util import is_nonstr_iter
MAX_ORDER = 1 << 30
diff --git a/src/pyramid/config/tweens.py b/src/pyramid/config/tweens.py
index 7f00c5f4f..c85639d14 100644
--- a/src/pyramid/config/tweens.py
+++ b/src/pyramid/config/tweens.py
@@ -2,13 +2,15 @@ from zope.interface import implementer
from pyramid.interfaces import ITweens
-from pyramid.compat import is_nonstr_iter
-
from pyramid.exceptions import ConfigurationError
from pyramid.tweens import MAIN, INGRESS, EXCVIEW
-from pyramid.util import is_string_or_iterable, TopologicalSorter
+from pyramid.util import (
+ is_nonstr_iter,
+ is_string_or_iterable,
+ TopologicalSorter,
+)
from pyramid.config.actions import action_method
diff --git a/src/pyramid/config/views.py b/src/pyramid/config/views.py
index 718ea8bf3..0039cd8fe 100644
--- a/src/pyramid/config/views.py
+++ b/src/pyramid/config/views.py
@@ -32,7 +32,7 @@ from pyramid.interfaces import (
from pyramid import renderers
from pyramid.asset import resolve_asset_spec
-from pyramid.compat import urlparse, url_quote, WIN, is_nonstr_iter
+from pyramid.compat import urlparse, url_quote, WIN
from pyramid.decorator import reify
@@ -53,7 +53,7 @@ from pyramid.url import parse_url_overrides
from pyramid.view import AppendSlashNotFoundViewFactory
-from pyramid.util import as_sorted_tuple, TopologicalSorter
+from pyramid.util import as_sorted_tuple, is_nonstr_iter, TopologicalSorter
import pyramid.predicates
import pyramid.viewderivers
diff --git a/src/pyramid/encode.py b/src/pyramid/encode.py
index 428bd0c08..1ed2c5a55 100644
--- a/src/pyramid/encode.py
+++ b/src/pyramid/encode.py
@@ -1,8 +1,8 @@
from pyramid.compat import (
- is_nonstr_iter,
url_quote as _url_quote,
url_quote_plus as _quote_plus,
)
+from pyramid.util import is_nonstr_iter
def url_quote(val, safe=''): # bw compat api
diff --git a/src/pyramid/predicates.py b/src/pyramid/predicates.py
index 280f6c03c..5a1127fb3 100644
--- a/src/pyramid/predicates.py
+++ b/src/pyramid/predicates.py
@@ -2,8 +2,6 @@ import re
from pyramid.exceptions import ConfigurationError
-from pyramid.compat import is_nonstr_iter
-
from pyramid.csrf import check_csrf_token
from pyramid.traversal import (
find_interface,
@@ -12,7 +10,7 @@ from pyramid.traversal import (
)
from pyramid.urldispatch import _compile_route
-from pyramid.util import as_sorted_tuple, object_description
+from pyramid.util import as_sorted_tuple, is_nonstr_iter, object_description
_marker = object()
diff --git a/src/pyramid/traversal.py b/src/pyramid/traversal.py
index 5adf728b6..429b12e23 100644
--- a/src/pyramid/traversal.py
+++ b/src/pyramid/traversal.py
@@ -12,7 +12,6 @@ from pyramid.interfaces import (
from pyramid.compat import (
native_,
ascii_native_,
- is_nonstr_iter,
decode_path_info,
unquote_bytes_to_wsgi,
)
@@ -21,6 +20,7 @@ from pyramid.encode import url_quote
from pyramid.exceptions import URLDecodeError
from pyramid.location import lineage
from pyramid.threadlocal import get_current_registry
+from pyramid.util import is_nonstr_iter
PATH_SEGMENT_SAFE = "~!$&'()*+,;=:@" # from webob
PATH_SAFE = PATH_SEGMENT_SAFE + "/"
diff --git a/src/pyramid/urldispatch.py b/src/pyramid/urldispatch.py
index c1db3c969..6d25b2dd5 100644
--- a/src/pyramid/urldispatch.py
+++ b/src/pyramid/urldispatch.py
@@ -3,12 +3,14 @@ from zope.interface import implementer
from pyramid.interfaces import IRoutesMapper, IRoute
-from pyramid.compat import native_, text_, is_nonstr_iter, decode_path_info
+from pyramid.compat import native_, text_, decode_path_info
from pyramid.exceptions import URLDecodeError
from pyramid.traversal import quote_path_segment, split_path_info, PATH_SAFE
+from pyramid.util import is_nonstr_iter
+
_marker = object()
diff --git a/src/pyramid/util.py b/src/pyramid/util.py
index 544fdc6de..6cd8225aa 100644
--- a/src/pyramid/util.py
+++ b/src/pyramid/util.py
@@ -6,7 +6,7 @@ import weakref
from pyramid.exceptions import ConfigurationError, CyclicDependencyError
-from pyramid.compat import is_nonstr_iter, bytes_, text_, native_
+from pyramid.compat import bytes_, text_, native_
from pyramid.path import DottedNameResolver as _DottedNameResolver
@@ -20,6 +20,12 @@ class DottedNameResolver(_DottedNameResolver):
_DottedNameResolver.__init__(self, package)
+def is_nonstr_iter(v):
+ if isinstance(v, str):
+ return False
+ return hasattr(v, '__iter__')
+
+
def is_string_or_iterable(v):
if isinstance(v, str):
return True