
    w                        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 Zd Zd Z	d Z
d Zd Zd Zd	 Zd
 Z	 d dlZdZdZ	 d dlZdZ	 d dlZej2                  j5                  dej6                  D  cg c]  } | j8                   c}       d        Zej2                  j5                  dej<                  D  cg c]  } | j8                   c}       d        Zej2                  j5                  dej@                  D  cg c]  } | j8                   c}       d        Z!ej2                  j5                  dejD                  D  cg c]  } | j8                   c}       d        Z#ej2                  j5                  dejH                  D  cg c]  } | j8                   c}       d        Z%ej2                  j5                  dejL                  D  cg c]  } | j8                   c}       d        Z'd Z(d Z)d Z*d Z+d Z,d Z-d Z.d Z/d Z0d Z1 G d d      Z2d  Z3d! Z4d" Z5d# Z6d$ Z7d% Z8d& Z9d' Z:d( Z;d) Z<d* Z=d+ Z>d, Z?d- Z@ej                  rd. ZBd/ ZCnd0 ZBd1 ZCd2 ZDd3 ZEd4 ZFd5 ZGd6 ZHd7 ZId8 ZJd9 ZKd: ZLd; ZMd< ZNd= ZOd> ZPd? ZQd@ ZRej2                  j                  dA      dB        ZTej2                  j                  dC      dD        ZUdE ZVdF ZWdG ZXej2                  j                  dH      dI        ZYdJ ZZdK Z[dL Z\dM Z]dN Z^ G dO dP      Z_y# e$ r dZY w xY w# e$ r 	 d dlZn# e$ r dZY nw xY wY w xY w# e$ r 	 d dlZn# e$ r dZY nw xY wY w xY wc c} w c c} w c c} w c c} w c c} w c c} w )Q    Nc                  X    d } t        j                  | d       | j                  dk(  sJ y )Nc                       y)zIcky docN r       +platform/gsutil/third_party/six/test_six.pyfztest_add_doc.<locals>.f!   s    r   zNew doc)six_add_doc__doc__r   s    r   test_add_docr       s)     LLM"99	!!!r   c                  F    ddl m}  t        j                  d      }|| u sJ y )Nr   )handlerszlogging.handlers)loggingr   r	   _import_module)r   ms     r   test_import_moduler   (   s"     -.A==r   c                     t        dt        j                        sJ t        dt        j                        sJ t        t        j                  dz   t        j                        sJ t        dt        j                        rJ y )N      g?)
isinstancer	   integer_typesMAXSIZEr   r   r   test_integer_typesr   .   sf    a**+++b#++,,,ckkB&(9(9:::"c//0000r   c                      t        dt        j                        sJ t        t        j                  d      t        j                        sJ t	        t        j
                  t        j                        sJ y Nhi)r   r	   string_typesu
issubclass	text_typer   r   r   test_string_typesr#   5   sP    dC,,---ceeDk3#3#3444cmmS%5%5666r   c                       G d d      }  G d dt               }t        | t        j                        sJ t        |t        j                        sJ t         |        t        j                        rJ y )Nc                       e Zd Zy)test_class_types.<locals>.XN__name__
__module____qualname__r   r   r   Xr&   <       r   r+   c                       e Zd Zy)test_class_types.<locals>.YNr'   r   r   r   Yr.   >   r,   r   r/   )objectr   r	   class_types)r+   r/   s     r   test_class_typesr2   ;   sY     F a)))a)))!#s////r   c                  d    t        t        j                  d            t        j                  u sJ y r   )typer	   r    r"   r   r   r   test_text_typer5   E   s!    d---r   c                  d    t        t        j                  d            t        j                  u sJ y r   )r4   r	   bbinary_typer   r   r   test_binary_typer9   I   s!    d///r   c                      	 t         j                  j                          t	        j
                  t        t        ft        j                  d gt         j                  dz          y # t        $ r Y Nw xY wNr   )
r	   r   	__index__AttributeErrorpytestraises
ValueErrorOverflowErroroperatormulr   r   r   test_MAXSIZErD   M   sV     MM	]#tfckkAo/  s   A# #	A/.A/c                      t         j                  rd} nd} | t        j                  vsJ t         j                  j
                  }t        j                  |    |u sJ dt         j                  j                  vsJ y )Nzhtml.parser
