Server : LiteSpeed
System : Linux server51.dnsbootclub.com 4.18.0-553.62.1.lve.el8.x86_64 #1 SMP Mon Jul 21 17:50:35 UTC 2025 x86_64
User : nandedex ( 1060)
PHP Version : 8.1.33
Disable Function : NONE
Directory :  /opt/cppython/lib/python3.8/site-packages/pyparsing/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]


Current File : //opt/cppython/lib/python3.8/site-packages/pyparsing/__pycache__/testing.cpython-38.pyc
U

N��g�5�@sJddlmZddlZddlZddlmZmZmZmZm	Z	Gdd�d�Z
dS)�)�contextmanagerN�)�
ParserElement�ParseException�Keyword�__diag__�
__compat__c@sfeZdZdZGdd�d�ZGdd�d�Zedeej	e
ej	e
eeej	eej	eed	�d
d��ZdS)
�pyparsing_testzB
    namespace class for classes useful in writing unit tests
    c@s@eZdZdZdd�Zdd�Zdd�Zdd	�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��self�r�>/opt/cppython/lib/python3.8/site-packages/pyparsing/testing.py�__init__/sz/pyparsing_test.reset_pyparsing_context.__init__cCs�tj|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)N�default_whitespace�default_keyword_chars�literal_string_class�verbose_stacktrace�packrat_enabled�packrat_cache_size�
packrat_parse�recursion_enabledcSsi|]}|tt|��qSr)�getattrr)�.0�namerrr�
<dictcomp>Hsz?pyparsing_test.reset_pyparsing_context.save.<locals>.<dictcomp>r�collect_all_And_tokensr)r�DEFAULT_WHITE_CHARSrr�DEFAULT_KEYWORD_CHARSZ_literalStringClassr�_packratEnabledZ
packrat_cache�size�_parse�_left_recursion_enabledrZ
_all_namesrrrrrr�save2s(��

���
z+pyparsing_test.reset_pyparsing_context.savecCs�tj|jdkr t�|jd�|jdt_|jdt_t�|jd�|jd��D]\}}|rht	j
nt	j|�qVdt_|jdr�t�
|jd�n|jd	t_|jd
t_|jdt_|S)NrrrrrFrrrrr)rrrZset_default_whitespace_charsrrrZinlineLiteralsUsing�itemsr�enable�disabler Zenable_packratr"r#rr)r
r�valuerrr�restoreRs.����
�z.pyparsing_test.reset_pyparsing_context.restorecCst|��}|j�|j�|Sr
)�typer�update)r
�retrrr�copyss
z+pyparsing_test.reset_pyparsing_context.copycCs|��Sr
)r$rrrr�	__enter__xsz0pyparsing_test.reset_pyparsing_context.__enter__cGs|��dSr
)r))r
�argsrrr�__exit__{sz/pyparsing_test.reset_pyparsing_context.__exit__N)
�__name__�
__module__�__qualname__�__doc__rr$r)r-r.r0rrrr�reset_pyparsing_contexts !r5c@sLeZdZdZddd�Zddd�Zddd	�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||��|d�|dk	r8|j||��|d�dS)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)ZassertEqual�as_list�as_dict)r
�result�
expected_list�
expected_dictr7rrr�assertParseResultsEquals�sz?pyparsing_test.TestParseResultsAsserts.assertParseResultsEqualsTcCs@|j|dd�}|r t|���nt|���|j|||d�dS)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;r7N��parse_string�print�dumpr8r=)r
�expr�test_stringr;r7�verboser:rrr�assertParseAndCheckList�s
z>pyparsing_test.TestParseResultsAsserts.assertParseAndCheckListcCs@|j|dd�}|r t|���nt|���|j|||d�dS)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)ZparseAll)r<r7Nr>)r
rBrCr<r7rDr:rrr�assertParseAndCheckDict�s
z>pyparsing_test.TestParseResultsAsserts.assertParseAndCheckDictc
Cs*|\}}|dkr.|j||dk	r"|ndd�dSdd�t||�D�}|D]�\}}}	tdd�|	D�d�}
tdd�|	D�d�}|dk	r�|j||
p�|d	��t|t�r�|�W5QRXqFtd
d�|	D�d�}tdd�|	D�d�}
||
fdkr�|j|||
|
p�|d
�qFtd|���qF|j||dk	�r|ndd�dS)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 runTestsr6cSsg|]\}}||f��qSrr)rZrpt�expectedrrr�
<listcomp>�s�zOpyparsing_test.TestParseResultsAsserts.assertRunTestResults.<locals>.<listcomp>css|]}t|t�r|VqdSr
)�
isinstance�str�r�exprrr�	<genexpr>�s
zNpyparsing_test.TestParseResultsAsserts.assertRunTestResults.<locals>.<genexpr>css&|]}t|t�rt|t�r|VqdSr
)rIr*�
issubclass�	ExceptionrKrrrrM�s

