From cb78f5f8824651e36369b6586f8afd3506bd150a Mon Sep 17 00:00:00 2001 From: Stephan Seitz <stephan.seitz@fau.de> Date: Thu, 27 Feb 2020 17:30:17 +0100 Subject: [PATCH] Export pystencils_autodiff.show_code{,_debug} --- src/pystencils_autodiff/__init__.py | 5 ++++- src/pystencils_autodiff/framework_integration/printer.py | 6 ++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/pystencils_autodiff/__init__.py b/src/pystencils_autodiff/__init__.py index ea06911..83cc034 100644 --- a/src/pystencils_autodiff/__init__.py +++ b/src/pystencils_autodiff/__init__.py @@ -8,6 +8,7 @@ from pystencils_autodiff._autodiff import ( AutoDiffAstPair, AutoDiffBoundaryHandling, AutoDiffOp, DiffModes, create_backward_assignments, get_jacobian_of_assignments) from pystencils_autodiff.field_tensor_conversion import ArrayWrapper, coerce_to_field +from pystencils_autodiff.framework_integration.printer import show_code, show_code_debug __all__ = ['backends', 'AdjointField', @@ -19,7 +20,9 @@ __all__ = ['backends', 'DiffModes', 'AutoDiffBoundaryHandling', 'ArrayWrapper', - 'coerce_to_field'] + 'coerce_to_field', + 'show_code', + 'show_code_debug'] sys.modules['pystencils.autodiff'] = pystencils_autodiff sys.modules['pystencils.autodiff.backends'] = pystencils_autodiff.backends diff --git a/src/pystencils_autodiff/framework_integration/printer.py b/src/pystencils_autodiff/framework_integration/printer.py index 36477c9..57aab0d 100644 --- a/src/pystencils_autodiff/framework_integration/printer.py +++ b/src/pystencils_autodiff/framework_integration/printer.py @@ -1,3 +1,5 @@ +import functools + import sympy as sp import pystencils.backends.cbackend @@ -165,3 +167,7 @@ class DebugFrameworkPrinter(FrameworkIntegrationPrinter): return super()._print(node) + f'/* {node.__class__.__name__} symbols_undefined: {node.undefined_symbols}, symbols_defined: {node.symbols_defined}, args {[a if isinstance(a,str) else a.__class__.__name__ for a in node.args]} */' # noqa else: return super()._print(node) + + +show_code = functools.partial(pystencils.show_code, custom_backend=FrameworkIntegrationPrinter()) +show_code_debug = functools.partial(pystencils.show_code, custom_backend=DebugFrameworkPrinter()) -- GitLab