HTMLParser
htmlparser)r	   PY3sysmodulesmoveshtml_parser_MovedItems__dict__)	html_namemods     r   	test_lazyrQ   Y   sc    
ww!	 	CKK'''
))

C;;y!S(((s77777r   TF	item_namec                 x   	 t        t        j                  |       }t        |t        j
                        rt        d| z          | t!        t        j                        v sJ y# t        $ r | dk(  r4t        j                  j                  d      st        j                  d       | j                  d      rHt        st        j                  d       | dk(  r(t        j                  dk\  rt        j                  d	       | d
k(  rt        st        j                  d       | dk(  rt        j                  d        w xY w)'Ensure that everything loads correctly.z
six.moves.winregwinzWindows only moduletkinterzrequires tkintertkinter_tix)      z$tkinter.tix removed from Python 3.13dbm_gnuzrequires gdbmdbm_ndbmzrequires ndbmN)getattrr	   rK   r   types
ModuleType
__import__ImportErrorrI   platform
startswithr>   skiphave_tkinterversion_info	have_gdbmdir)rR   items     r   test_move_itemsrj   }   s    syy),dE,,-|i/0 CII&&&   )@)@)GKK-.	*./M)c.>.>'.IBC	!)KK(
"KK(s   AA" "CD9c                     | t        t        j                  j                  j                        v sJ t        t        j                  j                  j                  |        yrT   N)rh   r	   rK   urllibparser]   rR   s    r   test_move_items_urllib_parserp      A     CII,,223333CII""I.r   c                     | t        t        j                  j                  j                        v sJ t        t        j                  j                  j                  |        yrl   )rh   r	   rK   rm   errorr]   ro   s    r   test_move_items_urllib_errorrt      rq   r   c                     | t        t        j                  j                  j                        v sJ t        t        j                  j                  j                  |        yrl   )rh   r	   rK   rm   requestr]   ro   s    r   test_move_items_urllib_requestrw      sA     CII,,445555CII$$i0r   c                     | t        t        j                  j                  j                        v sJ t        t        j                  j                  j                  |        yrl   )rh   r	   rK   rm   responser]   ro   s    r   test_move_items_urllib_responserz      sA     CII,,556666CII%%y1r   c                     | t        t        j                  j                  j                        v sJ t        t        j                  j                  j                  |        yrl   )rh   r	   rK   rm   robotparserr]   ro   s    r   "test_move_items_urllib_robotparserr}      sA     CII,,889999CII(()4r   c                  `    ddl m}  ddlm} |j                  j
                  j                  sJ y )Nr   urljoinrK   )six.moves.urllib.parser   r	   rK   rm   rn   )r   rK   s     r   test_import_moves_error_1r      s!    .<<%%%%r   c                  `    ddl m}  | j                  j                  j                  sJ ddlm} y )Nr   r   r   )r	   rK   rm   rn   r   r   )rK   r   s     r   test_import_moves_error_2r      s!    <<%%%%.r   c                      ddl m}  ddlm}  y )Nr   r   )r   r   six.moves.urllib_parser   s    r   test_import_moves_error_3r      s    ..r   c                      ddl m}  t        | t        j                        sJ ddlm} t        |t        j                        sJ y )Nr   )Queue)ConfigParser)six.moves.queuer   r   r	   r1   six.moves.configparserr   )r   r   s     r   test_from_importsr      s0    %eS__---3lCOO444r   c                  j    ddl m}   | d t        d            }t        j                  |      dk(  sJ y )Nr   )filterc                     | dz  S )N   r   xs    r   <lambda>ztest_filter.<locals>.<lambda>   s    Qr   
   r   )	six.movesr   ranger	   advance_iterator)r   r   s     r   test_filterr      s.     b	*A"a'''r   c                      ddl m}   | d t        d            }t        j                  |      dk(  sJ t        j                  |      dk(  sJ t        j                  |      dk(  sJ y )Nr   )filterfalsec                     | dz  S )NrY   r   r   s    r   r   z#test_filter_false.<locals>.<lambda>   s    a!er   r   rY      )r   r   r   r	   r   )r   r   s     r   test_filter_falser      s`    %OU2Y/A"a'''"a'''"a'''r   c                  f    ddl m}  t        j                   | d t	        d                  dk(  sJ y )Nr   mapc                     | dz   S r;   r   r   s    r   r   ztest_map.<locals>.<lambda>   s    a!er   r   r   )r   r   r	   r   r   r   s    r   test_mapr      s)    OU1X >?1DDDr   c                  p    ddl m}   | t        j                  j	                  d      rdnd      }|dk7  sJ y )Nr   )	getoutputrV   rh   zecho foo )r   r   rI   rb   rc   )r   outputs     r   test_getoutputr      s.    # 7 7 >uJOFR<<r   c                  v    ddl m}  t        j                   | t	        d      t	        d                  dk(  sJ y )Nr   zipr   r   r   )r   r   r	   r   r   r   s    r   test_zipr      s-    E!HeAh 78FBBBr   c                      ddl m}   | t        d      t        d            }t        j                  |      dk(  sJ t        j                  |      dk(  sJ y )Nr   )zip_longestr   r   r   )r   N)r   r   r   r	   r   )r   its     r   test_zip_longestr      sK    %	U1XuQx	(B#v---#y000r   c                   0    e Zd Zd Zd Zd Zd Zd Zd Zy)TestCustomizedMovesc                     	 t         j                  `	 t         j                  j
                  d= y # t        $ r Y (w xY w# t        $ r Y y w xY w)Nspam)r	   rM   r   r=   rK   rN   KeyError)selfmeths     r   teardown_methodz#TestCustomizedMoves.teardown_method   sO    	$			""6*  		  		s   / > 	;;	A
	A
