/usr/local/lib/python3.6/site-packages/pyparsing/__pycache__
NameSizeModeActions
actions.cpython-36.pyc71380644editdlrm
common.cpython-36.pyc178560644editdlrm
core.cpython-36.pyc1902840644editdlrm
exceptions.cpython-36.pyc97400644editdlrm
helpers.cpython-36.pyc342890644editdlrm
results.cpython-36.pyc254110644editdlrm
testing.cpython-36.pyc119860644editdlrm
unicode.cpython-36.pyc121800644editdlrm
util.cpython-36.pyc95180644editdlrm
__init__.cpython-36.pyc76350644editdlrm
Edit: /usr/local/lib/python3.6/site-packages/pyparsing/__pycache__/testing.cpython-36.pyc (11986B)
3 Eg5@sJddlmZddlZddlZddlmZmZmZmZm Z GdddZ dS))contextmanagerN) ParserElementParseExceptionKeyword__diag__ __compat__c @sfeZdZdZGdddZGdddZed eej e ej e e eej eej eed d d Z dS) pyparsing_testzB namespace class for classes useful in writing unit tests c@s@eZdZdZddZddZddZdd Zd d Zd d Z dS)z&pyparsing_test.reset_pyparsing_contexta Context manager to be used when writing unit tests that modify pyparsing config values: - packrat parsing - bounded recursion parsing - default whitespace characters. - default keyword characters - literal string auto-conversion class - __diag__ settings Example:: with reset_pyparsing_context(): # test that literals used to construct a grammar are automatically suppressed ParserElement.inlineLiteralsUsing(Suppress) term = Word(alphas) | Word(nums) group = Group('(' + term[...] + ')') # assert that the '()' characters are not included in the parsed tokens self.assertParseAndCheckList(group, "(abc 123 def)", ['abc', '123', 'def']) # after exiting context manager, literals are converted to Literal expressions again cCs i|_dS)N) _save_context)selfr ;/usr/local/lib/python3.6/site-packages/pyparsing/testing.py__init__/sz/pyparsing_test.reset_pyparsing_context.__init__cCstj|jd<tj|jd<tj|jd<tj|jd<tj|jd<tjrRtjj |jd<n d|jd<tj |jd<tj |jd<d d t j D|jd <d tji|jd <|S)Ndefault_whitespacedefault_keyword_charsliteral_string_classverbose_stacktracepackrat_enabledpackrat_cache_size packrat_parserecursion_enabledcSsi|]}tt||qSr )getattrr).0namer r r Hsz?pyparsing_test.reset_pyparsing_context.save..rcollect_all_And_tokensr)rDEFAULT_WHITE_CHARSr rDEFAULT_KEYWORD_CHARS_literalStringClassr_packratEnabled packrat_cachesize_parse_left_recursion_enabledr _all_namesrr)r r r r save2s        z+pyparsing_test.reset_pyparsing_context.savecCstj|jdkr tj|jd|jdt_|jdt_tj|jdx.|jdjD]\}}|rjt j nt j |qXWdt_ |jdrtj |jdn |jd t_|jd t_|jd t_|S) NrrrrrFrrrrr)rrr Zset_default_whitespace_charsrrrinlineLiteralsUsingitemsrenabledisablerZenable_packratr"r#rr)r rvaluer r r restoreRs$        z.pyparsing_test.reset_pyparsing_context.restorecCst|}|jj|j|S)N)typer update)r retr r r copyss z+pyparsing_test.reset_pyparsing_context.copycCs|jS)N)r%)r r r r __enter__xsz0pyparsing_test.reset_pyparsing_context.__enter__cGs |jdS)N)r+)r argsr r r __exit__{sz/pyparsing_test.reset_pyparsing_context.__exit__N) __name__ __module__ __qualname____doc__rr%r+r/r0r2r r r r reset_pyparsing_contexts !r7c@sLeZdZdZdddZdddZddd Zdd d Zee ddfd d Z dS)z&pyparsing_test.TestParseResultsAssertszk A mixin class to add parse results assertion methods to normal unittest.TestCase classes. NcCs<|dk r|j||j|d|dk r8|j||j|ddS)z Unit test assertion to compare a :class:`ParseResults` object with an optional ``expected_list``, and compare any defined results names with an optional ``expected_dict``. N)msg) assertEqualas_listZas_dict)r result expected_list expected_dictr8r r r assertParseResultsEqualssz?pyparsing_test.TestParseResultsAsserts.assertParseResultsEqualsTcCs@|j|dd}|r t|jn t|j|j|||ddS)z Convenience wrapper assert to test a parser element and input string, and assert that the resulting ``ParseResults.asList()`` is equal to the ``expected_list``. T)Z parse_all)r<r8N) parse_stringprintdumpr:r>)r expr test_stringr<r8verboser;r r r assertParseAndCheckLists  z>pyparsing_test.TestParseResultsAsserts.assertParseAndCheckListcCs@|j|dd}|r t|jn t|j|j|||ddS)z Convenience wrapper assert to test a parser element and input string, and assert that the resulting ``ParseResults.asDict()`` is equal to the ``expected_dict``. T)parseAll)r=r8N)r?r@rAr:r>)r rBrCr=r8rDr;r r r assertParseAndCheckDicts  z>pyparsing_test.TestParseResultsAsserts.assertParseAndCheckDictc Cs0|\}}|dkr.|j||dk r"|ndddSddt||D}x|D]\}}} tdd| Dd} tdd| Dd} | dk r|j| | p|d t|tr|WdQRXqHtd d| Dd} td d| Dd} | | fdkr|j|| | | p|d qHtd |qHW|j||dk r$|ndddS)ah Unit test assertion to evaluate output of ``ParserElement.runTests()``. If a list of list-dict tuples is given as the ``expected_parse_results`` argument, then these are zipped with the report tuples returned by ``runTests`` and evaluated using ``assertParseResultsEquals``. Finally, asserts that the overall ``runTests()`` success value is ``True``. :param run_tests_report: tuple(bool, [tuple(str, ParseResults or Exception)]) returned from runTests :param expected_parse_results (optional): [tuple(str, list, dict, Exception)] Nzfailed runTests)r8cSsg|]\}}||fqSr r )rrptexpectedr r r szOpyparsing_test.TestParseResultsAsserts.assertRunTestResults..css|]}t|tr|VqdS)N) isinstancestr)rexpr r r szNpyparsing_test.TestParseResultsAsserts.assertRunTestResults..css&|]}t|trt|tr|VqdS)N)rKr, issubclass Exception)rrMr r r rNs)expected_exceptionr8css|]}t|tr|VqdS)N)rKlist)rrMr r r rNscss|]}t|tr|VqdS)N)rKdict)rrMr r r rNs)r<r=r8zno validation for )NN) assertTruezipnext assertRaisesrKrPr>r@)r run_tests_reportexpected_parse_resultsr8run_test_successrun_test_resultsmergedrCr;rIfail_msgrQr<r=r r r assertRunTestResultss>  z;pyparsing_test.TestParseResultsAsserts.assertRunTestResultsc csd|dk r@t|trtj|}|j|||d }|VWdQRXn |j||d }|VWdQRXdS)N)r8)rKrLreescapeassertRaisesRegexrW)r exc_typeZ expected_msgr8ctxr r r assertRaisesParseExceptions  zApyparsing_test.TestParseResultsAsserts.assertRaisesParseException)NNN)NT)NT)NN) r3r4r5r6r>rErGr^rrrdr r r r TestParseResultsAsserts~s   AreNT|)s start_lineend_line expand_tabseol_mark mark_spaces mark_controlreturncs4|r |j}|dk rtjt|}|dkr`ddttddtddD}d |d <tj|}d n0t|tjfd dttdd d gD}|j |}|dk r|dkr|dkrtjddd}|j |}n |j d|}|dkrd}|dkrt |}t |t |}t t d||}|dkr4|j|d|} n dd|jd|d|D} | s^d St t|t dd| D} dd} | dkr| d jddtt | ddDd} nd } | | d jddt| d Dd} | d| d d}| |djfddt| |d DdS)!u  Helpful method for debugging a parser - prints a string with line and column numbers. (Line and column numbers are 1-based.) :param s: tuple(bool, str - string to be printed with line and column numbers :param start_line: int - (optional) starting line number in s to print (default=1) :param end_line: int - (optional) ending line number in s to print (default=len(s)) :param expand_tabs: bool - (optional) expand tabs to spaces, to match the pyparsing default :param eol_mark: str - (optional) string to mark the end of lines, helps visualize trailing spaces (default="|") :param mark_spaces: str - (optional) special character to display in place of spaces :param mark_control: str - (optional) convert non-printing control characters to a placeholding character; valid values: - "unicode" - replaces control chars with Unicode symbols, such as "␍" and "␊" - any single character string - replace control characters with given string - None (default) - string is displayed as-is :return: str - input string with leading line numbers and column number headers NunicodecSsi|]\}}||qSr r )rcur r r rsz4pyparsing_test.with_line_numbers..r!i$i3$i!$csi|] }|qSr r )rrp)ord_mark_controlr r r%s  i $i#$) rvrcSsg|] }|dqS)u␊r )rliner r r rJ8sz4pyparsing_test.with_line_numbers..u␊css|]}t|VqdS)N)len)rryr r r rN=sz3pyparsing_test.with_line_numbers..ccss&|]}dd|ddVqdS)rwr{rdNr )rir r r rNCsr| css |]}d|ddVqdS)z r Nr )rr}r r r rNMsrZ 1234567890c3s,|]$\}}|dd|VqdS)d:Nr )rr}ry)rk lineno_widthr r rNUs)start) expandtabstypingcastrLrUrange maketransordrR translatereplacerzminmax splitlinessplitjoin enumerate)rgrhrirjrkrlrmZtranstable_mapZtblZs_linesZ max_line_lenZleadZheader0Zheader1Zheader2r )rkrrur with_line_numberssN  $        ,,z pyparsing_test.with_line_numbers)NNTrfNN) r3r4r5r6r7re staticmethodrLrOptionalintboolrr r r r r sh}(r ) contextlibrr_rcorerrrrrr r r r r s