Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
pystencils
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
pycodegen
pystencils
Commits
627ad747
Commit
627ad747
authored
7 years ago
by
Martin Bauer
Browse files
Options
Downloads
Patches
Plain Diff
Removed unused code in dot printing
parent
8c744109
No related branches found
No related tags found
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
backends/dot.py
+3
-23
3 additions, 23 deletions
backends/dot.py
display_utils.py
+2
-2
2 additions, 2 deletions
display_utils.py
with
5 additions
and
25 deletions
backends/dot.py
+
3
−
23
View file @
627ad747
...
@@ -8,10 +8,9 @@ class DotPrinter(Printer):
...
@@ -8,10 +8,9 @@ class DotPrinter(Printer):
"""
"""
A printer which converts ast to DOT (graph description language).
A printer which converts ast to DOT (graph description language).
"""
"""
def
__init__
(
self
,
node_to_str_function
,
full
,
**
kwargs
):
def
__init__
(
self
,
node_to_str_function
,
**
kwargs
):
super
(
DotPrinter
,
self
).
__init__
()
super
(
DotPrinter
,
self
).
__init__
()
self
.
_node_to_str_function
=
node_to_str_function
self
.
_node_to_str_function
=
node_to_str_function
self
.
full
=
full
self
.
dot
=
Digraph
(
**
kwargs
)
self
.
dot
=
Digraph
(
**
kwargs
)
self
.
dot
.
quote_edge
=
lang
.
quote
self
.
dot
.
quote_edge
=
lang
.
quote
...
@@ -36,11 +35,6 @@ class DotPrinter(Printer):
...
@@ -36,11 +35,6 @@ class DotPrinter(Printer):
def
_print_SympyAssignment
(
self
,
assignment
):
def
_print_SympyAssignment
(
self
,
assignment
):
self
.
dot
.
node
(
str
(
id
(
assignment
)),
style
=
'
filled
'
,
fillcolor
=
'
#56db7f
'
,
self
.
dot
.
node
(
str
(
id
(
assignment
)),
style
=
'
filled
'
,
fillcolor
=
'
#56db7f
'
,
label
=
self
.
_node_to_str_function
(
assignment
))
label
=
self
.
_node_to_str_function
(
assignment
))
if
self
.
full
:
for
node
in
assignment
.
args
:
self
.
_print
(
node
)
for
node
in
assignment
.
args
:
self
.
dot
.
edge
(
str
(
id
(
assignment
)),
str
(
id
(
node
)))
def
_print_Conditional
(
self
,
expr
):
def
_print_Conditional
(
self
,
expr
):
self
.
dot
.
node
(
str
(
id
(
expr
)),
style
=
'
filled
'
,
fillcolor
=
'
#56bd7f
'
,
label
=
self
.
_node_to_str_function
(
expr
))
self
.
dot
.
node
(
str
(
id
(
expr
)),
style
=
'
filled
'
,
fillcolor
=
'
#56bd7f
'
,
label
=
self
.
_node_to_str_function
(
expr
))
...
@@ -50,16 +44,6 @@ class DotPrinter(Printer):
...
@@ -50,16 +44,6 @@ class DotPrinter(Printer):
self
.
_print
(
expr
.
false_block
)
self
.
_print
(
expr
.
false_block
)
self
.
dot
.
edge
(
str
(
id
(
expr
)),
str
(
id
(
expr
.
false_block
)))
self
.
dot
.
edge
(
str
(
id
(
expr
)),
str
(
id
(
expr
.
false_block
)))
def
empty_printer
(
self
,
expr
):
if
self
.
full
:
self
.
dot
.
node
(
str
(
id
(
expr
)),
label
=
self
.
_node_to_str_function
(
expr
))
for
node
in
expr
.
args
:
self
.
_print
(
node
)
for
node
in
expr
.
args
:
self
.
dot
.
edge
(
str
(
id
(
expr
)),
str
(
id
(
node
)))
else
:
raise
NotImplementedError
(
'
DotPrinter cannot print
'
,
type
(
expr
),
expr
)
def
doprint
(
self
,
expr
):
def
doprint
(
self
,
expr
):
self
.
_print
(
expr
)
self
.
_print
(
expr
)
return
self
.
dot
.
source
return
self
.
dot
.
source
...
@@ -83,23 +67,19 @@ def __shortened(node):
...
@@ -83,23 +67,19 @@ def __shortened(node):
raise
NotImplementedError
(
"
Cannot handle node type %s
"
%
(
type
(
node
),))
raise
NotImplementedError
(
"
Cannot handle node type %s
"
%
(
type
(
node
),))
def
print_dot
(
node
,
view
=
False
,
short
=
False
,
full
=
False
,
**
kwargs
):
def
print_dot
(
node
,
view
=
False
,
short
=
False
,
**
kwargs
):
"""
"""
Returns a string which can be used to generate a DOT-graph
Returns a string which can be used to generate a DOT-graph
:param node: The ast which should be generated
:param node: The ast which should be generated
:param view: Boolean, if rendering of the image directly should occur.
:param view: Boolean, if rendering of the image directly should occur.
:param short: Uses the __shortened output
:param short: Uses the __shortened output
:param full: Prints the whole tree with type information
:param kwargs: is directly passed to the DotPrinter class: http://graphviz.readthedocs.io/en/latest/api.html#digraph
:param kwargs: is directly passed to the DotPrinter class: http://graphviz.readthedocs.io/en/latest/api.html#digraph
:return: string in DOT format
:return: string in DOT format
"""
"""
node_to_str_function
=
repr
node_to_str_function
=
repr
if
short
:
if
short
:
node_to_str_function
=
__shortened
node_to_str_function
=
__shortened
elif
full
:
printer
=
DotPrinter
(
node_to_str_function
,
**
kwargs
)
def
node_to_str_function
(
expr
):
return
repr
(
type
(
expr
))
+
repr
(
expr
)
printer
=
DotPrinter
(
node_to_str_function
,
full
,
**
kwargs
)
dot
=
printer
.
doprint
(
node
)
dot
=
printer
.
doprint
(
node
)
if
view
:
if
view
:
return
graphviz
.
Source
(
dot
)
return
graphviz
.
Source
(
dot
)
...
...
This diff is collapsed.
Click to expand it.
display_utils.py
+
2
−
2
View file @
627ad747
...
@@ -3,7 +3,7 @@ from typing import Any, Dict, Optional
...
@@ -3,7 +3,7 @@ from typing import Any, Dict, Optional
from
pystencils.astnodes
import
KernelFunction
from
pystencils.astnodes
import
KernelFunction
def
to_dot
(
expr
:
sp
.
Expr
,
graph_style
:
Optional
[
Dict
[
str
,
Any
]]
=
None
):
def
to_dot
(
expr
:
sp
.
Expr
,
graph_style
:
Optional
[
Dict
[
str
,
Any
]]
=
None
,
short
=
True
):
"""
Show a sympy or pystencils AST as dot graph
"""
"""
Show a sympy or pystencils AST as dot graph
"""
from
pystencils.astnodes
import
Node
from
pystencils.astnodes
import
Node
import
graphviz
import
graphviz
...
@@ -11,7 +11,7 @@ def to_dot(expr: sp.Expr, graph_style: Optional[Dict[str, Any]] = None):
...
@@ -11,7 +11,7 @@ def to_dot(expr: sp.Expr, graph_style: Optional[Dict[str, Any]] = None):
if
isinstance
(
expr
,
Node
):
if
isinstance
(
expr
,
Node
):
from
pystencils.backends.dot
import
print_dot
from
pystencils.backends.dot
import
print_dot
return
graphviz
.
Source
(
print_dot
(
expr
,
short
=
True
,
graph_attr
=
graph_style
))
return
graphviz
.
Source
(
print_dot
(
expr
,
short
=
short
,
graph_attr
=
graph_style
))
else
:
else
:
from
sympy.printing.dot
import
dotprint
from
sympy.printing.dot
import
dotprint
return
graphviz
.
Source
(
dotprint
(
expr
,
graph_attr
=
graph_style
))
return
graphviz
.
Source
(
dotprint
(
expr
,
graph_attr
=
graph_style
))
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment