summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMichael Merickel <michael@merickel.org>2018-11-14 21:26:39 -0600
committerMichael Merickel <michael@merickel.org>2018-11-14 21:27:08 -0600
commit78dcc6dff88829831ead187804ac9233eafab52e (patch)
tree9a75d95c7cd31c68e8df55b495d0ed7d0d9d2449 /src
parenta705f56c3ebf34f25ab567d85b7d5b421983aa4a (diff)
downloadpyramid-78dcc6dff88829831ead187804ac9233eafab52e.tar.gz
pyramid-78dcc6dff88829831ead187804ac9233eafab52e.tar.bz2
pyramid-78dcc6dff88829831ead187804ac9233eafab52e.zip
remove several places supporting bytes for py2
Diffstat (limited to 'src')
-rw-r--r--src/pyramid/response.py4
-rw-r--r--src/pyramid/urldispatch.py11
-rw-r--r--src/pyramid/util.py27
3 files changed, 14 insertions, 28 deletions
diff --git a/src/pyramid/response.py b/src/pyramid/response.py
index 38f9fa1ce..8a2ba8929 100644
--- a/src/pyramid/response.py
+++ b/src/pyramid/response.py
@@ -100,14 +100,12 @@ class FileIter(object):
def __iter__(self):
return self
- def next(self):
+ def __next__(self):
val = self.file.read(self.block_size)
if not val:
raise StopIteration
return val
- __next__ = next # py3
-
def close(self):
self.file.close()
diff --git a/src/pyramid/urldispatch.py b/src/pyramid/urldispatch.py
index 6348ae7e2..97626c5dd 100644
--- a/src/pyramid/urldispatch.py
+++ b/src/pyramid/urldispatch.py
@@ -188,14 +188,6 @@ def _compile_route(route):
match = re.compile(pattern).match
def matcher(path):
- # This function really wants to consume Unicode patterns natively,
- # but if someone passes us a bytestring, we allow it by converting it
- # to Unicode using the ASCII decoding. We decode it using ASCII
- # because we don't want to accept bytestrings with high-order
- # characters in them here as we have no idea what the encoding
- # represents.
- if path.__class__ is not str:
- path = text_(path, 'ascii')
m = match(path)
if m is None:
return None
@@ -216,7 +208,7 @@ def _compile_route(route):
newdict = {}
for k, v in dict.items():
if v.__class__ is bytes:
- # url_quote below needs a native string, not bytes on Py3
+ # url_quote below needs a native string
v = v.decode('utf-8')
if k == remainder:
@@ -230,7 +222,6 @@ def _compile_route(route):
else:
if v.__class__ is not str:
v = str(v)
- # v may be bytes (py2) or native string (py3)
v = q(v)
# at this point, the value will be a native string
diff --git a/src/pyramid/util.py b/src/pyramid/util.py
index 6cd8225aa..0688e67d3 100644
--- a/src/pyramid/util.py
+++ b/src/pyramid/util.py
@@ -603,10 +603,7 @@ def takes_one_arg(callee, attr=None, argname=None):
if inspect.isroutine(callee):
fn = callee
elif inspect.isclass(callee):
- try:
- fn = callee.__init__
- except AttributeError:
- return False
+ fn = callee.__init__
ismethod = hasattr(fn, '__call__')
else:
try:
@@ -614,15 +611,11 @@ def takes_one_arg(callee, attr=None, argname=None):
except AttributeError:
return False
- try:
- argspec = inspect.getfullargspec(fn)
- except TypeError:
- return False
-
+ argspec = inspect.getfullargspec(fn)
args = argspec[0]
if hasattr(fn, '__func__') or ismethod:
- # it's an instance method (or unbound method on py2)
+ # it's an instance method
if not args:
return False
args = args[1:]
@@ -676,8 +669,12 @@ def is_unbound_method(fn):
def reraise(tp, value, tb=None):
- if value is None:
- value = tp
- if value.__traceback__ is not tb:
- raise value.with_traceback(tb)
- raise value
+ try:
+ if value is None:
+ value = tp()
+ if value.__traceback__ is not tb:
+ raise value.with_traceback(tb)
+ raise value
+ finally:
+ value = None
+ tb = None