
    <e|                        d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	Z	d dl
Z
d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlmZ d dlmZ d dlmZmZ d dlm Z  d dlm!Z! d dl"m#Z#m$Z$m%Z% d dlm&Z& d d	lm'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z- d d
l.m/Z/m0Z0m1Z1 d dlm2Z2  G d d          Z3ej4        j5        rdZ6ndZ6d7                                Z8 e9d e6D                       Z:dZ; e9d e6D                       Z<d=                    de j>                  Z?dZ@d7                                ZAd7                                ZBd7                                ZCd7                                ZDd7                                ZEd ZFd ZGd ZHd ZId  ZJd! ZKd" ZL G d# d$ejM                  ZN G d% d&ejM                  ZO G d' d(eN          ZP G d) d*ejM                  ZQ ejR        e+pe,d+           G d, d-ejM                              ZS G d. d/eN          ZT G d0 d1ejM                  ZU G d2 d3ejM                  ZV G d4 d5ejM                  ZWd6 ZXeYd7k    r ejZ                     dS dS )8    N)StringIO)
namedtuple)urlopen
urlcleanup)import_helper)	os_helper)assert_python_okassert_python_failurespawn_python)threading_helper)reap_childrencaptured_outputcaptured_stdoutcaptured_stderris_emscriptenis_wasirequires_docstrings)TESTFNrmtreeunlink)	pydoc_modc                       e Zd Z	 dS )nonasciiN__name__
__module____qualname__     &/usr/lib/python3.11/test/test_pydoc.pyr   r   %   s         Dr   r   ).dictionary for instance variables (if defined)2list of weak references to the object (if defined)r!   r"   ) r#   r#   r#   a  
NAME
    test.pydoc_mod - This is a test module for test_pydoc
%s
CLASSES
    builtins.object
        A
        B
        C
    
    class A(builtins.object)
     |  Hello and goodbye
     |  
     |  Methods defined here:
     |  
     |  __init__()
     |      Wow, I have no function!
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |  
     |  __dict__%s
     |  
     |  __weakref__%s
    
    class B(builtins.object)
     |  Data descriptors defined here:
     |  
     |  __dict__%s
     |  
     |  __weakref__%s
     |  
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |  
     |  NO_MEANING = 'eggs'
     |  
     |  __annotations__ = {'NO_MEANING': <class 'str'>}
    
    class C(builtins.object)
     |  Methods defined here:
     |  
     |  get_answer(self)
     |      Return say_no()
     |  
     |  is_it_true(self)
     |      Return self.get_answer()
     |  
     |  say_no(self)
     |  
     |  ----------------------------------------------------------------------
     |  Class methods defined here:
     |  
     |  __class_getitem__(item) from builtins.type
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |  
     |  __dict__
     |      dictionary for instance variables (if defined)
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)

FUNCTIONS
    doc_func()
        This function solves all of the world's problems:
        hunger
        lack of Python
        war
    
    nodoc_func()

DATA
    __xyz__ = 'X, Y and Z'
    c_alias = test.pydoc_mod.C[int]
    list_alias1 = typing.List[int]
    list_alias2 = list[int]
    type_union1 = typing.Union[int, str]
    type_union2 = int | str

VERSION
    1.2.3.4

AUTHOR
    Benjamin Peterson

CREDITS
    Nobody

FILE
    %s
c              #   (   K   | ]}|rd |z   ndV  dS )z
     |      r#   Nr   .0ss     r    	<genexpr>r(      sO       &I &I*+ ?@&G&6&:&:R &I &I &I &I &I &Ir   a  
test.pydoc_mod (version 1.2.3.4)
This is a test module for test_pydoc

Modules
    types
    typing

Classes
    builtins.object
    A
    B
    C

class A(builtins.object)
    Hello and goodbye

    Methods defined here:
        __init__()
            Wow, I have no function!

    Data descriptors defined here:
        __dict__
            dictionary for instance variables (if defined)
        __weakref__
            list of weak references to the object (if defined)

class B(builtins.object)
    Data descriptors defined here:
        __dict__
            dictionary for instance variables (if defined)
        __weakref__
            list of weak references to the object (if defined)
    Data and other attributes defined here:
        NO_MEANING = 'eggs'
        __annotations__ = {'NO_MEANING': <class 'str'>}


class C(builtins.object)
    Methods defined here:
        get_answer(self)
            Return say_no()
        is_it_true(self)
            Return self.get_answer()
        say_no(self)
    Class methods defined here:
        __class_getitem__(item) from builtins.type
    Data descriptors defined here:
        __dict__
            dictionary for instance variables (if defined)
        __weakref__
             list of weak references to the object (if defined)

Functions
    doc_func()
        This function solves all of the world's problems:
        hunger
        lack of Python
        war
    nodoc_func()

Data
    __xyz__ = 'X, Y and Z'
    c_alias = test.pydoc_mod.C[int]
    list_alias1 = typing.List[int]
    list_alias2 = list[int]
    type_union1 = typing.Union[int, str]
    type_union2 = int | str

Author
    Benjamin Peterson

Credits
    Nobody
c              #   B   K   | ]}|                     d d          V  dS ) &nbsp;N)replacer%   s     r    r(   r(      sL       &I &I*+ '(iiX&>&> &I &I &I &I &I &Ir   z~No Python documentation found for %r.
Use help() to get the interactive help utility.
Use help(str) for help on the str class.
z7problem in %s - ModuleNotFoundError: No module named %ra/  
Help on class DA in module %s:

class DA(builtins.object)
 |  Data descriptors defined here:
 |  
 |  __dict__%s
 |  
 |  __weakref__%s
 |  
 |  ham
 |  
 |  ----------------------------------------------------------------------
 |  Data and other attributes inherited from Meta:
 |  
 |  ham = 'spam'
z
Help on class Class in module %s:

class Class(builtins.object)
 |  Data and other attributes inherited from Meta:
 |  
 |  LIFE = 42
z
Help on class Class1 in module %s:

class Class1(builtins.object)
 |  Data and other attributes inherited from Meta1:
 |  
 |  one = 1
a  
Help on class Class2 in module %s:

class Class2(Class1)
 |  Method resolution order:
 |      Class2
 |      Class1
 |      builtins.object
 |  
 |  Data and other attributes inherited from Meta1:
 |  
 |  one = 1
 |  
 |  ----------------------------------------------------------------------
 |  Data and other attributes inherited from Meta3:
 |  
 |  three = 3
 |  
 |  ----------------------------------------------------------------------
 |  Data and other attributes inherited from Meta2:
 |  
 |  two = 2
z
Help on class C in module %s:

class C(builtins.object)
 |  Data and other attributes defined here:
 |  
 |  here = 'present!'
c                 v    	 || fz   }t          dt          j        g|R i |\  }}}|                                S Nz-B)r	   pydoc__file__stripmodule_nameargsenvrcouterrs         r    	run_pydocr:   /  sJ     ;. D#D%.G4GGG3GGLBS99;;r   c                 v    	 || fz   }t          dt          j        g|R i |\  }}}|                                S r/   )r
   r0   r1   r2   r3   s         r    run_pydoc_failr<   9  sJ     ;. D(u~LLLLLLLBS99;;r   c                     	 t          j                    }|                    |           }|                    t                    pd}|rd|z   dz   }|                                |fS )Nr#   z<br><a href="z">Module Docs</a>)r0   HTMLDoc	docmodule	getdoclocr   r2   )moduledocoutputlocs       r    get_pydoc_htmlrE   A  sb    ,
-//C]]6""F
--	
"
"
(bC
 <$';;<<>>3r   c                     	 t           j        j        }t           j        j        } | | |t                                        }t          j                    }|                    | |          }|S )N)basedir)ospathabspathdirnamer1   r0   TextDocr@   )rA   rJ   rK   rG   rB   rD   s         r    get_pydoc_linkrM   J  s_    2goGgoGgggggh//0011G
-//C
---
0
0CJr   c                     	 t          j                    }|                    t                    pd}|rd|z   dz   }|                    |           }t          j        d          }|                    d|          }|                                |fS )Nr#   z
MODULE DOCS
    r-   .)	r0   rL   r@   r   r?   recompilesubr2   )rA   rB   rD   rC   patts        r    get_pydoc_textrT   S  s    ,
-//C
--	
"
"
(bC
 1#c)D0]]6""F :eDXXb&!!F<<>>3r   c                     |                      d          \  }}}|                     d          \  }}}|                     d          \  }}}|S )Nz</head>z<title>z</title>)	partition)textheader_titles       r    get_html_titler[   a  sN    >>),,LFAq""9--KAq%//*--KE1aLr   c           	          	 |                      dd          } t          j        dd|           } t          j         | ddddd	d
          } | S )Nz<dd>r-   z<.*?>r#   r+   r*   z&gt;>z&lt;<)r,   rP   rR   r0   )htmls    r    	html2textr`   i  sO     <<%%D6'2t$$D=xfc63GGDKr   c                   >    e Zd ZddZej        dd            Zd ZdS )PydocBaseTestNc                 h    	 |p$t           j                            t                    gdfd	}|S )Nr#   c                 "     | p||          S Nr   )rI   prefixonerrordefault_pathwalk_packagess      r    wrapperz8PydocBaseTest._restricted_walk_packages.<locals>.wrapper|  s     =!5vwGGGr   )Nr#   N)rH   rI   rK   r1   )selfri   rI   rj   rh   s    `  @r    _restricted_walk_packagesz'PydocBaseTest._restricted_walk_packagesv  sU    	 : 9 9:	H 	H 	H 	H 	H 	H 	Hr   c              #      K   t           j        }|                     ||          t           _        	 d V  |t           _        d S # |t           _        w xY wre   )pkgutilri   rl   )rk   rI   ri   s      r    restrict_walk_packagesz$PydocBaseTest.restrict_walk_packages  s]      - $ > >}?C!E !E	2EEE$1G!!!MG!1111s   A Ac                 |    t          j        |d          }t          |          }|                     |||           |S )Nz	text/html)r0   _url_handlerr[   assertEqual)rk   urlexpected_titlerW   results        r    call_url_handlerzPydocBaseTest.call_url_handler  s>    !#{33%%666r   re   )r   r   r   rl   
