From ef49bf81758a17bebceea65afbc0c8643426fcd7 Mon Sep 17 00:00:00 2001 From: Wes Payne Date: Wed, 8 Mar 2017 16:51:49 -0800 Subject: [PATCH] Allow escaped and unescaped single and double quotes in metric names. --- graphite_api/render/grammar.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) 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)