�)�expected_exceptionr7css|]}t|t�r|VqdSr
)rI�listrKrrrrM�s
css|]}t|t�r|VqdSr
)rI�dictrKrrrrM�s
)NN)r;r<r7zno validation for )Z
assertTrue�zip�next�assertRaisesrIrOr=r@)r
Zrun_tests_reportZexpected_parse_resultsr7Zrun_test_successZrun_test_resultsZmergedrCr:rGZfail_msgrPr;r<rrr�assertRunTestResults�sZ�����
����z;pyparsing_test.TestParseResultsAsserts.assertRunTestResultsc	csd|dk	r@t|t�rt�|�}|j|||d��}|VW5QRXn |j||d��}|VW5QRXdS)Nr6)rIrJ�re�escape�assertRaisesRegexrU)r
�exc_typeZexpected_msgr7�ctxrrr�assertRaisesParseException�s

zApyparsing_test.TestParseResultsAsserts.assertRaisesParseException)NNN)NT)NT)NN)r1r2r3r4r=rErFrVrrr\rrrr�TestParseResultsAsserts~s&�

�
�
�
B�r]NT�|)�s�
start_line�end_line�expand_tabs�eol_mark�mark_spaces�mark_control�returncs4|r|��}|dk	r�t�t|�}|dkr`dd�ttdd�tdd��D�}d	|d
<t�|�}d�n0t|��t��fdd�ttdd
��d
gD��}|�	|�}|dk	r�|dkr�|dkr�t�ddd��}|�	|�}n|�
d|�}|dkr�d}|dkr�t|�}t|t|��}tt
d|�|�}|dk�r4|��|d|�}	n dd�|�d�|d|�D�}	|	�s^dStt|���t
dd�|	D��}
d�d}|
dk�r�|d�dd�tt
|
dd��D��d}nd}||d�dd�t|
d�D��d}
|d|
dd}|
|d���fdd�t|	|d �D��dS)!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
        N�unicodecSsi|]\}}||�qSrr)r�c�urrrrsz4pyparsing_test.with_line_numbers.<locals>.<dictcomp>r�!i$i3$i!$��csi|]
}|��qSrr)rrh)�ord_mark_controlrrr%s� � i	$i#$)�	rnrcSsg|]}|d�qS)�␊r�r�linerrrrH8sz4pyparsing_test.with_line_numbers.<locals>.<listcomp>rqcss|]}t|�VqdSr
)�lenrrrrrrM=sz3pyparsing_test.with_line_numbers.<locals>.<genexpr>�ccss"|]}d�|dd��VqdS)zc                                                                                                   r�dNr�r�irrrrMBs�rv�
css |]}d|dd��VqdS)z	         r�
NrrwrrrrMMsrzZ
1234567890c3s,|]$\}}|��d��d|����VqdS)�d�:Nr)rrxrs)rc�lineno_widthrrrMTs�)�start)�
expandtabs�typing�castrJrS�range�	maketrans�ordrQ�	translate�replacert�min�max�
splitlines�split�join�	enumerate)r_r`rarbrcrdreZtranstable_mapZtblZs_linesZmax_line_lenZleadZheader0Zheader1Zheader2r)rcr}rmr�with_line_numbers�s��
 �

 

����	�����
����z pyparsing_test.with_line_numbers)NNTr^NN)
r1r2r3r4r5r]�staticmethodrJr��Optional�int�boolr�rrrrr	s(h}��r	)�
contextlibrrWr��corerrrrrr	rrrr�<module>s	

F1le Man4ger