OwlCyberSecurity - MANAGER
Edit File: doctest.cpython-38.opt-2.pyc
U ����e5d_�������������������!���@���sp��d�Z�ddddddddd d ddd ddddddddddddddddddd d!g!Zd"d#lZd"d#lZd"d#lZd"d#lZd"d#lZd"d#lZd"d#lZd"d#l Z d"d#l Z d"d#lZd"d$lm Z �d"d%lmZ�ed&d'�Zi�Zd(d��Zed�Zed�Zed�Zed�Zed�Zed�ZeeB�eB�eB�eB�eB�Zed �Zed �Zed�Zed�Zed�ZeeB�eB�eB�eB�Zd)Z d*Z!d+d,��Z"drd.d/�Z#d0d1��Z$d2d3��Z%dsd5d6�Z&d7d8��Z'G�d9d:��d:e �Z(d;d<��Z)d=d>��Z*d?d@��Z+G�dAdB��dBej,�Z-dCdD��Z.G�dEd��d�Z/G�dFd��d�Z0G�dGd��d�Z1G�dHd��d�Z2G�dId��d�Z3G�dJd��d�Z4G�dKd��de5�Z6G�dLd��de5�Z7G�dMd��de3�Z8d#a9dtdPd�Z:dNd#d#d#d#dNd"d#dOe1��d#fdQd�Z;dudSd�Z<d"a=dTd��Z>G�dUdV��dVej?�Z@G�dWdX��dXe@�ZAG�dYdZ��dZejB�ZCdvd[d�ZDG�d\d]��d]e@�ZEdNd#d#e1��d#fd^d_�ZFd`d��ZGdad��ZHdbd��ZIdwdcd �ZJdxddde�ZKdydfd!�ZLG�dgdh��dh�ZMeMdidjdkdldmdn�ZNdodp��ZOePdqk�rle �QeO����d#S�)zzreStructuredText en�register_optionflag�DONT_ACCEPT_TRUE_FOR_1�DONT_ACCEPT_BLANKLINE�NORMALIZE_WHITESPACE�ELLIPSIS�SKIP�IGNORE_EXCEPTION_DETAIL�COMPARISON_FLAGS�REPORT_UDIFF�REPORT_CDIFF�REPORT_NDIFF�REPORT_ONLY_FIRST_FAILURE�REPORTING_FLAGS� FAIL_FAST�Example�DocTest� DocTestParser� DocTestFinder� DocTestRunner� OutputChecker�DocTestFailure�UnexpectedException�DebugRunner�testmod�testfile�run_docstring_examples�DocTestSuite�DocFileSuite�set_unittest_reportflags�script_from_examples� testsource� debug_src�debug�����N)�StringIO)� namedtuple�TestResultszfailed attemptedc�����������������C���s���t��|�dtt��>��S�)N����)�OPTIONFLAGS_BY_NAME� setdefault�len��name��r,����/usr/lib64/python3.8/doctest.pyr�������s����z<BLANKLINE>z...c�����������������C���s8���d}t�jD�](}|��|d��}|tt�|�kr ||jO�}q |S�)Nr"���)� __future__Zall_feature_names�get�getattrZ compiler_flag)�globs�flagsZfnameZfeaturer,���r,���r-����_extract_future_flags����s���� r3�������c�����������������C���sV���t��|��r|�S�t|�t�r,t|�t��t��dg�S�|�d�krJtjt� |�j d��S�td��d�S�)N�*�__name__z"Expected a module, string, or None)�inspect�ismodule� isinstance�str� __import__�globals�locals�sys�modules� _getframe� f_globals� TypeError)�moduleZdepthr,���r,���r-����_normalize_module����s���� rD���c�����������������C���s���dD�]}|���|d�}�q|�S�)N)z � � )�replace)�data�newliner,���r,���r-����_newline_convert����s����rJ���c�������������� ���C���s����|rVt�|d�}t||��}�t|dd��d�k rVt|jd�rV|j�|��}|�|�}t|�|�fS�t|�|d��}|� ��|�fW��5�Q�R���S�Q�R�X�d�S�)N����� __loader__�get_data)�encoding) rD����_module_relative_pathr0����hasattrrL���rM����decoderJ����open�read)�filename�package�module_relativerN���Z file_contents�fr,���r,���r-����_load_testfile����s���� rX�������c�����������������C���s���t��d|d�|��S�)Nz (?m)^(?!$)� )�re�sub)�s�indentr,���r,���r-����_indent����s����r_���c�����������������C���s*���t���}|�\}}}tj||||d��|���S�)N)�file)r#���� traceback�print_exception�getvalue)�exc_infoZexcout�exc_typeZexc_valZexc_tbr,���r,���r-����_exception_traceback����s���� rf���c�������������������@���s���e�Zd�Zdd��Zddd�ZdS�)� _SpoofOutc�����������������C���s$���t��|��}|r |�d�s |d7�}|S��NrF���)r#���rc����endswith)�self�resultr,���r,���r-���rc������s���� z_SpoofOut.getvalueNc�����������������C���s���|���|��t�|���d�S��N)�seekr#����truncate)rj����sizer,���r,���r-���rn��� ��s���� z_SpoofOut.truncate)N)r6���� __module__�__qualname__rc���rn���r,���r,���r,���r-���rg�������s��� rg���c�����������������C���s����t�|�kr|�|kS�|��t��}dt|��}}|d�}|rR|�|�rNt|�}|d=�ndS�|d�}|r�|�|�r||t|�8�}|d=�ndS�||kr�dS�|D�],}|�|||�}|dk�r��dS�|t|�7�}q�dS�)Nr"���F���T)�ELLIPSIS_MARKER�splitr)���� startswithri����find)�want�gotZws�startpos�endpos�wr,���r,���r-����_ellipsis_match��s0���� r|���c�����������������C���s���|�����}�|�rd|��S�dS�d�S�)Nz# �#)�rstrip)�liner,���r,���r-���� _comment_line?��s����r����c�����������������C���sh���dt�|���}}|��d�}|dkr$|}|��dd|�}|dkr>|}|��dd|�}|dkr\|d�}|�||��S�)Nr"���rF����:�.r&���)r)���rv����rfind)�msg�start�end�ir,���r,���r-����_strip_exception_detailsG��s���� r����c�������������������@���s.���e�Zd�Zdd��Zd dd�Zdd��Zdd ��ZdS�)�_OutputRedirectingPdbc�����������������C���s(���||�_�d|�_tjj|�|dd��d|�_d�S�)NFT)�stdout�nosigintr&���)�_OutputRedirectingPdb__out�$_OutputRedirectingPdb__debugger_used�pdb�Pdb�__init__Zuse_rawinput)rj����outr,���r,���r-���r����g��s����z_OutputRedirectingPdb.__init__Nc�����������������C���s*���d|�_�|d�krt���j}tj�|�|��d�S�)NT)r����r>���r@����f_backr����r����� set_trace)rj����framer,���r,���r-���r����o��s���� z_OutputRedirectingPdb.set_tracec�����������������C���s���|�j�rtj�|���d�S�rl���)r����r����r�����set_continue�rj���r,���r,���r-���r����u��s����z"_OutputRedirectingPdb.set_continuec�����������������G���s2���t�j}|�jt�_ztjj|�f|���W��S�|t�_X�d�S�rl���)r>���r����r����r����r�����trace_dispatch)rj����args�save_stdoutr,���r,���r-���r����{��s ����z$_OutputRedirectingPdb.trace_dispatch)N)r6���rp���rq���r����r����r����r����r,���r,���r,���r-���r����a��s��� r����c�����������������C���s����t��|��std|����|�d�r(td��tjj|�d���}t |�d�rXtj�|�j �d�}n�|�jdkr�tt j�dkr�t jd�dkr�tj�t jd��d�}q�tj}nFt |�d�r�|�jD�]&}tj�||�}tj�|�r�|��S�q�td |�j���tj�||�S�) NzExpected a module: %r�/z1Module-relative files may not have absolute paths�__file__r"����__main__���__path__zBCan't resolve paths relative to the module %r (it has no __file__))r7���r8���rB���ru���� ValueError�os�path�joinrt���rP���r����r6���r)���r>����argv�curdirr�����exists)rC���Z test_pathZbasedirZ directory�fullpathr,���r,���r-���rO������s(���� �rO���c�������������������@���s&���e�Zd�Zd dd�Zdd��Zdd��ZdS�) r���Nr"���c�����������������C���sv���|��d�s|d7�}|r(|��d�s(|d7�}|d�k rB|��d�sB|d7�}||�_||�_||�_||�_|d�krfi�}||�_||�_d�S�rh���)ri����sourcerw����linenor^����options�exc_msg)rj���r����rw���r����r����r^���r����r,���r,���r-���r�������s���� �zExample.__init__c�����������������C���s\���t�|��t�|�k rtS�|�j|jkoZ|�j|jkoZ|�j|jkoZ|�j|jkoZ|�j|jkoZ|�j|jkS�rl���)�type�NotImplementedr����rw���r����r^���r����r�����rj����otherr,���r,���r-����__eq__���s���� � � � � �zExample.__eq__c�����������������C���s���t�|�j|�j|�j|�j|�jf�S�rl���)�hashr����rw���r����r^���r����r����r,���r,���r-����__hash__���s�����zExample.__hash__)Nr"���r"���N)r6���rp���rq���r����r����r����r,���r,���r,���r-���r������s ���#��� c�������������������@���s4���e�Zd�Zdd��Zdd��Zdd��Zdd��Zd d ��ZdS�)r���c�����������������C���s,���||�_�||�_|���|�_||�_||�_||�_d�S�rl���)�examples� docstring�copyr1���r+���rT���r����)rj���r����r1���r+���rT���r����r����r,���r,���r-���r������s���� zDocTest.__init__c�����������������C���sR���t�|�j�dkrd}n"t�|�j�dkr(d}ndt�|�j��}d|�jj|�j|�j|�j|f�S�)Nr"���zno examplesr&���z 1 examplez%d examplesz<%s %s from %s:%s (%s)>)r)���r����� __class__r6���r+���rT���r����)rj���r����r,���r,���r-����__repr__��s���������zDocTest.__repr__c�����������������C���s\���t�|��t�|�k rtS�|�j|jkoZ|�j|jkoZ|�j|jkoZ|�j|jkoZ|�j|jkoZ|�j|jkS�rl���)r����r����r����r����r1���r+���rT���r����r����r,���r,���r-���r����)��s���� � � � � �zDocTest.__eq__c�����������������C���s���t�|�j|�j|�j|�jf�S�rl���)r����r����r+���rT���r����r����r,���r,���r-���r����4��s����zDocTest.__hash__c�����������������C���s:���t�|t�stS�|�j|�j|�jt|��f|j|j|jt|�fk�S�rl���)r9���r���r����r+���rT���r�����idr����r,���r,���r-����__lt__8��s ���� �zDocTest.__lt__N)r6���rp���rq���r����r����r����r����r����r,���r,���r,���r-���r������s ���c�������������������@���s����e�Zd�Ze�dejejB��Ze�dejejB�ejB��Z e�d�j Zddd�Zdd��Z dd d �Zdd��Ze�d ej�Zdd��Ze�dej�Zdd��Zdd��Zdd��ZdS�)r���a��� # Source consists of a PS1 line followed by zero or more PS2 lines. (?P<source> (?:^(?P<indent> [ ]*) >>> .*) # PS1 line (?:\n [ ]* \.\.\. .*)*) # PS2 lines \n? # Want consists of any non-blank lines that do not start with PS1. (?P<want> (?:(?![ ]*$) # Not a blank line (?![ ]*>>>) # Not a line starting with PS1 .+$\n? # But any other line )*) a��� # Grab the traceback header. Different versions of Python have # said different things on the first traceback line. ^(?P<hdr> Traceback\ \( (?: most\ recent\ call\ last | innermost\ last ) \) : ) \s* $ # toss trailing whitespace on the header. (?P<stack> .*?) # don't blink: absorb stuff until... ^ (?P<msg> \w+ .*) # a line *starts* with alphanum. z^[ ]*(#.*)?$�<string>c�������������� ������s��|����}|��|�����dkr8d���fdd�|�d�D���}g�}d\}}|�j�|�D�]�}|�|||�������||�d||����7�}|�� |||�\}}} } |�� |�s�|�t|| | |��t|� d���|d���||�d|���|����7�}|���}qP|�||d�����|S�)Nr"���rF���c��������������������s���g�|�]}|��d����qS�rl���r,�����.0�l�Z min_indentr,���r-���� <listcomp>��s�����z'DocTestParser.parse.<locals>.<listcomp>�r"���r"���r^���)r����r^���r����)� expandtabs�_min_indentr����rt����_EXAMPLE_RE�finditer�appendr�����count�_parse_example�_IS_BLANK_OR_COMMENTr���r)����groupr����)rj����stringr+����outputZcharnor�����mr����r����rw���r����r,���r����r-����parses��s*���� � � zDocTestParser.parsec�����������������C���s���t�|��||�|||||�S�rl���)r����get_examples)rj���r����r1���r+���rT���r����r,���r,���r-����get_doctest���s���� ����zDocTestParser.get_doctestc�����������������C���s���dd��|���||�D��S�)Nc�����������������S���s���g�|�]}t�|t�r|�qS�r,���)r9���r���)r�����xr,���r,���r-���r�������s���� �z.DocTestParser.get_examples.<locals>.<listcomp>)r����)rj���r����r+���r,���r,���r-���r�������s����zDocTestParser.get_examplesc����������� ���������s ��t�|�d����|�d��d�}|��|��||��|��|dd���d���d�||��d���fdd�|D���}|�d �}|�d�}t�|�dkr�t�d |d��r�|d=�|��|d���||t�|����d���fdd�|D���}|�j�|�}|r�|�d �}nd�}|�� |||�} || ||fS�)Nr^���r����rF���r&���rZ���r����c��������������������s���g�|�]}|��d��d���qS�)rY���Nr,���)r����Zsl�r^���r,���r-���r�������s�����z0DocTestParser._parse_example.<locals>.<listcomp>rw���z *$rr���c��������������������s���g�|�]}|��d����qS�rl���r,���)r����Zwlr����r,���r-���r�������s�����r����) r)���r����rt����_check_prompt_blank� _check_prefixr����r[����match� _EXCEPTION_RE� _find_options) rj���r����r+���r�����source_linesr����rw���� want_linesr����r����r,���r����r-���r�������s&���� �zDocTestParser._parse_examplez#\s*doctest:\s*([^\n\'"]*)$c����������� ������C���s����i�}|�j��|�D�]v}|�d��dd����}|D�]V}|d�dksN|dd���tkrdtd|d�||f���t|dd����}|d�dk||<�q.q|r�|��|�r�td|||f���|S�) Nr&����,rZ���r"���z+-z7line %r of the doctest for %s has an invalid option: %r�+zSline %r of the doctest for %s has an option directive on a line with no example: %r)�_OPTION_DIRECTIVE_REr����r����rG���rt���r'���r����r����) rj���r����r+���r����r����r����Zoption_strings�option�flagr,���r,���r-���r�������s"�������zDocTestParser._find_optionsz ^([ ]*)(?=\S)c�����������������C���s2���dd��|�j��|�D��}t|�dkr*t|�S�dS�d�S�)Nc�����������������S���s���g�|�]}t�|��qS�r,���)r)���)r����r^���r,���r,���r-���r���� ��s�����z-DocTestParser._min_indent.<locals>.<listcomp>r"���)� _INDENT_RE�findallr)����min)rj���r]����indentsr,���r,���r-���r������s����zDocTestParser._min_indentc�������������� ���C���s^���t�|�D�]P\}}t|�|d�kr||d��dkrtd||�d�||||d���|f���qd�S�)NrY���rK���rZ���z8line %r of the docstring for %s lacks blank after %s: %rr&���)� enumerater)���r����)rj����linesr^���r+���r����r����r���r,���r,���r-���r������s���� ���z!DocTestParser._check_prompt_blankc�����������������C���s>���t�|�D�]0\}}|r|�|�std||�d�||f���qd�S�)NzGline %r of the docstring for %s has inconsistent leading whitespace: %rr&���)r����ru���r����)rj���r�����prefixr+���r����r����r���r,���r,���r-���r������s �����zDocTestParser._check_prefixN)r����)r����)r6���rp���rq���r[����compile� MULTILINE�VERBOSEr�����DOTALLr����r����r����r����r����r����r����r����r����r����r����r����r����r,���r,���r,���r-���r���C��s&��� �� ' 3�c�������������������@���sJ���e�Zd�Zde��ddfdd�Zddd�Zdd ��Zd d��Zdd ��Zdd��Z dS�)r���FTc�����������������C���s���||�_�||�_||�_||�_d�S�rl���)�_parser�_verbose�_recurse�_exclude_empty)rj����verbose�parser�recurse� exclude_emptyr,���r,���r-���r����7��s����zDocTestFinder.__init__Nc����������� ��� ���C���sN��|d�kr.t�|dd��}|d�kr.tdt|�f���|dkr<d�}n|d�krNt�|�}zt�|�}W�n�tk rt���d�}Y�ndX�|s�t�|�}|d�|dd����dks�d�}|d�kr�d�}n*|d�k r�t� ||j �}n t� |�}|s�d�}|d�kr�|d�kr�i�}n |j ���}n|���}|d�k �r|�|��d|k�r(d|d<�g�}|�� ||||||i���|����|S�)Nr6���zJDocTestFinder.find: name must be given when obj.__name__ doesn't exist: %rFr"������z<]>r����)r0���r����r����r7���� getmoduleZ getsourcefilerB���Zgetfile� linecache�getlines�__dict__r�����update�_find�sort) rj����objr+���rC���r1���� extraglobsr`���r�����testsr,���r,���r-���rv���M��sL����$� � zDocTestFinder.findc�����������������C���s����|d�krdS�t��|�d�k r(|t��|�kS�t��|�r>|j|jkS�t��|�r|t|d�r\|jj}nt|d�rn|j}ndS�|j |kS�t�� |�r�|j |jkS�t|d�r�|j |jkS�t|t�r�dS�t d��d�S�)NT�__objclass__rp���z"object must be a class or function)r7���r����� isfunctionr�����__globals__ZismethoddescriptorrP���r����rp���r6����isclassr9����propertyr����)rj���rC����objectZobj_modr,���r,���r-����_from_module���s(���� zDocTestFinder._from_modulec�������������� ���C���s��|�j�rtd|���t|�|kr"d�S�d|t|�<�|��|||||�}|d�k rR|�|��t�|�r�|�jr�|j� ��D�]P\} } d|| f�} t� t�| ��s�t�| �rl|�� || �rl|��|| | ||||��qlt�|��rn|�j�rnt|di��� ��D�]�\} } t| t��stdt| �f���t� | ��sJt�| ��sJt�| ��sJt| t��sJtdt| �f���d|| f�} |��|| | ||||��q�t�|��r|�j�r|j� ��D�]�\} } t| t��r�t|| �} t| t��r�t|| �j} t� | ��s�t�| ��s�t| t��r�|�� || ��r�d|| f�} |��|| | ||||���q�d�S�)NzFinding tests in %sr&���z%s.%s�__test__z5DocTestFinder.find: __test__ keys must be strings: %rz`DocTestFinder.find: __test__ values must be strings, functions, methods, classes, or modules: %rz%s.__test__.%s)r�����printr����� _get_testr����r7���r8���r����r�����itemsZ isroutineZunwrapr����r��r����r0���r9���r:���r����r�����staticmethod�classmethod�__func__r����)rj���r����r����r+���rC���r����r1����seen�testZvalname�valr,���r,���r-���r�������sn���� � ��������� � ���zDocTestFinder._findc����������� ��� ���C���s����t�|t�r|}nJz,|jd�kr"d}n|j}t�|t�s:t|�}W�n�ttfk rX���d}Y�nX�|��||�}|�jrt|std�S�|d�kr�d�}n.t|dd��p�|j}|dd���dkr�|d�d��}|�j � |||||�S�)Nr����r��������.pycrr���)r9���r:����__doc__rB����AttributeError�_find_linenor����r0���r6���r����r����) rj���r����r+���rC���r1���r����r����r����rT���r,���r,���r-���r����s,���� ��zDocTestFinder._get_testc�����������������C���s��d�}t��|�rd}t��|�rb|d�kr(d�S�t�dt|dd���}t|�D�]\}}|�|�rF|}�qbqFt��|�rr|j }t�� |�r�|j}t��|�r�|j }t��|�r�|j}t��|�r�t|dd��d�}|d�k �r |d�kr�|d�S�t�d�}t|t|��D�]}|�||��r�|��S�q�d�S�)Nr"���z^\s*class\s*%s\br6����-�co_firstlinenor&���z(^|.*:)\s*\w*("|\'))r7���r8���r����r[���r����r0���r����r����Zismethodr��r�����__code__Zistraceback�tb_frameZisframe�f_codeZiscode�ranger)���)rj���r����r����r����Zpatr����r���r,���r,���r-���r��4��s>���� � � � � � zDocTestFinder._find_lineno)NNNN) r6���rp���rq���r���r����rv���r��r����r��r��r,���r,���r,���r-���r���.��s��� �� f?&c�������������������@���s����e�Zd�ZdZddd�Zdd��Zdd ��Zd d��Zdd ��Zdd��Z dd��Z dd��Ze� d�Zddd�Zd dd�Zd!dd�Zdd��ZdS�)"r���zF**********************************************************************Nr"���c�����������������C���sN���|pt���|�_|d�krdtjk}||�_||�_||�_d|�_d|�_i�|�_ t ��|�_d�S�)N�-vr"���)r����_checkerr>���r����r�����optionflags�original_optionflags�tries�failures�_name2ftrg����_fakeout)rj����checkerr����r��r,���r,���r-���r�������s���� zDocTestRunner.__init__c�����������������C���sH���|�j�rD|jr.|dt|j��d�t|j����n|dt|j��d���d�S�)NzTrying: zExpecting: zExpecting nothing )r����rw���r_���r����)rj���r����r ���exampler,���r,���r-����report_start���s�������zDocTestRunner.report_startc�����������������C���s���|�j�r|d��d�S�)Nzok )r�����rj���r����r ��r ��rx���r,���r,���r-����report_success���s����zDocTestRunner.report_successc�����������������C���s&���||���||�|�j�|||�j����d�S�rl���)�_failure_headerr���output_differencer��r"��r,���r,���r-����report_failure���s�����zDocTestRunner.report_failurec�����������������C���s$���||���||�d�tt|�����d�S�)NzException raised: )r$��r_���rf����rj���r����r ��r ��rd���r,���r,���r-����report_unexpected_exception���s ����� �z)DocTestRunner.report_unexpected_exceptionc�����������������C���s����|�j�g}|jrR|jd�k r4|jd�k r4|j|j�d�}nd}|�d|j||jf���n|�d|jd�|jf���|�d��|j}|�t|���d�|�S�)Nr&����?zFile "%s", line %s, in %szLine %s, in %szFailed example:rF���)�DIVIDERrT���r����r����r+���r����r_���r����)rj���r ��r ��r����r����r����r,���r,���r-���r$�����s����� zDocTestRunner._failure_headerc�������������� ���C���s���d�}}|�j�}td�\}}} |�jj} t|j�D��]6\}}|�j�t@�oH|dk} ||�_�|jr�|j���D�],\}}|r||��j�|O��_�q`|��j�|�M��_�q`|�j�t @�r�q.|d7�}| s�|�� |||��d|j|f�}z,tt |j|d|d�|j��|�j����d�}W�n4�tk �r�����Y�n���t���}|�j����Y�nX�|�j���}|�j�d��|}|d�k�r`| |j||�j���r�|}n|tj|d�d����d�}| �s�|t|�7�}|jd�k�r�| }nB| |j||�j���r�|}n*|�j�t@��r�| t|j�t|�|�j���r�|}||k�r�| �sR|��||||��nT||k�r(| �s|�� ||||��|d7�}n*|| k�rR| �sH|��!||||��|d7�}n�|r.|�j�t"@�r.��qhq.||�_�|��#|||��t$||�S�)Nr"���rK���r&���z<doctest %s[%d]>Zsingler4���rr���)%r��r��r���check_outputr����r����r���r����r��r���r!��r+����execr����r����r1����debuggerr�����KeyboardInterruptr>���rd���r��rc���rn���rw���ra����format_exception_onlyrf���r����r���r����r#��r&��r(��r����_DocTestRunner__record_outcomer%���)rj���r ���compileflagsr����r��r��r���SUCCESS�FAILUREZBOOMZcheck� examplenumr ���quietZ optionflagr��rT���Z exceptionrx���Zoutcomer����r,���r,���r-���Z__run���s����� � ��� � � zDocTestRunner.__runc�����������������C���sL���|�j��|jd�\}}||�||�f|�j�|j<�|��j|7��_|��j|7��_d�S�)Nr����)r��r/���r+���r��r��)rj���r ��rW����t�f2�t2r,���r,���r-���Z__record_outcome|��s����zDocTestRunner.__record_outcomez.<doctest (?P<name>.+)\[(?P<examplenum>\d+)\]>$c�����������������C���sV���|�j��|�}|rF|�d�|�jjkrF|�jjt|�d���}|jjdd�S�|�� ||�S�d�S�)Nr+���r4��T��keepends) �%_DocTestRunner__LINECACHE_FILENAME_REr����r����r ��r+���r�����intr����� splitlines�save_linecache_getlines)rj���rT����module_globalsr����r ��r,���r,���r-���Z__patched_linecache_getlines���s ����z*DocTestRunner.__patched_linecache_getlinesTc����������� ��� ������s��||�_�|d�krt|j�}tj�|d�krV�j����d�ks@�����dkrH�j}n���fdd�}|�jt_t� ��}t j}t��|�_ |�j ����|�j jt _tj|�_|�jt_tj}tjt_z|��|||�W��S��t_|t _t�|��|�jt_|t_|��r�|j����dd�l}d�|_X�d�S�)N�utf-8c��������������������s ���t�|����d����}���|���d�S�)N�backslashreplace)r:����encode�write)r]����rN���r����r,���r-���r�������s����zDocTestRunner.run.<locals>.outr"���)r ��r3���r1���r>���r����rN����lowerrC��r���gettracer����r����r����r-���resetr����r����r>���*_DocTestRunner__patched_linecache_getlines�displayhook�__displayhook__�settrace�clear�builtins�_�_DocTestRunner__run) rj���r ��r1��r�����clear_globsZ save_traceZsave_set_traceZsave_displayhookrM��r,���rD��r-����run���s<���� zDocTestRunner.runc����������� ������C���s���|d�kr|�j�}g�}g�}g�}d�}}|�j���D�]V}|\}\} } || 7�}|| 7�}| dkr`|�|��q,| dkrx|�|| f��q,|�|��q,|r�|r�tt|�d��|����|D�]}td|��q�|r�tt|�d��|����|D�]\}}td||f���q�|�r:t|�j��tt|�d��|����|D�] \}\} } td| | |f����q|�rft|dt|�j�d ��t||�d |d��|�rztd|d ��n|�r�td��t||�S�)Nr"���zitems had no tests:z zitems passed all tests:z %3d tests in %szitems had failures:z %3d of %3d in %sztests inzitems.z passed andzfailed.z***Test Failed***z failures.zTest passed.) r����r��r��r����r��r)���r����r*��r%���) rj���r����ZnotestsZpassedZfailedZtotaltZtotalfr����r+���rW���r6���thingr����r,���r,���r-���� summarize���sP���� zDocTestRunner.summarizec�����������������C���sR���|�j�}|j����D�]<\}\}}||kr@||�\}}||�}||�}||f||<�qd�S�rl���)r��r��)rj���r�����dr+���rW���r6��r7��r8��r,���r,���r-����merge��s����zDocTestRunner.merge)NNr"���)N)NNT)N)r6���rp���rq���r*��r����r!��r#��r&��r(��r$��rO��r0��r[���r����r;��rH��rQ��rS��rU��r,���r,���r,���r-���r���h��s���: $ } I 9c�������������������@���s,���e�Zd�Zdd��Zdd��Zdd��Zdd��Zd S�) r���c�����������������C���s���t�|�dd�d�S�)N�ASCIIrA��)r:���rB��)rj���r]���r,���r,���r-����_toAscii(��s����zOutputChecker._toAsciic�����������������C���s����|���|�}|���|�}||kr dS�|t@�sH||fdkr8dS�||fdkrHdS�|t@�s�t�dt�t��d|�}t�dd|�}||kr�dS�|t@�r�d�|� ���}d�|� ���}||kr�dS�|t @�r�t||�r�dS�dS�) NT)zTrue z1 )zFalse z0 z(?m)^%s\s*?$r����z(?m)^[^\S\n]+$rZ���F)rW��r���r���r[���r\����escape�BLANKLINE_MARKERr���r����rt���r���r|����rj���rw���rx���r��r,���r,���r-���r+��.��s4���� �� zOutputChecker.check_outputc�����������������C���s<���|t�tB�tB�@�sdS�|t@�r dS�|�d�dko:|�d�dkS�)NFTrF���r4���)r ���r ���r���r����rZ��r,���r,���r-����_do_a_fancy_diffm��s������zOutputChecker._do_a_fancy_diffc����������� ������C���s(��|j�}|t@�st�dt|�}|��|||�r�|jdd�}|jdd�}|t@�rptj ||dd�}t |�dd���}d}nZ|t@�r�tj||dd�}t |�dd���}d}n,|t @�r�tjtjd�} t | �||��}d }n�d |�td�|���S�|r�|r�dt|�t|�f�S�|�rd t|��S�|�r dt|��S�dS�d�S�)Nz(?m)^[ ]*(?= )Tr9��r4���)�nz#unified diff with -expected +actualz-context diff with expected followed by actual)Zcharjunkzndiff with -expected +actualzDifferences (%s): r����zExpected: %sGot: %szExpected: %sGot nothing zExpected nothing Got: %szExpected nothing Got nothing )rw���r���r[���r\���rY��r[��r=��r ����difflibZunified_diff�listr ���Zcontext_diffr���ZDifferZIS_CHARACTER_JUNKZcomparer_���r����) rj���r ��rx���r��rw���r����Z got_linesZdiffZkindZenginer,���r,���r-���r%�����s4����zOutputChecker.output_differenceN)r6���rp���rq���rW��r+��r[��r%��r,���r,���r,���r-���r��� ��s���?c�������������������@���s���e�Zd�Zdd��Zdd��ZdS�)r���c�����������������C���s���||�_�||�_||�_d�S�rl���)r ��r ��rx���)rj���r ��r ��rx���r,���r,���r-���r�������s����zDocTestFailure.__init__c�����������������C���s ���t�|�j�S�rl����r:���r ��r����r,���r,���r-����__str__���s����zDocTestFailure.__str__N�r6���rp���rq���r����r`��r,���r,���r,���r-���r������s���c�������������������@���s���e�Zd�Zdd��Zdd��ZdS�)r���c�����������������C���s���||�_�||�_||�_d�S�rl���)r ��r ��rd���)rj���r ��r ��rd���r,���r,���r-���r�������s����zUnexpectedException.__init__c�����������������C���s ���t�|�j�S�rl���r_��r����r,���r,���r-���r`�����s����zUnexpectedException.__str__Nra��r,���r,���r,���r-���r������s���c�������������������@���s&���e�Zd�Zd dd�Zdd��Zdd��ZdS�) r���NTc�����������������C���s$���t��|�|||d�}|r |j����|S�)NF)r���rQ��r1���rL��)rj���r ��r1��r����rP���rr,���r,���r-���rQ��3��s���� zDebugRunner.runc�����������������C���s���t�|||��d�S�rl���)r���r'��r,���r,���r-���r(��9��s����z'DebugRunner.report_unexpected_exceptionc�����������������C���s���t�|||��d�S�rl���)r���r"��r,���r,���r-���r&��<��s����zDebugRunner.report_failure)NNT)r6���rp���rq���rQ��r(��r&��r,���r,���r,���r-���r������s���[ TFc �����������������C���s����|�d�krt�j�d�}�t�|��s,td|�f���|d�kr:|�j}t|d�} |rVt||d�} nt ||d�} | j |�|||d�D�]}| �|��qt|r�| ����t d�kr�| a n t �| ��t| j| j�S�)Nr����ztestmod: module required; %r)r�����r����r���r1���r����)r>���r?���r/���r7���r8���rB���r6���r���r���r���rv���rQ��rS���masterrU��r%���r��r��)r����r+���r1���r�����reportr��r�����raise_on_errorr�����finder�runnerr ��r,���r,���r-���r���H��s$����E c�����������������C���s����|r|st�d��t|�|||pd�\}}�|d�kr:tj�|��}|d�krHi�}n|���}|d�k rb|�|��d|krrd|d<�| r�t||d�} nt||d�} | � ||||�d�}| � |��|r�| ����td�kr�| an t� | ��t| j| j�S�)N�8Package may only be specified for module-relative paths.r@��r6���r����rc��r"���)r����rX���r����r�����basenamer����r����r���r���r����rQ��rS��re��rU��r%���r��r��)rT���rV���r+���rU���r1���r����rf��r��r����rg��r����rN����textri��r ��r,���r,���r-���r������s2����R� �NoNamec����������� ������C���s@���t�|dd�}t||d�}|j|�||d�D�]}|j||d��q(d�S�)NF)r����r����rc��)r1���)r1��)r���r���rv���rQ��) rW���r1���r����r+���r1��r��rh��ri��r ��r,���r,���r-���r���+��s����c�����������������C���s"���|�t�@�|�krtd|���t}|�a|S�)NzOnly reporting flags allowed)r ���r�����_unittest_reportflags)r2����oldr,���r,���r-���r���H��s ���� c�������������������@���sl���e�Zd�Zddd�Zdd��Zdd��Zd d ��Zdd��Zd d��Zdd��Z dd��Z dd��Zdd��Ze jZdd��ZdS�)�DocTestCaser"���Nc�����������������C���s.���t�j�|���||�_||�_||�_||�_||�_d�S�rl���)�unittest�TestCaser�����_dt_optionflags�_dt_checker�_dt_test� _dt_setUp�_dt_tearDown)rj���r ��r���setUp�tearDownr��r,���r,���r-���r����n��s����zDocTestCase.__init__c�����������������C���s���|�j�}|�jd�k r|��|��d�S�rl���)ru��rv���rj���r ��r,���r,���r-���rx��x��s���� zDocTestCase.setUpc�����������������C���s(���|�j�}|�jd�k r|��|��|j����d�S�rl���)ru��rw��r1���rL��rz��r,���r,���r-���ry��~��s���� zDocTestCase.tearDownc�����������������C���s~���|�j�}tj}t��}|�j}|t@�s(|tO�}t||�jdd�}z d|_ |j ||jdd�\}}W�5�|t_X�|rz|��|�� |������d�S�)NF�r��r��r����zF----------------------------------------------------------------------)r����rP��)ru��r>���r����r#���rs��r ���rn��r���rt��r*��rQ��rC��ZfailureException�format_failurerc���)rj���r ��ro���newr��ri��r��r��r,���r,���r-����runTest���s(���������zDocTestCase.runTestc�����������������C���sP���|�j�}|jd�krd}n d|j�}d�|j�d�dd����}d|j|j|||f�S�)Nzunknown line numberz%sr����rr���z:Failed doctest test for %s File "%s", line %s, in %s %s)ru��r����r����r+���rt���rT���)rj����errr ��r����Zlnamer,���r,���r-���r|�����s���� �zDocTestCase.format_failurec�����������������C���s6���|������t|�j|�jdd�}|j|�jdd��|�����d�S�)NFr{��)rP��)rx��r���rs��rt��rQ��ru��ry��)rj���ri��r,���r,���r-���r!������s����B��zDocTestCase.debugc�����������������C���s���|�j�jS�rl����ru��r+���r����r,���r,���r-���r�������s����zDocTestCase.idc�����������������C���sP���t�|��t�|�k rtS�|�j|jkoN|�j|jkoN|�j|jkoN|�j|jkoN|�j|jkS�rl���)r����r����ru��rs��rv��rw��rt��r����r,���r,���r-���r�������s���� � � � �zDocTestCase.__eq__c�����������������C���s���t�|�j|�j|�j|�jf�S�rl���)r����rs��rv��rw��rt��r����r,���r,���r-���r�������s�����zDocTestCase.__hash__c�����������������C���s,���|�j�j�d�}d|d�d�|d�d���f�S�)Nr����z%s (%s)rr���)ru��r+���rt���r����)rj���r+���r,���r,���r-���r���� ��s����zDocTestCase.__repr__c�����������������C���s���d|�j�j�S�)Nz Doctest: r���r����r,���r,���r-����shortDescription ��s����zDocTestCase.shortDescription)r"���NNN)r6���rp���rq���r����rx��ry��r~��r|��r!���r����r����r����r����r���r`��r���r,���r,���r,���r-���rp��l��s������ H rp��c�������������������@���s0���e�Zd�Zdd��Zdd��Zdd��Zdd��ZeZd S�) �SkipDocTestCasec�����������������C���s���||�_�t�|�d���d�S�rl���)rC���rp��r����)rj���rC���r,���r,���r-���r���� ��s����zSkipDocTestCase.__init__c�����������������C���s���|���d��d�S�)Nz-DocTestSuite will not work with -O2 and above)ZskipTestr����r,���r,���r-���rx�� ��s����zSkipDocTestCase.setUpc�����������������C���s���d�S�rl���r,���r����r,���r,���r-���� test_skip ��s����zSkipDocTestCase.test_skipc�����������������C���s���d|�j�j�S�)NzSkipping tests from %s)rC���r6���r����r,���r,���r-���r��� ��s����z SkipDocTestCase.shortDescriptionN)r6���rp���rq���r����rx��r���r���r`��r,���r,���r,���r-���r��� ��s ���r���c�������������������@���s���e�Zd�Zdd��ZdS�)� _DocTestSuitec�����������������C���s���d�S�rl���r,���)rj����indexr,���r,���r-����_removeTestAtIndex ��s����z _DocTestSuite._removeTestAtIndexN)r6���rp���rq���r���r,���r,���r,���r-���r��� ��s���r���c����������� ������K���s����|d�krt���}t|��}�|j|�||d�}|sNtjjdkrNt��}|�t|����|S�|� ���t��}|D�]T}t |j�dkrtq`|js�|�j }|dd���dkr�|d�d��}||_|�t|f|���q`|S�)Nrd��r4���r"���r��r ��rr���)r���rD���rv���r>���r2����optimizer����addTestr���r����r)���r����rT���r����rp��) rC���r1���r����Ztest_finderr����r�����suiter ��rT���r,���r,���r-���r���# ��s(����%c�������������������@���s$���e�Zd�Zdd��Zdd��Zdd��ZdS�)�DocFileCasec�����������������C���s���d��|�jj�d��S�)NrN��r����)r����ru��r+���rt���r����r,���r,���r-���r����e ��s����zDocFileCase.idc�����������������C���s���|�j�jS�rl���)ru��rT���r����r,���r,���r-���r����h ��s����zDocFileCase.__repr__c�����������������C���s���d|�j�j|�j�j|f�S�)Nz2Failed doctest test for %s File "%s", line 0 %s)ru��r+���rT���)rj���r��r,���r,���r-���r|��k ��s�����zDocFileCase.format_failureN)r6���rp���rq���r����r����r|��r,���r,���r,���r-���r���c ��s���r���c����������� ������K���sv���|d�kri�}n|����}|r&|s&td��t|�|||p4d�\}}�d|krL|�|d<�tj�|��}|�||||�d�} t| f|�S�)Nrj��r@��r����r"���)r����r����rX���r����r����rk��r����r���) r����rV���rU���r1���r����rN���r�����docr+���r ��r,���r,���r-����DocFileTestp ��s�����r���c������������������O���sD���t���}|�dd�r$t|�d��|d<�|�D�]}|�t|f|���q(|S�)NrV���TrU���)r���r/���rD���r���r���)�paths�kwr���r����r,���r,���r-���r���� ��s����8c�����������������C���s����g�}t����|��D�]x}t|t�rh|�|jd�d����|j}|r�|�d��|dd��|�d�d�d��D��7�}q|dd��|�d�d�d��D��7�}q|r�|d�dkr�|����q�|r�|d�dkr�|�d��q�d� |�d�S�) Nrr���z# Expected:c�����������������S���s���g�|�]}d�|��qS�)z## r,���r����r,���r,���r-���r���� ��s�����z(script_from_examples.<locals>.<listcomp>rF���c�����������������S���s���g�|�]}t�|��qS�r,���)r����r����r,���r,���r-���r���� ��s����r}���r"���) r���r����r9���r���r����r����rw���rt����popr����)r]���r����Zpiecerw���r,���r,���r-���r���� ��s ����: "� c��������������������sJ���t�|��}�t���|��}��fdd�|D��}|s4t��d��|d�}t|j�}|S�)Nc��������������������s���g�|�]}|j���kr|�qS�r,���r*���)r����r6��r*���r,���r-���r����. ��s����� �ztestsource.<locals>.<listcomp>znot found in testsr"���)rD���r���rv���r����r���r����)rC���r+���r����r ���testsrcr,���r*���r-���r���% ��s���� c�����������������C���s���t�|��}t|||��d�S�rl���)r����debug_script)�src�pmr1���r���r,���r,���r-���r ���5 ��s����c�����������������C���s����dd�l�}|r|���}ni�}|rvzt|�||��W�q����tt���d���|jdd�}|����|�d�t���d���Y�q�X�n|jdd�� d|��||��d�S�)Nr"���r&���T)r����r4���zexec(%r)) r����r����r,��r��r>���rd���r����rG��ZinteractionrQ��)r���r���r1���r�����pr,���r,���r-���r���: ��s���� r���c�����������������C���s$���t�|��}�t|�|�}t|||�j��d�S�rl���)rD���r���r���r����)rC���r+���r���r���r,���r,���r-���r!���N ��s���� c�������������������@���s$���e�Zd�Zdd��Zdd��Zdd��ZdS�)� _TestClassc�����������������C���s ���||�_�d�S�rl����r��)rj���r��r,���r,���r-���r����j ��s����z_TestClass.__init__c�����������������C���s���|�j�d�|�_�|�S�)Nr4���r���r����r,���r,���r-����squaret ��s����z_TestClass.squarec�����������������C���s���|�j�S�rl���r���r����r,���r,���r-���r/���~ ��s����z_TestClass.getN)r6���rp���rq���r����r���r/���r,���r,���r,���r-���r���\ ��s��� r���z� Example of a string object, searched as-is. >>> x = 1; y = 2 >>> x + y, x * y (3, 2) a��� In 2.2, boolean expressions displayed 0 or 1. By default, we still accept them. This can be disabled by passing DONT_ACCEPT_TRUE_FOR_1 to the new optionflags argument. >>> 4 == 4 1 >>> 4 == 4 True >>> 4 > 4 0 >>> 4 > 4 False z� Blank lines can be marked with <BLANKLINE>: >>> print('foo\n\nbar\n') foo <BLANKLINE> bar <BLANKLINE> z� If the ellipsis flag is used, then '...' can be used to elide substrings in the desired output: >>> print(list(range(1000))) #doctest: +ELLIPSIS [0, 1, 2, ..., 999] a��� If the whitespace normalization flag is used, then differences in whitespace are ignored. >>> print(list(range(30))) #doctest: +NORMALIZE_WHITESPACE [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29] )r���r����zbool-int equivalencezblank linesZellipsiszwhitespace normalizationc������������������C���s"��dd�l�}�|�jdd�}|jdddddd ��|jd ddt���g�d d��|jddddd��|jdddd��|���}|j}|j}d}|jD�]}|t|�O�}q�|j r�|t O�}|D�]v}|�d�r�tj �|�\}}tj �d|��t|d�d���} tj d=�t| ||d�\} }nt|d||d�\} }| r��dS�q�dS�)Nr"���zdoctest runner)Zdescriptionr��z --verbose� store_trueFz'print very verbose output for all tests)�action�default�helpz-oz--optionr����zqspecify a doctest option flag to apply to the test run; may be specified more than once to apply multiple options)r����choicesr���r���z-fz--fail-fastzystop running tests after first failure (this is a shorthand for -o FAIL_FAST, and is in addition to any other -o options))r���r���r`���r����z file containing the tests to run)�nargsr���z.py���rc��)rV���r����r��r&���)�argparse�ArgumentParser�add_argumentr'����keys� parse_argsr`���r����r����Z fail_fastr���ri���r����r����rt���r>����insertr;���r���r���)r���r����r����Z testfilesr����r����r����rT����dirnamer����r��rN��r,���r,���r-����_test� ��sL����� �� �� �� r���r����)r4���)rY���) NNNNTr"���NFF)Frm��Nr"���)NNNN)FN)FN)F)RZ __docformat__�__all__r.���r]��r7���r����r����r����r[���r>���ra���rq���ior#����collectionsr$���r%���r'���r���r���r���r���r���r���r���r���r ���r ���r���r���r���r ���rY��rs���r3���rD���rJ���rX���r_���rf���rg���r|���r����r����r����r����rO���r���r���r���r���r���r���� Exceptionr���r���r���re��r���r���r���rn��r���rr��rp��r���Z TestSuiter���r���r���r���r���r���r���r ���r���r!���r���r��r���r6����exitr,���r,���r,���r-����<module>0���sD���- ��������� 1%.DK�l��<���;�n���������� h������ {����� $�! @ �� IR , �3-