提交 58048780 authored 作者: Frédéric Bastien's avatar Frédéric Bastien

Merge pull request #1660 from lamblin/fix_py3_str

Convert string literals for Python3
...@@ -7,6 +7,7 @@ from theano import config ...@@ -7,6 +7,7 @@ from theano import config
from theano import gof from theano import gof
import theano import theano
import theano.tensor import theano.tensor
from theano.compat import exc_message
from theano.compile import debugmode from theano.compile import debugmode
import theano.compile import theano.compile
from theano.tests import unittest_tools as utt from theano.tests import unittest_tools as utt
...@@ -275,7 +276,7 @@ def test_badoptimization_opt_err(): ...@@ -275,7 +276,7 @@ def test_badoptimization_opt_err():
try: try:
f([1.0, 2.0, 3.0], [2, 3, 4],) f([1.0, 2.0, 3.0], [2, 3, 4],)
except Exception, e: except Exception, e:
assert 'insert_bigger_b_add' in e.message assert 'insert_bigger_b_add' in exc_message(e)
return # TEST PASS return # TEST PASS
assert False assert False
......
...@@ -25,7 +25,7 @@ import numpy.distutils # TODO: TensorType should handle this ...@@ -25,7 +25,7 @@ import numpy.distutils # TODO: TensorType should handle this
import theano import theano
from theano.compat import any, PY3, next, decode, decode_iter from theano.compat import any, PY3, next, decode, decode_iter
from theano.compat.six import BytesIO, StringIO from theano.compat.six import b, BytesIO, StringIO
from theano.gof.utils import flatten from theano.gof.utils import flatten
from theano.configparser import config from theano.configparser import config
from theano.gof.cc import hash_from_code from theano.gof.cc import hash_from_code
...@@ -1575,7 +1575,7 @@ class GCC_compiler(object): ...@@ -1575,7 +1575,7 @@ class GCC_compiler(object):
# as stdin (which is the default) results in the process # as stdin (which is the default) results in the process
# waiting forever without returning. For that reason, # waiting forever without returning. For that reason,
# we use a pipe, and use the empty string as input. # we use a pipe, and use the empty string as input.
(stdout, stderr) = p.communicate(input='') (stdout, stderr) = p.communicate(input=b(''))
if p.returncode != 0: if p.returncode != 0:
return None return None
...@@ -1843,12 +1843,12 @@ class GCC_compiler(object): ...@@ -1843,12 +1843,12 @@ class GCC_compiler(object):
if not theano.config.cxx: if not theano.config.cxx:
return False return False
code = """ code = b("""
int main(int argc, char** argv) int main(int argc, char** argv)
{ {
return 0; return 0;
} }
""" """)
return GCC_compiler.try_compile_tmp(code, tmp_prefix='try_flags_', return GCC_compiler.try_compile_tmp(code, tmp_prefix='try_flags_',
flags=flag_list, try_run=False) flags=flag_list, try_run=False)
......
...@@ -7,6 +7,7 @@ deterministic based on the input type and the op. ...@@ -7,6 +7,7 @@ deterministic based on the input type and the op.
import numpy import numpy
import theano import theano
from theano.gof.cmodule import GCC_compiler
class MyOp(theano.compile.ops.DeepCopyOp): class MyOp(theano.compile.ops.DeepCopyOp):
...@@ -57,3 +58,11 @@ def test_inter_process_cache(): ...@@ -57,3 +58,11 @@ def test_inter_process_cache():
assert MyOp.nb_called == 0 assert MyOp.nb_called == 0
else: else:
assert MyOp.nb_called == 1 assert MyOp.nb_called == 1
def test_flag_detection():
# Check that the code detecting blas flags does not raise any exception.
# It used to happen on python 3 because of improper string handling,
# but was not detected because that path is not usually taken,
# so we test it here directly.
GCC_compiler.try_flags(["-lblas"])
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论