From c10b3f97e0b5319039c53a917fb857892c7dfa5d Mon Sep 17 00:00:00 2001 From: 0x45f Date: Thu, 9 Dec 2021 07:53:46 +0000 Subject: [PATCH 1/3] remove outer comment when dy2stat --- python/paddle/fluid/dygraph/dygraph_to_static/utils.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/python/paddle/fluid/dygraph/dygraph_to_static/utils.py b/python/paddle/fluid/dygraph/dygraph_to_static/utils.py index c4df01c4c7654..a46ca1e921e0c 100644 --- a/python/paddle/fluid/dygraph/dygraph_to_static/utils.py +++ b/python/paddle/fluid/dygraph/dygraph_to_static/utils.py @@ -547,7 +547,11 @@ def func_to_source_code(function, dedent=True): raise TypeError( "The type of 'function' should be a function or method, but received {}.". format(type(function).__name__)) - source_code = inspect.getsource(function) + source_code_list, _ = inspect.getsourcelines(function) + source_code_list = [ + line for line in source_code_list if not line.startswith('#') + ] + source_code = ''.join(source_code_list) if dedent: source_code = textwrap.dedent(source_code) From 7bce35d3d75426b1a40b4294d90ebeab7c082356 Mon Sep 17 00:00:00 2001 From: 0x45f Date: Thu, 9 Dec 2021 08:39:57 +0000 Subject: [PATCH 2/3] remove all comment --- python/paddle/fluid/dygraph/dygraph_to_static/utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/paddle/fluid/dygraph/dygraph_to_static/utils.py b/python/paddle/fluid/dygraph/dygraph_to_static/utils.py index a46ca1e921e0c..51e85901e7d55 100644 --- a/python/paddle/fluid/dygraph/dygraph_to_static/utils.py +++ b/python/paddle/fluid/dygraph/dygraph_to_static/utils.py @@ -549,7 +549,7 @@ def func_to_source_code(function, dedent=True): format(type(function).__name__)) source_code_list, _ = inspect.getsourcelines(function) source_code_list = [ - line for line in source_code_list if not line.startswith('#') + line for line in source_code_list if not line.lstrip().startswith('#') ] source_code = ''.join(source_code_list) if dedent: From 464c6df14f8af22de8f052d0ac09e0a62cf189e4 Mon Sep 17 00:00:00 2001 From: 0x45f Date: Thu, 9 Dec 2021 11:11:56 +0000 Subject: [PATCH 3/3] add unit test --- .../dygraph_to_static/test_program_translator.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/python/paddle/fluid/tests/unittests/dygraph_to_static/test_program_translator.py b/python/paddle/fluid/tests/unittests/dygraph_to_static/test_program_translator.py index c08a8d350f8aa..d4c41781078b7 100644 --- a/python/paddle/fluid/tests/unittests/dygraph_to_static/test_program_translator.py +++ b/python/paddle/fluid/tests/unittests/dygraph_to_static/test_program_translator.py @@ -26,6 +26,7 @@ from paddle.fluid.dygraph.dygraph_to_static import ProgramTranslator from paddle.fluid.dygraph.jit import declarative from paddle.fluid.dygraph.nn import Linear +from paddle.fluid.dygraph.dygraph_to_static.utils import func_to_source_code from ifelse_simple_func import dyfunc_with_if_else @@ -344,5 +345,18 @@ def test_raise_error(self): net.foo.train() +class TestRemoveCommentInDy2St(unittest.TestCase): + def func_with_comment(self): + # Comment1 + x = paddle.to_tensor([1, 2, 3]) + # Comment2 + # Comment3 + y = paddle.to_tensor([4, 5, 6]) + + def test_remove_comment(self): + code_string = func_to_source_code(self.func_with_comment) + self.assertEqual('#' not in code_string, True) + + if __name__ == '__main__': unittest.main()