File tree Expand file tree Collapse file tree 1 file changed +16
-2
lines changed Expand file tree Collapse file tree 1 file changed +16
-2
lines changed Original file line number Diff line number Diff line change 1
1
from __future__ import unicode_literals
2
2
3
3
from builtins import object
4
+ from past .builtins import basestring
4
5
import hashlib
5
6
import json
6
7
@@ -51,8 +52,21 @@ class FilterNode(Node):
51
52
"""FilterNode"""
52
53
def _get_filter (self ):
53
54
params_text = self ._name
54
- arg_params = ['{}' .format (arg ) for arg in self ._args ]
55
- kwarg_params = ['{}={}' .format (k , self ._kwargs [k ]) for k in sorted (self ._kwargs )]
55
+
56
+ # Helper function to escape uncomfortable characters
57
+ def escape_chars (seq , keys ):
58
+ for k in keys :
59
+ if not isinstance (seq [k ], basestring ):
60
+ continue
61
+ for ch in "[]=;:," :
62
+ seq [k ] = seq [k ].replace (ch , "\\ \\ " + ch )
63
+ return seq
64
+
65
+ _args = escape_chars (self ._args [:], range (len (self ._args )))
66
+ _kwargs = escape_chars (self ._kwargs .copy (), self ._kwargs .keys ())
67
+
68
+ arg_params = ['{}' .format (arg ) for arg in _args ]
69
+ kwarg_params = ['{}={}' .format (k , _kwargs [k ]) for k in sorted (_kwargs )]
56
70
params = arg_params + kwarg_params
57
71
if params :
58
72
params_text += '={}' .format (':' .join (params ))
You can’t perform that action at this time.
0 commit comments