c                    t        j                  ddd      }t         j                  r|j                  dk(  sJ |j                  dk(  sJ |j                  dk(  sJ t        j                  dddd      }|j                  dk(  sJ t        j                  ddddd      }t         j                  r|j                  dk(  sJ y |j                  dk(  sJ y )Nr   foobarlemmatheorm)r	   MovedAttributerH   rP   attrr   r   s     r   test_moved_attributez(TestCustomizedMoves.test_moved_attribute
  s    !!&%77788u$$$88u$$$yyF"""!!&%@yyG###!!&%J7799(((99'''r   c                 (   t        j                  dd      }t         j                  r|j                  dk(  sJ |j                  dk(  sJ t        j                  ddd      }t         j                  r|j                  dk(  sJ y |j                  dk(  sJ y )Nr   r   r   )r	   MovedModulerH   rP   r   s     r   test_moved_modulez%TestCustomizedMoves.test_moved_module  sz    vu-7788v%%%88u$$$vue47788u$$$88u$$$r   c                    t        j                  ddd      }t        j                  |       t        j                  d       t	        t         j
                  d      rJ t        j                  ddd      }t        j                  |       ddlm} |t         u sJ t        j                  d       t	        t         j
                  d      rJ y )Nr   r	   r   r   )r	   r   add_moveremove_movehasattrrK   r   r   r   r   r   s      r   test_custom_move_modulez+TestCustomizedMoves.test_custom_move_module'  s    vue4T399f---vue4T"s{{399f----r   c                    t        j                  ddddd      }t        j                  |       t        j                  d       t	        t         j
                  d      rJ t        j                  ddddd      }t        j                  |       ddlm} |t         j                  u sJ t        j                  d       t	        t         j
                  d      rJ y )Nr   r	   r    r   r   )	r	   r   r   r   r   rK   r   r   r    r   s      r   test_custom_move_attributez.TestCustomizedMoves.test_custom_move_attribute4  s    !!&%SAT399f---!!&%SAT"suu}}399f----r   c                 V    t        j                  t        t        j                  d       y )Neggs)r>   r?   r=   r	   r   r   s    r   test_empty_removez%TestCustomizedMoves.test_empty_removeA  s    ncoov>r   N)	r(   r)   r*   r   r   r   r   r   r   r   r   r   r   r      s     ( 
%
.
.?r   r   c                       G d dt               } t        j                  | j                        | j                  d   u sJ y )Nc                       e Zd Zd Zy)$test_get_unbound_function.<locals>.Xc                      y Nr   r   s    r   r   z&test_get_unbound_function.<locals>.X.mG      r   Nr(   r)   r*   r   r   r   r   r+   r   F      	r   r+   r   )r0   r	   get_unbound_functionr   rN   r+   s    r   test_get_unbound_functionr   E  s5    F  ##ACC(AJJsO;;;r   c                       G d dt               }  |        }t        j                  |j                        |u sJ t	        j
                  t        t        j                  d       y )Nc                       e Zd Zd Zy)test_get_method_self.<locals>.Xc                      y r   r   r   s    r   r   z!test_get_method_self.<locals>.X.mN  r   r   Nr   r   r   r   r+   r   M  r   r   r+   *   )r0   r	   get_method_selfr   r>   r?   r=   r+   r   s     r   test_get_method_selfr   L  sJ    F  	
Aqss#q(((
MM.#"5"5r:r   c                       G d dt               }  |        }t        j                  |j                        | j                  d   u sJ t        j                  t        t        j                  t               y )Nc                       e Zd Zd Zy)#test_get_method_function.<locals>.Xc                      y r   r   r   s    r   r   z%test_get_method_function.<locals>.X.mW  r   r   Nr   r   r   r   r+   r   V  r   r   r+   r   )	r0   r	   get_method_functionr   rN   r>   r?   r=   r   r   s     r   test_get_method_functionr   U  sR    F  	
A""133'1::c?:::
MM.#"9"97Cr   c                  x    d } t        j                   |              d   }t        |      j                  dk(  sJ y )Nc                      dfd} | S )Nr   c                       S r   r   r   s   r   gz/test_get_function_closure.<locals>.f.<locals>.ga  s    Hr   r   )r   r   s    @r   r   z$test_get_function_closure.<locals>.f_  s    	r   r   cell)r	   get_function_closurer4   r(   )r   r   s     r   test_get_function_closurer   ^  s8    
 ##AC(+D:&(((r   c                      d } t        t        j                  |       t        j                        sJ t        t        d      s.t        j                  t        t        j                  t
               y y )Nc                       y r   r   r   r   r   r   z!test_get_function_code.<locals>.fi      r   pypy_version_info)
r   r	   get_function_coder^   CodeTyper   rI   r>   r?   r=   r   s    r   test_get_function_coder   h  sL    c++A.???3+,nc&;&;WE -r   c                  @    dd} t        j                  |       dk(  sJ y )Nc                      y r   r   )r   yr7   s      r   r   z%test_get_function_defaults.<locals>.fq  r   r   )rY      )r	   get_function_defaultsr   s    r   test_get_function_defaultsr   p  s     $$Q'6111r   c                  L    d } t        j                  |       t               u sJ y )Nc                       y r   r   r   r   r   r   z$test_get_function_globals.<locals>.fw  r   r   )r	   get_function_globalsglobalsr   s    r   test_get_function_globalsr  v  s"    ##A&')333r   c           
      |  	
 d } G d dt               }|j                  }|`t        | |d      |        |t        t	        d      t        t	        d                        }dD ]  }t        t        d|z         } ||      }t        |t              rJ t        |      t         t        ||                   k(  sJ t        j                  t        t        j                  |       g 
	
fd}t        | ||            	| j                  | ||      |        ||d	
       
d	gk(  sJ | j                           y )Nc                 0    t         j                  r| S d| z   S )zGiven a method suffix like "lists" or "values", return the name
        of the dict method that delivers those on the version of Python
        we're running in.iter)r	   rH   )iterwhats    r   stock_method_namez4test_dictionary_iterators.<locals>.stock_method_name}  s     77O  r   c                   0    e Zd Zej                  sd Zd Zy))test_dictionary_iterators.<locals>.MyDictc                 
    g dS N)r   r   rY   r   r   kws     r   listsz/test_dictionary_iterators.<locals>.MyDict.lists  s      r   c                     t        g d      S r  )r  r  s     r   	iterlistsz3test_dictionary_iterators.<locals>.MyDict.iterlists  s    	?"r   N)r(   r)   r*   r	   rH   r  r  r   r   r   MyDictr    s    ww!	#r   r  r  r   )keysvaluesitemsr  r  c                  6    j                  |d           |  S )Nr  )append)argsr  oldrecords     r   with_kwz*test_dictionary_iterators.<locals>.with_kw  s    MM"T(#:r   r   )r  )dictr  setattrr   r   reversedr]   r	   r   listr>   r?   StopIterationr   undo)monkeypatchr
  r  r   dnamer   r   r  r  r  s            @@r   test_dictionary_iteratorsr'  |  s   !# # 	AF%g.2s59huRy123A2sFTM*!Wb$'''Bx4 04 0 23333mS%9%92>	 f/56F$5d$;WEQ2"~~ 3r   c            	          t        t        t        d      t        dd                  } dD ]E  }t        t        d|z         } ||       }t        |      t         t        | |                   k(  rEJ  y )Nr         )r  r  r  view)r  r   r   r]   r	   set)r%  r&  r   r+  s       r   test_dictionary_viewsr-    sd    SrU2r],-A)sFTM*Aw4yC 04 0 23333 *r   c                  r   t         j                  t         j                  u sJ ddg} t        |       }t        j                  |      dk(  sJ t        j                  |      dk(  sJ t	        j
                  t        t         j                  |       t	        j
                  t        t         j                  |       y )Nr   r   )r	   nextr   r  r>   r?   r"  )lr   s     r   test_advance_iteratorr1    s    88s+++++	
AA	aB88B<188B<1
MM-2.
MM-2.r   c                       G d dt         j                        } t        j                   |              dk(  sJ  G d d|       }t        j                   |             dk(  sJ y )Nc                       e Zd Zd Zy)test_iterator.<locals>.myiterc                      y)NrZ   r   r   s    r   __next__z&test_iterator.<locals>.myiter.__next__      r   Nr(   r)   r*   r6  r   r   r   myiterr4        	r   r9  rZ   c                       e Zd Zd Zy) test_iterator.<locals>.myitersubc                      y)N   r   r   s    r   r6  z)test_iterator.<locals>.myitersub.__next__  r7  r   Nr8  r   r   r   	myitersubr<    r:  r   r?  r>  )r	   Iteratorr   )r9  r?  s     r   test_iteratorrA    sX      )R///F  	,222r   c                      G d d      } t        j                  |       sJ t        j                   |              sJ t        j                  t              sJ t        j                  t              sJ t        j                  | j                        sJ t        j                   |        j                        sJ t        j                  d      rJ t        j                  d      rJ y )Nc                       e Zd Zd Zd Zy)test_callable.<locals>.Xc                      y r   r   r   s    r   __call__z!test_callable.<locals>.X.__call__  r   r   c                      y r   r   r   s    r   methodztest_callable.<locals>.X.method  r   r   N)r(   r)   r*   rF  rH  r   r   r   r+   rD    s    		r   r+   r   string)r	   callabletest_callabler   rH  r   s    r   rK  rK    s     
 <<??<<<<&&&<<   <<!!!<<

###||A||H%%%%r   c                       G d dt               } d } |        }t        j                  ||      }t        |t        j
                        sJ  |       |u sJ y )Nc                       e Zd Zy)#test_create_bound_method.<locals>.XNr'   r   r   r   r+   rN    r,   r   r+   c                     | S r   r   r   s    r   r   z#test_create_bound_method.<locals>.f      r   )r0   r	   create_bound_methodr   r^   
MethodType)r+   r   r   r7   s       r   test_create_bound_methodrS    sO    F 	A1%Aa))***3!8O8r   c                      G d dt               } d }t        j                  ||       }t        j                  t
        |       t        j                  rt        |t        j                        sJ  |        } ||      |u sJ y )Nc                       e Zd Zy)%test_create_unbound_method.<locals>.XNr'   r   r   r   r+   rV    r,   r   r+   c                     | S r   r   r   s    r   r   z%test_create_unbound_method.<locals>.f  rP  r   )
r0   r	   create_unbound_methodr>   r?   	TypeErrorPY2r   r^   rR  )r+   r   r    r   s       r   test_create_unbound_methodr[    sg    F !!!Q'A
MM)Q
ww!U--...	AQ4199r   c                      t        j                  d      } t        | t              sJ t	        |       dk(  sJ | t        dg      k(  sJ y )N   ÿr      )r	   r7   r   byteslendatas    r   test_brc    sC    uuV}$&&&4yA~~ucU|###r   c                  `    t        j                  d      } t        | t              sJ | dk(  sJ y )N   hi й й \ \\ 
)r	   r    r   strss    r   test_uri    s0    EE34!S!!!5555r   c                      t        j                  d      } t        | t              sJ t	        |       dk(  sJ | dk(  sJ y )Nr]  r   )r	   r7   r   rf  r`  ra  s    r   rc  rc    s;    uuV}$$$$4yA~~v~~r   c                  ~    t        j                  d      } t        | t              sJ | dj	                  d      k(  sJ y )Nre  u   hi Ð¹ Ð¹ \ \\ 
utf8)r	   r    r   unicodedecoderg  s    r   ri  ri    s;    EE34!W%%%5<<VDDDDr   c                  N    t        j                  d      } t        |       dk(  sJ y )N   ሴr   )r	   r    r`  rg  s    r   test_u_escapesrq    s    hAq6Q;;r   c                      t        j                  d      t        j                  d      k(  sJ t        t        j                  d            t        t        j                  d            u sJ y )Nrp  i4  )r	   r    unichrr4   r   r   r   test_unichrrt  	  sJ    55?cjj0000h DF);$<<<<r   c                      t        j                  d      t        j                  d      k(  sJ t        j                  t
        t         j                  d       y )NrY      )r	   int2byter7   r>   r?   	Exceptionr   r   r   test_int2byterz    s4    <<?ceeFm+++
MM)S\\3/r   c                  0   t        j                  t        j                  d            dk(  sJ t        j                  t        j                  d            dk(  sJ t        j                  t
        t         j                  t        j                  d             y )Nrv  rY   zr   )r	   byte2intr7   r>   r?   
IndexErrorr   r   r   test_byte2intr~    s]    <<f&!+++<<j)*a///
MM*cllCEE"I6r   c                  r    t        j                  t        j                  d      d      t        d      k(  sJ y )NhellorY   r0  )r	   
indexbytesr7   ordr   r   r   test_bytesindexr    s'    >>#%%.!,C888r   c                  2   t        j                  t        j                  d            } t        j                  |       t	        d      k(  sJ t        j                  |       t	        d      k(  sJ t        j                  t        t         j                  |        y )Nr   hi)r	   	iterbytesr7   r/  r  r>   r?   r"  )r   s    r   test_bytesiterr    s`    	suuT{	#B88B<3s8###88B<3s8###
MM-2.r   c                      t        j                         } | j                  t        j                  d             | j	                         t        j                  d      k(  sJ y Nr  )r	   StringIOwriter    getvaluefps    r   test_StringIOr  $  s=    	BHHSUU7^;;=CEE'N***r   c                      t        j                         } | j                  t        j                  d             | j	                         t        j                  d      k(  sJ y r  )r	   BytesIOr  r7   r  r  s    r   test_BytesIOr  *  s=    	BHHSUU7^;;=CEE'N***r   c                      d }  |         i }t        j                  d|       |d   dk(  sJ i }i }t        j                  d||       |d   dk(  sJ d|vsJ |d   dk(  sJ d|vsJ y )Nc                  B    g } t        j                  d       | dgk(  sJ y )Nzl.append(1)r   r	   exec_)r0  s    r   r   ztest_exec_.<locals>.f1  s     		- QCxxr   zx = 42r   r   zglobal y; y = 42; x = 12r      r  )r   nsgloblocs       r   
test_exec_r  0  s     C	BIIhc7b==D
CII($49??d??s8r>>c>>r   c                  h   d } t        d      }	 |# t         $ r t        j                         \  }}}Y nw xY w	 t        j                  |||       nC# t         $ r7 t        j                         \  }}}|t         u sJ ||u sJ | | |      u sJ Y nw xY w	 t        j                  ||       n=# t         $ r1 t        j                         \  }}}|t         u sJ ||u sJ ||usJ Y nw xY w	 t        j                  ||       nC# t         $ r7 t        j                         \  }}}|t         u sJ ||u sJ  | |      u sJ Y nw xY w	 t        j                  |d |       y # t         $ rI t        j                         \  }}}|t         u sJ ||usJ t        |t               sJ | | |      u sJ Y y w xY w)Nc                 f    t         j                  r| j                  j                  S | j                  S r   )r	   rH   tb_next)tbs    r   get_nextztest_reraise.<locals>.get_nextC  s#    77::%%%::r   blah)ry  rI   exc_infor	   reraiser   )	r  etpvalr  tp2value2tb2tb3s	            r   test_reraiser  B  s   
 	&A% %llnC%#BR  #<<>VSi{{Xc]"""	#
B <<>VSi{{"}}	
$BS! $<<>VSi{{}###	$
#Bb! #<<>VSiS   &),,,Xc]"""#sT    !66A =BBB- -7C'&C'+D =EEE AF10F1c                     	 	 t        d      # t         $ r; t        j                         d   } t        d      }t        j                  |d        Y nw xY wn'# t         $ r t        j                         \  }}}Y nw xY wt        j
                  d d dkD  r,j                  J |j                   u sJ |j                  sJ t              dk(  sJ y )Nr  r   r   r   )rY   r   )
ry  rI   r  r	   
raise_fromrf   	__cause____context____suppress_context__rf  )ctxr   r  r  r  s        r   test_raise_fromr  l  s    %	$F## 	$,,.#C% ANN1d#	$ $ %llnC%
f$}}$$$#%%%''''s8us(    AAA AA !A:9A:c                  B   t         j                  } t        j                  j	                         x}t         _        	 t        j
                  dd       | t         _        |j                         dk(  sJ t        j                         }t        j
                  dd|       |j                         dk(  sJ t        j                         }t        j
                  dd|d       |j                         dk(  sJ t        j                         }t        j
                  dd|d	       |j                         d
k(  sJ t        j                         }t        j
                  t        j                  d      t        j                  d      |       |j                         }t        |t        j                        sJ |t        j                  d      k(  sJ t        j
                  dd        t        j                         }t        j
                  d |       |j                         dk(  sJ  G d dt        j                        } |       }t        j
                  d|       |j                  rJ t        j
                  d|d       |j                  sJ y # | t         _        w xY w)NzHello,zperson!zHello, person!
)filer   )r  endzHello, person!r+   )r  sepzHello,Xperson!
HellozNone
c                       e Zd Zd Zd Zy)&test_print_.<locals>.FlushableStringIOc                 P    t         j                  j                  |        d| _        y )NF)r	   r  __init__flushedr   s    r   r  z/test_print_.<locals>.FlushableStringIO.__init__  s    LL!!$' DLr   c                     d| _         y )NT)r  r   s    r   flushz,test_print_.<locals>.FlushableStringIO.flush  s	    DLr   N)r(   r)   r*   r  r  r   r   r   FlushableStringIOr    s    	!	 r   r  T)r  r  )rI   stdoutr	   rK   r  print_r  r    r   r"   r  )saveoutresultr  s       r   test_print_r    s   ::Dyy))++C#*

