
    .hhK                    F   S r SSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKJ	r	  SSK
r
SSKJrJrJr  SSKJr  SSKJrJr  SSK
Jr   " S S	\5      r\" \5       V s1 s H  o R1                  S
5      (       a  M  U iM     sn rSr\rS rS rS rS r S r!S r"S~S jr#S r$S r%S r&S r'S~S jr(SS jr)S r*S r+S r, " S S\-5      r. " S S \-5      r/\/" 5       r0\0Rb                  r1\0Rd                  r3\0Rh                  r51 S!kr6S" r7 " S# S$\85      r9S% r: " S& S'\-5      r; " S( S)\-5      r< " S* S+\<5      r=\>" \" \=5       V s1 s H,  n U R1                  S,5      (       d  M  U R                  S,5      iM.     sn 5      r@ " S- S.\85      rAS/ rB " S0 S1\<5      rC " S2 S3\C\=5      rDS4 rE " S5 S6\-5      rFS7 rG\1SSSSS4SS8.S9 jjrH  SS: jrI\1SSSSS4SS8.S; jjrJ " S< S=\-5      rKS> rLS? rM\H\Jl-        \K\JlN        \I\JlO        \M\JlP        S@\JlQ        SArRSBrSSCR                  SD \SR                  5        5       5      rVSCR                  SE \SR                  5        5       5      rW1 SFkrXSG rYSCR                  \R\S\V\W/5      R                  5        Vs1 s H  nSHU-  iM
     snrZ1 SIkr[SJ1r\\[\\-  r]\Z\X-  r^\^\]-  r_1 SKkr`SL SM SN SO SP.ra\b\b\b\bSQSSSSRSSSSQSST.rcSU rdSV reSW rfSX rg\d\e\f\gSY.rhSZ ri " S[ S\\<5      rj " S] S^\j\=5      rk " S_ S`\j5      rl " Sa Sb\j\D5      rm " Sc Sd\<5      rn \R                  " \" \R                  S5      5      rq\" \5      rr " Se Sf\<5      rt " Sg Sh\t\l\D5      ru " Si Sj\-5      rv\v" 5       rwSk rx " Sl Sm\y5      rz\z" SSn9r{  SSS8.So jjr|Sp r} " Sq Sr\-5      r~\" \|5      \" \wGR                   5      4rSqSqSs rSSt jr " Su Sv\D5      r\0GR                  r " Sw Sx\<5      r " Sy Sz\\j\D5      rS{ r " S| S}5      rgs  sn f s  sn f s  snf ! \s a    Srq Nf = f))Mock	MagicMockpatchsentinelDEFAULTANYcallcreate_autospec	AsyncMockThreadingMock
FILTER_DIRNonCallableMockNonCallableMagicMock	mock_openPropertyMockseal    N)iscoroutinefunction)CodeType
ModuleType
MethodType)	safe_repr)wrapspartial)RLockc                       \ rS rSrSrg)InvalidSpecError+    N__name__
__module____qualname____firstlineno____static_attributes__r       6/opt/python-3.13.8/usr/lib/python3.13/unittest/mock.pyr   r   +        r%   r   _Tc                     [        U 5      (       a  [        U [        5      (       d  g[        U S5      (       a  [	        U S5      n [        U 5      =(       d    [        R                  " U 5      $ )NF__func__)_is_instance_mock
isinstancer
   hasattrgetattrr   inspectisawaitableobjs    r&   _is_async_objr3   7   sP    ji&@&@sJc:&s#?w':':3'??r%   c                 >    [        U SS 5      (       a  [        U 5      $ g)N__code__F)r.   r   )funcs    r&   _is_async_funcr7   ?   s    tZ&&"4((r%   c                 4    [        [        U 5      [        5      $ N)
issubclasstyper   r1   s    r&   r+   r+   F   s     d3i11r%   c                 ~    [        U [        5      =(       d'    [        U [        5      =(       a    [        U [        5      $ r9   )r,   BaseExceptionr;   r:   r1   s    r&   _is_exceptionr>   L   s-    3& 	A3@*S-"@r%   c                 j    [        U [        5      (       a  [        U S5      (       a  U R                  $ U $ Nmock)r,   FunctionTypesr-   rA   r1   s    r&   _extract_mockrC   S   s+     #}%%'#v*>*>xx
r%   c                    [        U [        5      (       a  U(       d  U R                  n SnOa[        U [        [        45      (       a$  [        U [        5      (       a  SnU R
                  n O"[        U [        5      (       d   U R                  n U(       a  [        U S 5      nOU n U [        R                  " U5      4$ ! [         a     g f = f! [         a     g f = fNT)r,   r;   __init__classmethodstaticmethodr*   rB   __call__AttributeErrorr   r/   	signature
ValueError)r6   as_instanceeat_selfsig_funcs       r&   _get_signature_objectrP   \   s     $k}}	D;5	6	6dK((H}}m,,	==D 4&W&&x000  		  s$   B< $C <
C	C	
CCFc                    ^ [        XU5      mTc  g Tu  n mU4S jn[        X5        U[        U5      l        T[        U5      l        g )Nc                *   > TR                   " U0 UD6  g r9   bind)selfargskwargssigs      r&   checksig"_check_signature.<locals>.checksig       $!&!r%   )rP   _copy_func_detailsr;   _mock_check_sig__signature__)r6   rA   	skipfirstinstancerY   rX   s        @r&   _check_signaturera      sE    
	
:C
{ID#"t&!)DJ"DJr%   c           	      d    S H  n [        X[        X5      5        M     g ! [         a     M+  f = f)N)r    __doc____text_signature__r!   __defaults____kwdefaults__)setattrr.   rJ   )r6   funcopy	attributes      r&   r\   r\      s6    		G(@A  		s   !
//c                     [        U [        5      (       a  g[        U [        [        [        45      (       a  [        U R                  5      $ [        U SS 5      b  gg)NTrI   F)r,   r;   rH   rG   r   	_callabler*   r.   r1   s    r&   rk   rk      sJ    #t#k:>??&&sJ%1r%   c                 2    [        U 5      [        [        4;   $ r9   )r;   listtupler1   s    r&   _is_listro      s     9u%%r%   c                     [        U [        5      (       d  [        U SS 5      S L$ U 4U R                  -    H!  nUR                  R                  S5      c  M!    g   g)NrI   TF)r,   r;   r.   __mro____dict__get)r2   bases     r&   _instance_callableru      sY     c4  sJ-T99 $==Z(4 % r%   c                   ^ [        U[        5      n[        XU5      nUc  U $ Uu  nmU4S jn[        XV5        UR                  nUR                  5       (       d  SnX`S.nSU-  n	[        X5        X   n
[        XT5        U
$ )Nc                  *   > TR                   " U 0 UD6  g r9   rS   rV   rW   rX   s     r&   rY    _set_signature.<locals>.checksig   r[   r%   rh   
_checksig_rA   zYdef %s(*args, **kwargs):
    _checksig_(*args, **kwargs)
    return mock(*args, **kwargs))r,   r;   rP   r\   r    isidentifierexec_setup_func)rA   originalr`   r_   resultr6   rY   namecontextsrcrh   rX   s              @r&   _set_signaturer      s    
 8T*I"8yAF~ID#"t&D%4G$&*+C 	#mGs#Nr%   c                    ^ [        U[        5      n[        XU5      u  nmU4S jn[        XV5        UR                  nX`S.nSU-  n	[        X5        X   n
[        XT5        [        U
5        U
$ )Nc                  *   > TR                   " U 0 UD6  g r9   rS   rx   s     r&   rY   &_set_async_signature.<locals>.checksig   r[   r%   rz   zeasync def %s(*args, **kwargs):
    _checksig_(*args, **kwargs)
    return await mock(*args, **kwargs))r,   r;   rP   r\   r    r}   r~   _setup_async_mock)rA   r   r`   is_async_mockr_   r6   rY   r   r   r   rh   rX   s              @r&   _set_async_signaturer      sx    
 8T*I%h)DID#"t&D%4G*,01C 	#mGs#gNr%   c                   ^ ^ TT l         U4S jnU4S jnU4S jnU4S jnU4S jnU4S jnU4S jn	U U4S jn
S	T l        S
T l        S T l        [	        5       T l        [	        5       T l        [	        5       T l        TR                  T l        TR                  T l	        TR                  T l
        UT l        UT l        UT l        U	T l        U
T l        UT l        UT l        UT l        UT l        T Tl        g )Nc                  (   > TR                   " U 0 UD6$ r9   )assert_called_withrV   rW   rA   s     r&   r   '_setup_func.<locals>.assert_called_with       &&777r%   c                  (   > TR                   " U 0 UD6$ r9   )assert_calledr   s     r&   r   "_setup_func.<locals>.assert_called   s    !!42622r%   c                  (   > TR                   " U 0 UD6$ r9   )assert_not_calledr   s     r&   r   &_setup_func.<locals>.assert_not_called   s    %%t6v66r%   c                  (   > TR                   " U 0 UD6$ r9   )assert_called_oncer   s     r&   r   '_setup_func.<locals>.assert_called_once   r   r%   c                  (   > TR                   " U 0 UD6$ r9   )assert_called_once_withr   s     r&   r   ,_setup_func.<locals>.assert_called_once_with   s    ++T<V<<r%   c                  (   > TR                   " U 0 UD6$ r9   )assert_has_callsr   s     r&   r   %_setup_func.<locals>.assert_has_calls   s    $$d5f55r%   c                  (   > TR                   " U 0 UD6$ r9   )assert_any_callr   s     r&   r   $_setup_func.<locals>.assert_any_call   s    ##T4V44r%   c                     > [        5       Tl        [        5       Tl        TR                  5         TR                  n [        U 5      (       a  U TLa  U R                  5         g g g r9   )	_CallListmethod_calls
mock_calls
reset_mockreturn_valuer+   )retrh   rA   s    r&   r   _setup_func.<locals>.reset_mock   sO    ({&[""S!!#+NN +6!r%   Fr   )rA   called
call_count	call_argsr   call_args_listr   r   r   side_effect_mock_childrenr   r   r   r   r   r   r   r   r^   _mock_delegate)rh   rA   rX   r   r   r   r   r   r   r   r   s   ``         r&   r~   r~      s    GL8378=65 GNGG&[G$;G"G,,G**G!00G!3G&=G#/G-G#G)G 1G!3GG!Dr%   c           	         ^  [         R                  R                  T l        ST l        S T l        [        5       T l        U 4S jnS H  n[        T U[        X5      5        M     g )Nr   c                <   > [        TR                  U 5      " U0 UD6$ r9   )r.   rA   )attrrV   rW   rA   s      r&   wrapper"_setup_async_mock.<locals>.wrapper"  s    tyy$'888r%   )assert_awaitedassert_awaited_onceassert_awaited_withassert_awaited_once_withassert_any_awaitassert_has_awaitsassert_not_awaited)	asyncio
coroutines_is_coroutineawait_count
await_argsr   await_args_listrg   r   )rA   r   ri   s   `  r&   r   r     sT     ++99DDDO$;D
9,	 	i!<=,r%   c                     SU SS -  U :H  $ )N__%s__   r   r   s    r&   	_is_magicr   4  s    d1Rj D((r%   c                   &    \ rS rSrS rS rS rSrg)_SentinelObjecti8  c                     Xl         g r9   r   rU   r   s     r&   rF   _SentinelObject.__init__:  s    	r%   c                      SU R                   -  $ Nzsentinel.%sr   rU   s    r&   __repr___SentinelObject.__repr__=      tyy((r%   c                      SU R                   -  $ r   r   r   s    r&   
__reduce___SentinelObject.__reduce__@  r   r%   r   N)r    r!   r"   r#   rF   r   r   r$   r   r%   r&   r   r   8  s    ))r%   r   c                   &    \ rS rSrS rS rS rSrg)	_SentineliD  c                     0 U l         g r9   
_sentinelsr   s    r&   rF   _Sentinel.__init__F  s	    r%   c                 d    US:X  a  [         eU R                  R                  U[        U5      5      $ )N	__bases__)rJ   r   
setdefaultr   r   s     r&   __getattr___Sentinel.__getattr__I  s,    ;  ))$0EFFr%   c                     g)Nr   r   r   s    r&   r   _Sentinel.__reduce__O  s    r%   r   N)r    r!   r"   r#   rF   r   r   r$   r   r%   r&   r   r   D  s    Gr%   r   >   
_mock_namer   _mock_parentr   _mock_new_name_mock_new_parent_mock_side_effect_mock_return_valuec                 d    [         R                  U 5        SU -   nX4S jnX4S jn[        X#5      $ )N_mock_c                 L    U R                   nUc  [        X5      $ [        X15      $ r9   )r   r.   )rU   r   	_the_namerX   s       r&   _get"_delegating_property.<locals>._getd  s(    !!;4++s!!r%   c                 X    U R                   nUc  XR                  U'   g [        XBU5        g r9   )r   rr   rg   )rU   valuer   r   rX   s        r&   _set"_delegating_property.<locals>._seti  s(    !!;',MM)$Cu%r%   )_allowed_namesaddproperty)r   r   r   r   s       r&   _delegating_propertyr   a  s8    t4I "
  $ & Dr%   c                        \ rS rSrS rS rSrg)r   it  c                     [        U[        5      (       d  [        R                  X5      $ [        U5      n[        U 5      nX#:  a  g[	        SX2-
  S-   5       H  nXXB-    nXQ:X  d  M    g   g)NFr      T)r,   rm   __contains__lenrange)rU   r   	len_valuelen_selfisub_lists         r&   r   _CallList.__contains__v  sn    %&&$$T11J	t9q(.23Aak*H  4 r%   c                 @    [         R                  " [        U 5      5      $ r9   )pprintpformatrm   r   s    r&   r   _CallList.__repr__  s    ~~d4j))r%   r   N)r    r!   r"   r#   r   r   r$   r   r%   r&   r   r   t  s    *r%   r   c                 8   [        U5      n[        U5      (       d  gUR                  (       d+  UR                  (       d  UR                  c  UR
                  b  gU nUb  XAL a  gUR
                  nUb  M  U(       a  Xl        X1l        U(       a  Xl        X!l        g)NFT)rC   r+   r   r   r   r   )parentr   r   new_name_parents        r&   _check_and_set_parentr    s    % EU##			U11				'				+G

 ** 
 !''#r%   c                        \ rS rSrS rS rSrg)	_MockIteri  c                 $    [        U5      U l        g r9   )iterr2   )rU   r2   s     r&   rF   _MockIter.__init__  s    9r%   c                 ,    [        U R                  5      $ r9   )nextr2   r   s    r&   __next___MockIter.__next__  s    DHH~r%   r1   N)r    r!   r"   r#   rF   r  r$   r   r%   r&   r  r    s    r%   r  c                   "    \ rS rSr\rSrS rSrg)Basei  Nc                    g r9   r   rU   rV   rW   s      r&   rF   Base.__init__  s    r%   r   )	r    r!   r"   r#   r   r   r   rF   r$   r   r%   r&   r  r    s     r%   r  c                      \ rS rSr\" 5       r   S-S jr   S-S jrS rS.S jr	  S/S jr
S	 rS
 rSr\" \\\5      r\S 5       r\" S5      r\" S5      r\" S5      r\" S5      r\" S5      rS rS r\" \\5      rS0SSS.S\S\4S jjjrS rS rS rS rS r S r!S r"S r#S1S  jr$S! r%S" r&S# r'S$ r(S% r)S& r*S' r+S.S( jr,S) r-S* r.S+ r/S,r0g)2r   i  NFc                    U 4n[        U [        5      (       d&  U=(       d    UnUb  [        U5      (       a  [        U 4n[        U R                  USU R
                  05      n[        [        U 5      R                  U5      nU$ )Nrc   )	r:   AsyncMockMixinr3   r;   r    rc   _safe_superr   __new__)clsspecr   r   spec_setr	  _spec_state	_new_name_new_parent_spec_as_instance	_eat_selfunsaferW   basesspec_argnewr`   s                    r&   r  NonCallableMock.__new__  ss     #~..'4H#h(?(?'-3<<CKK(@A4<<SAr%   c                    Uc  UnU R                   nX]S'   X=S'   X}S'   XS'   SUS'   Ub  UnSnU
c  US Ln
U R                  XX5        0 US'   X-S	'   S US
'   SUS'   S US'   SUS'   [        5       US'   [        5       US'   [        5       US'   XS'   U(       a  U R                  " S0 UD6  [	        [
        U 5      R                  XX4UU5        g )Nr   r   r   r   F_mock_sealedTr   _mock_wrapsr   _mock_called_mock_call_argsr   _mock_call_count_mock_call_args_list_mock_mock_callsr   _mock_unsafer   )rr   _mock_add_specr   configure_mockr  r   rF   )rU   r!  r   r   r"  r	  r#  r$  r%  r&  r'  r(  rW   rr   s                 r&   rF   NonCallableMock.__init__  s   
  K==#) !%%.!"'2#$#( DHd*ID,=I%'!""'%)!"#( &*"#'(#$+4;'('0{#$#,; #) )&)OT*33	
r%   c                 j    [        U5      nS Ul        S Ul        SUl        S Ul        [        XU5        g N )rC   r   r   r   r   rg   )rU   rA   ri   
inner_mocks       r&   attach_mockNonCallableMock.attach_mock  s8    
 #4(
"&
&*
# "
$(
!&r%   c                 &    U R                  X5        g r9   )r6  rU   r!  r"  s      r&   mock_add_specNonCallableMock.mock_add_spec  s     	D+r%   c                 "   [        U5      (       a  [        SU< S35      eS nS n/ nUb  [        U5      (       d  [        U[        5      (       a  UnO[	        U5      n[        UX45      nU=(       a    US   n[        U5      n	U	 HV  n
[        R                  " XS 5      nUn [        R                  " U5      n[        U5      (       d  ME  UR                  U
5        MX     U	nU R                  nX]S'   X-S'   XmS'   XS'   X}S'   g ! [         a     NVf = f)	Nz#Cannot spec a Mock object. [object=]r   _spec_class	_spec_set_spec_signature_mock_methods_spec_asyncs)r+   r   ro   r,   r;   rP   dirr/   getattr_staticunwraprL   r   appendrr   )rU   r!  r"  r&  r'  rE  rG  rI  res	spec_listr   static_attrunwrapped_attrrr   s                 r&   r6  NonCallableMock._mock_add_spec  s   T"""%HPQ#RSSHTNN$%%""4j'(9FC!nc!fOD	I!%44TF!,%,^^N%CN '~66 ''- " D=="- (&5"#$(!#/  " s   !D
DDc                     U R                   nU R                  b  U R                  R                  nU[        L a#  U R                  c  U R                  U SS9nXl        U$ )N()r%  r$  )r   r   r   r   r/  _get_child_mock)rU   r   s     r&   __get_return_value"NonCallableMock.__get_return_value;  sc    %%*%%22C'>d..6&& D ' C !$
r%   c                 f    U R                   b  XR                   l        g Xl        [        XS S5        g )NrT  )r   r   r   r  )rU   r   s     r&   __set_return_value"NonCallableMock.__set_return_valueH  s,    */4,&+#!$tT:r%   z1The value to be returned when the mock is called.c                 J    U R                   c  [        U 5      $ U R                   $ r9   )rE  r;   r   s    r&   	__class__NonCallableMock.__class__T  s$    #:r%   r   r   r   r   r   c                     U R                   nUc  U R                  $ UR                  nUbF  [        U5      (       d6  [	        U[
        5      (       d!  [        U5      (       d  [        U5      nX!l        U$ r9   )r   r   r   callabler,   r  r>   )rU   	delegatedsfs      r&   __get_side_effect!NonCallableMock.__get_side_effecta  sb    ''	)))""N8B<<"2y11-:K:K2B$&!	r%   c                 R    [        U5      nU R                  nUc  Xl        g Xl        g r9   )	_try_iterr   r   r   )rU   r   ra  s      r&   __set_side_effect!NonCallableMock.__set_side_effectl  s)    % ''	%*"$)!r%   r   r   r   r   c                .   Uc  / n[        U 5      U;   a  g UR                  [        U 5      5        SU l        S U l        SU l        [        5       U l        [        5       U l        [        5       U l        U(       a  [        U l
        U(       a  S U l        U R                  R                  5        H3  n[        U[        5      (       d	  U[         L a  M#  UR#                  XUS9  M5     U R                  n[%        U5      (       a  XPLa  UR#                  U5        g g g )NFr   ri  )idrM  r   r   r   r   r   r   r   r   r   r   r   valuesr,   
_SpecState_deletedr   r+   )rU   visitedr   r   childr   s         r&   r   NonCallableMock.reset_mockw  s     ?Gd8wr$x #+'k%K&-D#%)D"((//1E%,,0AW[Y 2
 %%S!!coNN7# '6!r%   c                    [        UR                  5       S S9 HH  u  p#UR                  S5      nUR                  5       nU nU H  n[	        Xg5      nM     [        XeU5        MJ     g )Nc                 *    U S   R                  S5      $ )Nr   .)count)entrys    r&   <lambda>0NonCallableMock.configure_mock.<locals>.<lambda>  s    q1Dr%   )keyrt  )sorteditemssplitpopr.   rg   )rU   rW   argvalrV   finalr2   rv  s           r&   r7  NonCallableMock.configure_mock  sb     v||~ $E	FHC
 99S>DHHJECc) C$Fr%   c                 6   US;   a  [        U5      eU R                  b(  XR                  ;  d
  U[        ;   a  [        SU-  5      eO[        U5      (       a  [        U5      eU R                  (       dS  U R                  (       a  XR                  ;  a3  UR                  S5      (       d
  U[        ;   a  [        U< SU< S35      e[        R                     U R                  R                  U5      nU[        L a  [        U5      eUcE  S nU R                  b  [        U R                  U5      nU R                  XX1U S9nX R                  U'   Oe[        U[         5      (       aP   [#        UR$                  UR&                  UR(                  UR*                  UR,                  5      nX R                  U'   S S S 5        U$ ! [.         a?    U R0                  S   =(       d    U n[/        SU< S	U< S
U < SUR$                  < S3	5      ef = f! , (       d  f       W$ = f)N>   r5  rH  zMock object has no attribute %r)assertassretasertaseertassrtz6 is not a valid assertion. Use a spec for the mock if z is meant to be an attribute.)r	  r   r   r$  r%  r   Cannot autospec attr  from target , as it has already been mocked out. [target=, attr=rD  )rJ   rH  _all_magicsr   r5  
startswith_ATTRIB_DENY_LISTr   _lockr   rs   rn  r/  r.   rV  r,   rm  r	   r!  r"  r`   r	  r   r   rr   )rU   r   r   r   target_names        r&   r   NonCallableMock.__getattr__  s   44 &&+---1D$%F%MNN 2Et__ &&  $*<*<L^L^@^OPPTX\mTm$h ''+h.KMN N ""((,,T2F!$T**##/ $D$4$4d;E--% $ .  .4##D)FJ//
D,V__foov{{F .4##D); #>  ( D"&--"="EK*/x}&/ *##'('&++CD DD/ #"> s'   BH	$AF=%H	=A	HH		
Hc                    U R                   /nU R                  nU nSnUS/:X  a  SnUbE  UnUR                  UR                   U-   5        SnUR                   S:X  a  SnUR                  nUb  ME  [        [	        U5      5      nUR
                  =(       d    Sn[        U5      S:  a  US   S;  a  US-  nXQS'   SR                  U5      $ )Nrt  rT  r;  rA   r   )rT  z().r   )r   r   rM  rm   reversedr   r   join)rU   
_name_listr  lastdot_firsts         r&   _extract_mock_name"NonCallableMock._extract_mock_name  s    ))*
''$C!Dg44s:;C%%-..G ! (:./
*Fz?Q!}M1#1wwz""r%   c                    U R                  5       nSnUS;  a  SU-  nSnU R                  b-  SnU R                  (       a  SnX0R                  R                  -  nS[	        U 5      R                  < U< U< S[        U 5      < S3$ )	Nr;  )rA   zmock.z name=%rz spec=%rz spec_set=%r<z id='z'>)r  rE  rF  r    r;   rk  )rU   r   name_stringspec_strings       r&   r   NonCallableMock.__repr__  s    &&((($t+K'$K~~,%(8(8(A(AAKJtH	
 	
r%   c                 L   [         (       d  [        R                  U 5      $ U R                  =(       d    / n[	        [        U 5      5      n[        U R                  5      nU R                  R                  5        VVs/ s H  u  pEU[        Ld  M  UPM     nnnU Vs/ s H  owR                  S5      (       a  M  UPM     nnU Vs/ s H,  owR                  S5      (       a  [        U5      (       d  M*  UPM.     nn[        [        X-   U-   U-   5      5      $ s  snnf s  snf s  snf )Nr(   )r   object__dir__rH  rJ  r;   rm   rr   r   r{  rn  r  r   rz  set)rU   extras	from_type	from_dictm_namem_valuefrom_child_mockses           r&   r  NonCallableMock.__dir__  s    z>>$''##)rT
O	'	*.*=*=*C*C*E(*Evh& *E 	 ( !*C	1c1BQ		C ) #	1c1B1Bq\ 		 #c&,y8;KKLMM( D#s$   <DDD9D)D!2D!c                   ^ ^ U[         ;   a  [        R                  T X5      $ T R                  (       a;  T R                  b.  UT R                  ;  a  UT R
                  ;  a  [        SU-  5      eU[        ;   a  SU-  n[        U5      eU[        ;   a  T R                  b  UT R                  ;  a  [        SU-  5      e[        U5      (       d)  [        [        T 5      U[        X5      5        UmUU 4S jnOb[        T US U5        [        [        T 5      X5        UT R                  U'   O/US:X  a  UT l        g [        T X!U5      (       a  UT R                  U'   T R                   (       a4  [#        T U5      (       d#  T R%                  5        SU 3n[        SU 35      e['        U[(        5      (       a  UT R
                  U'   g [        R                  T X5      $ )Nz!Mock object has no attribute '%s'z.Attempting to set unsupported magic method %r.c                     > T" T/U Q70 UD6$ r9   r   )rV   kwr   rU   s     r&   rw  -NonCallableMock.__setattr__.<locals>.<lambda>1  s    HT,GD,GB,Gr%   r]  rt  zCannot set )r   r  __setattr__rF  rH  rr   rJ   _unsupported_magicsr  r+   rg   r;   _get_methodr  r   rE  r.  r-   r  r,   r   )rU   r   r   msg	mock_namer   s   `    @r&   r  NonCallableMock.__setattr__  s   >!%%dD88nn!3!3!?***% !Dt!KLL((BTIC %%[ !!-$d>P>P2P$%H4%OPP$U++T
D+d*BC G &dE4>T
D0,1##D)[ $D$T5==,1##D)WT4%8%82245Qtf=I ;yk!:;;e\**"'DMM$!!$44r%   c                    U[         ;   a>  U[        U 5      R                  ;   a%  [        [        U 5      U5        XR                  ;  a  g U R                  R                  U[        5      nXR                  ;   a   [        [        U 5      R                  U5        OU[        L a  [        U5      eU[        La  U R                  U	 [        U R                  U'   g r9   )r  r;   rr   delattrr   rs   _missingr  r   __delattr__rn  rJ   )rU   r   r2   s      r&   r  NonCallableMock.__delattr__I  s    ;44:+>+>#>DJ%==( !!%%dH5== .::4@H_ &&h##D)$,D!r%   c                 D    U R                   =(       d    Sn[        X1U5      $ r@   )r   _format_call_signaturerU   rV   rW   r   s       r&   _format_mock_call_signature+NonCallableMock._format_mock_call_signature[  s    (&%d&99r%   c                 j    SnU R                  X5      nU R                  nU R                   " U6 nXCXW4-  $ )Nz0expected %s not found.
Expected: %s
  Actual: %s)r  r   )rU   rV   rW   actionmessageexpected_stringr   actual_strings           r&   _format_mock_failure_message,NonCallableMock._format_mock_failure_message`  s>    F::4HNN	88)D/AAAr%   c                 :   U(       d  U R                   $ S nUR                  SS5      R                  S5      nU R                  nU HR  nUR	                  U5      nUb  [        U[        5      (       a    U$ [        U5      nUR                  nUR                   nMT     U$ )NrT  r;  rt  )rG  replacer|  r   rs   r,   rm  rC   )rU   r   rX   nameschildrenrp  s         r&   _get_call_signature_from_name-NonCallableMock._get_call_signature_from_nameh  s     '''T2&,,S1&&DLL&E}
5* = = 
	 &e, //++  
r%   c                    [        U[        5      (       a$  [        U5      S:  a  U R                  US   5      nOU R                  nUbN  [        U5      S:X  a  SnUu  pEOUu  p4n UR
                  " U0 UD6n[        X6R                  UR                  5      $ U$ ! [         a  nUR                  S 5      s S nA$ S nAff = f)Nr   r   r;  )r,   rn   r   r  rG  rT   r   rV   rW   	TypeErrorwith_traceback)rU   _callrX   r   rV   rW   
bound_callr  s           r&   _call_matcherNonCallableMock._call_matcher  s     eU##E
Q44U1X>C&&C?5zQ$f%*"F. XXt6v6
D//:3D3DEE L  .''--.s   %1B 
B>#B93B>9B>c                     U R                   S:w  aD  SU R                  =(       d    S< SU R                   < SU R                  5       < 3n[        U5      eg )Nr   
Expected 'rA   z"' to not have been called. Called  times.r   r   _calls_reprAssertionErrorrU   r  s     r&   r   !NonCallableMock.assert_not_called  sK     ??aoo//oo&&(*C !%%  r%   c                 j    U R                   S:X  a#  SU R                  =(       d    S-  n[        U5      eg )Nr   z"Expected '%s' to have been called.rA   )r   r   r  r  s     r&   r   NonCallableMock.assert_called  s6     ??a7OO-v/C %%  r%   c                     U R                   S:X  dD  SU R                  =(       d    S< SU R                   < SU R                  5       < 3n[        U5      eg )Nr   r  rA   z#' to have been called once. Called r  r  r  s     r&   r   "NonCallableMock.assert_called_once  sK     !#oo//oo&&(*C !%% $r%   c                P  ^ ^^ T R                   c)  T R                  TT5      nSnSU< SU< 3n[        U5      eUUU 4S jnT R                  [	        TT4SS95      nT R                  T R                   5      nXC:w  a*  [        U[        5      (       a  UOS n[        U" 5       5      Ueg )Nznot called.z#expected call not found.
Expected: 
  Actual: c                  ,   > TR                  TT5      n U $ r9   r  r  rV   rW   rU   s    r&   _error_message:NonCallableMock.assert_called_with.<locals>._error_message  s    33D&ACJr%   Ttwo)r   r  r  r  _Callr,   	Exception)rU   rV   rW   expectedactualerror_messager  causes   ```     r&   r   "NonCallableMock.assert_called_with  s    
 >>!77fEH"F)M //	 %%eT6N&EF##DNN3 *8Y ? ?HTE !12= r%   c                    U R                   S:X  dD  SU R                  =(       d    S< SU R                   < SU R                  5       < 3n[        U5      eU R                  " U0 UD6$ )Nr   r  rA   z' to be called once. Called r  )r   r   r  r  r   rU   rV   rW   r  s       r&   r   'NonCallableMock.assert_called_once_with  s\     !#oo//oo&&(*C !%%&&777r%   c           	        ^  U Vs/ s H  nT R                  U5      PM     nn[        S U 5       S 5      n[        U 4S jT R                   5       5      nU(       du  XF;  ao  Uc  SnO9SR	                  U Vs/ s H  n[        U[        5      (       a  UOS PM     sn5      n[        U S[        U5       S[        T R                  5       35      Ueg [        U5      n/ n	U H  n
 UR                  U
5        M     U	(       a4  [        T R                  =(       d    S< S[        U	5      < S	U< S
35      Ueg s  snf s  snf ! [         a    U	R                  U
5         M}  f = f)Nc              3   T   #    U  H  n[        U[        5      (       d  M  Uv   M      g 7fr9   r,   r  .0r  s     r&   	<genexpr>3NonCallableMock.assert_has_calls.<locals>.<genexpr>       FAZ9-Eaa   (	(c              3   F   >#    U  H  nTR                  U5      v   M     g 7fr9   r  r  crU   s     r&   r  r    s     M_d0033_   !zCalls not found.z+Error processing expected calls.
Errors: {}
Expected: r  rA   z does not contain all of z in its call list, found z instead)r  r  r   r   formatr,   r  r  r   rm   removerL   rM  r   rn   )rU   calls	any_orderr  r  r  	all_callsproblemr  	not_foundkalls   `          r&   r    NonCallableMock.assert_has_calls  ss    4995aD&&q)59FFMMT__MM	(=0G ,-3V-5$7-5 *4Ay)A)AAt$K-5$7.8  %i  !!*5!1 2 3!!*4??!; <> 	
 O		D'  & 
  &*oo&?&?&+I&6	C 	 7 :$7  '  &'s   D56#D:$D??EEc                4   U R                  [        X4SS95      n[        U[        5      (       a  UOS nU R                   Vs/ s H  oPR                  U5      PM     nnU(       d  U[        U5      ;  a   U R                  X5      n[        SU-  5      Ueg s  snf )NTr  z%s call not found)r  r  r,   r  r   _AnyComparerr  r  rU   rV   rW   r  r  r  r  r  s           r&   r   NonCallableMock.assert_any_call  s     %%eTN&EF&x;;151D1DE1DA$$Q'1DEHL$88">>tLO #o5 9 F   Bc                   U R                   (       a.  SU;   a  SUS    3OSnU R                  5       U-   n[        U5      eUR                  S5      nX@R                  S   ;   a  [        S0 UD6$ [        U 5      n[        U[        5      (       a  U[        ;   a  [
        nO[        U[        5      (       a8  U[        ;   d   U R                  (       a  X@R                  ;   a  [        nOc[
        nO\[        U[        5      (       d8  [        U[        5      (       a  [        nO+[        U[        5      (       a  [         nOUR"                  S   nW" S0 UD6$ )Nr   rt  rT  r$  rI  r   r   )r.  r  rJ   rs   rr   r
   r;   r:   r   _async_method_magicsr  _all_sync_magicsrH  CallableMixinr   r   r   rq   )rU   r  ri   r  r$  _typeklasss          r&   rV  NonCallableMock._get_child_mock  s    ,2bL!BvJ<(dI//1I=I ++FF;'	n55?r?"T
eY''I9M,ME~..--&&98J8J+J!!E=11%!566!E?33MM!$E{r{r%   c                 X    U R                   (       d  gS[        U R                   5       S3$ )Nr;  z
Calls: rt  )r   r   r   s    r&   r  NonCallableMock._calls_reprE  s'     9T__56a88r%   )
r   r   rE  r   r   r   r   r   r   r   )NNNNNNr;  NFNFFFFr9   )r   )1r    r!   r"   r#   r   r  r  rF   r=  rA  r6  "_NonCallableMock__get_return_value"_NonCallableMock__set_return_value"_NonCallableMock__return_value_docr   r   r]  r   r   r   r   r   r   !_NonCallableMock__get_side_effect!_NonCallableMock__set_side_effectr   boolr   r7  r   r  r   r  r  r  r  r  r  r  r   r   r   r   r   r   r   rV  r  r$   r   r%   r&   r   r     s]    GE =AEI<A( >BEI<A*
Z', @E!&%0N
; M.0B.0L    
 "(+F%l3J$[1I)*:;N%l3J	* ,.?@K$(-',$!%$ $$@%,-`#6
*N$'5T-$:
BB6&&&>,	8*Z #L
9r%   r   assert_c                       \ rS rSrS rSrg)r  iZ  c           	          U  H5  n[        [        X5       VVs/ s H	  u  p4X4:H  PM     snn5      (       d  M5    g   gs  snnf )NTF)allzip)rU   itemr  r  r  s        r&   r   _AnyComparer.__contains___  sN    E(+D(8(8$H "(8     s   =r   N)r    r!   r"   r#   r   r$   r   r%   r&   r  r  Z  s    
r%   r  c                     U c  U $ [        U 5      (       a  U $ [        U 5      (       a  U $  [        U 5      $ ! [         a    U s $ f = fr9   )r>   rk   r  r  r1   s    r&   rf  rf  j  sO    
{
S
~~
Cy  
s   
6 AAc            
       P    \ rS rSrSS\SSSSSSS4
S jrS rS rS rS r	S	 r
S
rg)r  iy  Nr;  c           
      v    X0R                   S'   [        [        U 5      R                  " XXVUXU
40 UD6  X l        g )Nr   )rr   r  r  rF   r   )rU   r!  r   r   r   r   r"  r	  r#  r$  r%  rW   s               r&   rF   CallableMixin.__init__{  sB     /;*+M4(11K	
39	

 'r%   c                    g r9   r   r  s      r&   r]   CallableMixin._mock_check_sig  s    r%   c                n    U R                   " U0 UD6  U R                  " U0 UD6  U R                  " U0 UD6$ r9   )r]   _increment_mock_call
_mock_callr  s      r&   rI   CallableMixin.__call__  s>     	d-f-!!4262///r%   c                &    U R                   " U0 UD6$ r9   )_execute_mock_callr  s      r&   r0  CallableMixin._mock_call  s    &&777r%   c                   SU l         U =R                  S-  sl        [        X4SS9nX0l        U R                  R                  U5        U R                  S LnU R                  nU R                  nUS:H  nU R                  R                  [        SX45      5        U R                  nUb  U(       aM  UR                  R                  [        XQU45      5        UR                  S LnU(       a  UR                  S-   U-   n[        XaU45      n	UR                  R                  U	5        UR                  (       a-  U(       a  Sn
OSn
UR                  S:H  nUR                  U
-   U-   nUR                  nUb  M  g g )NTr   r  rT  r;  rt  )r   r   r  r   r   rM  r   r   r   r   r   r   )rU   rV   rW   r  do_method_callsmethod_call_namemock_call_name	is_a_callr%  this_mock_callr  s              r&   r/  "CallableMixin._increment_mock_call  se   1
 tn$/""5) ++47?? ,,"d*	ub$%789 ++% ((//7Gv6V0WX"-":":$"F"'2'='='CFV'V$ #N&#ABN"")).9))CC'66$>	!,!;!;c!AN!R &66K- %r%   c                   U R                   nUbS  [        U5      (       a  Ue[        U5      (       d  [        U5      n[        U5      (       a  UeOU" U0 UD6nU[        La  U$ U R
                  [        La  U R                  $ U R                  (       a)  U R                  R                  [        La  U R                  $ U R                  b  U R                  " U0 UD6$ U R                  $ r9   )	r   r>   rk   r  r   r   r   r   r/  )rU   rV   rW   effectr   s        r&   r3   CallableMixin._execute_mock_call  s     !!V$$v&&f (( L )  00W$""'1$$$4#6#6#C#C7#R$$$'##T4V44   r%   )r   r   r   )r    r!   r"   r#   r   rF   r]   rI   r0  r/  r3  r$   r   r%   r&   r  r  y  s8     d$d!RT	'
08,7\!r%   r  c                       \ rS rSrSrg)r   i  r   Nr   r   r%   r&   r   r     r'   r%   r   c                 B    SnU H  nX ;   d  M
  [        U< S35      e   g )N)	autospect	auto_specset_specz5 might be a typo; use unsafe=True if this is intended)RuntimeError)kwargs_to_checktypostypos      r&   _check_spec_arg_typosrH  !  s/    2E"(OP  r%   c                       \ rS rSrSr/ rSS.S jrS rS rS r	\
R                  S	 5       rS
 rS rS rS rS rS rS rSrg)_patchi*  NFr(  c
                   Ub"  U[         La  [        S5      eUb  [        S5      eU
(       d  [        U	5        [        U5      (       a  [	        SU< SU< S35      e[        U5      (       a  [	        SU< SU< S35      eXl        X l        X0l        Xl        X@l	        XPl
        SU l        X`l        Xpl        Xl        / U l        SU l        g )Nz,Cannot use 'new' and 'new_callable' togetherz1Cannot use 'autospec' and 'new_callable' togetherzCannot spec attr z0 as the spec has already been mocked out. [spec=rD  z? as the spec_set target has already been mocked out. [spec_set=F)r   rL   rH  r+   r   getterri   r+  new_callabler!  create	has_localr"  autospecrW   additional_patchers
is_started)rU   rM  ri   r+  r!  rO  r"  rQ  rN  rW   r(  s              r&   rF   _patch.__init__/  s     #'! B  # G  !&)T"""#I= 166:XQ@A A X&&"#I= 1AAIAOP P "(	  #% r%   c                 j   [        U R                  U R                  U R                  U R                  U R
                  U R                  U R                  U R                  U R                  5	      nU R                  Ul
        U R                   Vs/ s H  o"R                  5       PM     snUl        U$ s  snf r9   )rJ  rM  ri   r+  r!  rO  r"  rQ  rN  rW   attribute_namerR  copy)rU   patcherps      r&   rW  _patch.copyU  s    KK499KKMM4,,dkk

 "&!4!4"66'
6FFH6'
# '
s   B0c                     [        U[        5      (       a  U R                  U5      $ [        R                  " U5      (       a  U R                  U5      $ U R                  U5      $ r9   r,   r;   decorate_classr/   r   decorate_async_callabledecorate_callable)rU   r6   s     r&   rI   _patch.__call__b  sS    dD!!&&t,,&&t,,//55%%d++r%   c                     [        U5       Hi  nUR                  [        R                  5      (       d  M)  [	        X5      n[        US5      (       d  MG  U R                  5       n[        XU" U5      5        Mk     U$ NrI   )rJ  r  r   TEST_PREFIXr.   r-   rW  rg   )rU   r  r   
attr_valuerX  s        r&   r]  _patch.decorate_classj  sc    JD??5#4#455 -J:z22iikGE!45  r%   c              #   h  #    / n[         R                  " 5        nUR                   HZ  nUR                  U5      nUR                  b  UR                  U5        M4  UR                  [        L d  MI  UR                  U5        M\     U[        U5      -  nX#4v   S S S 5        g ! , (       d  f       g = f7fr9   )

contextlib	ExitStack	patchingsenter_contextrV  updater+  r   rM  rn   )rU   patchedrV   keywargs
extra_args
exit_stackpatchingr~  s           r&   decoration_helper_patch.decoration_helperx  s     
!!#z#-- ..x8**6OOC(\\W,%%c* . E*%%D"" $##s#   B2AB!0(B!	B2!
B/+B2c                    ^ ^^ [        TS5      (       a  TR                  R                  T 5        T$ [        T5      UUU 4S j5       mT /Tl        T$ )Nri  c                  t   > TR                  TU U5       u  p#T" U0 UD6sS S S 5        $ ! , (       d  f       g = fr9   rq  rV   rm  newargsnewkeywargsr6   rl  rU   s       r&   rl  )_patch.decorate_callable.<locals>.patched  s;    ''(,(025KgW442 2 2s   
)
7r-   ri  rM  r   rU   r6   rl  s   ``@r&   r_  _patch.decorate_callable  sN    4%%NN!!$'K	t	5 
	5 "Fr%   c                    ^ ^^ [        TS5      (       a  TR                  R                  T 5        T$ [        T5      UUU 4S j5       mT /Tl        T$ )Nri  c                     >#    TR                  TU U5       u  p#T" U0 UD6I S h  vN sS S S 5        $  N! , (       d  f       g = f7fr9   ru  rv  s       r&   rl  /_patch.decorate_async_callable.<locals>.patched  sJ     ''(,(025Kg!7:k::2 2 ;2 2s$   A535
A5
AArz  r{  s   ``@r&   r^  _patch.decorate_async_callable  sN    4%%NN!!$'K	t	; 
	; "Fr%   c                 d   U R                  5       nU R                  n[        nSn UR                  U   nSnU[        ;   a  [        U[        5      (       a  SU l
        U R                  (       d  U[        L a  [	        U< SU< 35      eX44$ ! [        [
        4 a    [        X[        5      n Nwf = f)NFTz does not have the attribute )rM  ri   r   rr   rJ   KeyErrorr.   	_builtinsr,   r   rO  )rU   targetr   r   locals        r&   get_original_patch.get_original  s    ~~	t,H E9FJ!?!?DK{{x72 7=tD   ) 	6vW5H	6s   B  B/.B/c                 J	   U R                   (       a  [        S5      eU R                  U R                  U R                  p2nU R
                  U R                  pTU R                  nU R                  5       U l	        USL a  S nUSL a  S nUSL a  S nUb  Ub  [        S5      eUc  Ub  US;  a  [        S5      eU R                  5       u  pxU[        L Ga  UGc  Sn	USL a  UnUSL a  UnS nOUb
  USL a  UnS nOUSL a  UnUc  Ub+  U[        L a  [        S5      e[        U[        5      (       a  Sn	Ub  Un
OUc  [        U5      (       a  [         n
OeUc  UbY  UnUb  Un[#        U5      (       a  SU;  nO[%        U5      (       + n[        U5      (       a  [         n
OU(       a  [&        n
O[(        n
O[(        n
0 nUb  X-S	'   Ub  X=S
'   [        U
[        5      (       a5  [+        U
[,        5      (       a   U R.                  (       a  U R.                  US'   UR1                  U5        U
" S0 UD6nU	(       a^  [3        U5      (       aN  UnUb  Un[#        U5      (       d  [5        U5      (       d  [&        n
UR7                  S5        U
" SUSS.UD6Ul        GOUb  U[        La  [        S5      eU[        L a  [        S5      e[;        U5      nUSL a  Un[3        U R                  5      (       a,  [=        SU R.                  < SU R                  < SU< S35      e[3        U5      (       aQ  [?        U R                  SU R                  5      n[=        SU R.                  < SU< SU R                  < SU< S3	5      e[A        U4UU R.                  S.UD6nOU(       a  [        S5      eUnXpl!        Xl"        [F        RH                  " 5       U l%        SU l          [M        U R                  U R.                  U5        U RN                  bz  0 nU R                  [        L a  UUU RN                  '   U RP                   HD  nU RJ                  RS                  U5      nUR                  [        L d  M3  UR1                  U5        MF     U$ U$ !   U RT                  " [V        RX                  " 5       6 (       d  e  g = f)NzPatch is already startedFzCan't specify spec and autospec)TNz6Can't provide explicit spec_set *and* spec or autospecTz!Can't use 'spec' with create=TruerI   r!  r"  r   rT  rU  zBautospec creates the mock for you. Can't specify autospec and new.z%Can't use 'autospec' with create=Truer  z: as the patch target has already been mocked out. [target=r  rD  r    r  r  )r"  _namez.Can't pass kwargs to a mock we aren't creatingr   )-rS  rD  r+  r!  r"  rQ  rW   rN  rM  r  r  r  r   r,   r;   r3   r
   ro   r`  r   r   r:   r   ri   rk  r+   ru   r}  r   r   r   r.   r	   temp_originalis_localrg  rh  _exit_stackrg   rV  rR  rj  __exit__sysexc_info)rU   r+  r!  r"  rQ  rW   rN  r   r  inheritKlass	this_specnot_callable_kwargsr  new_attrrn  rp  r~  s                      r&   	__enter___patch.__enter__  s   ??9::"hh		4==8==$++&((kkm 5=DuHuH 4=>>!5L(TUU++-'>h.Gt|t#'HD!t##HDT!#8#7w&#$GHHh--"G '$-"9"9!!X%9 	' (II&&#-Y#>L'/	':#:L ++%E!0E%E!G"&#&.
# 5$''5/22t~~"&..NN6""'"C,S11 !	' (I ++&y110EF##( $4SD $4+2$4 ! '!(  7" GHHH~H4# --&+DNN+= >#{{oWXLCD D !**%dkk:t{{K&+DNN+=]"o &#{{oWXLCD D
 "( BX(,B:@BC LMM%%//1	DKK:"".
88w&7:Jt223 $ 8 8H**88BC||w."))#. !9 "!J	==#,,.1 2s   BQ6 Q6 4Q6 6*R"c                 <   U R                   (       d  g U R                  (       a?  U R                  [        La,  [	        U R
                  U R                  U R                  5        O[        U R
                  U R                  5        U R                  (       d`  [        U R
                  U R                  5      (       a  U R                  S;   a+  [	        U R
                  U R                  U R                  5        U ?U ?U ?U R                  nU ?
SU l         UR                  " U6 $ )N)rc   r!   re   __annotations__rf   F)rS  r  r  r   rg   r  ri   r  rO  r-   r  r  )rU   r  ro  s      r&   r  _patch.__exit__[  s    ==T//w>DKK1C1CDDKK0;;T^^(L(L += = T^^T5G5GHMK%%
""H--r%   c                 \    U R                  5       nU R                  R                  U 5        U$ r9   )r  _active_patchesrM  rU   r   s     r&   start_patch.startt  s'    !##D)r%   c                      U R                   R                  U 5        U R                  S S S 5      $ ! [         a     g f = fr9   )r  r  rL   r  r   s    r&   stop_patch.stop{  sD    	  ''-
 }}T4..	  		s   0 
==)r  rR  ri   rQ  rO  rM  rP  r  rS  rW   r+  rN  r!  r"  r  r  )r    r!   r"   r#   rV  r  rF   rW  rI   r]  rg  contextmanagerrq  r_  r^  r  r  r  r  r  r$   r   r%   r&   rJ  rJ  *  sg    NO AF# L
, # #""0Xt.2/r%   rJ  c                      U R                  SS5      u  p[	        [
        R                  U 5      U4$ ! [        [        [        4 a    [        SU < 35      ef = f)Nrt  r   z,Need a valid target to patch. You supplied: )rsplitr  rL   rJ   r   pkgutilresolve_name)r  ri   s     r&   _get_targetr    sh    G"MM#q1 7''0);; z>2 G:6*EG 	GGs	   2 %ArK  c                n   ^  [        T 5      [        L a  [        T < S35      eU 4S jn
[        XX#UXVXyUS9
$ )Nz3 must be the actual object to be patched, not a strc                     > T $ r9   r   r  s   r&   rw  _patch_object.<locals>.<lambda>  s    Vr%   rK  )r;   strr  rJ  )r  ri   r+  r!  rO  r"  rQ  rN  r(  rW   rM  s   `          r&   _patch_objectr    sK    $ F|sjKL
 	
 F3fL r%   c                 x  ^  [        T 5      [        L a  [        [        R                  T 5      nOU 4S jnU(       d  [        S5      e[        UR                  5       5      nUS   u  p[        XyXX#XE0 5	      nXl	        USS   H5  u  p[        XyXX#XE0 5	      nXl	        UR                  R                  U5        M7     U$ )Nc                     > T $ r9   r   r  s   r&   rw  !_patch_multiple.<locals>.<lambda>  s    r%   z=Must supply at least one keyword argument with patch.multipler   r   )r;   r  r   r  r  rL   rm   r{  rJ  rV  rR  rM  )r  r!  rO  r"  rQ  rN  rW   rM  r{  ri   r+  rX  this_patchers   `            r&   _patch_multipler    s    , F|s--v6K
 	
  E1XNI3fG ')	s&B
 '0###**<8 $ Nr%   c                8    [        U 5      u  p[        XXUXEXhUS9
$ )NrK  )r  rJ  )r  r+  r!  rO  r"  rQ  rN  r(  rW   rM  ri   s              r&   r   r     s-    V $F+F3fL r%   c                   Z    \ rS rSrSS jrS rS rS rS rS r	S r
S	 rS
 rS rS rSrg)_patch_dicti0  c                     Xl         [        U5      U l        U R                  R                  U5        X0l        S U l        g r9   )in_dictdictrl  rk  clear	_original)rU   r  rl  r  rW   s        r&   rF   _patch_dict.__init__M  s0    6l6"
r%   c                     [        U[        5      (       a  U R                  U5      $ [        R                  " U5      (       a  U R                  U5      $ U R                  U5      $ r9   r\  )rU   fs     r&   rI   _patch_dict.__call__V  sS    a&&q))&&q))//22%%a((r%   c                 4   ^ ^ [        T5      UU 4S j5       nU$ )Nc                     > TR                  5          T" U 0 UD6TR                  5         $ ! TR                  5         f = fr9   r  _unpatch_dictrV   r  r  rU   s     r&   _inner-_patch_dict.decorate_callable.<locals>._inner_  s8    %$~"~""$""$s   + =r   rU   r  r  s   `` r&   r_  _patch_dict.decorate_callable^       	q	% 
	% r%   c                 4   ^ ^ [        T5      UU 4S j5       nU$ )Nc                     >#    TR                  5          T" U 0 UD6I S h  vN TR                  5         $  N! TR                  5         f = f7fr9   r  r  s     r&   r  3_patch_dict.decorate_async_callable.<locals>._innerk  sC     %^^+""$ ,""$s%   A7 57 A7 A		Ar  r  s   `` r&   r^  #_patch_dict.decorate_async_callablej  r  r%   c                 0   [        U5       H  n[        X5      nUR                  [        R                  5      (       d  M4  [        US5      (       d  MG  [        U R                  U R                  U R                  5      nU" U5      n[        XU5        M     U$ rb  )rJ  r.   r  r   rc  r-   r  r  rl  r  rg   )rU   r  r   rd  	decorator	decorateds         r&   r]  _patch_dict.decorate_classv  sq    JD -J 1 122Z00'dkk4::N	%j1	Y/  r%   c                 :    U R                  5         U R                  $ r9   )r  r  r   s    r&   r  _patch_dict.__enter__  s    ||r%   c                    U R                   n[        U R                  [        5      (       a%  [        R
                  " U R                  5      U l        U R                  nU R                  n UR                  5       nX@l	        U(       a  [        U5         UR                  U5        g ! [         a    0 nU H	  nX%   XE'   M      NHf = f! [         a    U H	  nX   X%'   M      g f = fr9   )rl  r,   r  r  r  r  r  rW  rJ   r  _clear_dictrk  )rU   rl  r  r  r   ry  s         r&   r  _patch_dict._patch_dict  s    dllC(("//=DL,,

	-||~H " 	+NN6"  	- H ' 		-  	+%{ 	+s$   *B% C %CCC"!C"c                     U R                   nU R                  n[        U5         UR                  U5        g ! [         a    U H	  nX#   X'   M      g f = fr9   )r  r  r  rk  rJ   )rU   r  r   ry  s       r&   r  _patch_dict._unpatch_dict  sO    ,,>>G	-NN8$ 	-'}  	-s   7 AAc                 >    U R                   b  U R                  5         gNF)r  r  )rU   rV   s     r&   r  _patch_dict.__exit__  s    >>% r%   c                 d    U R                  5       n[        R                  R                  U 5        U$ r9   )r  rJ  r  rM  r  s     r&   r  _patch_dict.start  s'    !%%d+r%   c                      [         R                  R                  U 5        U R	                  S S S 5      $ ! [         a     g f = fr9   )rJ  r  r  rL   r  r   s    r&   r  _patch_dict.stop  sD    	""))$/
 }}T4..	  		s   4 
A A)r  r  r  rl  N)r   F)r    r!   r"   r#   rF   rI   r_  r^  r]  r  r  r  r  r  r  r$   r   r%   r&   r  r  0  s9    :)		+8
-/r%   r  c                 r     U R                  5         g ! [         a    [        U 5      nU H  nX	 M      g f = fr9   )r  rJ   rm   )r  keysry  s      r&   r  r    s7     G}C s     66c                  d    [        [        R                  5       H  n U R                  5         M     g r9   )r  rJ  r  r  )r   s    r&   _patch_stopallr    s     &001

 2r%   testzlt le gt ge eq ne getitem setitem delitem len contains iter hash str sizeof enter exit divmod rdivmod neg pos abs invert complex int float index round trunc floor ceil bool next fspath aiter zDadd sub mul matmul truediv floordiv mod lshift rshift and xor or pow c              #   ,   #    U  H
  nS U-  v   M     g7f)zi%sNr   r  ns     r&   r  r    s     7&6519&6   c              #   ,   #    U  H
  nS U-  v   M     g7f)zr%sNr   r  s     r&   r  r    s     5$4q$4r  >   r  __get____set__r   
__delete__
__format__r   __missing____getstate____reversed____setstate____getformat____reduce_ex____getnewargs____subclasses____getinitargs____getnewargs_ex__c                     ^ U4S jnXl         U$ )Nc                   > T" U /UQ70 UD6$ r9   r   )rU   rV   r  r6   s      r&   method_get_method.<locals>.method  s    D&4&2&&r%   )r    )r   r6   r  s    ` r&   r  r    s    'OMr%   r   >   	__aexit__	__anext__
__aenter__	__aiter__>   __del__r  rF   r   __prepare__r  __instancecheck____subclasscheck__c                 ,    [         R                  U 5      $ r9   )r  __hash__r   s    r&   rw  rw    s    V__T2r%   c                 ,    [         R                  U 5      $ r9   )r  __str__r   s    r&   rw  rw     s    FNN40r%   c                 ,    [         R                  U 5      $ r9   )r  
__sizeof__r   s    r&   rw  rw  !  s    v006r%   c                 j    [        U 5      R                   SU R                  5        S[        U 5       3$ )N/)r;   r    r  rk  r   s    r&   rw  rw  "  s3    $t*"5"5!6a8O8O8Q7RRSTVW[T\S]^r%   )r  r	  r  
__fspath__r   y              ?g      ?)__lt____gt____le____ge____int__r   __len__r  __complex__	__float____bool__	__index__r  c                    ^  U 4S jnU$ )Nc                 ^   > TR                   R                  nU[        La  U$ TU L a  g[        $ rE   )__eq__r   r   NotImplemented)otherret_valrU   s     r&   r  _get_eq.<locals>.__eq__7  s/    ++00'!N5=r%   r   )rU   r  s   ` r&   _get_eqr   6  s     Mr%   c                    ^  U 4S jnU$ )Nc                 b   > TR                   R                  [        La  [        $ TU L a  g[        $ r  )__ne__r   r   r  )r  rU   s    r&   r#  _get_ne.<locals>.__ne__A  s*    ;;))8N5=r%   r   )rU   r#  s   ` r&   _get_ner%  @  s     Mr%   c                    ^  U 4S jnU$ )Nc                  n   > TR                   R                  n U [        L a  [        / 5      $ [        U 5      $ r9   )__iter__r   r   r  r  rU   s    r&   r(  _get_iter.<locals>.__iter__J  s/    --22g8O G}r%   r   )rU   r(  s   ` r&   	_get_iterr+  I  s     Or%   c                    ^  U 4S jnU$ )Nc                     > TR                   R                  n U [        L a  [        [	        / 5      5      $ [        [	        U 5      5      $ r9   )r  r   r   _AsyncIteratorr  r)  s    r&   r  "_get_async_iter.<locals>.__aiter__T  s8    ..33g!$r(++d7m,,r%   r   )rU   r  s   ` r&   _get_async_iterr0  S  s    -
 r%   )r  r#  r(  r  c                     [         R                  U[        5      nU[        La  X1l        g [        R                  U5      nUb  U" U 5      nXQl        g [
        R                  U5      nUb  U" U 5      Ul        g g r9   )_return_valuesrs   r   r   _calculate_return_value_side_effect_methodsr   )rA   r  r   fixedreturn_calculatorr   side_effectors          r&   _set_return_valuer8  d  sw    tW-EG#/33D9$(.*(,,T2M *40 !r%   c                        \ rS rSrS rS rSrg)
MagicMixiniv  c                    U R                  5         [        [        U 5      R                  " U0 UD6  U R                  5         g r9   )_mock_set_magicsr  r:  rF   )rU   rV   r  s      r&   rF   MagicMixin.__init__w  s4    J%..;;r%   c           	         [         [        -  nUn[        U SS 5      bX  UR                  U R                  5      n[        5       nX-
  nU H)  nU[        U 5      R                  ;   d  M  [        X5        M+     U[        [        U 5      R                  5      -
  n[        U 5      nU H  n[        XT[        X@5      5        M     g )NrH  )_magicsr  r.   intersectionrH  r  r;   rr   r  rg   
MagicProxy)rU   orig_magicsthese_magicsremove_magicsrv  r  s         r&   r<  MagicMixin._mock_set_magics}  s     44"4$/;&33D4F4FGLEM'6M&DJ///D( ' $c$t**=*=&>>T
!EE*U"9: "r%   r   N)r    r!   r"   r#   rF   r<  r$   r   r%   r&   r:  r:  v  s     ;r%   r:  c                       \ rS rSrSS jrSrg)r   i  c                 F    U R                  X5        U R                  5         g r9   r6  r<  r@  s      r&   rA  "NonCallableMagicMock.mock_add_spec       	D+r%   r   Nr  )r    r!   r"   r#   rA  r$   r   r%   r&   r   r     s     r%   r   c                       \ rS rSrSrg)AsyncMagicMixini  r   Nr   r   r%   r&   rL  rL    s    r%   rL  c                   B   ^  \ rS rSrSS jrSS.S\4U 4S jjjrSrU =r$ )	r   i  Fc                 F    U R                  X5        U R                  5         g r9   rH  r@  s      r&   rA  MagicMock.mock_add_spec  rJ  r%   )r   r   c                  > U(       a-  U R                   (       a  [        U R                   5      (       a  Sn[        5       R                  " USU0UD6  g )NFr   )r   r   superr   )rU   r   rV   rW   r]  s       r&   r   MagicMock.reset_mock  s=    $//**
 !LDF|FvFr%   r   r  )	r    r!   r"   r#   rA  r   r   r$   __classcell__r]  s   @r&   r   r     s!      9> 
G 
G 
Gr%   r   c                   *    \ rS rSrS rS rSS jrSrg)rA  i  c                     Xl         X l        g r9   r   r	  )rU   r   r	  s      r&   rF   MagicProxy.__init__  s    	r%   c                     U R                   nU R                  nUR                  XUS9n[        X!U5        [	        X#U5        U$ )N)r   r$  r%  )r   r	  rV  rg   r8  )rU   rv  r	  ms       r&   create_mockMagicProxy.create_mock  sG    		""/5 # 7q!&U+r%   Nc                 "    U R                  5       $ r9   )r[  )rU   r2   r  s      r&   r  MagicProxy.__get__  s    !!r%   rW  r9   )r    r!   r"   r#   rF   r[  r  r$   r   r%   r&   rA  rA    s    "r%   rA  c                      ^  \ rS rSr\" S5      r\" S5      r\" S5      rU 4S jrS r	S r
S rS	 rS
 rS rSS jrS rU 4S jrSrU =r$ )r  i  r   r   r   c                  > [        5       R                  " U0 UD6  [        R                  R                  U R
                  S'   SU R
                  S'   S U R
                  S'   [        5       U R
                  S'   [        (       a4  [        [        S9n[        UR
                  S'   [        UR
                  S'   O[        [        S9n[        R                  [        R                  -   [        R                  -   Ul        SUl        S	Ul        SUl        SUl        X0R
                  S
'   SU R
                  S'   [)        5       U R
                  S'   0 U R
                  S'   S U R
                  S'   g )Nr   r   _mock_await_count_mock_await_args_mock_await_args_listr"  rE  rG  )rV   rW   r5   r
   r    re   rf   r  )rQ  rF   r   r   r   rr   r   	_CODE_SIGr   _CODE_ATTRSr   r/   CO_COROUTINE
CO_VARARGSCO_VARKEYWORDSco_flagsco_argcountco_varnamesco_posonlyargcountco_kwonlyargcountrn   )rU   rV   rW   	code_mockr]  s       r&   rF   AsyncMockMixin.__init__  s4   $)&) *1););)I)Io&-.)*,0()1:-.9'=I08I}-4=I01':I    !$$% 	
 !"	 2	'(	$&'	#$-j!$/j!(-n%*,&'+/'(r%   c                  #    [        X4SS9nU =R                  S-  sl        X0l        U R                  R	                  U5        U R
                  nUbu  [        U5      (       a  Ue[        U5      (       d   [        U5      n[        U5      (       a  UeO)[        U5      (       a  U" U0 UD6I S h  vN nOU" U0 UD6nU[        La  U$ U R                  [        La  U R                  $ U R                  bF  [        U R                  5      (       a  U R                  " U0 UD6I S h  vN $ U R                  " U0 UD6$ U R                  $ ! [         a    [        ef = f N N87f)NTr  r   )r  r   r   r   rM  r   r>   rk   r  StopIterationStopAsyncIterationr   r   r   r   r/  )rU   rV   rW   r  r=  r   s         r&   r3  !AsyncMockMixin._execute_mock_call	  s^     tn$/A##E*!!V$$v&&-!&\F
 !(( L )$V,,%t6v6600W$""'1$$$'"4#3#344!--t>v>>>##T4V44   - % - -,- 7 ?s=   A3E6E .E/E0A3E#E$"EEEEc                 l    U R                   S:X  a$  SU R                  =(       d    S S3n[        U5      eg )Nr   	Expected rA   z to have been awaited.r   r   r  r  s     r&   r   AsyncMockMixin.assert_awaited-	  s;     q doo788NOC %% !r%   c                     U R                   S:X  d1  SU R                  =(       d    S SU R                    S3n[        U5      eg Nr   rv  rA   z$ to have been awaited once. Awaited r  rw  r  s     r&   r   "AsyncMockMixin.assert_awaited_once5	  sM     1$t8&9 :#//09C %% %r%   c                @  ^ ^^ T R                   c!  T R                  TT5      n[        SU S35      eUUU 4S jnT R                  [	        TT4SS95      nT R                  T R                   5      nXS:w  a*  [        U[        5      (       a  UOS n[        U" 5       5      Ueg )NzExpected await: z
Not awaitedc                  *   > TR                  TTSS9n U $ )Nawait)r  r  r  s    r&   r  :AsyncMockMixin.assert_awaited_with.<locals>._error_messageF	  s    33D&3QCJr%   Tr  )r   r  r  r  r  r,   r  )rU   rV   rW   r  r  r  r  s   ```    r&   r   "AsyncMockMixin.assert_awaited_with>	  s     ??"77fEH #3H:]!KLL	 %%eT6N&EF##DOO4 *8Y ? ?HTE !12= r%   c                    U R                   S:X  d1  SU R                  =(       d    S SU R                    S3n[        U5      eU R                  " U0 UD6$ rz  )r   r   r  r   r  s       r&   r   'AsyncMockMixin.assert_awaited_once_withP	  s^    
 1$t8&9 :#//09C %%''888r%   c                4   U R                  [        X4SS95      n[        U[        5      (       a  UOS nU R                   Vs/ s H  oPR                  U5      PM     nnU(       d  U[        U5      ;  a   U R                  X5      n[        SU-  5      Ueg s  snf )NTr  z%s await not found)r  r  r,   r  r   r  r  r  r  s           r&   r   AsyncMockMixin.assert_any_await[	  s     %%eTN&EF&x;;151E1EF1EA$$Q'1EFHL$88">>tLO $6 9 Gr  c           	      z  ^  U Vs/ s H  nT R                  U5      PM     nn[        S U 5       S 5      n[        U 4S jT R                   5       5      nU(       dl  XF;  af  Uc  SnO9SR	                  U Vs/ s H  n[        U[        5      (       a  UOS PM     sn5      n[        U S[        U5       ST R                   35      Ueg [        U5      n/ n	U H  n
 UR                  U
5        M     U	(       a  [        [        U	5      < S35      Ueg s  snf s  snf ! [         a    U	R                  U
5         Mb  f = f)Nc              3   T   #    U  H  n[        U[        5      (       d  M  Uv   M      g 7fr9   r  r  s     r&   r  3AsyncMockMixin.assert_has_awaits.<locals>.<genexpr>u	  r  r  c              3   F   >#    U  H  nTR                  U5      v   M     g 7fr9   r  r  s     r&   r  r  v	  s!     S>Rt11!44>Rr   zAwaits not found.z,Error processing expected awaits.
Errors: {}r  z	
Actual: z not all found in await list)r  r  r   r   r  r,   r  r  rm   r  rL   rM  rn   )rU   r  r  r  r  r  
all_awaitsr  r  r  r	  s   `          r&   r    AsyncMockMixin.assert_has_awaitsh	  s]    4995aD&&q)59FFMSd>R>RSS
)=1G ,-3V-5$7-5 *4Ay)A)AAt$K-5$7.8  %i  !!*5!1 2 3#3346 	
 *%
	D'!!$' 
  49)4DF 7 :$7  '  &'s   D6#DDD:9D:c                     U R                   S:w  a1  SU R                  =(       d    S SU R                    S3n[        U5      eg )Nr   rv  rA   z# to not have been awaited. Awaited r  rw  r  s     r&   r   !AsyncMockMixin.assert_not_awaited	  sM     q t8&9 :#//09C %% !r%   c                t   > [        5       R                  " U0 UD6  SU l        S U l        [	        5       U l        g Nr   )rQ  r   r   r   r   r   rU   rV   rW   r]  s      r&   r   AsyncMockMixin.reset_mock	  s3     	D+F+({r%   )r   r   r   r  )r    r!   r"   r#   r   r   r   r   rF   r3  r   r   r   r   r   r   r   r   r$   rS  rT  s   @r&   r  r    s\    &}5K%l3J*+<=O0B&!P&&>$	9*X&+ +r%   r  c                       \ rS rSrSrg)r
   i	  r   Nr   r   r%   r&   r
   r
   	  r'   r%   r
   c                   &    \ rS rSrS rS rS rSrg)_ANYi	  c                     grE   r   rU   r  s     r&   r  _ANY.__eq__	  s    r%   c                     gr  r   r  s     r&   r#  _ANY.__ne__	  s    r%   c                     g)Nz<ANY>r   r   s    r&   r   _ANY.__repr__	  s    r%   r   N)r    r!   r"   r#   r  r#  r   r$   r   r%   r&   r  r  	  s    r%   r  c           	      :   SU -  nSnSR                  U Vs/ s H  n[        U5      PM     sn5      nSR                  UR                  5        VVs/ s H  u  pxU< SU< 3PM     snn5      n	U(       a  UnU	(       a  U(       a  US-  nXI-  nX4-  $ s  snf s  snnf )Nz%s(%%s)r;  z, =)r  reprr{  )
r   rV   rW   r  formatted_argsr~  args_stringry  r   kwargs_strings
             r&   r  r  	  s    $GN))$7$3T#Y$78KII171?:33 M $d"N'## 8s   BB
c                       \ rS rSr  SS jr  SS jrS r\R                  rS r	S r
S rS	 r\S
 5       r\S 5       rS rS rSrg)r  i	  Nc                    Sn0 n[        U5      nUS:X  a  Uu  p&nO{US:X  a9  Uu  p[        U	[        5      (       a  U	n[        U
[        5      (       a  U
nOBU
nO?XpvO<US:X  a6  Uu  n[        U[        5      (       a  UnO[        U[        5      (       a  UnOUnU(       a  [        R	                  XU45      $ [        R	                  XXg45      $ )Nr      r   r   )r   r,   r  rn   r  )r   r   r   r	  r  	from_kallrV   rW   _lenfirstseconds              r&   r  _Call.__new__
  s    5z19!&DQY!ME%%%fe,,!D#F$fQYFE%%%E5))==Vn55}}S"677r%   c                 (    X l         X0l        XPl        g r9   )r   r   _mock_from_kall)rU   r   r   r	  r  r  s         r&   rF   _Call.__init__'
  s    "(r%   c                 ^    [        U5      nSn[        U 5      S:X  a  U u  pEOU u  p4n[        U SS 5      (       a-  [        USS 5      (       a  U R                  UR                  :w  a  gSnUS:X  a  S0 pOUS:X  a  Uu  pgnOUS:X  a>  Uu  n	[        U	[        5      (       a  U	n0 nOb[        U	[        5      (       a  U	nS0 pOGSnU	nOBUS:X  a;  Uu  p[        U
[        5      (       a  U
n[        U[        5      (       a  U0 pOSUpOXpOgU(       a  Xc:w  a  gXx4XE4:H  $ ! [         a	    [        s $ f = f)	Nr;  r   r   Fr   r   r  r   )r   r  r  r.   r   r,   rn   r  )rU   r  	len_other	self_name	self_argsself_kwargs
other_name
other_argsother_kwargsr   r  r  s               r&   r  _Call.__eq__.
  sP   	"E
I 	t9>%)"I{04-I+D.$//GE>SW4X4X%%););;
>')2!^380JL!^FE%''"
!E3''"
+-rL
$!^!ME%%%"
fe,,/5r/16+0L0 )i-EEE_  	"!!	"s   D D,+D,c                ~    U R                   c  [        SX4SS9$ U R                   S-   n[        U R                   X4X0S9$ )Nr;  rT  r   rW  r   r  r  s       r&   rI   _Call.__call__f
  sB    ??""d+$77%doot44MMr%   c                 j    U R                   c
  [        USS9$ U R                   < SU< 3n[        X SS9$ )NF)r   r  rt  )r   r	  r  r  )rU   r   r   s      r&   r   _Call.__getattr__n
  s4    ??"de44//40$u==r%   c                 `    U[         R                  ;   a  [        e[         R                  X5      $ r9   )rn   rr   rJ   __getattribute__)rU   r   s     r&   r  _Call.__getattribute__u
  s%    5>>!  %%d11r%   c                 >    [        U 5      S:X  a  U u  pX4$ U u  p1nX4$ )Nr   )r   r  s       r&   _get_call_arguments_Call._get_call_arguments{
  s2    t9>LD | "&D|r%   c                 (    U R                  5       S   $ r  r  r   s    r&   rV   
_Call.args
      '')!,,r%   c                 (    U R                  5       S   $ )Nr   r  r   s    r&   rW   _Call.kwargs
  r  r%   c                 ,   U R                   (       d2  U R                  =(       d    SnUR                  S5      (       a  SU-  nU$ [        U 5      S:X  a  SnU u  p#O0U u  pnU(       d  SnO!UR                  S5      (       d  SU-  nOSU-  n[	        XU5      $ )Nr   rT  zcall%sr   zcall.%s)r  r   r  r   r  )rU   r   rV   rW   s       r&   r   _Call.__repr__
  s    ##??,fDt$$$Kt9>DLD&!%D__T** 4'$%d&99r%   c                     / nU nUb3  UR                   (       a  UR                  U5        UR                  nUb  M3  [        [	        U5      5      $ r9   )r  rM  r   r   r  )rU   valsthings      r&   	call_list_Call.call_list
  sM     $$E"&&E  $((r%   )r  r   r   )r   r;  NFT)r   NNFT)r    r!   r"   r#   r  rF   r  r  r#  rI   r   r  r  r   rV   rW   r   r  r$   r   r%   r&   r  r  	  sw    & :?8@ >C)2Fj ]]FN>2 - - - -:*
)r%   r  )r  c          	         [        U 5      (       a  [        U 5      n [        U [        5      n[        U 5      (       a  [	        SU < S35      e[        U 5      nSU 0n	U(       a  SU 0n	OU c  0 n	U	(       a  U(       a  SU	S'   U(       d  [        U5        UR                  SU5      nUn
Uc  Sn
U	R                  U5        [        n[        R                  " U 5      (       a  0 n	O[U(       a  U(       a  [        S	5      e[        nO;[        U 5      (       d  [        nO$U(       a  U(       a  [!        U 5      (       d  [        nU" SX3U
US
.U	D6n[        U ["        5      (       a  U(       a  [%        X5      nO['        X5      nO[)        XXr5        Ub  U(       d  XR*                  U'   UR                  SS 5      nU(       a  U(       d  SU;  a  [-        XSSUUS9Ul        [1        U 5       GH0  n[3        U5      (       a  M   [5        X5      nSU0nU(       a  [9        X5      (       a  UR                  US9  U(       a  SU0n[        U["        5      (       d  [;        XXU5      nUUR*                  U'   OUn[        U ["        5      (       a  UR<                  n[?        XU5      nUUS'   [A        U5      (       a  [        nO[        nU" SUXUS.UD6nUUR*                  U'   U" 5       Ul        [)        UUUS9  [        U["        5      (       d  GM$  [C        XU5        GM3     [        U5      (       a  U(       a  URD                  " S0 UD6  U$ ! [6         a     GMn  f = f)Nz'Cannot autospec a Mock object. [object=rD  r!  r"  Tr&  r   r;  zJInstance can not be True when create_autospec is mocking an async function)r	  r%  r$  r   r   r   rT  )r`   r  r  r   r  r'  )r	  r   r$  r%  )r_   r   )#ro   r;   r,   r+   r   r7   rH  r}  rk  r   r/   isdatadescriptorrD  r
   rk   r   ru   rB   r   r   ra   r   r	   r   rJ  r   r.   rJ   r-   rm  rA   
_must_skipr   rg   r7  )r!  r"  r`   r  r  r(  rW   is_typeis_async_funcr  r$  r  rA   wrappedrv  r   child_kwargsr+  r	  r_   child_klasss                        r&   r	   r	   
  s(   . ~~ Dzt$G "**. 4 5 	5"4(MtnGt$	8'+#$f%JJvu%EI	NN6E%% 	  > ? ?t__$	X&8&>&>$ (	(&(D $&& '3D!$-DW78(,u% jj$'GxN&$@+DT2629; TU	t+H )ww..h/&1L(M22XhGC),D&F$.."48I(1L%"8,,'' BV%*0B4@BC),D&*}CXsi@ c=))D%g n 6%f%KU  		s   8M
MMc                 T   [        U [        5      (       d  U[        U S0 5      ;   a  gU R                  n U R                   Hd  nUR
                  R                  U[        5      nU[        L a  M.  [        U[        [        45      (       a    g[        U[        5      (       a  Us  $   g   U$ )Nrr   F)r,   r;   r.   r]  rq   rr   rs   r   rH   rG   rB   )r!  rv  r  r  r   s        r&   r  r  G  s    
 dD!!GD*b11~~##E73Wf|[9::.. N  Nr%   c                   "    \ rS rSr  SS jrSrg)rm  ic  Nc                 L    Xl         XPl        X l        X0l        X`l        X@l        g r9   )r!  idsr"  r	  r`   r   )rU   r!  r"  r	  r   r  r`   s          r&   rF   _SpecState.__init__e  s     	  	r%   )r  r`   r   r	  r!  r"  )FNNNF)r    r!   r"   r#   rF   r$   r   r%   r&   rm  rm  c  s    48/4r%   rm  c                     [        U [        5      (       a  [        R                  " U 5      $ [        R                  " U 5      $ r9   )r,   bytesioBytesIOStringIO)	read_datas    r&   
_to_streamr  {  s-    )U##zz)$${{9%%r%   c           	        ^^	^
^^ [        T5      nUS /mUU4S jnUU4S jnU	U4S jm
UU4S jm	UU4S jnU4S jn[        cV  SS Kn[        [	        [        UR                  5      5      R                  [	        [        UR                  5      5      5      5      q[        c+  SS Kn[        [	        [        UR                  5      5      5      q	U c  [        S[        S	9n [        [        S
9mTTR                  l        S TR                  l        S TR                  l        S TR                   l        S TR"                  l        UTR                  l        T
" 5       TS'   TS   TR                   l        UTR"                  l        T	TR&                  l        UTR(                  l        UTR*                  l        U
UUU4S jnXl        TU l        U $ )Nc                     > TR                   R                  b  TR                   R                  $ TS   R                   " U 0 UD6$ r  )	readlinesr   rV   rW   _statehandles     r&   _readlines_side_effect)mock_open.<locals>._readlines_side_effect  sA    ((4##000ay""D3F33r%   c                     > TR                   R                  b  TR                   R                  $ TS   R                   " U 0 UD6$ r  )readr   r  s     r&   _read_side_effect$mock_open.<locals>._read_side_effect  s;    ;;##/;;+++ay~~t.v..r%   c               ?   b   >#    T" 5        S h  vN    TS   R                   " U 0 UD6v   M   N7fr  )readline)rV   rW   _iter_side_effectr  s     r&   _readline_side_effect(mock_open.<locals>._readline_side_effect  s9     $&&&)$$d5f55  	's   /-/c               3      >#    TR                   R                  b   TR                   R                  v   M  TS    H  n U v   M	     g 7fr  )r  r   )liner  r  s    r&   r  $mock_open.<locals>._iter_side_effect  sA     ??''3oo222 1IDJ s   AAc                  z   > TR                   R                  b  TR                   R                  $ [        T S   5      $ r  )r  r   r  )r  r  s   r&   _next_side_effect$mock_open.<locals>._next_side_effect  s1    ??''3??///F1Ir%   c                 &   > TR                  5         g r9   )close)exctypeexcinstexctbr  s      r&   _exit_side_effect$mock_open.<locals>._exit_side_effect  s    r%   r   open)r   r!  )r!  r   c                     > [        T5      TS'   TR                  R                  TS   :X  a  T" 5       TS'   TS   TR                  l        [        $ )Nr   r   )r  r  r   r   )rV   rW   r  r  r  r  s     r&   
reset_datamock_open.<locals>.reset_data  sH    y)q	??&&&)3-/F1I*0)FOO'r%   )r  	file_spec_iorm   r  rJ  TextIOWrapperunionr  	open_specr  r   r  r   writer  r  r  r   r(  r  r  )rA   r  
_read_datar  r  r  r  r  r  r  r  r  r  s    `       @@@@r&   r   r     sk    I&J$F4
/
6

 S!2!234::3s3;;?O;PQR	 S]+,	|f95I&F$*F! $FLL#FKK#'FOO $(F!/FKK%'F1I"()FOO#9F "3FOO"3FOO"3FOO  "DKr%   c                   *    \ rS rSrS rSS jrS rSrg)r   i  c                    [        S0 UD6$ )Nr   )r   )rU   rW   s     r&   rV  PropertyMock._get_child_mock  s    "6""r%   Nc                     U " 5       $ r9   r   )rU   r2   obj_types      r&   r  PropertyMock.__get__  s	    vr%   c                     U " U5        g r9   r   )rU   r2   r  s      r&   r  PropertyMock.__set__  s	    S	r%   r   r9   )r    r!   r"   r#   rV  r  r  r$   r   r%   r&   r   r     s    #r%   r   c                   r   ^  \ rS rSrSrU 4S jr\S.U 4S jjrU 4S jrS r	U 4S jr
\S.S	 jrS
 rSrU =r$ )ThreadingMixini  Nc                  > [        UR                  S5      [        5      (       a  US   R                  US'   O6[        UR                  S5      [        5      (       a  US   R                  US'   [	        5       R
                  " S0 UD6$ )Nr	  timeoutr%  r   )r,   rs   r  _mock_wait_timeoutrQ  rV  )rU   r  r]  s     r&   rV  ThreadingMixin._get_child_mock  sl    bffX&77xL;;ByM}-~>>}-@@ByMw&&,,,r%   r  c                &  > [        5       R                  " U0 UD6  U[        L a  U R                  n[        R
                  " 5       U R                  S'   / U R                  S'   [        R                  " 5       U R                  S'   XR                  S'   g )N_mock_event_mock_calls_events_mock_calls_events_lockr  )rQ  rF   _timeout_unsetDEFAULT_TIMEOUT	threadingEventrr   Lock)rU   r  rV   rW   r]  s       r&   rF   ThreadingMixin.__init__  sr    $)&)n$**G'0'8m$.0*+3<>>3C/0.5*+r%   c                   > [        5       R                  " U0 UD6  [        R                  " 5       U R                  S'   / U R                  S'   g )Nr  r  )rQ  r   r  r   rr   r  s      r&   r   ThreadingMixin.reset_mock   s>     	D+F+'0'8m$.0*+r%   c                    U R                      U R                   H  u  p4nX44X4:X  d  M  Us  sS S S 5        $    [        R                  " 5       nU R                  R	                  XU45        S S S 5        U$ ! , (       d  f       W$ = fr9   )r  r  r  r   rM  )rU   expected_argsexpected_kwargsrV   rW   event	new_events          r&   __get_eventThreadingMixin.__get_event  s}    ))'+'>'>#e>m%EE L *)'> ")I##**MI+VW *  *) s   A5A54A55
Bc                    > [        5       R                  " U0 UD6nU R                  X5      nUR                  5         U R                  R                  5         U$ r9   )rQ  r0  _ThreadingMixin__get_eventr  r  )rU   rV   rW   	ret_value
call_eventr]  s        r&   r0  ThreadingMixin._mock_call  sL    G&&77	%%d3
r%   c                    U[         L a  U R                  nU R                  R                  US9(       d&  U R                  =(       d    S SU S3n[        U5      eg )Nr  rA   z was not called before timeout(z).)r  r  r  waitr   r  )rU   r  r  s      r&   wait_until_called ThreadingMixin.wait_until_called  s`     n$--G$$W$5oo/0 1&ir+C %% 6r%   c                     U R                  X5      nUR                  U R                  S9(       d  U R                  X5      n[	        U S35      eg )Nr  z call not found)r-  r2  r  r  r  )rU   rV   rW   r(  r  s        r&   wait_until_any_call_with'ThreadingMixin.wait_until_any_call_with)  sP    
   .zz$"9"9z:">>tLO O#4O!DEE ;r%   r   )r    r!   r"   r#   r  rV  r  rF   r   r-  r0  r3  r6  r$   rS  rT  s   @r&   r  r    sA    O- '5 6 61 ,: &F Fr%   r  c                       \ rS rSrSrg)r   i4  r   Nr   r   r%   r&   r   r   4  s     	r%   r   c                 6   SU l         [        U 5       Hr  n [        X5      n[	        U[
        5      (       d  M&  [	        UR                  R                  U5      [        5      (       a  MV  UR                  U L d  Mg  [        U5        Mt     g ! [         a     M  f = frE   )r.  rJ  r.   rJ   r,   r   r   rs   rm  r   r   )rA   r   rZ  s      r&   r   r   D  s     DD		#A !_--a&&**40*==%G   		s   B


BBc                        \ rS rSrS rS rSrg)r.  i\  c                 p    Xl         [        [        S9n[        R                  Ul        X R                  S'   g )Nrd  r5   )iteratorr   r   r/   CO_ITERABLE_COROUTINErj  rr   )rU   r<  ro  s      r&   rF   _AsyncIterator.__init__`  s+     #X6	$::	$-j!r%   c                 `   #     [        U R                  5      $ ! [         a     [        ef = f7fr9   )r  r<  rr  rs  r   s    r&   r  _AsyncIterator.__anext__f  s0     	&& 	  	s   . .
+.+.)r<  N)r    r!   r"   r#   rF   r  r$   r   r%   r&   r.  r.  \  s    .!r%   r.  r  r  )NFNNN)FFNNr:  )__all__r   rg  r  r/   r  r  builtinsr  r   r  typesr   r   r   unittest.utilr   	functoolsr   r   r   r  r   rJ  r  r  r   rQ  r  r3   r7   r+   r>   rC   rP   ra   r\   rk   ro   ru   r   r   r~   r   r   r  r   r   r   r   MISSINGr  DELETEDrn  r   r   rm   r   r  r  r  r   	frozensetremoveprefixr  r  rf  r  r   rH  rJ  r  r  r  r   r  r  r  r  multiplestopallrc  magic_methodsnumericsr  r|  inplaceright_non_defaultsr  r?  r  _sync_async_magics_async_magicsr  r  r  r3  r  r2  r   r%  r+  r0  r4  r8  r:  r   rL  r   rA  rK   rF   re  rf  rL   r  r
   r  r   r  rn   r  r   r	   r  rm  r;   r  rB   r  r  r  r   r   TIMEOUT_UNSETr  r  r   r   r.  )r   r  s   00r&   <module>rT     sJ  (   	   
   '  2 2 # $ Cy C "(mHmd??33GTmH	
 @2 F	#
&4.."b>6)	)f 	)  ;


 &* *(6 6 ^
9d ^
9D O$$y! !Di $  4  g!D g!V8=/ 8zY/V Y/z
<  'Ttd &+: ?C04.d $u4OCHOdV/& V/r 
   " K 	 ((7hnn&67
75HNN$455 HHmXw67==?? !Hv? @ !] $'99]* .  306^	  "  	 1$; ;>	 : 	 	j 	G
D GB" "$!!'(*;*;T"BCIh-K
E+T E+P( (V
6 
 f$$v)E v)r u CGT*/Tn8	 	 		 		&Sl4 $ ''EFT EFP	NJ 	 0! ![a IH!ld  Is0    P=PP!PP+P P P 