§
    ðyIfƒ  ã                   óä   — d Z ddlZddlZddlmZ ddlZddlmZ dej        d<    G d„ de¦  «        Z G d	„ d
e¦  «        Z	d„ Z
d„ Zd„ Zedk    r  e
¦   «           e¦   «           e¦   «          dS dS )z;
test dill's ability to pickle abstract base class objects
é    N)ÚABC)ÚFunctionTypeTÚrecursec                   óø   — e Zd Zej        d„ ¦   «         Zeej        d„ ¦   «         ¦   «         Zej        ej        d„ ¦   «         ¦   «         Ze	ej        d„ ¦   «         ¦   «         Z
eej        d„ ¦   «         ¦   «         ZdS )ÚOneTwoThreec                 ó   — dS )zA methodN© ©Úselfs    úG/var/www/piapp/venv/lib/python3.11/site-packages/dill/tests/test_abc.pyÚfoozOneTwoThree.foo   s	   € ð 	ˆó    c                 ó   — dS )zProperty getterNr	   r
   s    r   ÚbarzOneTwoThree.bar   ó	   € ð 	ˆr   c                 ó   — dS )zProperty setterNr	   ©r   Úvalues     r   r   zOneTwoThree.bar   r   r   c                 ó   — dS )zClass methodNr	   ©Úclss    r   ÚcfoozOneTwoThree.cfoo%   r   r   c                  ó   — dS )zStatic methodNr	   r	   r   r   ÚsfoozOneTwoThree.sfoo+   r   r   N)Ú__name__Ú
__module__Ú__qualname__ÚabcÚabstractmethodr   Úpropertyr   ÚsetterÚclassmethodr   Ústaticmethodr   r	   r   r   r   r      s×   € € € € € ØÔðð ñ Ôðð ØÔðð ñ Ôñ „Xðð 	„ZØÔðð ñ Ôñ „Zðð ØÔðð ñ Ôñ „[ðð ØÔðð ñ Ôñ „\ðð ð r   r   c                   ó|   — e Zd Zd„ Zd„ Zed„ ¦   «         Zej        d„ ¦   «         Zed„ ¦   «         Z	e
d„ ¦   «         ZdS )Ú	EasyAsAbcc                 ó   — d | _         d S ©N©Ú_barr
   s    r   Ú__init__zEasyAsAbc.__init__2   s   € ØˆŒ	ˆ	ˆ	r   c                 ó   — dS )NúInstance Method FOOr	   r
   s    r   r   zEasyAsAbc.foo5   s   € Ø$Ð$r   c                 ó   — | j         S r'   r(   r
   s    r   r   zEasyAsAbc.bar8   s
   € àŒyÐr   c                 ó   — || _         d S r'   r(   r   s     r   r   zEasyAsAbc.bar<   s   € àˆŒ	ˆ	ˆ	r   c                 ó   — dS )NúClass Method CFOOr	   r   s    r   r   zEasyAsAbc.cfoo@   s   € à"Ð"r   c                  ó   — dS )NúStatic Method SFOOr	   r	   r   r   r   zEasyAsAbc.sfooD   s   € à#Ð#r   N)r   r   r   r*   r   r    r   r!   r"   r   r#   r   r	   r   r   r%   r%   1   s    € € € € € ðð ð ð%ð %ð %ð ðð ñ „Xðð 	„Zðð ñ „Zðð ð#ð #ñ „[ð#ð ð$ð $ñ „\ð$ð $ð $r   r%   c                  óT  — t          j        t          ¦  «        t          usJ ‚t          j        t          ¦  «        t          usJ ‚t	          j        ¦   «         5  t	          j        dt           j        ¦  «         t          j        t          d¬¦  «        t          u sJ ‚t          j        t          d¬¦  «        t          u sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          ¦   «         } d„ | _        t          j        | ¦  «        }t          |¦  «        t          | ¦  «        u sJ ‚t          |j        ¦  «        t          u sJ ‚|                     d¦  «        dk    sJ ‚|                     ¦   «         dk    sJ ‚|                     ¦   «         dk    sJ ‚|                     ¦   «         d	k    sJ ‚d S )
NÚignoreT)Úbyrefc                 ó   — | dz  S )Né   r	   )Úxs    r   ú<lambda>z$test_abc_non_local.<locals>.<lambda>S   s
   € ˜Q ™T€ r   é   é	   r2   r0   r,   )ÚdillÚcopyr   r%   ÚwarningsÚcatch_warningsÚsimplefilterÚPicklingWarningr   Útyper   r   r   r   )ÚinstanceÚ	depickleds     r   Útest_abc_non_localrE   H   sÅ  € ÝŒ9•[Ñ!Ô!­Ð4Ð4Ð4Ð4ÝŒ9•YÑÔ¥yÐ0Ð0Ð0Ð0å	Ô	 Ñ	"Ô	"ð =ð =ÝÔ˜h­Ô(<Ñ=Ô=Ð=ÝŒy�¨DÐ1Ñ1Ô1µ[Ð@Ð@Ð@Ð@ÝŒy�¨$Ð/Ñ/Ô/µ9Ð<Ð<Ð<Ð<Ð<ð=ð =ð =ñ =ô =ð =ð =ð =ð =ð =ð =øøøð =ð =ð =ð =õ
 ‰{Œ{€Hà!�>€H„LÝ”	˜(Ñ#Ô#€IÝ�	‰?Œ?�d 8™nœnÐ,Ð,Ð,Ð,å�	”ÑÔ¥,Ð.Ð.Ð.Ð.Ø�=Š=˜ÑÔ˜qÒ Ð Ð Ð Ø�>Š>ÑÔÐ3Ò3Ð3Ð3Ð3Ø�>Š>ÑÔÐ2Ò2Ð2Ð2Ð2Ø�=Š=‰?Œ?Ð3Ò3Ð3Ð3Ð3Ð3Ð3s   ÁA(CÃCÃCc                  ó  ‡—  G d„ dt           ¦  «        } t          j        | ¦  «        }|| usJ ‚t          |¦  «        t          | ¦  «        u sJ ‚ G ˆfd„d|¦  «        Š ‰¦   «         }|                     ¦   «         dk    sJ ‚	  |¦   «          t          d¦  «         J ‚# t          $ r
}Y d}~nd}~ww xY wt          j        | ‰¦   «         f¦  «        \  }}dt          |¦  «        j        k    sJ ‚d	t          |¦  «        j        v sJ ‚t          |¦  «        ‰usJ ‚|| usJ ‚||usJ ‚t          ||¦  «        sJ ‚t          ||¦  «        rJ ‚t          || ¦  «        rJ ‚| 
                    ¦   «         d
t          |¦  «        z   k    sJ ‚dS )z-
    Test using locally scoped ABC class
    c                   ó4   — e Zd Zej        d„ ¦   «         Zd„ ZdS )ú test_abc_local.<locals>.LocalABCc                 ó   — d S r'   r	   r
   s    r   r   z$test_abc_local.<locals>.LocalABC.foob   s   € àˆDr   c                 ó    — t          | ¦  «        S r'   )Úreprr
   s    r   Úbazz$test_abc_local.<locals>.LocalABC.bazf   s   € Ý˜‘:”:Ðr   N)r   r   r   r   r   r   rL   r	   r   r   ÚLocalABCrH   a   s@   € € € € € Ø	Ô	ð	ð 	ñ 
Ô	ð	ð	ð 	ð 	ð 	ð 	r   rM   c                   ó(   •‡ — e Zd Zd„ Zˆˆ fd„Zˆ xZS )útest_abc_local.<locals>.Realc                 ó   — dS )NúTrue!r	   r
   s    r   r   z test_abc_local.<locals>.Real.fooq   s   € Ø�7r   c                 óN   •— dt          ‰| ¦  «                             ¦   «         z   S )NúMy )ÚsuperrL   )r   ÚRealÚ	__class__s    €€r   rL   z test_abc_local.<locals>.Real.bazt   s$   ø€ Ø�5  tÑ,Ô,×0Ò0Ñ2Ô2Ñ2Ð2r   )r   r   r   r   rL   Ú__classcell__)rV   rU   s   @€r   rU   rO   p   sM   øø€ € € € € ð	ð 	ð 	ð	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3r   rU   rQ   zFailed to raise type errorFNz.RealrS   )r   r<   r=   rB   r   ÚprintÚ	TypeErrorr   r   Ú