8Y'
<<>////
,,.CJJx-<<>////
,,.CJJx"5<<>----
,,.CJJx#6<<>////
,,.CJJsuuXi 0s;\\^Ffcmm,,,SUU-....JJwT"
,,.CJJt#<<>X%%% CLL   
CJJwS!{{?JJwS-;;;= 
s   J Jc                      t        j                  t        t        j                  d       t        j                  t        t        j                  d       t        j                  t        t        j                  d       y )NrY   r   )r  r   )r  )r>   r?   rY  r	   r  r   r   r   test_print_exceptionsr    s>    
MM)SZZ1-
MM)SZZQ/
MM)SZZR0r   c            	          G d dt               }  G d dt        j                  |             }t        |      | u sJ t        |t              sJ  G d dt              } G d dt        j                  | |            }t        |      | u sJ t        ||      sJ  G d d	t              } G d
 dt        j                  | ||            }t        |      | u sJ t        ||      sJ t        ||      sJ |j
                  |||t        fk(  sJ  G d dt        j                  |             } G d d|       } G d dt        j                  ||            }t        |      |u sJ |j
                  ||t        fk(  sJ y )Nc                       e Zd Zy)!test_with_metaclass.<locals>.MetaNr'   r   r   r   Metar    r,   r   r  c                       e Zd Zytest_with_metaclass.<locals>.XNr'   r   r   r   r+   r    r,   r   r+   c                       e Zd Zy)!test_with_metaclass.<locals>.BaseNr'   r   r   r   Baser    r,   r   r  c                       e Zd Zyr  r'   r   r   r   r+   ztest_with_metaclass.<locals>.X  r,   r   c                       e Zd Zy)"test_with_metaclass.<locals>.Base2Nr'   r   r   r   Base2r    r,   r   r  c                       e Zd Zyr  r'   r   r   r   r+   ztest_with_metaclass.<locals>.X  r,   r   c                       e Zd Zyr  r'   r   r   r   r+   ztest_with_metaclass.<locals>.X  r,   r   c                       e Zd Zy)$test_with_metaclass.<locals>.MetaSubNr'   r   r   r   MetaSubr    r,   r   r  c                       e Zd Zy)test_with_metaclass.<locals>.YNr'   r   r   r   r/   r    r,   r   r/   )r4   r	   with_metaclassr!   r0   __mro__)r  r+   r  r  r  r/   s         r   test_with_metaclassr    sb   t Ct$ 7d??a   v CtT* 7d??a CtT51 7d??aa99D%0000Ct$ $ Cw* 7g99Av&&&r   c            	         	 dd l }  G d dt              }t
        j                  d d dk  r G d d| j                        } j                  d      } G d	 d
