提交 8634f09d authored 作者: David Warde-Farley's avatar David Warde-Farley

BUG: str -> basestring isinstance checks.

上级 b86b4389
......@@ -46,12 +46,12 @@ purpose of it is to hack it to investigate what your own particular program is d
self.provided_linker = linker
self.provided_optimizer = optimizer
if isinstance(linker, str) or linker is None:
if isinstance(linker, basestring) or linker is None:
linker = predefined_linkers[linker]
self.linker = WrapLinkerMany([linker], [blah])
if isinstance(optimizer, str) or optimizer is None:
if isinstance(optimizer, basestring) or optimizer is None:
optimizer = predefined_optimizers[optimizer]
self._optimizer = optimizer
......
......@@ -58,7 +58,7 @@ AddConfigVar('DebugMode.warn_input_not_reused',
in_c_key=False)
def is_valid_check_preallocated_output_param(param):
if not isinstance(param, str):
if not isinstance(param, basestring):
return False
valid = ["previous", "c_contiguous", "f_contiguous", "neg_strides", "ALL", ""]
for p in param.split(":"):
......
......@@ -1272,7 +1272,7 @@ def convert_function_input(input):
orig = input
if not input:
raise TypeError("Nonsensical input specification: %s" % input)
if isinstance(input[0], str):
if isinstance(input[0], basestring):
name = input[0]
input = input[1:]
else:
......
......@@ -56,7 +56,7 @@ class SymbolicInput(object):
else:
self.name = name
if self.name is not None and not isinstance(self.name, str):
if self.name is not None and not isinstance(self.name, basestring):
raise TypeError("name must be a string! (got: %s)" % self.name)
self.update = update
if (mutable is not None):
......@@ -90,7 +90,7 @@ class SymbolicInputKit(object):
"""
def __init__(self, name):
if not isinstance(name, str):
if not isinstance(name, basestring):
raise TypeError('naem must be a string (got: %s)' % name)
self.name = name
self.sinputs = []
......
......@@ -245,10 +245,10 @@ class Mode(object):
linker, optimizer = state
self.provided_linker = linker
self.provided_optimizer = optimizer
if isinstance(linker, str) or linker is None:
if isinstance(linker, basestring) or linker is None:
linker = predefined_linkers[linker]
self.linker = linker
if isinstance(optimizer, str) or optimizer is None:
if isinstance(optimizer, basestring) or optimizer is None:
optimizer = predefined_optimizers[optimizer]
if isinstance(optimizer, gof.Query):
self.provided_optimizer = optimizer
......@@ -271,9 +271,9 @@ class Mode(object):
optimizer = property(__get_optimizer)
def get_linker_optimizer(self, linker, optimizer):
if isinstance(linker, str) or linker is None:
if isinstance(linker, basestring) or linker is None:
linker = predefined_linkers[linker]
if isinstance(optimizer, str) or optimizer is None:
if isinstance(optimizer, basestring) or optimizer is None:
optimizer = predefined_optimizers[optimizer]
return (linker, optimizer)
......@@ -313,7 +313,7 @@ def get_mode(orig_string):
string = config.mode
else:
string = orig_string
if not isinstance(string, str):
if not isinstance(string, basestring):
return string #it is hopefully already a mode...
global instanciated_default_mode
......
......@@ -305,7 +305,7 @@ class Method(Component):
# return self.resolve(x).r
def resolve_inputs():
if isinstance(self.inputs, (io.In, gof.Variable, str)):
if isinstance(self.inputs, (io.In, gof.Variable, basestring)):
inputs = [self.inputs]
else:
inputs = list(self.inputs)
......@@ -313,7 +313,7 @@ class Method(Component):
passthrough=(gof.Variable, io.In)) for input in inputs]
def resolve_outputs():
if isinstance(self.outputs, (io.Out, gof.Variable, str, type(None))):
if isinstance(self.outputs, (io.Out, gof.Variable, basestring, type(None))):
output = self.outputs
self.outputs = resolve_variable(output,
passthrough=(gof.Variable, io.Out, type(None)))
......
......@@ -184,7 +184,7 @@ class ProfileMode(Mode):
self.provided_linker = linker
self.provided_optimizer = optimizer
if isinstance(linker, str) or linker is None:
if isinstance(linker, basestring) or linker is None:
linker = predefined_linkers[linker]
if not config.ProfileMode.profile_memory:
......@@ -194,7 +194,7 @@ class ProfileMode(Mode):
linker = WrapLinker([linker], p_thunk)
self.linker = linker
if isinstance(optimizer, str) or optimizer is None:
if isinstance(optimizer, basestring) or optimizer is None:
optimizer = predefined_optimizers[optimizer]
self._optimizer = optimizer
......
......@@ -243,7 +243,7 @@ class EnumStr(ConfigParam):
# All options should be strings
for val in self.all:
if not isinstance(val, str):
if not isinstance(val, basestring):
raise ValueError('Valid values for an EnumStr parameter '
'should be strings', val, type(val))
......
......@@ -521,7 +521,7 @@ class CLinker(link.Linker):
pass
else:
# The following will be executed if the "try" block succeeds
assert isinstance(c_support_code_apply[-1], str), (
assert isinstance(c_support_code_apply[-1], basestring), (
str(node.op)+" didn't returned a string for c_support_code_apply")
# emit c_code
......@@ -529,7 +529,7 @@ class CLinker(link.Linker):
behavior = op.c_code(node, name, isyms, osyms, sub)
except utils.MethodNotDefined:
raise NotImplementedError("%s cannot produce C code" % op)
assert isinstance(behavior,str), str(node.op)+" didn't returned a string for c_code"
assert isinstance(behavior, basestring), str(node.op)+" didn't returned a string for c_code"
try:
cleanup = op.c_code_cleanup(node, name, isyms, osyms, sub)
......
......@@ -268,7 +268,7 @@ def get_module_hash(src_code, key):
# This should be the C++ compilation command line parameters or the
# libraries to link against.
to_hash += list(key_element)
elif isinstance(key_element, str):
elif isinstance(key_element, basestring):
if key_element.startswith('md5:'):
# This is the md5 hash of the config options. We can stop
# here.
......@@ -298,7 +298,7 @@ def get_safe_part(key):
# Find the md5 hash part.
c_link_key = key[1]
for key_element in c_link_key[1:]:
if isinstance(key_element, str) and key_element.startswith('md5:'):
if isinstance(key_element, basestring) and key_element.startswith('md5:'):
md5 = key_element[4:]
break
......
......@@ -269,7 +269,7 @@ class Variable(utils.object2):
if index is not None and not isinstance(index, int):
raise TypeError("index must be an int", index)
self.index = index
if name is not None and not isinstance(name, str):
if name is not None and not isinstance(name, basestring):
raise TypeError("name must be a string", name)
self.name = name
def __str__(self):
......
......@@ -698,7 +698,7 @@ class PatternSub(LocalOptimizer):
return match(real_pattern, expr, u, pattern.get('allow_multiple_clients', allow_multiple_clients))
else:
return retry_with_equiv()
elif isinstance(pattern, str):
elif isinstance(pattern, basestring):
v = unify.Var(pattern)
if u[v] is not v and u[v] is not expr:
return retry_with_equiv()
......@@ -721,7 +721,7 @@ class PatternSub(LocalOptimizer):
if isinstance(pattern, (list, tuple)):
args = [build(p, u) for p in pattern[1:]]
return pattern[0](*args)
elif isinstance(pattern, str):
elif isinstance(pattern, basestring):
return u[unify.Var(pattern)]
elif isinstance(pattern, (int,float)):
return pattern
......
......@@ -63,7 +63,7 @@ if 0:
_nodes = nodes
nodes = reduce(list.__iadd__,
[reduce(list.__iadd__,
[[n for n, i in out.clients if not isinstance(n, str)] for out in node.outputs],
[[n for n, i in out.clients if not isinstance(n, basestring)] for out in node.outputs],
[]) for node in nodes],
[])
candidates = tracks
......@@ -121,7 +121,7 @@ if 0:
# for candidate in candidates:
# if candidate.current.inputs is not None:
# for in1, in2 in zip(candidate.current.inputs, node.inputs):
# if isinstance(in1, str):
# if isinstance(in1, basestring):
# candidate.match[in1] = in2
# for client in node.clients:
......
......@@ -33,7 +33,7 @@ class MyType(Type):
def filter(self, x, strict=False, allow_downcast=None):
# Dummy filter: we want this type to represent strings that
# start with `self.thingy`.
assert isinstance(x, str) and x.startswith(self.thingy)
assert isinstance(x, basestring) and x.startswith(self.thingy)
return x
class MyOp(Op):
......
......@@ -45,7 +45,7 @@ def theano_parse_c_arg(c_arg):
class TheanoElementwiseKernel(pycuda.elementwise.ElementwiseKernel):
def __init__(self, arguments, operation,
name="kernel", keep=False, options=[], **kwargs):
if isinstance(arguments, str):
if isinstance(arguments, basestring):
arguments = [theano_parse_c_arg(arg) for arg in arguments.split(",")]
pycuda.elementwise.ElementwiseKernel.__init__(self, arguments, operation, name, keep, options, **kwargs)
......
......@@ -190,7 +190,7 @@ class PatternPrinter:
def __init__(self, *patterns):
self.patterns = []
for pattern in patterns:
if isinstance(pattern, str):
if isinstance(pattern, basestring):
self.patterns.append((pattern, ()))
else:
self.patterns.append((pattern[0], pattern[1:]))
......
......@@ -119,7 +119,7 @@ def compile(smod, initial_values={}):
elif issymbolicmodule(val):
for s in modwalker(val.__dict__, [v for k,v in sym_items(val)]):
yield s
elif isinstance(val, (str, int, float)):
elif isinstance(val, (basestring, int, float)):
pass
elif isinstance(val, theano.Variable):
pass
......@@ -170,7 +170,7 @@ def compile(smod, initial_values={}):
reflected[thing] = cmod
for key, val in sym_items(thing):
setattr(CMod, key, reflect(val))
elif isinstance(thing, (str, int, float)):
elif isinstance(thing, (basestring, int, float)):
reflected[thing] = thing
elif isinstance(thing, theano.Variable):
if thing.owner is None:
......
......@@ -355,9 +355,9 @@ class Scan(PureOp):
self.outputs[:slices] ]
wrapped_outputs += self.outputs[slices:]
profile = None
if (theano.config.profile or (isinstance(self.profile, (str,bool,int))
if (theano.config.profile or (isinstance(self.profile, (basestring, bool, int))
and self.profile)):
if isinstance(self.profile, str):
if isinstance(self.profile, basestring):
profile = ScanProfileStats(name = self.profile)
else:
profile = ScanProfileStats(name = self.name)
......
......@@ -245,7 +245,7 @@ def isNaN_or_Inf_or_None(x):
try:
isNaN = numpy.isnan(x)
isInf = numpy.isinf(x)
isStr = isinstance(x, str)
isStr = isinstance(x, basestring)
except Exception:
isNaN = False
isInf = False
......@@ -258,7 +258,7 @@ def isNaN_or_Inf_or_None(x):
except Exception:
isNaN = False
isInf = False
if isinstance(x, gof.Constant) and isinstance(x.data, str):
if isinstance(x, gof.Constant) and isinstance(x.data, basestring):
isStr = True
else:
isStr = False
......
......@@ -239,7 +239,7 @@ class SparseType(gof.Type):
else:
raise NotImplementedError('unsupported dtype "%s" not in list' % dtype, list(self.dtype_set))
assert isinstance(format, str)
assert isinstance(format, basestring)
if format in self.format_cls:
self.format = format
else:
......
......@@ -105,7 +105,7 @@ class RandomFunction(gof.Op):
def __setstate__(self, state):
self.state = state
fn, outtype, inplace, ndim_added = state
if isinstance(fn, str):
if isinstance(fn, basestring):
self.fn = getattr(numpy.random.RandomState, fn)
else:
self.fn = fn
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论