add example; add escape

move sample data
This commit is contained in:
wanglei.w
2020-11-11 22:38:49 +08:00
parent b260b92d8a
commit 5a1890c3e8
18 changed files with 134 additions and 65 deletions

12
node.go
View File

@@ -248,13 +248,12 @@ func (n *Node) GetFilter(outgoingEdges []DagEdge) string {
if n.nodeType != "FilterNode" {
panic("call GetFilter on non-FilterNode")
}
args := n.args
kwargs := n.kwargs
args, kwargs, ret := n.args, n.kwargs, ""
if n.name == "split" || n.name == "asplit" {
args = []string{fmt.Sprintf("%d", len(outgoingEdges))}
}
// todo escape char
for _, k := range kwargs.SortedKeys() {
args = Args(args).EscapeWith("\\'=:")
for _, k := range kwargs.EscapeWith("\\'=:").SortedKeys() {
v := getString(kwargs[k])
if v != "" {
args = append(args, fmt.Sprintf("%s=%s", k, v))
@@ -262,8 +261,9 @@ func (n *Node) GetFilter(outgoingEdges []DagEdge) string {
args = append(args, fmt.Sprintf("%s", k))
}
}
ret = escapeChars(n.name, "\\'=:")
if len(args) > 0 {
return fmt.Sprintf("%s=%s", n.name, strings.Join(args, ":"))
ret += fmt.Sprintf("=%s", strings.Join(args, ":"))
}
return fmt.Sprintf("%s", n.name)
return escapeChars(ret, "\\'[],;")
}