t        j                  || j                  |               } G d dt        j                  t        j                  | j                  |               }t        ||      sJ t        |t        j                        sJ |t           ||t              usJ |t           ||t              usJ |j                   | j                  fk(  sJ |j"                  | j                  |   fk(  sJ y # t        $ r t        j                  d       Y gw xY w)Nr   ztyping module requiredc                       e Zd Zy(test_with_metaclass_typing.<locals>.MetaNr'   r   r   r   r  r    r,   r   r  r   )rY      c                       e Zd Zyr  r'   r   r   r   r  z(test_with_metaclass_typing.<locals>.Meta  s    r   Tc                       e Zd Zy)%test_with_metaclass_typing.<locals>.GNr'   r   r   r   Gr    r,   r   r  c                       e Zd Zy)&test_with_metaclass_typing.<locals>.GANr'   r   r   r   GAr    r,   r   r  )typingra   r>   rd   r4   rI   rf   GenericMetaTypeVarr	   r  GenericabcABCMetar   int	__bases____orig_bases__)r  r  r  r  r  s        r   test_with_metaclass_typingr    sD   .t 
f$	4++ 	sACtV^^A%67 SV^^A->? ab#++&&&S61S6"""c7"RW+%%%;;6>>++++q 13333%  .,-.s   E E.-E.zsys.version_info[:2] < (3, 7)c                      G d dt               }  G d d       G d d       G fdd      } |       } G d	 d
t        j                  | |            } G d dt        j                  t        j                  |            }t        ||       sJ t        |t        j                        sJ |j                  fk(  sJ |j                  |fk(  sJ y )Nc                       e Zd Zy))test_with_metaclass_pep_560.<locals>.MetaNr'   r   r   r   r  r    r,   r   r  c                       e Zd Zy)&test_with_metaclass_pep_560.<locals>.ANr'   r   r   r   Ar    r,   r   r  c                       e Zd Zy)&test_with_metaclass_pep_560.<locals>.BNr'   r   r   r   Br    r,   r   r   c                       e Zd Z fdZy))test_with_metaclass_pep_560.<locals>.Fakec                     fS r   r   )r   basesr  r   s     r   __mro_entries__z9test_with_metaclass_pep_560.<locals>.Fake.__mro_entries__  s    q6Mr   N)r(   r)   r*   r  )r  r   s   r   Faker    s    	r   r  c                       e Zd Zy)&test_with_metaclass_pep_560.<locals>.GNr'   r   r   r   r  r    r,   r   r  c                       e Zd Zy)'test_with_metaclass_pep_560.<locals>.GANr'   r   r   r   r  r
    r,   r   r  )r4   r	   r  r  r  r   r  r  )r  r  faker  r  r  r   s        @@r   test_with_metaclass_pep_560r    s    t     6DCtT* ST2 ab#++&&&;;1a&   w&&&r   zsys.version_info[:2] < (3, 0)c                  (    G d dt                G fddt              }  G d dt              }|f} G d dt        j                  | g|       }t        |d	t              | u sJ t        |d