contextlibcontextmanagerro   rv   r   r   r    rb   rb   t  s[            2 2 2 2    r   rb   c                   F   e Zd ZdZ ej         eed          o ej                    d          e	d                         Z
 ej         eed          o ej                    d          e	d                         Zd Zd Zd Zd	 Zd
 Zd Ze	d             Zd Zd Zd Zd Zd Zd Zd Zd Zd Z ej         eed          o ej                    d          e	d                         Zd Zd Zd Ze	d             Z d Z!d Z"d Z#d Z$d Z%e	d              Z&d! Z'dS )"PydocDocTestNgettrace1trace function introduces __locals__ unexpectedlyc                    t          t                    \  }}t          |          }d |                                D             }d |D             }|d= t                                          }d |D             }|                     ||           t          j        t                    }t          j	        
                    |          }|                     ||           |                     ||           |                     ||           d S )Nc                 6    g | ]}|                                 S r   r2   r&   lines     r    
<listcomp>z.PydocDocTest.test_html_doc.<locals>.<listcomp>  s     HHHtdjjllHHHr   c                     g | ]}||S r   r   r   s     r    r   z.PydocDocTest.test_html_doc.<locals>.<listcomp>  s    :::tT:d:::r      c                 :    g | ]}||                                 S r   r   r   s     r    r   z.PydocDocTest.test_html_doc.<locals>.<listcomp>  s%    JJJ4TJ$**,,JJJr   )rE   r   r`   
splitlineshtml2text_of_expectedrr   inspect
getabsfileurllibparsequoteassertIn)rk   ru   doc_loctext_result
text_linesexpected_linesmod_filemod_urls           r    test_html_doczPydocDocTest.test_html_doc  s     )33''HH{/E/E/G/GHHH
::z:::
qM.99;;JJ>JJJ^444%i00,$$X..gv&&&h'''gv&&&&&r   c                     t          t                    \  }}t          |ft          z   t	          j        t                    fz   z  }|                     ||           d S re   )rT   r   expected_text_patternexpected_text_data_docstringsr   r   rr   )rk   ru   r   expected_texts       r    test_text_doczPydocDocTest.test_text_doc  s`     )33- 
56 +I6689: 	/////r   c                     dd l } G d d|j                  }t          j        |          }|                     d|           d S )Nr   c                       e Zd ZdZdZdS )IPydocDocTest.test_text_enum_member_with_value_zero.<locals>.BinaryIntegerr   r   N)r   r   r   zerooner   r   r    BinaryIntegerr     s        DCCCr   r   zBinaryInteger.zero)enumIntEnumr0   
render_docr   )rk   r   r   rB   s       r    %test_text_enum_member_with_value_zeroz2PydocDocTest.test_text_enum_member_with_value_zero  sf     		 	 	 	 	DL 	 	 	 }--*C00000r   c                 n    t          t          j        j                  }|                     d|           d S )Nzxml.etree.elementtree)rM   xmletreeElementTreer   )rk   doc_links     r    ,test_mixed_case_module_names_are_lower_casedz9PydocDocTest.test_mixed_case_module_names_are_lower_cased  s/    !#)"788-x88888r   c                 l    t          t          j                  \  }}|                     |dd           d S )Nr#   z'MODULE DOCS incorrectly includes a link)rT   r   r   rr   )rk   ru   r   s      r    test_issue8225zPydocDocTest.test_issue8225  s4    (33"&OPPPPPr   c                     t           j        }	 d t           _        t          j                     |t           _        d S # |t           _        w xY wre   )sysstdinr0   getpager)rk   previous_stdins     r    test_getpager_with_stdin_nonez*PydocDocTest.test_getpager_with_stdin_none  sA    	'CIN&CIIICI&&&&s	   ; A	c                      G d d          } G d d          }t          j         |                      }t          j         |                      }|                     |                    dd          |           d S )Nc                       e Zd ZdZ dS ))PydocDocTest.test_non_str_name.<locals>.A*   Nr   r   r   r    Ar     s        HHHr   r   c                       e Zd ZdS ))PydocDocTest.test_non_str_name.<locals>.BNr   r   r   r    Br             Dr   r   )r0   r   rr   r,   )rk   r   r   adocbdocs        r    test_non_str_namezPydocDocTest.test_non_str_name  s    	 	 	 	 	 	 	 		 	 	 	 	 	 	 	$$$$c3//66666r   c                     d}t          t          |          d          }t          |z  }|                     ||d           d S )Ntest.i_am_not_hereasciiz&documentation for missing module found)strr<   missing_patternrr   rk   missing_moduleru   expecteds       r    test_not_herezPydocDocTest.test_not_here  sQ    -^N33W=="^364	6 	6 	6 	6 	6r   c                     t          dd          }t          j                            dd          }|                     ||           d S )Nztest.test_pydoc.nonasciir   )PYTHONIOENCODINGbackslashreplace)r:   r   __doc__encoder   )rk   ru   encodeds      r    test_not_asciizPydocDocTest.test_not_ascii  sH    5PPP"))'3EFFgv&&&&&r   c                     d}t          t          |          d          }t          |                                z  }|                     ||           d S )Nz test.i_am_not_here r   )r   r<   r   r2   rr   r   s       r    test_input_stripzPydocDocTest.test_input_strip  sP    /^N33W=="^%9%9%;%;;6*****r   c                    t           j        }|                      |d          d           |                      |d          d           |                      |d          d           |                      |d          d           d S )Nz<function stripid at 0x88dcee4>z<function stripid>z <function stripid at 0x01F65390>42z<type 'exceptions.Exception'>)r0   stripidrr   )rk   r   s     r    test_stripidzPydocDocTest.test_stripid  s    -!BCC-	/ 	/ 	/!CDD-	/ 	/ 	/ 	---!@AA8	: 	: 	: 	: 	:r   c                     	 t          j                    }|                    t                    }d}|                     ||           d S )Nz |  Built-in subclasses:
 |      async_generator
 |      BaseException
 |      builtin_function_or_method
 |      bytearray
 |      ... and \d+ other subclasses)r0   rL   docclassobjectassertRegexrk   rB   rW   snips       r    )test_builtin_with_more_than_four_childrenz6PydocDocTest.test_builtin_with_more_than_four_children  sJ    	( moo||F##8 	t$$$$$r   c                     	 t          j                    }|                    t                    }d}|                     ||           d S )Nzc |  Built-in subclasses:
 |      FloatingPointError
 |      OverflowError
 |      ZeroDivisionError)r0   rL   r   ArithmeticErrorr   r   s       r    test_builtin_with_childz$PydocDocTest.test_builtin_with_child  sH    	$ moo||O,,, 	dD!!!!!r   c                     	 t          j                    }|                    t                    }d}|                     ||           |                     d|           d S )Nz^ |  Built-in subclasses:
 |      ArithmeticError
 |      AssertionError
 |      AttributeErrorZeroDivisionError)r0   rL   r   	Exceptionr   assertNotInr   s       r    test_builtin_with_grandchildz)PydocDocTest.test_builtin_with_grandchild4  s_    	* moo||I&&) 	dD!!!,d33333r   c                     	 t          j                    }|                    t                    }|                     d|           d S NzBuilt-in subclasses)r0   rL   r   r   r   rk   rB   rW   s      r    test_builtin_no_childz"PydocDocTest.test_builtin_no_childT  sC    	, moo||-...55555r   c                     	 t          j                    }|                    t                    }|                     d|           d S r   )r0   rL   r   typer   r   s      r    test_builtin_on_metaclassesz(PydocDocTest.test_builtin_on_metaclassesp  sB    	
 moo||D!!.55555r   c                    t           dz                                  }t          d          5 }|                    d          \  }}|                                                                dd         }|d                             d          |d<   |                     ||           d d d            d S # 1 swxY w Y   d S )Nabdz-chelp()s   abdiir   zhelp> )r   r   r   communicatedecoderemoveprefixrr   )rk   elinesprocr8   rY   oliness         r    test_fail_help_clizPydocDocTest.test_fail_help_cli{  s    !E)5577-(( 	-D%%f--FCZZ\\,,..r"u5Fq	..x88F1IVV,,,		- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-s   A;B44B8;B8c                 l   t                      5 }t          j        |          }|                    d           t          dz  }|                     ||                                                                                    dt          j
                             d d d            d S # 1 swxY w Y   d S )NrC   r   r-   )r   r0   Helperhelpr   rr   getvaluer2   r,   rH   linesep)rk   bufhelperr   s       r    test_fail_help_output_redirectz+PydocDocTest.test_fail_help_output_redirect  s    ZZ 	Y3\---FKK&.HXs||~~';';'='='E'EdBJ'W'WXXX		Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Ys   BB))B-0B-c                    t           j        }d }d | _        t                      }t          j        |          }t          t                    \  }}d}d                                }t          j	        |          }|t          z   }	|t           _        	 t          d          5 }