isinstancerL   rK   )rM   ÚlabcÚrealÚeÚlabc2ÚpikrU   s         @r   Útest_abc_localr`   ]   s  ø€ ðð ð ð ð •3ñ ô ð õ Œ9�XÑÔ€DØ�xÐÐÐÐÝ�‰:Œ:�˜h™œÐ'Ð'Ð'Ð'ð
3ð 3ð 3ð 3ð 3ð 3ð 3ˆtñ 3ô 3ð 3ð ˆ4‰6Œ6€DØ�8Š8‰:Œ:˜Ò Ð Ð Ð ðØˆ‰Œˆõ
 	Ð*Ñ+Ô+Ð+Øˆøõ ð ð ð àˆˆˆˆøøøøðøøøõ ”˜D $ $¡&¤&˜>Ñ*Ô*�J€Eˆ3Ø•T˜#‘Y”YÔ'Ò'Ð'Ð'Ð'Ø•d˜3‘i”iÔ,Ð,Ð,Ð,Ð,Ý�‰9Œ9˜DÐ Ð Ð Ð Ø˜Ð Ð Ð Ð Ø˜ÐÐÐÐÝ�c˜5Ñ!Ô!Ð!Ð!Ð!Ý˜#˜tÑ$Ô$Ð$Ð$Ð$Ý˜#˜xÑ(Ô(Ð(Ð(Ð(Ø�7Š7‰9Œ9˜¥ S¡	¤	Ñ)Ò)Ð)Ð)Ð)Ð)Ð)s   Â
B Â
B3Â.B3c                  óÂ  — t          j        ddi ¦  «        }  G d„ d¦  «        } G d„ d¦  «        }|                      |¦  «         t          || ¦  «        rJ ‚t          || ¦  «        sJ ‚t	          j        | ||f¦  «        }t	          j        |¦  «        \  }}}t          |¦  «        t          | ¦  «        k    sJ ‚t          ||¦  «        rJ ‚t          ||¦  «        sJ ‚dS )z7
    Test calling metaclass and cache registration
    ÚLocalMetaABCr	   c                   ó   — e Zd ZdS )ú-test_meta_local_no_cache.<locals>.ClassyClassN©r   r   r   r	   r   r   ÚClassyClassrd   ”   s   € € € € € Øˆr   rf   c                   ó   — e Zd ZdS )ú-test_meta_local_no_cache.<locals>.KlassyClassNre   r	   r   r   ÚKlassyClassrh   —   s   € € € € € Ø
€dr   ri   N)r   ÚABCMetaÚregisterÚ
issubclassr<   ÚdumpsÚloadsrB   )rb   rf   ri   ÚresÚlmabcÚccÚkcs          r   Útest_meta_local_no_cachers   Ž   s#  € õ ”;˜~¨r°2Ñ6Ô6€Lðð ð ð ð ñ ô ð ðð ð ð ð ñ ô ð ð ×Ò˜+Ñ&Ô&Ð&å˜+ |Ñ4Ô4Ð4Ð4Ð4Ý�k <Ñ0Ô0Ð0Ð0Ð0å
Œ*�l K°Ð=Ñ
>Ô
>€Cå”J˜s‘O”O�M€Eˆ2ˆrÝ�‰;Œ;�$˜|Ñ,Ô,Ò,Ð,Ð,Ð,Ý˜"˜eÑ$Ô$Ð$Ð$Ð$Ý�b˜%Ñ Ô Ð Ð Ð Ð Ð r   Ú__main__)Ú__doc__r<   r   r   r>   Útypesr   Úsettingsr   r%   rE   r`   rs   r   r	   r   r   ú<module>rx      s%  ððð ð €€€Ø 
€
€
€
Ø Ð Ð Ð Ð Ð Ø €€€à Ð Ð Ð Ð Ð à€„ˆiÑ ðð ð ð ð �#ñ ô ð ð<$ð $ð $ð $ð $�ñ $ô $ð $ð.4ð 4ð 4ð*/*ð /*ð /*ðb!ð !ð !ð0 ˆzÒÐØÐÑÔÐØ€NÑÔÐØÐÑÔÐÐÐð Ðr   