d      |k(  sJ t        t        |di             sJ y)zYTest that with_metaclass causes Meta.__prepare__ to be called with the correct arguments.c                       e Zd Zy)+test_with_metaclass_prepare.<locals>.MyDictNr'   r   r   r   r  r    r,   r   r  c                   ,     e Zd Ze fd       Z xZS ))test_with_metaclass_prepare.<locals>.Metac                 D     t         |   ||      | |      }||d<   |S )N)clsr  	namespace)super__prepare__)r  r&  r  r  r  	__class__s       r   r  z5test_with_metaclass_prepare.<locals>.Meta.__prepare__  s.    uw24?SPUVI%.Ik"r   )r(   r)   r*   classmethodr  __classcell__)r  r  s   @r   r  r    s    		 
	r   r  c                       e Zd Zy))test_with_metaclass_prepare.<locals>.BaseNr'   r   r   r   r  r  	  r,   r   r  c                       e Zd Zy)&test_with_metaclass_prepare.<locals>.XNr'   r   r   r   r+   r    r,   r   r+   r  r  r   r  N)r  r4   r0   r	   r  r]   r   )r  r  r  r+   r  s       @r   test_with_metaclass_preparer    s     t v  GECt,e,  1eT"d***1gr"e+++gab16:::r   c                     d } d }|} |  | |            }t        |d      sJ |j                  }t        |d      sJ |j                  }||u sJ t        |d      rJ d } ddi|_        d|_         | |dd	gd
dg      }|j                  dk(  sJ |j                  dk(  sJ t        |d	      rJ |j                  dddk(  sJ |j
                  ddik(  sJ y )Nc                 <    t        j                  |       d        }|S )Nc                       yNr   r   r   r   r   wz test_wraps.<locals>.f.<locals>.w  s    r   )r	   wraps)r   r#  s     r   r   ztest_wraps.<locals>.f  s!    	1	 
	r   c                       y r   r   r   r   r   kztest_wraps.<locals>.k  r   r   __wrapped__c                 f    d }ddi|_         ddi|_         t        j                  | ||      |      S )Nc                       yr"  r   r   r   r   r#  z test_wraps.<locals>.f.<locals>.w(  r7  r   r   r   quxquux)gluexyzzyr	   r$  )r   assignupdater#  s       r   r   ztest_wraps.<locals>.f'  s7    	&/+syyFF+A..r   melonegg+   turnipbazr,  r-  r#  r   )r0  r   r*  r+  )r   r'  r,  r3  r(   r-  )r   r&  
original_ks      r   
test_wrapsr6    s    
J	!A$A1m$$$	A1m$$$	A
??q-(((/ uAFAH	!h 12A::88r>>q%   66uU333377ufo%%%r   c                      d } d }t        j                  t        d      5   t        j                  | g dg      |       ddd       y# 1 sw Y   yxY w)zEnsure six.wraps doesn't ignore missing attrs wrapper.

    Because that's what happens in Py3's functools.update_wrapper.
    c                       y r   r   r   r   r   wrappedzFtest_wraps_raises_on_missing_updated_field_on_wrapper.<locals>.wrapped<  r   r   c                       y r   r   r   r   r   wrapperzFtest_wraps_raises_on_missing_updated_field_on_wrapper.<locals>.wrapper?  r   r   zhas no attribute.*xyzzy)matchr-  N)r>   r?   r=   r	   r$  )r9  r;  s     r   5test_wraps_raises_on_missing_updated_field_on_wrapperr=  7  sC    
 
~-F	G)		'2y)'2 
H	G	Gs   A

Ac                      G d dt               }  G d d      } t        j                  |       |      }t        |      | u sJ t        |t              sJ |j
                  t        k(  sJ |j                  dk(  sJ  G d dt              } G d d|      } t        j                  |       |      }t        |      | u sJ t        ||      sJ  G d	 d
t              } G d d||      } t        j                  |       |      }t        |      | u sJ t        ||      sJ t        ||      sJ  G d dt               } G d d|      } G d d      } t        j                  |      |      } G d d|      } t        j                  |      |      }t        |      |u sJ t        ||      sJ t        |      |u sJ dt        |      vsJ  |       }d|_	        t        |      ddik(  sJ |j                  |j                  k(  sJ |j                  |j                  k(  sJ  G d dt              } t        j                  |      |      }|j                  ddgk(  sJ  |       }d|_        t        j                  t         t"        |dd        G d dt              } t        j                  |      |      }|j                  dk(  sJ  |       }d|_        t        j                  t         t"        |dd       t        j                  t         t"        |dd        G d d t              }	 t        j                  |       |	      }	t        |	      | u sJ y )!Nc                       e Zd Zy) test_add_metaclass.<locals>.MetaNr'   r   r   r   r  r@  H  r,   r   r  c                       e Zd ZdZy)test_add_metaclass.<locals>.XsuccessN)r(   r)   r*   r   r   r   r   r+   rB  J  s    r   r+   rC  c                       e Zd Zy) test_add_metaclass.<locals>.BaseNr'   r   r   r   r  rE  Q  r,   r   r  c                       e Zd ZyrB  Nr'   r   r   r   r+   ztest_add_metaclass.<locals>.XS  r,   r   c                       e Zd Zy)!test_add_metaclass.<locals>.Base2Nr'   r   r   r   r  rI  X  r,   r   r  c                       e Zd ZyrG  r'   r   r   r   r+   ztest_add_metaclass.<locals>.XZ  r,   r   c                       e Zd ZdZy)!test_add_metaclass.<locals>.Meta1m1N)r(   r)   r*   rM  r   r   r   Meta1rL  b      r   rN  c                       e Zd ZdZy)!test_add_metaclass.<locals>.Meta2m2N)r(   r)   r*   rR  r   r   r   Meta2rQ  d  rO  r   rS  c                       e Zd ZdZy)rE  r7   N)r(   r)   r*   r7   r   r   r   r  z test_add_metaclass.<locals>.Basef      r   c                       e Zd ZdZy)rB  r   N)r(   r)   r*   r   r   r   r   r+   ztest_add_metaclass.<locals>.Xi  rU  r   rN   testr   c                       e Zd ZddgZy)#test_add_metaclass.<locals>.MySlotsar7   Nr(   r)   r*   	__slots__r   r   r   MySlotsrY  w  s    #J	r   r]  rZ  r7   r   cr4  c                       e Zd ZdZy))test_add_metaclass.<locals>.MyStringSlotsabNr[  r   r   r   MyStringSlotsr`    s    	r   rb  ra  c                       e Zd ZdZy)*test_add_metaclass.<locals>.MySlotsWeakref)__weakref__Nr[  r   r   r   MySlotsWeakrefrd    s    "	r   rf  )r4   r	   add_metaclassr!   r0   r)   r(   r   varsr   r7   r   r\  rZ  r>   r?   r=   r  ra  )
r  r+   r  r  rN  rS  instancer]  rb  rf  s
             r   test_add_metaclassrj  G  s   t  $"A7d??a   <<8###99	!!!v D $"A7d??a D% $"A7d??aa   #3U#D)DD  % #A7ea:T!W$$$sHHM>ff----::::& &c&w/Gc
***yHHJ
MM.'8S%@ ,C%%e,];M""d***HHK
MM.'8S%@
MM.'8S%@# #,S&&t,^<N4'''r   zsys.version_info[:2] < (3, 3)c                       G d dt                G d d      } d}| j                  j                  |k(  sJ  G fdd      } | j                  j                  |k(  sJ y )Nc                       e Zd Zy)'test_add_metaclass_nested.<locals>.MetaNr'   r   r   r   r  rm    r,   r   r  c                        e Zd Z G d d      Zy)$test_add_metaclass_nested.<locals>.Ac                       e Zd Zy&test_add_metaclass_nested.<locals>.A.BNr'   r   r   r   r   rr    s    r   r   N)r(   r)   r*   r   r   r   r   r  ro    s    r   r  rr  c                   N    e Zd Z ej                  W         G d d             Zy)ro  c                       e Zd Zyrq  r'   r   r   r   r   z&test_add_metaclass_nested.<locals>.A.B  s    r   r   N)r(   r)   r*   r	   rg  r   )r  s   r   r  z$test_add_metaclass_nested.<locals>.A  s     			4	  
!r   )r4   r   r*   )r  expectedr  s     @r   test_add_metaclass_nestedrv    s\    t   8H33x'''  33x'''r   c                  b     G d dt         j                        }  | d      j                          y )Nc                       e Zd Zd Zy)3test_assertCountEqual.<locals>.TestAssertCountEqualc                     | j                  t              5  t        j                  | dg d       d d d        t        j                  | dddg       y # 1 sw Y   #xY w)N)r   r   )rY   r      r   r   )assertRaisesAssertionErrorr	   assertCountEqualr   s    r   rW  z8test_assertCountEqual.<locals>.TestAssertCountEqual.test  sH    "">2$$T69= 3   v1v6 32s   AANr(   r)   r*   rW  r   r   r   TestAssertCountEqualry    s    	7r   r  rW  unittestTestCaserW  )r  s    r   test_assertCountEqualr    s'    7x00 7  %%'r   c                  b     G d dt         j                        }  | d      j                          y )Nc                       e Zd Zd Zy))test_assertRegex.<locals>.TestAssertRegexc                     | j                  t              5  t        j                  | dd       d d d        t        j                  | dd       y # 1 sw Y   !xY w)NrW  ^a^t)r|  r}  r	   assertRegexr   s    r   rW  z.test_assertRegex.<locals>.TestAssertRegex.test  s@    "">2fe4 3 OOD&%0 32   AANr  r   r   r   TestAssertRegexr    s    	1r   r  rW  r  )r  s    r   test_assertRegexr    s'    1(++ 1 F  "r   c                  b     G d dt         j                        }  | d      j                          y )Nc                       e Zd Zd Zy)/test_assertNotRegex.<locals>.TestAssertNotRegexc                     | j                  t              5  t        j                  | dd       d d d        t        j                  | dd       y # 1 sw Y   !xY w)NrW  r  r  )r|  r}  r	   assertNotRegexr   s    r   rW  z4test_assertNotRegex.<locals>.TestAssertNotRegex.test  sD    "">2""47 3 tVU3 32r  Nr  r   r   r   TestAssertNotRegexr    s    	4r   r  rW  r  )r  s    r   test_assertNotRegexr    s'    4X.. 4 v##%r   c                  b     G d dt         j                        }  | d      j                          y )Nc                       e Zd Zd Zy)5test_assertRaisesRegex.<locals>.TestAssertRaisesRegexc                 &   t        j                  | t        d      5  t        d      # 1 sw Y   nxY w| j                  t              5  t        j                  | t        d      5  t        d      # 1 sw Y   nxY w	 d d d        y # 1 sw Y   y xY w)Nz^FooFooBar)r	   assertRaisesRegexr}  r|  r   s    r   rW  z:test_assertRaisesRegex.<locals>.TestAssertRaisesRegex.test  so    &&t^VD$U++ ED "">2**4I(// JII 322s&   (1	B%A11A:	6BBNr  r   r   r   TestAssertRaisesRegexr    s    	0r   r  rW  r  )r  s    r   test_assertRaisesRegexr    s'    0 1 1 0 &!&&(r   c                  <   t         j                   G d dt                     }  |        }t         j                  rFt	        |      t        j
                  d      k(  sJ t        |      t        j                  d      k(  sXJ t         j                  rFt        |      t        j
                  d      k(  sJ t	        |      t        j                  d      k(  sJ  t        t         j                  j                  dt              |      t        j
                  d      k(  sJ y )Nc                       e Zd Zd Zd Zy)0test_python_2_unicode_compatible.<locals>.MyTestc                 ,    t        j                  d      S r  )r	   r    r   s    r   __str__z8test_python_2_unicode_compatible.<locals>.MyTest.__str__      55>!r   c                 ,    t        j                  d      S r  )r	   r7   r   s    r   	__bytes__z:test_python_2_unicode_compatible.<locals>.MyTest.__bytes__  r  r   N)r(   r)   r*   r  r  r   r   r   MyTestr    s    	"	"r   r  r  r_  )r	   python_2_unicode_compatibler0   rZ  rf  r7   rm  r    rH   r_  r]   rK   builtins)r  my_tests     r    test_python_2_unicode_compatibler    s    $$" " %" hG
