diff --git a/CHANGES b/CHANGES index 0efa43d3..4a637f9f 100644 --- a/CHANGES +++ b/CHANGES @@ -10,6 +10,8 @@ Version 2.4.7 - March, 2020 . Traceback abbreviation . Bug in delta_time example . Fix regexen in pyparsing_common.real and .sci_real + . Avoid FutureWarning on Python 3.7 or later + . Cleanup output in runTests if comments are embedded in test string Version 2.4.6 - December, 2019 diff --git a/pyparsing.py b/pyparsing.py index 2e5534a8..581d5bbb 100644 --- a/pyparsing.py +++ b/pyparsing.py @@ -96,7 +96,7 @@ """ __version__ = "2.4.7" -__versionTime__ = "04 Mar 2020 02:48 UTC" +__versionTime__ = "30 Mar 2020 00:43 UTC" __author__ = "Paul McGuire " import string @@ -2740,7 +2740,7 @@ def runTests(self, tests, parseAll=True, comment='#', continue if not t: continue - out = ['\n'.join(comments), t] + out = ['\n' + '\n'.join(comments) if comments else '', t] comments = [] try: # convert newline marks to actual newlines, and strip leading BOM if present @@ -5452,8 +5452,8 @@ def mustMatchTheseTokens(s, l, t): return rep def _escapeRegexRangeChars(s): - # ~ escape these chars: ^-] - for c in r"\^-]": + # ~ escape these chars: ^-[] + for c in r"\^-[]": s = s.replace(c, _bslash + c) s = s.replace("\n", r"\n") s = s.replace("\t", r"\t")