Skip to content

Commit fa64487

Browse files
author
Nicolas Joyard
committed
Update parser to grako 3.12, freeze grako
1 parent d648655 commit fa64487

File tree

2 files changed

+33
-5
lines changed

2 files changed

+33
-5
lines changed

rql_filter/parser/parser.py

Lines changed: 32 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,12 @@
1313

1414
from __future__ import print_function, division, absolute_import, unicode_literals
1515

16+
from grako.buffering import Buffer
1617
from grako.parsing import graken, Parser
1718
from grako.util import re, RE_FLAGS, generic_main # noqa
1819

1920

20-
__version__ = (2016, 8, 6, 7, 46, 58, 5)
21+
__version__ = (2016, 8, 7, 10, 22, 21, 6)
2122

2223
__all__ = [
2324
'RQLParser',
@@ -28,6 +29,28 @@
2829
KEYWORDS = set([])
2930

3031

32+
class RQLBuffer(Buffer):
33+
def __init__(self,
34+
text,
35+
whitespace=None,
36+
nameguard=None,
37+
comments_re=None,
38+
eol_comments_re=None,
39+
ignorecase=None,
40+
namechars='',
41+
**kwargs):
42+
super(RQLBuffer, self).__init__(
43+
text,
44+
whitespace=whitespace,
45+
nameguard=nameguard,
46+
comments_re=comments_re,
47+
eol_comments_re=eol_comments_re,
48+
ignorecase=ignorecase,
49+
namechars=namechars,
50+
**kwargs
51+
)
52+
53+
3154
class RQLParser(Parser):
3255
def __init__(self,
3356
whitespace=None,
@@ -51,6 +74,11 @@ def __init__(self,
5174
**kwargs
5275
)
5376

77+
def parse(self, text, *args, **kwargs):
78+
if not isinstance(text, Buffer):
79+
text = RQLBuffer(text, **kwargs)
80+
return super(RQLParser, self).parse(text, *args, **kwargs)
81+
5482
@graken()
5583
def _start_(self):
5684
self._OREXPRESSION_()
@@ -64,7 +92,7 @@ def sep0():
6492

6593
def block0():
6694
self._ANDEXPRESSION_()
67-
self._positive_closure(block0, prefix=sep0)
95+
self._closure(block0, sep=sep0)
6896

6997
@graken()
7098
def _ANDEXPRESSION_(self):
@@ -74,7 +102,7 @@ def sep0():
74102

75103
def block0():
76104
self._CONSTRAINT_()
77-
self._positive_closure(block0, prefix=sep0)
105+
self._closure(block0, sep=sep0)
78106

79107
@graken()
80108
def _CONSTRAINT_(self):
@@ -163,7 +191,7 @@ def sep1():
163191

164192
def block1():
165193
self._VALUE_()
166-
self._positive_closure(block1, prefix=sep1)
194+
self._closure(block1, sep=sep1)
167195
self.name_last_node('@')
168196
self._token(')')
169197

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ def read(fname):
1919
long_description=read('README.rst'),
2020
install_requires=[
2121
'djangorestframework>=3,<4',
22-
'grako>=3,<4',
22+
'grako>=3.12,<3.13',
2323
],
2424
extras_require={
2525
'testing': [

0 commit comments

Comments
 (0)