There is currently an issue with infinite recursion that occurs with the latest version of python-dice (v2.4.0), using Python 3.7 and pyparsing 2.4.0, which does not occur when using pyparsing 2.3.1.
>>> dice.roll('6')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Program Files\Python37\lib\site-packages\dice\__init__.py", line 24, in roll
File "C:\Program Files\Python37\lib\site-packages\dice\__init__.py", line 43, in _roll
ast = parse_expression(string)
File "C:\Program Files\Python37\lib\site-packages\dice\__init__.py", line 38, in parse_expression
return dice.grammar.expression.parseString(string, parseAll=True)
File "C:\Program Files\Python37\lib\site-packages\pyparsing.py", line 1811, in parseString
self.streamline()
File "C:\Program Files\Python37\lib\site-packages\pyparsing.py", line 3728, in streamline
super(And, self).streamline()
File "C:\Program Files\Python37\lib\site-packages\pyparsing.py", line 3655, in streamline
e.streamline()
File "C:\Program Files\Python37\lib\site-packages\pyparsing.py", line 3728, in streamline
super(And, self).streamline()
File "C:\Program Files\Python37\lib\site-packages\pyparsing.py", line 3655, in streamline
e.streamline()
File "C:\Program Files\Python37\lib\site-packages\pyparsing.py", line 4651, in streamline
self.expr.streamline()
File "C:\Program Files\Python37\lib\site-packages\pyparsing.py", line 4651, in streamline
self.expr.streamline()
File "C:\Program Files\Python37\lib\site-packages\pyparsing.py", line 3892, in streamline
super(MatchFirst, self).streamline()
File "C:\Program Files\Python37\lib\site-packages\pyparsing.py", line 3655, in streamline
e.streamline()
File "C:\Program Files\Python37\lib\site-packages\pyparsing.py", line 3728, in streamline
super(And, self).streamline()
File "C:\Program Files\Python37\lib\site-packages\pyparsing.py", line 3655, in streamline
e.streamline()
...
File "C:\Program Files\Python37\lib\site-packages\pyparsing.py", line 4651, in streamline
self.expr.streamline()
File "C:\Program Files\Python37\lib\site-packages\pyparsing.py", line 3892, in streamline
super(MatchFirst, self).streamline()
File "C:\Program Files\Python37\lib\site-packages\pyparsing.py", line 3655, in streamline
e.streamline()
File "C:\Program Files\Python37\lib\site-packages\pyparsing.py", line 3728, in streamline
super(And, self).streamline()
File "C:\Program Files\Python37\lib\site-packages\pyparsing.py", line 3655, in streamline
e.streamline()
File "C:\Program Files\Python37\lib\site-packages\pyparsing.py", line 4651, in streamline
self.expr.streamline()
File "C:\Program Files\Python37\lib\site-packages\pyparsing.py", line 3892, in streamline
super(MatchFirst, self).streamline()
File "C:\Program Files\Python37\lib\site-packages\pyparsing.py", line 3655, in streamline
e.streamline()
File "C:\Program Files\Python37\lib\site-packages\pyparsing.py", line 3728, in streamline
super(And, self).streamline()
File "C:\Program Files\Python37\lib\site-packages\pyparsing.py", line 3681, in streamline
self.errmsg = "Expected " + _ustr(self)
File "C:\Program Files\Python37\lib\site-packages\pyparsing.py", line 3774, in __str__
self.strRepr = "{" + " ".join(_ustr(e) for e in self.exprs) + "}"
File "C:\Program Files\Python37\lib\site-packages\pyparsing.py", line 3774, in <genexpr>
self.strRepr = "{" + " ".join(_ustr(e) for e in self.exprs) + "}"
File "C:\Program Files\Python37\lib\site-packages\pyparsing.py", line 4671, in __str__
retString = _ustr(self.expr)
File "C:\Program Files\Python37\lib\site-packages\pyparsing.py", line 3931, in __str__
self.strRepr = "{" + " | ".join(_ustr(e) for e in self.exprs) + "}"
File "C:\Program Files\Python37\lib\site-packages\pyparsing.py", line 3931, in <genexpr>
self.strRepr = "{" + " | ".join(_ustr(e) for e in self.exprs) + "}"
File "C:\Program Files\Python37\lib\site-packages\pyparsing.py", line 4671, in __str__
retString = _ustr(self.expr)
File "C:\Program Files\Python37\lib\site-packages\pyparsing.py", line 3931, in __str__
self.strRepr = "{" + " | ".join(_ustr(e) for e in self.exprs) + "}"
File "C:\Program Files\Python37\lib\site-packages\pyparsing.py", line 3931, in <genexpr>
self.strRepr = "{" + " | ".join(_ustr(e) for e in self.exprs) + "}"
File "C:\Program Files\Python37\lib\site-packages\pyparsing.py", line 4671, in __str__
retString = _ustr(self.expr)
File "C:\Program Files\Python37\lib\site-packages\pyparsing.py", line 3931, in __str__
self.strRepr = "{" + " | ".join(_ustr(e) for e in self.exprs) + "}"
File "C:\Program Files\Python37\lib\site-packages\pyparsing.py", line 3931, in <genexpr>
self.strRepr = "{" + " | ".join(_ustr(e) for e in self.exprs) + "}"
File "C:\Program Files\Python37\lib\site-packages\pyparsing.py", line 4671, in __str__
retString = _ustr(self.expr)
File "C:\Program Files\Python37\lib\site-packages\pyparsing.py", line 3931, in __str__
self.strRepr = "{" + " | ".join(_ustr(e) for e in self.exprs) + "}"
File "C:\Program Files\Python37\lib\site-packages\pyparsing.py", line 3931, in <genexpr>
self.strRepr = "{" + " | ".join(_ustr(e) for e in self.exprs) + "}"
File "C:\Program Files\Python37\lib\site-packages\pyparsing.py", line 3774, in __str__
self.strRepr = "{" + " ".join(_ustr(e) for e in self.exprs) + "}"
File "C:\Program Files\Python37\lib\site-packages\pyparsing.py", line 3774, in <genexpr>
self.strRepr = "{" + " ".join(_ustr(e) for e in self.exprs) + "}"
File "C:\Program Files\Python37\lib\site-packages\pyparsing.py", line 4671, in __str__
retString = _ustr(self.expr)
...
File "C:\Program Files\Python37\lib\site-packages\pyparsing.py", line 3931, in __str__
self.strRepr = "{" + " | ".join(_ustr(e) for e in self.exprs) + "}"
File "C:\Program Files\Python37\lib\site-packages\pyparsing.py", line 3931, in <genexpr>
self.strRepr = "{" + " | ".join(_ustr(e) for e in self.exprs) + "}"
File "C:\Program Files\Python37\lib\site-packages\pyparsing.py", line 3774, in __str__
self.strRepr = "{" + " ".join(_ustr(e) for e in self.exprs) + "}"
File "C:\Program Files\Python37\lib\site-packages\pyparsing.py", line 3774, in <genexpr>
self.strRepr = "{" + " ".join(_ustr(e) for e in self.exprs) + "}"
File "C:\Program Files\Python37\lib\site-packages\pyparsing.py", line 4671, in __str__
retString = _ustr(self.expr)
File "C:\Program Files\Python37\lib\site-packages\pyparsing.py", line 3931, in __str__
self.strRepr = "{" + " | ".join(_ustr(e) for e in self.exprs) + "}"
KeyboardInterrupt