未验证 提交 ee203340 编写于 作者: N Nyakku Shigure 提交者: GitHub

[CodeStyle] format some dy2static unittests (#46463)

* [CodeStyle] reformat test_error

* update lineno

* remove test_error from yapf whitelist

* try format test_origin_info

* try to fix origin info test case

* remove future import

* remove test_origin_info from yapf excludes

* empty commit, test=document_fix

* empty commit
上级 84f7835d
......@@ -30,11 +30,6 @@ repos:
hooks:
- id: yapf
files: (.*\.(py|bzl)|BUILD|.*\.BUILD|WORKSPACE)$
exclude: |
(?x)^(
python/paddle/fluid/tests/unittests/dygraph_to_static/test_error.py|
python/paddle/fluid/tests/unittests/dygraph_to_static/test_origin_info.py
)$
- repo: https://github.com/PyCQA/flake8
rev: 4.0.1
hooks:
......
......@@ -12,8 +12,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
from __future__ import print_function
import os
import inspect
import unittest
......@@ -68,13 +66,13 @@ def func_decorated_by_other_2():
class LayerErrorInCompiletime(fluid.dygraph.Layer):
def __init__(self, fc_size=20):
super(LayerErrorInCompiletime, self).__init__()
self._linear = fluid.dygraph.Linear(fc_size, fc_size)
@paddle.jit.to_static(
input_spec=[paddle.static.InputSpec(
shape=[20, 20], dtype='float32')])
input_spec=[paddle.static.InputSpec(shape=[20, 20], dtype='float32')])
def forward(self, x):
y = self._linear(x)
z = fluid.layers.fill_constant(shape=[1, 2], value=9, dtype="int")
......@@ -83,6 +81,7 @@ class LayerErrorInCompiletime(fluid.dygraph.Layer):
class LayerErrorInCompiletime2(fluid.dygraph.Layer):
def __init__(self):
super(LayerErrorInCompiletime2, self).__init__()
......@@ -109,6 +108,7 @@ def func_error_in_runtime_with_empty_line(x):
class SuggestionErrorTestNet(paddle.nn.Layer):
def __init__(self):
super(SuggestionErrorTestNet, self).__init__()
self.inner_net = SuggestionErrorTestNet2()
......@@ -119,6 +119,7 @@ class SuggestionErrorTestNet(paddle.nn.Layer):
class SuggestionErrorTestNet2():
def __init__(self):
super(SuggestionErrorTestNet2, self).__init__()
self.w = paddle.to_tensor([2.])
......@@ -134,6 +135,7 @@ def func_suggestion_error_in_runtime(x):
class TestFlags(unittest.TestCase):
def setUp(self):
self.reset_flags_to_default()
......@@ -165,6 +167,7 @@ class TestFlags(unittest.TestCase):
class TestErrorBase(unittest.TestCase):
def setUp(self):
self.set_input()
self.set_func()
......@@ -239,6 +242,7 @@ class TestErrorBase(unittest.TestCase):
# Situation 1: Call StaticLayer.__call__ to use Dynamic-to-Static
class TestErrorStaticLayerCallInCompiletime(TestErrorBase):
def set_func(self):
self.func = func_error_in_compile_time
......@@ -249,10 +253,11 @@ class TestErrorStaticLayerCallInCompiletime(TestErrorBase):
self.exception_type = TypeError
def set_message(self):
self.expected_message = \
['File "{}", line 35, in func_error_in_compile_time'.format(self.filepath),
self.expected_message = [
'File "{}", line 33, in func_error_in_compile_time'.format(
self.filepath),
'inner_func()',
'File "{}", line 28, in inner_func'.format(self.filepath),
'File "{}", line 26, in inner_func'.format(self.filepath),
'def inner_func():',
'fluid.layers.fill_constant(shape=[1, 2], value=9, dtype="int")',
'<--- HERE',
......@@ -270,6 +275,7 @@ class TestErrorStaticLayerCallInCompiletime(TestErrorBase):
class TestErrorStaticLayerCallInCompiletime_2(
TestErrorStaticLayerCallInCompiletime):
def set_func(self):
self.func = func_error_in_compile_time_2
......@@ -277,19 +283,20 @@ class TestErrorStaticLayerCallInCompiletime_2(
self.exception_type = ValueError
def set_message(self):
self.expected_message = \
[
'File "{}", line 46, in func_error_in_compile_time_2'.format(self.filepath),
self.expected_message = [
'File "{}", line 44, in func_error_in_compile_time_2'.format(
self.filepath),
'def func_error_in_compile_time_2(x):',
'x = fluid.dygraph.to_variable(x)',
'x = fluid.layers.reshape(x, shape=[1, 2])',
'<--- HERE',
'return x'
'return x',
]
class TestErrorStaticLayerCallInCompiletime_3(
TestErrorStaticLayerCallInCompiletime):
def setUp(self):
self.reset_flags_to_default()
self.set_func_call()
......@@ -301,12 +308,12 @@ class TestErrorStaticLayerCallInCompiletime_3(
self.exception_type = IndentationError
def set_message(self):
self.expected_message = \
['File "{}", line 91, in forward'.format(self.filepath),
self.expected_message = [
'File "{}", line 90, in forward'.format(self.filepath),
'@paddle.jit.to_static',
'def forward(self):',
'self.test_func()',
'<--- HERE'
'<--- HERE',
]
def set_func_call(self):
......@@ -318,6 +325,7 @@ class TestErrorStaticLayerCallInCompiletime_3(
class TestErrorStaticLayerCallInRuntime(TestErrorStaticLayerCallInCompiletime):
def set_func(self):
self.func = func_error_in_runtime
......@@ -325,50 +333,58 @@ class TestErrorStaticLayerCallInRuntime(TestErrorStaticLayerCallInCompiletime):
self.exception_type = ValueError
def set_message(self):
self.expected_message = \
[
'File "{}", line 54, in func_error_in_runtime'.format(self.filepath),
self.expected_message = [
'File "{}", line 52, in func_error_in_runtime'.format(
self.filepath),
'x = fluid.dygraph.to_variable(x)',
'two = fluid.layers.fill_constant(shape=[1], value=2, dtype="int32")',
'x = fluid.layers.reshape(x, shape=[1, two])',
'<--- HERE',
'return x'
'return x',
]
class TestErrorStaticLayerCallInRuntime2(TestErrorStaticLayerCallInRuntime):
def set_func(self):
self.func = func_error_in_runtime_with_empty_line
def set_message(self):
self.expected_message = \
[
'File "{}", line 106, in func_error_in_runtime_with_empty_line'.format(self.filepath),
self.expected_message = [
'File "{}", line 105, in func_error_in_runtime_with_empty_line'.
format(self.filepath),
'two = fluid.layers.fill_constant(shape=[1], value=2, dtype="int32")',
'x = fluid.layers.reshape(x, shape=[1, two])',
'<--- HERE',
'return x'
'return x',
]
# Situation 2: Call ProgramTranslator().get_output(...) to use Dynamic-to-Static
class TestErrorGetOutputInCompiletime(TestErrorStaticLayerCallInCompiletime):
def set_func_call(self):
self.func_call = lambda : self.prog_trans.get_output(unwrap(self.func), self.input)
self.func_call = lambda: self.prog_trans.get_output(
unwrap(self.func), self.input)
class TestErrorGetOutputInCompiletime_2(
TestErrorStaticLayerCallInCompiletime_2):
class TestErrorGetOutputInCompiletime_2(TestErrorStaticLayerCallInCompiletime_2
):
def set_func_call(self):
self.func_call = lambda : self.prog_trans.get_output(unwrap(self.func), self.input)
self.func_call = lambda: self.prog_trans.get_output(
unwrap(self.func), self.input)
class TestErrorGetOutputInRuntime(TestErrorStaticLayerCallInRuntime):
def set_func_call(self):
self.func_call = lambda : self.prog_trans.get_output(unwrap(self.func), self.input)
self.func_call = lambda: self.prog_trans.get_output(
unwrap(self.func), self.input)
class TestJitSaveInCompiletime(TestErrorBase):
def setUp(self):
self.reset_flags_to_default()
self.set_func_call()
......@@ -380,19 +396,20 @@ class TestJitSaveInCompiletime(TestErrorBase):
self.exception_type = TypeError
def set_message(self):
self.expected_message = \
['File "{}", line 80, in forward'.format(self.filepath),
self.expected_message = [
'File "{}", line 78, in forward'.format(self.filepath),
'def forward(self, x):',
'y = self._linear(x)',
'z = fluid.layers.fill_constant(shape=[1, 2], value=9, dtype="int")',
'<--- HERE',
'out = paddle.mean(y[z])',
'return out'
'return out',
]
def set_func_call(self):
layer = LayerErrorInCompiletime()
self.func_call = lambda : paddle.jit.save(layer, path="./test_dy2stat_error/model")
self.func_call = lambda: paddle.jit.save(
layer, path="./test_dy2stat_error/model")
def test_error(self):
self._test_raise_new_exception()
......@@ -400,7 +417,9 @@ class TestJitSaveInCompiletime(TestErrorBase):
# # Situation 4: NotImplementedError
class TestSuggestionErrorInRuntime(TestErrorBase):
def set_func(self):
self.func = func_suggestion_error_in_runtime
......@@ -411,18 +430,17 @@ class TestSuggestionErrorInRuntime(TestErrorBase):
self.exception_type = ValueError
def set_message(self):
self.expected_message = \
[
self.expected_message = [
'File "{}", line 118, in forward'.format(self.filepath),
'return self.inner_net.forward(x)',
'File "{}", line 127, in forward'.format(self.filepath),
'File "{}", line 128, in forward'.format(self.filepath),
'def forward(self, x):',
'out = paddle.matmul(self.w, x)',
'<--- HERE',
'return out',
'Revise suggestion:',
'Please ensure all your sublayers are inheritted from nn.Layer.',
'Please ensure there is no tensor created explicitly depended on external data, we suggest to register it as buffer tensor. See'
'Please ensure there is no tensor created explicitly depended on external data, we suggest to register it as buffer tensor. See',
]
def set_func_call(self):
......@@ -433,15 +451,16 @@ class TestSuggestionErrorInRuntime(TestErrorBase):
for disable_new_error in [0, 1]:
self._test_raise_new_exception(disable_new_error)
@paddle.jit.to_static
def func_ker_error(x):
d = {
'x': x
}
d = {'x': x}
y = d['y'] + x
return y
class TestKeyError(unittest.TestCase):
def test_key_error(self):
paddle.disable_static()
with self.assertRaises(error.Dy2StKeyError):
......@@ -451,11 +470,13 @@ class TestKeyError(unittest.TestCase):
@paddle.jit.to_static
def NpApiErr():
a = paddle.to_tensor([1,2])
a = paddle.to_tensor([1, 2])
b = np.sum(a.numpy())
print(b)
class TestNumpyApiErr(unittest.TestCase):
def test_numpy_api_err(self):
with self.assertRaises(TypeError) as e:
NpApiErr()
......@@ -467,10 +488,13 @@ class TestNumpyApiErr(unittest.TestCase):
error_message = str(new_exception)
self.assertIn("values will be changed to variables by dy2static, numpy api can not handle variables", error_message)
self.assertIn(
"values will be changed to variables by dy2static, numpy api can not handle variables",
error_message)
class test_set_state_dict_err_layer(paddle.nn.Layer):
def __init__(self):
super(test_set_state_dict_err_layer, self).__init__()
self.linear = paddle.nn.Linear(5, 2)
......@@ -490,10 +514,11 @@ class test_set_state_dict_err_layer(paddle.nn.Layer):
class TestSetStateDictErr(unittest.TestCase):
def test_set_state_dict_err(self):
with self.assertRaises(ValueError) as e:
layer = test_set_state_dict_err_layer()
x = paddle.to_tensor([1.,2.,3.,4.,5.])
x = paddle.to_tensor([1., 2., 3., 4., 5.])
y = layer(x)
new_exception = e.exception
......@@ -503,7 +528,9 @@ class TestSetStateDictErr(unittest.TestCase):
error_message = str(new_exception)
self.assertIn("This error might happens in dy2static, while calling 'set_state_dict' dynamicly in 'forward', which is not supported. If you only need call 'set_state_dict' once, move it to '__init__'.", error_message)
self.assertIn(
"This error might happens in dy2static, while calling 'set_state_dict' dynamicly in 'forward', which is not supported. If you only need call 'set_state_dict' once, move it to '__init__'.",
error_message)
if __name__ == '__main__':
......
......@@ -12,7 +12,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
import sys
import unittest
......@@ -28,6 +27,7 @@ def simple_func(x):
def nested_func(x):
def f1(a):
return a
......@@ -47,6 +47,7 @@ def decorated_func2(x):
class TestOriginInfo(unittest.TestCase):
def setUp(self):
self.set_test_func()
self.dygraph_func = unwrap(self.func)
......@@ -115,8 +116,8 @@ class TestOriginInfo(unittest.TestCase):
origin_info = OriginInfo(
Location(self.dygraph_filepath, dy_lineno, dy_col_offset),
self.dy_func_name[i], code)
self.assertEqual(
str(origin_info_map[staic_loc.line_location]), str(origin_info))
self.assertEqual(str(origin_info_map[staic_loc.line_location]),
str(origin_info))
def test_attach_origin_info(self):
dygraph_ast = gast.parse(self.source_code)
......@@ -143,6 +144,7 @@ class TestOriginInfo(unittest.TestCase):
class TestOriginInfoWithNestedFunc(TestOriginInfo):
def set_test_func(self):
self.func = nested_func
......@@ -152,7 +154,7 @@ class TestOriginInfoWithNestedFunc(TestOriginInfo):
def set_dygraph_info(self):
self.line_num = 5
self.line_index_list = [0, 1, 2, 3, 4]
self.dy_rel_lineno_list = [0, 1, 2, 4, 5]
self.dy_rel_lineno_list = [0, 2, 3, 5, 6]
self.dy_abs_col_offset = [0, 4, 8, 4, 4]
self.dy_func_name = [self.dygraph_func.__name__] + \
["f1"] * 2 + \
......@@ -168,6 +170,7 @@ class TestOriginInfoWithNestedFunc(TestOriginInfo):
class TestOriginInfoWithDecoratedFunc(TestOriginInfo):
def set_test_func(self):
self.func = decorated_func
......@@ -202,6 +205,7 @@ class TestOriginInfoWithDecoratedFunc(TestOriginInfo):
class TestOriginInfoWithDecoratedFunc2(TestOriginInfo):
def set_test_func(self):
self.func = decorated_func2
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册