t          d          5 }|                    |           |                                                                }|	|ft          z   t!          j        t                    fz   z  }|                     d|
                                           |                     d|                                           |                     ||           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   |t           _        d S # |t           _        w xY w)Nc                      d S )Nc                     | S re   r   )xs    r    <lambda>zJPydocDocTest.test_help_output_redirect.<locals>.<lambda>.<locals>.<lambda>  s    ! r   r   r   r   r    r   z8PydocDocTest.test_help_output_redirect.<locals>.<lambda>  s     r   r   ztest.pydoc_modz9
        Help on module test.pydoc_mod in test:

        stdoutstderrr#   )r0   r   maxDiffr   r   rT   r   lstriptextwrapdedentr   r   r   r   r2   r   r   r   rr   )rk   getpager_oldgetpager_newr   r   unusedr   rA   help_headerexpected_help_patternrC   r9   ru   r   s                 r    test_help_output_redirectz&PydocDocTest.test_help_output_redirect  s    ~,,jjS)))(33! FHH 	 ok22 +.C C%	* ** 
8f **
8.1F###--// 5!(
 =!>!(!3I!>!> @!A!B   V__%6%6777  S\\^^444  777
8 
8 
8 
8 
8 
8 
8 
8 
8 
8 
8 
8 
8 
8 
8 
8 
8 
8 
8 
8 
8 
8 
8 
8 
8 
8 
8 
8 
8 
8 *ENNN\EN))))sU   F8 !F1CF<FF	FF	FF8 F##F8 &F#'F8 8Gc                 v   t          dddg          }t                      5 }t          j        |           d d d            n# 1 swxY w Y   |                                }|                     d|           |                     d|           |                     d|           |                     d|           d S )NPersonnickname	firstnamezAlias for field number 0zAlias for field number 1r   r   r0   r   r   r   )rk   r  help_iohelptexts       r    test_namedtuple_fieldsz#PydocDocTest.test_namedtuple_fields  s    Hz;&?@@ 	'Jv	 	 	 	 	 	 	 	 	 	 	 	 	 	 	##%%j(+++k8,,,0(;;;0(;;;;;s   AA	Ac                 N   t          dddgd          }t                      5 }t          j        |           d d d            n# 1 swxY w Y   |                                }|                     d|           |                     d|           |                     d|           d S )	NNTabcdefT)rename_1_replace_asdictr  )rk   r  r  r  s       r    !test_namedtuple_public_underscorez.PydocDocTest.test_namedtuple_public_underscore  s    uenT::: 	'JrNNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	##%%dH%%%j(+++i*****s   AAAc                    |                      t          t                     dD ]}t          t          d|          5 }|dk    r$t	          d                    |          |           t	          d|           t	          d|           d d d            n# 1 swxY w Y   t          j        t          i           }|                     |d	           d S )
N)z
ISO-8859-1UTF-8wencodingr  z#coding: {})fileu   """line 1: hézline 2: hi"""u   line 1: hé)	
addCleanupr   r   openprintformatr0   synopsisrr   )rk   r"  scriptr(  s       r    test_synopsiszPydocDocTest.test_synopsis  s   '''/ 	8 	8HfcH555 4w&&-..x88vFFFF(v6666oF3333	4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
 ~fb11HX7777	8 	8s   ABB	B	c                     t          j        d          }|j                                        d         }|j        }t          j        |          }|                     ||           d S )NrH   r   )r   import_fresh_moduler   r   
__cached__r0   r(  rr   )rk   rH   r   filenamer(  s        r    test_synopsis_sourcelessz%PydocDocTest.test_synopsis_sourceless  s\    .t44:((**1-=>(++8,,,,,r   c                 &   t          j                    5 }t          j                            |d          }t
          j                            |          }t          |d          5 }|	                    d           d d d            n# 1 swxY w Y   t          j        |           t          j        |i           }|                     |           t          j        |i           }|                     |           d d d            d S # 1 swxY w Y   d S )Nzfoomod42.pyr   foo = 1)r   temp_cwdrH   rI   join	importlibutilcache_from_sourcer%  write
py_compilerQ   r0   r(  assertIsNone)rk   test_dir	init_pathcached_pathfobjr(  synopsis_cacheds          r    "test_synopsis_sourceless_empty_docz/PydocDocTest.test_synopsis_sourceless_empty_doc  sk   !! 		/XX}==I#.::9EEKi%% &

9%%%& & & & & & & & & & & & & & &y)))~i44Hh'''#n["==Oo...		/ 		/ 		/ 		/ 		/ 		/ 		/ 		/ 		/ 		/ 		/ 		/ 		/ 		/ 		/ 		/ 		/ 		/s7   AD$B:DB
	
DB
	A+DD
D
c                 Z    d}|                      t          j        |          d           d S )Nz#I Am A Doc


Here is my description)z
I Am A Docz
Here is my description)rr   r0   splitdoc)rk   example_strings     r    test_splitdoc_with_descriptionz+PydocDocTest.test_splitdoc_with_description  s=    A77C	E 	E 	E 	E 	Er   c                     t          j                    5 }|                     t          j        |                     d d d            d S # 1 swxY w Y   d S re   )r   r2  assertFalser0   	ispackage)rk   r:  s     r     test_is_package_when_not_packagez-PydocDocTest.test_is_package_when_not_package  s    !! 	8XU_X66777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8s   (A		AAc                 X   t          j                    5 }t          j                            |d          }t          |d                                           |                     t          j	        |                     t          j
        |           d d d            d S # 1 swxY w Y   d S )N__init__.pyr   )r   r2  rH   rI   r3  r%  close
assertTruer0   rF  remove)rk   r:  r;  s      r    test_is_package_when_is_packagez,PydocDocTest.test_is_package_when_is_package  s    !! 	!XX}==IC  &&(((OOEOH55666Ii   		! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!s   A>BB#&B#c                 
    G d dt                     }t          t          t                               }|j        |d<   |d= |d= |j        |d<   |j        |d<   t          j        |          }|                     ||           d S )Nc                       e Zd Zd ZdS )/PydocDocTest.test_allmethods.<locals>.TestClassc                     dS )NTr   rk   s    r    method_returning_truezEPydocDocTest.test_allmethods.<locals>.TestClass.method_returning_true  s    tr   N)r   r   r   rS  r   r   r    	TestClassrP    s#            r   rT  rS  r   	__class____subclasshook____init_subclass__)	r   dictvarsrS  rV  rW  r0   
allmethodsassertDictEqual)rk   rT  r   methodss       r    test_allmethodszPydocDocTest.test_allmethods  s    	 	 	 	 	 	 	 	
 V%%,5,K()Y[! (1'A#$(1(C$%"9--Wh/////r   c                     G d d           G fdd          }t          j        |          }t          j        dd|          }|                     |dt
          z             t          j        |t          j                              }d	t
           d
}t          |          }d |                    d          D             }|D ]}| 	                    ||           d S )Nc                        e Zd ZddZeZd ZdS )+PydocDocTest.test_method_aliases.<locals>.ANc                     d S re   r   )rk   	aboveThiss     r    tkraisez3PydocDocTest.test_method_aliases.<locals>.A.tkraise  s    >>r   c                     d S re   r   rR  s    r    a_sizez2PydocDocTest.test_method_aliases.<locals>.A.a_size  s    !!r   re   )r   r   r   rc  liftre  r   r   r    r   r`    s<        ? ? ? ?D" " " " "r   r   c                   *    e Zd ZddZeZ j        ZdS )+PydocDocTest.test_method_aliases.<locals>.BNc                     d S re   r   )rk   tagOrIdcnfkws       r    itemconfigurez9PydocDocTest.test_method_aliases.<locals>.B.itemconfigure  s    ==r   re   )r   r   r   rm  
itemconfigre  b_size)r   s   r    r   rh    s/        > > > >&JXFFFr   r   rO   r#   a  Python Library Documentation: class B in module %s

class B(A)
 |  Method resolution order:
 |      B
 |      A
 |      builtins.object
 |  
 |  Methods defined here:
 |  
 |  b_size = a_size(self)
 |  
 |  itemconfig = itemconfigure(self, tagOrId, cnf=None, **kw)
 |  
 |  itemconfigure(self, tagOrId, cnf=None, **kw)
 |      Configure resources of an item TAGORID.
 |  
 |  ----------------------------------------------------------------------
 |  Methods inherited from A:
 |  
 |  a_size(self)
 |      Return size
 |  
 |  lift = tkraise(self, aboveThis=None)
 |  
 |  tkraise(self, aboveThis=None)
 |      Raise this widget in the stacking order.
 |  
 |  ----------------------------------------------------------------------
 |  Data descriptors inherited from A:
 |  
 |  __dict__
 |      dictionary for instance variables (if defined)
 |  
 |  __weakref__
 |      list of weak references to the object (if defined)
rendererz1
Python Library Documentation

class B in module a  
class B(A)
    Method resolution order:
        B
        A
        builtins.object

    Methods defined here:
        b_size = a_size(self)
        itemconfig = itemconfigure(self, tagOrId, cnf=None, **kw)
        itemconfigure(self, tagOrId, cnf=None, **kw)
            Configure resources of an item TAGORID.

    Methods inherited from A:
        a_size(self)
            Return size
        lift = tkraise(self, aboveThis=None)
        tkraise(self, aboveThis=None)
            Raise this widget in the stacking order.

    Data descriptors inherited from A:
        __dict__
            dictionary for instance variables (if defined)
        __weakref__
            list of weak references to the object (if defined)
c                 :    g | ]}||                                 S r   r   r   s     r    r   z4PydocDocTest.test_method_aliases.<locals>.<listcomp>b  s&    UUU4PTU$**,,UUUr   r-   )
r0   r   rP   rR   rr   r   r>   r`   splitr   )rk   r   rB   r   as_textr   expected_liner   s          @r    test_method_aliasesz PydocDocTest.test_method_aliases  sF   	" 	" 	" 	" 	" 	" 	" 	"	 	 	 	 	 	 	 	 	 	 q!!fUB$$ %J K% %	 %	 %	N q5=??;;;   : C..UU=3F3Ft3L3LUUU+ 	2 	2MMM-1111	2 	2r   c                    dd l }t          |          \  }}t          |          \  }}t          t                    \  }}t          t                    \  }}|j        D ]e}| d}d| d}	|                     ||           |                     |	|           |                     ||           |                     |	|           fd S )Nr   z = _Featurez<strong>z</strong> = _Feature)
__future__rT   rE   r   all_feature_namesr   r   )
rk   rx  future_textrY   future_htmlpydoc_mod_textpydoc_mod_htmlfeaturetxtr_   s
             r    test__future__importsz"PydocDocTest.test__future__importsf  s     	'
33Q'
33Q*955*955!3 	3 	3G)))C;g;;;DMM#{+++MM$,,,S.111T>2222	3 	3r   )(r   r   r   r  unittestskipIfhasattrr   r{   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r*  r/  r?  rC  rG  rM  r]  rv  r  r   r   r    rz   rz     s       GX_WWS*--@,#,..HJ J' ' J J' X_WWS*--@,#,..HJ J0 0 J J01 1 19 9 9
Q Q Q
' ' '
7 
7 
76 6 6 ' ' '
+ + +: : :% % %>" " "64 4 4@6 6 68	6 	6 	6- - -Y Y Y X_WWS*--@,#,..HJ J *  * J J *D< < <+ + +	8 	8 	8 - - -
/ 
/ 
/E E E
8 8 8! ! !0 0 02 X2 X2 X2t3 3 3 3 3r   rz   c                      e Zd Zd Zd Zd Zd Zej         e	j
        ed          d                         Zd Z e	j        d          d	             Z e	j        d          d
             Z e	j        d          d             Zd ZdS )PydocImportTestc                     t          j        t                    | _        |                     t
          t                     t          j                     d S re   )rH   mkdirr   r:  r$  r   r4  invalidate_cachesrR  s    r    setUpzPydocImportTest.setUpz  s<    (('''#%%%%%r   c                 B   d}dddd                     |          dfd                     |          d                     |          ff}t          j                            t          |          t          j        z   dz   }|D ]\  }}t          |d	          5 }|                    d
                     |                     d d d            n# 1 swxY w Y   t          |t                    	                    d          }t          ||fz  }|                     ||           d S )Ntestmod_xyzzy)i_am_not_herer  )test.i_am_not_here_eitherr  )ztest.i_am_not_here.neither_am_ir   zi_am_not_here.{}r  ztest.{}pyr   z
import {}
)
PYTHONPATHr   )r'  rH   rI   r3  r   extsepr%  r7  r<   r   badimport_patternrr   )	rk   modname	testpairssourcefnimportstringexpectedinmsgfru   r   s	            r    test_badimportzPydocImportTest.test_badimport  s^    ".FE&&w//Ag&&	(8(8(A(AB	 7<<0029<tC+4 	/ 	/'L-h$$ <,,\::;;;< < < < < < < < < < < < < < <#G???FFwOOF(G]+CCHXv....	/ 	/s   )CC	C	c                    t           j                            t          d          }t          j        |           t           j                            |d          t           j        z   dz   }t          |d          5 }|                    d           d d d            n# 1 swxY w Y   |                     t          g          5  t                      5 }t                      5 }t          j        d           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   |                     |                                d           |                     |                                d           t                      5 }t                      5 }t          j        d           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   |                     |                                                                d           |                     |                                d           d d d            d S # 1 swxY w Y   d S )	N	syntaxerr__init__r  r   zinvalid python syntax = $1
rI   xyzzyr#   )rH   rI   r3  r   r  r  r%  r7  ro   r   r   r0   aproposrr   r   r2   )rk   pkgdir	badsyntaxr  r8   r9   s         r    test_apropos_with_bad_packagez-PydocImportTest.test_apropos_with_bad_package  sZ   fk22
GLL44ry@4G	)S!! 	4QGG2333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4((vh(77 	1 	1 "" +c$&& +#M'***+ + + + + + + + + + + + + + ++ + + + + + + + + + + + + + + S\\^^R000S\\^^R000 "" /c$&& /#M+.../ / / / / / / / / / / / / / // / / / / / / / / / / / / / / S\\^^1133[AAAS\\^^R000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1s   :BB #B ID!D6DDD	D
DID	I D	!A!IG	F2&G	2F66G	9F6:G	=I	G	IG	A%II
Ic                    t           j                            t          d          | _        t          j        | j        d           |                     t           j        | j                   |                     t          g          5  t                      5 }t                      5 }t          j        d           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   |                     |                                d           |                     |                                d           d S )N
unreadabler   r  SOMEKEYr#   )rH   rI   r3  r   unreadable_dirr  r$  rmdirro   r   r   r0   r  rr   r   )rk   r8   r9   s      r     test_apropos_with_unreadable_dirz0PydocImportTest.test_apropos_with_unreadable_dir  s    gll6<@@
$a((($"5666 ((vh(77 	- 	- "" -c$&& -#M),,,- - - - - - - - - - - - - - -- - - - - - - - - - - - - - -	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-
 	,,,,,,,,sZ   C3C$C9CC		CC	CC3C 	 C3#C 	$C33C7:C7zcannot remove x bitc                    t           j                            t          d          }t          j        |           |                     t          |           t           j                            |d          }t          |d          5 }|                    d           d d d            n# 1 swxY w Y   t          j
        t          j	        |          j                  }	 t          j        ||t          j         z             |                     t          g          5  t                      5 }t!          j        d           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   |                     d|                                           t          j        ||           d S # t          j        ||           w xY w)NwalkpkgrI  r   r1  r  r#   )rH   rI   r3  r   r  r$  r   r%  r7  statS_IMODEst_modechmodS_IEXECro   r   r0   r  r   r   )rk   r  r;  r=  current_moder  s         r    test_apropos_empty_docz&PydocImportTest.test_apropos_empty_doc  s*    fi00
'''GLL77	)S!! 	"TJJy!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"|BGFOO$;<<	+HV\T\M9:::,,6(,;; " "_=N=N "RXb!!!" " " " " " " " " " " " " " " " " " " " " " " " " " " " " "MM)V__%6%6777HV\*****BHV\****sf   B''B+.B+?F. E$,EE$E	E$E	E$F. $E((F. +E(,+F. .Gc                 :   t           j                            t          d          }t          j        |           t           j                            |d          }t          |dd          5 }|                    d           d d d            n# 1 swxY w Y   |                     t          g          5  t          t          j                  }t          j        
                    dt                     	 |                     t          d	          5  dd l}d d d            n# 1 swxY w Y   |                     d
d          }d}|                     ||           |t          j        d d <   n# |t          j        d d <   w xY w	 d d d            d S # 1 swxY w Y   d S )Ntest_error_packagerI  wtr   r!  zraise ValueError("ouch")
r  r   ouchzsearch?key=test_error_packagePydoc: Search Resultsz8<a href="test_error_package.html">test_error_package</a>)rH   rI   r3  r   r  r%  r7  ro   tupler   insertassertRaisesRegex
ValueErrorr  rv   r   )rk   r  initr  saved_pathsr  rW   founds           r    test_url_search_package_errorz-PydocImportTest.test_url_search_package_error  s9   f&:;;
w||FM22$w/// 	61GG4555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6((vh(77 	* 	*//KHOOAv&&&
*++J?? . .----. . . . . . . . . . . . . . . ,,-L+- --eT***)k))))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*s`   ,BBB5?F5E,D!E,!D%	%E,(D%	)1E,F,E??FFFz(causes undesirable side-effects (#20128)c                 8   d}d}d}||z   |z   }t                      }t          j        |          } |d           |                                                                }t          |                                          }|                     ||           d S )N         r   modules)r   r0   r   r   r2   lenr   assertGreaterEqual)	rk   num_header_linesnum_module_lines_minnum_footer_linesr   rC   r   ru   	num_liness	            r    test_moduleszPydocImportTest.test_modules  s      #&::=MMV,,,y""((**))++,,		844444r   c                    d}t                      }t          j        |          }t                      5 } |d           d d d            n# 1 swxY w Y   |                                }|                     ||           d S )Nzpydoc - r   zmodules pydoc)r   r0   r   r   r   r   rk   r   rC   r   r  ru   s         r    test_modules_searchz#PydocImportTest.test_modules_search  s     V,,, 	$'F?###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$!!##h'''''   AAAz+some buildbots are not cooperating (#20128)c                 *   d}t                      }t          j        |          }t                      5 } |d           d d d            n# 1 swxY w Y   |                                }|                     |                    |                     d S )Nzgc - r   zmodules garbage)r   r0   r   r   r   rK  
startswithr  s         r    test_modules_search_builtinz+PydocImportTest.test_modules_search_builtin  s    V,,, 	&'F$%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&!!##))(3344444r  c                 B   t          j        t           j                  }|                     |t                      |                     |j        d           |                     |j        t           j                   |                     |j        t           j                   d S )Nr0   )r0   
importfiler1   assertIsNotrr   r   __spec__)rk   loaded_pydocs     r    test_importfilezPydocImportTest.test_importfile
  s    '77u---.888.???.?????r   N)r   r   r   r  r  r  r  r   skip_unless_working_chmodr  r  r   r  r  skipr  r  r  r  r   r   r    r  r  x  s(       & & &
/ / /*1 1 1*- - - (X_]$9::+ + ;: )(+ * * *. X]=>>5 5 ?>5 X]=>>
( 
( ?>
( X]@AA	5 	5 BA	5@ @ @ @ @r   r  c                      e Zd Zd Zd Zd Zd Zd Zd Zd Z	e
d             Ze
d	             Zd
 Zed             Zd Zd Zed             Zed             Zed             Zed             Zed             Zed             Zed             Zed             Zed             Zed             Zed             Zed             Zed             Zd Zd Z ed             Z!dS )TestDescriptionsc                 f    ddl m} t          j        |          }|                     d|           d S )Nr   )pydocfodderr  )testr  r0   r   r   )rk   r  rB   s      r    test_modulezTestDescriptions.test_module  s>    $$$$$${++mS)))))r   c                 8    G d d          } |            }|                      t          j        |          d           |                      t          j        |          d           dt          z  }|                     |t          j        |                     d S )Nc                       e Zd ZdS )&TestDescriptions.test_class.<locals>.CNr   r   r   r    Cr              r   r  zclass CzC in module %s object)rr   r0   describer   r   r   )rk   r  cr   s       r    
test_classzTestDescriptions.test_class  s    """"""""ACC**I666**C000*X5h 0 3 344444r   c                    |                      t          j        t          j        t
                             d           t          j        t          j        t
                   t          j                  }|                     d|           |                     d|           |                     t          j
                                                                        d         |           |                      t          j        t          t
                             d           t          j        t          t
                   t          j                  }|                     d|           |                     d|           |                     t          j
                                                                        d         |           d S )	N_GenericAliasrp  z_GenericAlias in module typingzList = class list(object)r   GenericAliaszGenericAlias in module builtinsz
class list(object))rr   r0   r  typingListintr   	plaintextr   listr   r2   r   rk   rB   s     r    test_generic_aliasz#TestDescriptions.test_generic_alias$  sF   C(899?KKKv{3/%/JJJ6<<<13777dl((**5577:C@@@S	22NCCCtCy5?CCC7===,c222dl((**5577:C@@@@@r   c                    |                      t          j        t          j        t
          t          f                   d           t          j        t          j        t
          t          f         t          j                  }| 	                    d|           | 	                    d|           t          j        j
        rO| 	                    t          j        j
                                                                        d         |           |                      t          j        t
          t          z            d           t          j        t
          t          z  t          j                  }| 	                    d|           | 	                    d|           | 	                    t          j        j
                                                                        d         |           d S )	N_UnionGenericAliasrp  z#_UnionGenericAlias in module typingzUnion = typing.Unionr   	UnionTypez UnionType in module types objectz!
class UnionType(builtins.object))rr   r0   r  r  Unionr  r   r   r  r   r   r2   r   typesr  r  s     r    test_union_typez TestDescriptions.test_union_type1  sc   S#X(>??AUVVVv|CH5PPP;SAAA,c222< 	MMM&,.4466AACCAFLLLc	22K@@@sSy5?CCC8#>>>:C@@@eo-3355@@BB1EsKKKKKr   c                    |                      t          j        t          j                  d           t          j        t          j        t          j                  }|                     d|           t          j        j        rg|                     d|           |                     t          j        j        	                                
                                d         |           d S |                     d|           d S )N_SpecialFormrp  z_SpecialForm in module typingzNoReturn = typing.NoReturnr   z%NoReturn = class _SpecialForm(_Final))rr   r0   r  r  NoReturnr   r  r   r   r2   r   r  s     r    test_special_formz"TestDescriptions.test_special_form?  s    88.IIIvIII5s;;;?" 	HMM6<<<MM&/17799DDFFqI3OOOOOMMA3GGGGGr   c           	      X   dt           j        t           j                 dt          dt           j        t           j        t          t           j        f                  fd}t          j        d          } G d dt           j        |         t           j        t          t          f                   }| 
                    t          j        |                                          d         d	           | 
                    t          j        |                                          d
         d           d S )Ndatar   returnc                     d S re   r   )r  r   s     r    fooz/TestDescriptions.test_typing_pydoc.<locals>.fooJ  s    Cr   Tc                       e Zd ZdS )-TestDescriptions.test_typing_pydoc.<locals>.CNr   r   r   r    r  r  N  r  r   r  z?ffoooo(data: List[Any], x: int) -> Iterator[Tuple[int, Any]]r  z2class CC(collections.abc.Mapping, typing.Generic))r  r  Anyr  IteratorTupleTypeVarGenericMappingr   rr   r0   r   r   )rk   r  r   r  s       r    test_typing_pydocz"TestDescriptions.test_typing_pydocI  s   	fk&*- 		!?6<VZ+HI	 	 	 	 N3AAAAAq!6>#s(#;AAA)#..99;;B?9	: 	: 	: 	)!,,7799!<P	R 	R 	R 	R 	Rr   c                    dD ]v}|                      t          j        |                     	 t          j        |           ?# t          $ r+ |                     d                    |                     Y sw xY wdD ]O}|                     t          j        |                     |                     t          t          j        |           Pd S )N)r   zstr.translatezbuiltins.strzbuiltins.str.translatezfinding the doc of {!r} failed)notbuiltinsstrrrzstrr.translatezstr.trrrranslatezbuiltins.strrrzbuiltins.str.trrranslate)	assertIsNotNoner0   locater   ImportErrorfailr'  r9  assertRaises)rk   names     r    test_builtinzTestDescriptions.test_builtinU  s    / 	I 	ID   d!3!3444I &&&& I I I		:AA$GGHHHHHI1 	C 	CD el400111k5+;TBBBB		C 	Cs   A2A76A7c                     t          j        t          j        |                     }|                    d          }|d         S Nr-   r  )r0   plainr   rs  orW   liness      r    _get_summary_linez"TestDescriptions._get_summary_linef  s6    {5+A..//

4  Qxr   c                     t          j        t          j        |                     }|                    d          }d                    |dd                    S r  )r0   r  r   rs  r3  r  s      r    _get_summary_linesz#TestDescriptions._get_summary_linesm  sG    {5+A..//

4  yyqrr###r   c                 v    |                      |                     t          j        j                  d           d S )Nzwrap(self, text))rr   r  r  TextWrapperwraprR  s    r    test_unbound_python_methodz+TestDescriptions.test_unbound_python_methodt  s=    //0D0IJJ	  	  	  	  	 r   c                 v    |                      |                     t          j        j                  d           d S )Nzdump(self, obj, /))rr   r  _picklePicklerdumprR  s    r    test_unbound_builtin_methodz,TestDescriptions.test_unbound_builtin_methodx  s<    //0DEE 	" 	" 	" 	" 	"r   c                     t          j                    }|                     |                     |j                  d           d S )Nz2wrap(text) method of textwrap.TextWrapper instance)r  r  rr   r  r   )rk   ts     r    test_bound_python_methodz)TestDescriptions.test_bound_python_method~  sL     ""//77@	B 	B 	B 	B 	Br   c                    t          dg d          }t          j        |          }|                     |                    d          |                    d                     |                     |                    d          |                    d                      G d d          } G d d	          }t          j        |           t          j        |           d S )
Nr  )r  r  agegroupr  r  r+  c                       e Zd ZdZdS )MTestDescriptions.test_field_order_for_named_tuples.<locals>.NonIterableFieldsNr   r   r   _fieldsr   r   r    NonIterableFieldsr-    s        GGGr   r0  c                       e Zd Zg gZdS )MTestDescriptions.test_field_order_for_named_tuples.<locals>.NonHashableFieldsNr.  r   r   r    NonHashableFieldsr2    s        dGGGr   r3  )r   r0   r   
assertLessindex)rk   r  r'   r0  r3  s        r    !test_field_order_for_named_tuplesz2TestDescriptions.test_field_order_for_named_tuples  s    H&K&K&KLLV$$
++QWW[-A-ABBB,,aggj.A.ABBB	 	 	 	 	 	 	 		 	 	 	 	 	 	 	 	*+++*+++++r   c                     t                      }t          j        |          }|                     |                     |j                  d           d S )Nz/dump(obj, /) method of _pickle.Pickler instance)r   r#  r$  rr   r  r%  )rk   r'   ps      r    test_bound_builtin_methodz*TestDescriptions.test_bound_builtin_method  sQ    JJOA//77=	? 	? 	? 	? 	?r   c                 l    |                      |                     t          j                  d           d S )Nz0stat(path, *, dir_fd=None, follow_symlinks=True))rr   r  rH   r  rR  s    r    test_module_level_callablez+TestDescriptions.test_module_level_callable  s>    //88>	@ 	@ 	@ 	@ 	@r   c                 X    G d d          }|                      |                     |j        d                   d           |                      |                     |j                  d           |                     dt          j        t          j        |                               d S )Nc                   $    e Zd Zed             ZdS )-TestDescriptions.test_staticmethod.<locals>.Xc                     	 d S re   r   r   ys     r    smz0TestDescriptions.test_staticmethod.<locals>.X.sm  s
    %r   N)r   r   r   staticmethodrB  r   r   r    Xr>    s-          \  r   rD  rB  zsm(x, y)
    A static method
zL
 |  Static methods defined here:
 |  
 |  sm(x, y)
 |      A static method
)rr   r  __dict__rB  r   r0   r  r   rk   rD  s     r    test_staticmethodz"TestDescriptions.test_staticmethod  s    	 	 	 	 	 	 	 	
 	00D1ABB1	2 	2 	2 	0066 9 	 	 	 	 
 [!!$$%%	' 	' 	' 	' 	'r   c                 X    G d d          }|                      |                     |j        d                   d           |                      |                     |j                  d           |                     dt          j        t          j        |                               d S )Nc                   $    e Zd Zed             ZdS ),TestDescriptions.test_classmethod.<locals>.Xc                     	 d S re   r   )clsr   s     r    cmz/TestDescriptions.test_classmethod.<locals>.X.cm  s
    $r   N)r   r   r   classmethodrM  r   r   r    rD  rJ    s-          [  r   rD  rM  zcm(...)
    A class method
z:cm(x) method of builtins.type instance
    A class method
zZ
 |  Class methods defined here:
 |  
 |  cm(x) from builtins.type
 |      A class method
)rr   r  rE  rM  r   r0   r  r   rF  s     r    test_classmethodz!TestDescriptions.test_classmethod  s    	 	 	 	 	 	 	 	
 	00D1ABB0	1 	1 	1 	0066 9 	 	 	 	 
 [!!$$%%	' 	' 	' 	' 	'r   c                    |                      |                     t          j                  d           |                      |                     t          j                  d           |                      |                     t          j                  d           |                      |                     t          j	                  d           d S )N	numeratorrealr5   obj)
rr   r  r  rQ  floatrR  r   r5   
memoryviewrS  rR  s    r    test_getset_descriptorz'TestDescriptions.test_getset_descriptor  s     	//>>LLL//
;;VDDD//	??HHH//
??GGGGGr   c                    |                      |                     t          j                  d           |                      |                     t          j                  d           |                      |                     t          j                  d           |                      |                     t          j                  d           |                      |                     t          j
                  d           d S )NrR  startfgetvalue)rr   r  complexrR  rangerX  slicepropertyrY  StopIterationrZ  rR  s    r    test_member_descriptorz'TestDescriptions.test_member_descriptor  s     	//==vFFF//<<gFFF//<<gFFF//>>GGG//0CDDgNNNNNr   c                 |     G d d          }|                      |                     |j                  d           d S )Nc                       e Zd ZdZdS )4TestDescriptions.test_slot_descriptor.<locals>.Pointr@  N)r   r   r   	__slots__r   r   r    Pointrc    s         IIIr   re  r   )rr   r  r   )rk   re  s     r    test_slot_descriptorz%TestDescriptions.test_slot_descriptor  sV    	! 	! 	! 	! 	! 	! 	! 	!//88#>>>>>r   c                      G d d          }|                      |                     |j        d                   d           d S )Nc                       e Zd ZdS )6TestDescriptions.test_dict_attr_descriptor.<locals>.NSNr   r   r   r    NSri    r   r   rj  rE  )rr   r  rE  )rk   rj  s     r    test_dict_attr_descriptorz*TestDescriptions.test_dict_attr_descriptor  sf    	 	 	 	 	 	 	 	//J0GHH#	% 	% 	% 	% 	%r   c                 .   |                      |                     t          t          j                  j                  d           |                      |                     t          t          j                  j                  d           |                      |                     t          t          j                  j	                  d           |                      |                     t          t          j
                  j                  d           d S )Nwidthdebugmajormax)rr   r  r   r   	hash_inform  flagsrn  version_inforo  
float_inforp  rR  s    r     test_structseq_member_descriptorz1TestDescriptions.test_structseq_member_descriptor  s    //S]0C0C0IJJ 	" 	" 	"//SY0EFF 	" 	" 	"//S5E0F0F0LMM 	" 	" 	"//S^0D0D0HII	  	  	  	  	 r   c                     t          dd          }|                     |                     |j                  d           d S )NBox)rm  heightz    Alias for field number 0
)r   rr   r  rm  )rk   rw  s     r     test_namedtuple_field_descriptorz1TestDescriptions.test_namedtuple_field_descriptor  sK     34400;; > 	 	 	 	 	r   c                      G d d          }|                      |                     |j                  d           |                     dt	          j        t	          j        |                               d S )Nc                   $    e Zd Zed             ZdS ),TestDescriptions.test_property.<locals>.Rectc                 "    	 | j         | j        z  S re   )r   hrR  s    r    areaz1TestDescriptions.test_property.<locals>.Rect.area  s    &v&r   N)r   r   r   r^  r  r   r   r    Rectr|    s-        ' ' X' ' 'r   r  z    Area of the rect
z#
 |  area
 |      Area of the rect
)rr   r  r  r   r0   r  r   )rk   r  s     r    test_propertyzTestDescriptions.test_property  s    	' 	' 	' 	' 	' 	' 	' 	' 	00;; > 	 	 	 	  [!$''((	* 	* 	* 	* 	*r   c                     G d d           G fdd          }|                      |                     |j                  dt           d           d|j        _        |                      |                     |j                  dt           d           d	|j        _        |                      |                     |j                  d
           d S )Nc                       e Zd Zd ZdS )?TestDescriptions.test_custom_non_data_descriptor.<locals>.Descrc                     || S dS Nr   r   rk   rS  rL  s      r    __get__zGTestDescriptions.test_custom_non_data_descriptor.<locals>.Descr.__get__      ;Krr   N)r   r   r   r  r   r   r    Descrr    s#            r   r  c                   $    e Zd Z              ZdS );TestDescriptions.test_custom_non_data_descriptor.<locals>.XNr   r   r   attrr  s   r    rD  r            577DDDr   rD  r^   zH.TestDescriptions.test_custom_non_data_descriptor.<locals>.Descr object>Custom descriptorz_.TestDescriptions.test_custom_non_data_descriptor.<locals>.Descr object>
    Custom descriptor
r  zfoo(...)
    Custom descriptor
)rr   r  r  r   r   rk   rD  r  s     @r    test_custom_non_data_descriptorz0TestDescriptions.test_custom_non_data_descriptor  s7   	 	 	 	 	 	 	 	
	 	 	 	 	 	 	 	 	 	 	0088 ;W
;W ;W ;W 	X 	X 	X -0088 ;
; ; ; 	 	 	
  0088 ; 	 	 	 	 	r   c                     G d d           G fdd          }|                      |                     |j                  d           d|j        _        |                      |                     |j                  d           d|j        _        |                      |                     |j                  d	           d S )
Nc                       e Zd Zd Zd ZdS );TestDescriptions.test_custom_data_descriptor.<locals>.Descrc                     || S dS r  r   r  s      r    r  zCTestDescriptions.test_custom_data_descriptor.<locals>.Descr.__get__'  r  r   c                     ddz   d S )Nr   r   r   r  s      r    __set__zCTestDescriptions.test_custom_data_descriptor.<locals>.Descr.__set__+  s    !r   N)r   r   r   r  r  r   r   r    r  r  &  s2              r   r  c                   $    e Zd Z              ZdS )7TestDescriptions.test_custom_data_descriptor.<locals>.XNr  r  s   r    rD  r  -  r  r   rD  r#   r  z    Custom descriptor
r  zfoo
    Custom descriptor
)rr   r  r  r   r   r  s     @r    test_custom_data_descriptorz,TestDescriptions.test_custom_data_descriptor$  s   	 	 	 	 	 	 	 		 	 	 	 	 	 	 	 	 	 	0088"===,0088 ; 	 	 	  0088 ; 	 	 	 	 	r   c                 "   dt           fd}t          j        t          j                            |                    }|                     d|           t          j                                        |          }|                     d|           d S )Nr  c                 
   K   dS Nr   r   )igns    r    coro_functionz=TestDescriptions.test_async_annotation.<locals>.coro_function>  s      1r   zasync coro_functionz4async <a name="-coro_function"><strong>coro_function)r  r0   r  r  documentr   r>   )rk   r  rW   r_   s       r    test_async_annotationz&TestDescriptions.test_async_annotation=  s    	 	 	 	 	 {5?33MBBCC+T222}''66B	 	 	 	 	r   c                    d }t          j        t           j                            |                    }|                     d|           t          j                                        |          }|                     d|           d S )Nc                    K   dW V  d S r  r   r   r   r    an_async_generatorzLTestDescriptions.test_async_generator_annotation.<locals>.an_async_generatorJ  s      GGGGGGr   zasync an_async_generatorz>async <a name="-an_async_generator"><strong>an_async_generator)r0   r  r  r  r   r>   )rk   r  rW   r_   s       r    test_async_generator_annotationz0TestDescriptions.test_async_generator_annotationI  s    	 	 	 {5?334FGGHH0$777}''(:;;L	 	 	 	 	r   c                     d }t          j                                        |          }|                     d|           d S )Nc                      	 d S re   r   r   r   r    a_fn_with_https_linkzHTestDescriptions.test_html_for_https_links.<locals>.a_fn_with_https_linkW  s
    +Dr   z3<a href="https://localhost/">https://localhost/</a>)r0   r>   r  r   )rk   r  r_   s      r    test_html_for_https_linksz*TestDescriptions.test_html_for_https_linksU  sS    	 	 	 }''(<==A	
 	
 	
 	
 	
r   N)"r   r   r   r  r  r  r  r  r
  r  rC  r  r  r!  r   r&  r)  r6  r9  r;  rG  rO  rV  r`  rf  rk  ru  ry  r  r  r  r  r  r  r   r   r    r  r    s       * * *5 5 5A A AL L LH H H
R 
R 
RC C C"   \ $ $ \$      " " "
B B B, , ,  ? ? ? @ @ @ ' ' '( ' ' '( H H H O O O ? ? ?
 % % %          * * *   0   0
 
 

 
 
 	
 	
 	
 	
 	
r   r  z/Socket server not available on Emscripten/WASI.c                       e Zd Z	 d ZdS )PydocServerTestc           	      d   d }t          j        |dd          |                     j        d            |                     j                   |                     fd           |                     dj                   |                     t                     |                     dt          t          j                            j        d                                                               |                     dt          t          j                            j        d	                                                                                                |                     j                   |                     j                   |                     j                   d S )
Nc                     d| d|d}|S )Nzthe URL sent was: (z, )r   )rs   content_typerW   s      r    my_url_handlerz3PydocServerTest.test_server.<locals>.my_url_handlerl  s     3633EDKr   	localhostr   )hostnameportc                  >     j         r                                 nd S re   )servingstop)serverthreads   r    r   z-PydocServerTest.test_server.<locals>.<lambda>x  s     <+?IL%%'''T r   s$   the URL sent was: (/test, text/html)z/tests'   the URL sent was: (/test.css, text/css)z	/test.css)r0   _start_serverrr   errorrK  r  r$  r   rs   r   r   r   r   urljoinreadr  rE  r9  	docserver)rk   r  r  s     @r    test_serverzPydocServerTest.test_serveri  s   	 	 	 *   
 	+T222,---IIII	 	 	 	k<#3444
###3FL(()97CCDDIIKK	 	 	 	6FL(()9;GGHHMMOO	 	 	
 	-...,0111,*+++++r   N)r   r   r   r  r   r   r    r  r  b  s(        
 ( ,  ,  ,  ,  ,r   r  c                       e Zd Z	 d Zd ZdS )PydocUrlHandlerTestc                     t           j        }|                     t          |dd           |                     t          |dd           d S )Nr   r#   r   foobar)r0   rq   r  	TypeError)rk   r  s     r    test_content_type_errz)PydocUrlHandlerTest.test_content_type_err  sD    )QR000)QX66666r   c                     g d}|                                  5  |D ]\  }}|                     ||           	 d d d            d S # 1 swxY w Y   d S )N))r#   Pydoc: Index of Modules)zget?key=r  )r5  r  )topicszPydoc: Topics)keywordszPydoc: Keywords)r0   Pydoc: module pydoc)zget?key=pydocr  )zsearch?key=pydocr  )ztopic?key=defzPydoc: KEYWORD def)ztopic?key=STRINGSzPydoc: TOPIC STRINGS)r  zPydoc: Error - foobar)ro   rv   )rk   requestsrs   rZ   s       r    test_url_requestsz%PydocUrlHandlerTest.test_url_requests  s       ((** 	2 	2& 2 2
U%%c511112	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2s   AA
A
N)r   r   r   r  r  r   r   r    r  r    s5        &7 7 7
2 2 2 2 2r   r  c                       e Zd Zd ZdS )
TestHelperc                     |                      t          t          j        j                  t          t
          j                             d S re   )rr   sortedr0   r   r  keywordkwlistrR  s    r    test_keywordszTestHelper.test_keywords  s@     566//	1 	1 	1 	1 	1r   N)r   r   r   r  r   r   r    r  r    s#        1 1 1 1 1r   r  c                      e Zd Z ej         eed          o ej                    d          ed                         Z	 ej         eed          o ej                    d          ed                         Z
 ej         eed          o ej                    d          ed                         Z ej         eed          o ej                    d          ed                         Zd ZdS )	PydocWithMetaClassesr{   r|   c                     G d dt                     } G d d|          }t          d t          D                       }t                      }t	          j        |          } ||           t          t          f|d d         z   z  }|                                	                                }| 
                    ||           d S )	Nc                        e Zd Z fdZ xZS )=PydocWithMetaClasses.test_DynamicClassAttribute.<locals>.Metac                 V    |dk    rdS t                                          |          S )Nhamspamsuper__getattr__rk   r  rU  s     r    r  zIPydocWithMetaClasses.test_DynamicClassAttribute.<locals>.Meta.__getattr__  s)    5==!6ww**4000r   )r   r   r   r  __classcell__rU  s   @r    Metar    s8        1 1 1 1 1 1 1 1 1r   r  c                   .    e Zd Zej        d             ZdS );PydocWithMetaClasses.test_DynamicClassAttribute.<locals>.DAc                     dS )Neggsr   rR  s    r    r  z?PydocWithMetaClasses.test_DynamicClassAttribute.<locals>.DA.ham  s    vr   N)r   r   r   r  DynamicClassAttributer  r   r   r    DAr    s1        (  )(  r   r  	metaclassc              3   (   K   | ]}|rd |z   ndV  dS )z	
 |      r#   Nr   r%   s     r    r(   zBPydocWithMetaClasses.test_DynamicClassAttribute.<locals>.<genexpr>  sO       .I .I*+ CD.KlQ.>.> .I .I .I .I .I .Ir   r   r  )r   r  expected_data_docstringsr   r0   r   !expected_dynamicattribute_patternr   r   r2   rr   )rk   r  r  r   rC   r   r   ru   s           r    test_DynamicClassAttributez/PydocWithMetaClasses.test_DynamicClassAttribute  s   	1 	1 	1 	1 	14 	1 	1 	1
	 	 	 	 	4 	 	 	 	 ). .I .I/G.I .I .I )I )I%V,,,r


9;BQB??A""((**/////r   c                 <    G d dt                     } G d d|          }t                      }t          j        |          } ||           t          t
          z  }|                                                                }|                     ||           d S )Nc                   $     e Zd Zd Z fdZ xZS )HPydocWithMetaClasses.test_virtualClassAttributeWithOneMeta.<locals>.Metac                 
    g dS )N)rU  r   r   LIFEr   rL  s    r    __dir__zPPydocWithMetaClasses.test_virtualClassAttributeWithOneMeta.<locals>.Meta.__dir__  s    FFFFr   c                 V    |dk    rdS t                                          |          S )Nr  r   )r  _Meta__getattrr  s     r    r  zTPydocWithMetaClasses.test_virtualClassAttributeWithOneMeta.<locals>.Meta.__getattr__  s)    &==2ww((...r   r   r   r   r  r  r  r  s   @r    r  r    sJ        G G G/ / / / / / / / /r   r  c                       e Zd ZdS )IPydocWithMetaClasses.test_virtualClassAttributeWithOneMeta.<locals>.ClassNr   r   r   r    Classr    r   r   r  r  r   )	r   r   r0   r   "expected_virtualattribute_pattern1r   r   r2   rr   )rk   r  r  rC   r   r   ru   s          r    %test_virtualClassAttributeWithOneMetaz:PydocWithMetaClasses.test_virtualClassAttributeWithOneMeta  s    	/ 	/ 	/ 	/ 	/4 	/ 	/ 	/	 	 	 	 	d 	 	 	 	V,,,u:XE""((**/////r   c                   
  G d dt                     
 G d dt                      G 
fdd
          } G d d
	          } G d
 d||	          }t                      }t          j        |          } ||           t          t
          z  }|                                                                }|                     ||           t                      }t          j        |          } ||           t          t
          z  }|                                                                }	|                     ||	           d S )Nc                   $     e Zd Zd Z fdZ xZS )IPydocWithMetaClasses.test_virtualClassAttributeWithTwoMeta.<locals>.Meta1c                 
    g dS )N)rU  r   r   r   r   r  s    r    r  zQPydocWithMetaClasses.test_virtualClassAttributeWithTwoMeta.<locals>.Meta1.__dir__      EEEEr   c                 V    |dk    rdS t                                          |          S )Nr   r   r  r  s     r    r  zUPydocWithMetaClasses.test_virtualClassAttributeWithTwoMeta.<locals>.Meta1.__getattr__  )    %<<1ww**4000r   r  r  s   @r    Meta1r     J        F F F1 1 1 1 1 1 1 1 1r   r  c                   $     e Zd Zd Z fdZ xZS )IPydocWithMetaClasses.test_virtualClassAttributeWithTwoMeta.<locals>.Meta2c                 
    g dS )N)rU  r   r   twor   r  s    r    r  zQPydocWithMetaClasses.test_virtualClassAttributeWithTwoMeta.<locals>.Meta2.__dir__  r  r   c                 V    |dk    rdS t                                          |          S )Nr
  r  r  r  s     r    r  zUPydocWithMetaClasses.test_virtualClassAttributeWithTwoMeta.<locals>.Meta2.__getattr__  r  r   r  r  s   @r    Meta2r    r  r   r  c                   ,     e Zd ZfdZ fdZ xZS )IPydocWithMetaClasses.test_virtualClassAttributeWithTwoMeta.<locals>.Meta3c           
          t          t          t          g d                    |           z                       |           z                                 S )N)rU  r   r   three)r  r  setr  )rL  r  r  s    r    r  zQPydocWithMetaClasses.test_virtualClassAttributeWithTwoMeta.<locals>.Meta3.__dir__  s^    F3DDDMM#&&').s););<$= $= > > ? ? ?r   c                 V    |dk    rdS t                                          |          S )Nr  r  r  r  s     r    r  zUPydocWithMetaClasses.test_virtualClassAttributeWithTwoMeta.<locals>.Meta3.__getattr__  s)    '>>1ww**4000r   r  )rU  r  r  s   @r    Meta3r    sW        ? ? ? ? ? ?1 1 1 1 1 1 1 1 1r   r  c                       e Zd ZdS )JPydocWithMetaClasses.test_virtualClassAttributeWithTwoMeta.<locals>.Class1Nr   r   r   r    Class1r    r   r   r  r  c                       e Zd ZdS )JPydocWithMetaClasses.test_virtualClassAttributeWithTwoMeta.<locals>.Class2Nr   r   r   r    Class2r    r   r   r  r   )
r   r   r0   r   "expected_virtualattribute_pattern2r   r   r2   rr   "expected_virtualattribute_pattern3)rk   r  r  r  rC   r   expected_text1result1expected_text2result2r  r  s             @@r    %test_virtualClassAttributeWithTwoMetaz:PydocWithMetaClasses.test_virtualClassAttributeWithTwoMeta  s   	1 	1 	1 	1 	1D 	1 	1 	1	1 	1 	1 	1 	1D 	1 	1 	1	1 	1 	1 	1 	1 	1 	1 	1E5 	1 	1 	1	 	 	 	 	u 	 	 	 		 	 	 	 	Vu 	 	 	 	V,,,v;hF//##))++111V,,,v;hF//##))++11111r   c                 <    G d dt                     } G d d|          }t                      }t          j        |          } ||           t          t
          z  }|                                                                }|                     ||           d S )Nc                       e Zd Zd ZdS ).PydocWithMetaClasses.test_buggy_dir.<locals>.Mc                 
    g dS )N)rU  r   missingherer   r  s    r    r  z6PydocWithMetaClasses.test_buggy_dir.<locals>.M.__dir__  s    CCCCr   N)r   r   r   r  r   r   r    Mr#    s(        D D D D Dr   r'  c                       e Zd ZdZdS ).PydocWithMetaClasses.test_buggy_dir.<locals>.Czpresent!N)r   r   r   r&  r   r   r    r  r)    s        DDDr   r  r  r   )	r   r   r0   r   !expected_missingattribute_patternr   r   r2   rr   )rk   r'  r  rC   r   r   ru   s          r    test_buggy_dirz#PydocWithMetaClasses.test_buggy_dir	  s    	D 	D 	D 	D 	D 	D 	D 	D	 	 	 	 	! 	 	 	 	V,,,q			9HD""((**/////r   c                     t                      5 }t          j        d           d d d            n# 1 swxY w Y   |                                }|                     d|           d S )Nz	enum.Enumz
class Enum)r   r0   r   r   r   )rk   r  r  s      r    test_resolve_falsez'PydocWithMetaClasses.test_resolve_false  s      	$'J{###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$##%%lH-----s   044N)r   r   r   r  r  r  r   r{   r   r  r  r   r+  r-  r   r   r    r  r    s       X_WWS*--@,#,..HJ J0 0 J J0( X_WWS*--@,#,..HJ J0 0 J J0" X_WWS*--@,#,..HJ J'2 '2 J J'2R X_WWS*--@,#,..HJ J0 0 J J0. . . . .r   r  c                   :    e Zd Zd Zd	dZd Zd Zd Zd Zd Z	dS )
TestInternalUtilitiesc                 (   t          j                    }|j        | _        t          j                            |j        d          | _        |                     |j	                   t	          j
                    x| _        }dt          j        |g| _        d S )Nnonexistentr#   )tempfileTemporaryDirectoryr  argv0dirrH   rI   r3  argv0r$  cleanupgetcwd
abs_curdircurdircurdir_spellings)rk   tmpdirr8  s      r    r  zTestInternalUtilities.setUp$  so    ,..W\\&+}==
'''')y{{2*!#RY
 ;r   Nc                 >    || j         }t          j        ||          S re   )r5  r0   _get_revised_path)rk   
given_pathr5  s      r    r=  z'TestInternalUtilities._get_revised_path,  s#     =JE&z5999r   c                     t           j                                        }| j        D ]<}t	          |                    |                    D ]}|                    |           =|S re   )r   rI   copyr:  r\  countrL  )rk   
clean_pathspelling__s       r    _get_starting_pathz(TestInternalUtilities._get_starting_path3  sj    X]]__
- 	, 	,HJ,,X6677 , ,!!(++++,r   c                     |                                  }| j        g|z   }|                     |                     |          |           d S re   )rE  r8  rr   r=  )rk   rB  expected_paths      r    ,test_sys_path_adjustment_adds_missing_curdirzBTestInternalUtilities.test_sys_path_adjustment_adds_missing_curdir;  sL    ,,..
)J6//
;;]KKKKKr   c                    |                                  }| j        g|z   }| j        g|z   }|                     |                     |          |           || j        gz   }|                     |                     |          |           d S re   )rE  r8  r4  rr   r=  )rk   rB  rG  leading_argv0dirtrailing_argv0dirs        r    *test_sys_path_adjustment_removes_argv0_dirz@TestInternalUtilities.test_sys_path_adjustment_removes_argv0_dir@  s    ,,..
)J6 M?Z7//0@AA=QQQ&$-8//0ABBMRRRRRr   c                      fd}                                  } j        g|z   } j        g|z   }                      ||          |           | j        gz   } j        g|z   }                      ||          |           d S )Nc                 F                         | t          j                  S )N)r5  )r=  r0   r1   )r>  rk   s    r    r=  z\TestInternalUtilities.test_sys_path_adjustment_protects_pydoc_dir.<locals>._get_revised_pathI  s    ))*EN)KKKr   )rE  r4  r8  rr   )rk   r=  rB  rJ  rG  rK  s   `     r    +test_sys_path_adjustment_protects_pydoc_dirzATestInternalUtilities.test_sys_path_adjustment_protects_pydoc_dirH  s    	L 	L 	L 	L 	L,,..
 M?Z7),<<**+;<<mLLL&$-8),==**+<==}MMMMMr   c                 "   |                                  }| j        D ]}|                     |          5  |g|z   }|                     |                     |                     ||gz   }|                     |                     |                     | j        g|z   }|                     |                     |                     || j        gz   }|                     |                     |                     d d d            n# 1 swxY w Y   d S )N)curdir_spelling)rE  r:  subTestr9  r=  r4  )rk   rB  rC  leading_curdirtrailing_curdirrJ  rK  s          r    5test_sys_path_adjustment_when_curdir_already_includedzKTestInternalUtilities.test_sys_path_adjustment_when_curdir_already_includedS  sn   ,,..
- 
	M 
	MHh77 	M 	M"*j!8!!$"8"8"H"HIII",z"9!!$"8"8"I"IJJJ$(M?^#C !!$"8"89I"J"JKKK$3t}o$E!!!$"8"89J"K"KLLL	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M
	M 
	Ms   CDD	
D	re   )
r   r   r   r  r=  rE  rH  rL  rO  rU  r   r   r    r/  r/  "  s        < < <: : : :  L L L
S S S	N 	N 	NM M M M Mr   r/  c                      t          j                    } t          j        t           j        g| R   t          j        t
                     d S re   )r   threading_setupr  addModuleCleanupthreading_cleanupr   )thread_infos    r    setUpModuler[  b  sD    "244K.@O;OOOOm,,,,,r   __main__)[rH   r   rw   importlib.utilr4  r   r0   r8  r  r#  rn   rP   r  r2  test.supportr  r  r  r  urllib.parser   	xml.etreer   xml.etree.ElementTreer  ior   collectionsr   urllib.requestr   r   r   r   test.support.script_helperr	   r
   r   r   r   r   r   r   r   r   r   test.support.os_helperr   r   r   r   r   supportHAVE_DOCSTRINGSr  r2   r   r  r   r   expected_html_data_docstringsr,   r   r   r  r  r  r  r  r*  r:   r<   rE   rM   rT   r[   r`   TestCaserb   rz   r  r  r  r  r  r  r  r/  r[  r   mainr   r   r    <module>rl     s   				 



                  				                             " " " " " " . . . . . . . . & & & & & & " " " " " "M M M M M M M M M M ) ) ) ) ) )/ / / / / / / / / / / / / / / / / / < ; ; ; ; ; ; ; ; ;      	 	 	 	 	 	 	 	 < 0 
  0\x 
EGGy | !& &I &I/G&I &I &I !I !I J X !& &I &I/G&I &I &I !I !I , -4GD"*,E,E  N %  
EGG! "$& 
EGG #& 
EGG #&, 
EGG- #0% 
EGG "                  H%   <c3 c3 c3 c3 c38$ c3 c3 c3LX@ X@ X@ X@ X@m X@ X@ X@vL
 L
 L
 L
 L
x( L
 L
 L
^
 W5 #, #, #, #, #,h' #, #,	 #,L2 2 2 2 2- 2 2 2>1 1 1 1 1" 1 1 1n. n. n. n. n.8, n. n. n.b=M =M =M =M =MH- =M =M =M@- - - zHMOOOOO r   