ww7|suuW~---w355>111	W~w///7|suuW~---47399%%w4W=wOOOr   c                   R    e Zd Z ej                  d      ZdZd Zd Zd Z	d Z
d Zy)	EnsureTestsu   😀s   😀c                     t        j                  t              5  t        j                  d       d d d        y # 1 sw Y   y xY w)N   )r>   r?   rY  r	   
ensure_strr   s    r   #test_ensure_binary_raise_type_errorz/EnsureTests.test_ensure_binary_raise_type_error  s&    ]]9%NN1 &%%s	   9Ac                     t        j                  | j                  dd       t        j                  t
              5  t        j                  | j                  dd       d d d        y # 1 sw Y   y xY w)Nzlatin-1ignoreencodingerrorsstrict)r	   ensure_binaryUNICODE_EMOJIr>   r?   UnicodeEncodeErrorr   s    r   test_errors_and_encodingz$EnsureTests.test_errors_and_encoding  sK    $,,yR]]-.d009XV /..s   #A((A1c                    t        j                  | j                  dd      }t        j                  | j                  dd      }t         j                  rC|| j                  k(  rt        |t              sJ || j                  k(  rt        |t              sJ y || j                  k(  rt        |t              sJ || j                  k(  rt        |t              sJ y Nzutf-8r  r  )r	   r  r  BINARY_EMOJIrZ  r   rf  r_  r   converted_unicodeconverted_binarys      r   test_ensure_binary_raisez$EnsureTests.test_ensure_binary_raise  s    --d.@.@7[cd,,T->->Yab77$(9(99jIZ\_>```#t'8'88ZHXZ]=^^^=^ %(9(99jIZ\a>bbb#t'8'88ZHXZ_=```=`r   c                    t        j                  | j                  dd      }t        j                  | j                  dd      }t         j                  rC|| j                  k(  rt        |t              sJ || j                  k(  rt        |t              sJ y || j                  k(  rt        |t              sJ || j                  k(  rt        |t              sJ y r  )r	   r  r  r  rZ  r   rf  r  s      r   test_ensure_strzEnsureTests.test_ensure_str  s    NN4+=+=X`a>>$*;*;gV^_77$(9(99jIZ\_>```#t'8'88ZHXZ]=^^^=^ %(:(::zJ[]`?aaa#t'9'99jIZ\_>```>`r   c                    t        j                  | j                  dd      }t        j                  | j                  dd      }t         j                  rC|| j                  k(  rt        |t              sJ || j                  k(  rt        |t              sJ y || j                  k(  rt        |t              sJ || j                  k(  rt        |t              sJ y r  )r	   ensure_textr  r  rZ  r   rm  rf  r  s      r   test_ensure_textzEnsureTests.test_ensure_text  s    OOD,>,>Yab??4+<+<wW_`77$(:(::zJ[]d?eee#t'9'99jIZ\c>ddd>d %(:(::zJ[]`?aaa#t'9'99jIZ\_>```>`r   N)r(   r)   r*   r	   r    r  r  r  r  r  r  r  r   r   r   r  r    s6     CEE,'M&LW
aaar   r  )`rB   rI   r^   r  r  r>   r	   r   r   r   r#   r2   r5   r9   rD   rQ   _tkinterre   ra   rg   gdbmdbm.gnudbm	have_ndbmdbm.ndbmmarkparametrize_moved_attributesr&  rj   _urllib_parse_moved_attributesrp   _urllib_error_moved_attributesrt    _urllib_request_moved_attributesrw   !_urllib_response_moved_attributesrz   $_urllib_robotparser_moved_attributesr}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r'  r-  r1  rA  rK  rS  r[  rH   rc  ri  rq  rt  rz  r~  r  r  r  r  r  r  r  r  r  r  r  skipifr  r  r6  r=  rj  rv  r  r  r  r  r  r  )ri   s   0r   <module>r     s=  *  
   
  
"170.0	/8 L	 	 141F1FG1F4991FGI'I', 141S1ST1S4991STV/V/ 141S1ST1S4991STV/V/ 141U1UV1U4991UVX1X1 141V1VW1V4991VWY2Y2 141Y1YZ1Y4991YZ\5\5&//5((E
C
1E? E?P<;D)F24"J4/3&  77$6E
=
0
79/++$'#T($N1'>40 34' 5'* 34; 5;6&B3 F(R 34( 5(&(#&
)P*7a 7aC  L   	   	 H0 U U W X [s   L L 	L0 1M
5M
9M
=M
M#
M(
LLL-LL-L&#L-%L&&L-,L-0M6L;:M;MMMMM