diff --git a/graphite_api/render/grammar.py b/graphite_api/render/grammar.py index d29e11f..1a71521 100644 --- a/graphite_api/render/grammar.py +++ b/graphite_api/render/grammar.py @@ -60,7 +60,8 @@ equal = Literal('=').suppress() backslash = Literal('\\').suppress() -symbols = '''(){},=.'"\\''' +unallowedSymbols = '''(){},=.\\''' +allowedSymbols = ''''"''' arg = Group( boolean | number | @@ -83,8 +84,8 @@ )('call') # Metric pattern (aka. pathExpression) -validMetricChars = ''.join((set(printables) - set(symbols))) -escapedChar = backslash + Word(symbols, exact=1) +validMetricChars = ''.join((set(printables) - set(unallowedSymbols))) +escapedChar = backslash + Word(unallowedSymbols + allowedSymbols, exact=1) partialPathElem = Combine( OneOrMore( escapedChar | Word(validMetricChars)