+
    üÐjï:  ã                  óÜ  € ^ RI Ht ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIHtH	t	H
t
Ht ^ RIHt ^ RIHtHtHt ^ RIHt ^ RIHt  ! R R	]4      t ! R
 R]P,                  4      t ! R R]P,                  4      t ! R R]4      t ! R R]]4      t ! R R]4      t ! R R]P8                  4      t ! R R]4      t ! R R4      t ! R R4      t  ! R R4      t! ! R R4      t"R  R! lt#]P                  ! ]!]#4        ! R" R#4      t$ ! R$ R%4      t%R& R' lt& ! R( R)]4      t' ! R* R+]4      t( ! R, R-4      t) ! R. R/4      t*]
]R0]+3,          ,          t, ! R1 R2]4      t- ! R3 R4]4      t.]]]'.t/R# )5é    )ÚannotationsN)ÚAnyÚCallableÚListÚTuple)ÚNoReturn)ÚaotÚcrefutilÚstyles)Úunittest)ÚTestCasec                  óF   € ] tR t^tR R ltR R ltR R ltR R ltR	tR
# )ÚVersionTestsc               ó   € V ^8„  d   QhRR/# ©é   ÚreturnÚNone© )Úformats   "Ú=/usr/lib/python3/dist-packages/twisted/test/test_persisted.pyÚ__annotate__ÚVersionTests.__annotate__   s   € ÷ 2ñ 2¨ñ 2ó    c                	ó  €  ! R  R4      s \        P                  ! \        4       4      p ! R R\        P                  4      s \        P
                  ! V4      p\        P                  ! 4        VP                  '       g   Q R4       hR# )c                  ó"   € ] tR t^tR R ltRtR# )ÚNullVersionedc               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   ÚNullVersioned.__annotate__   s   € ÷ ñ  $ñ r   c                	ó   € ^ V n         R# )r   N©Úok©Úselfs   &r   Ú__init__ÚNullVersioned.__init__   ó	   € Ø�–r   r!   N©Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r%   Ú__static_attributes__r   r   r   r   r      s   † ÷ñ r   r   c                  ó&   € ] tR t^t^tR R ltRtR# )r   c               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   r   "   s   € ÷ ñ ¨4ñ r   c                	ó   € ^V n         R# ©é   Nr!   r#   s   &r   ÚupgradeToVersion1ÚNullVersioned.upgradeToVersion1"   r'   r   r!   N)r)   r*   r+   r,   ÚpersistenceVersionr3   r-   r   r   r   r   r      s   † Ø!"Ð÷ñ r   zinitial upgrade not run!N)r   ÚpickleÚdumpsr   Ú	VersionedÚloadsÚ	doUpgrader"   )r$   ÚpkclÚmnvs   &  r   Útest_nullVersionUpgradeÚ$VersionTests.test_nullVersionUpgrade   s`   € ÷	ñ 	ô �|Š|œM›OÓ,ˆô	œF×,Ñ,ô 	ô �lŠl˜4Ó ˆÜ×ÒÔØ�v�vˆvÐ1Ð1Ó1Švr   c               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   r   )   s   € ÷  5ñ  5 Tñ  5r   c                	ó€  €  ! R  R\         P                  4      s\        4       pVP                  '       g   VP                  '       d   Q R4       h\
        P                  ! V4      p^\        n        \
        P                  ! V4      p\         P                  ! 4        VP                  '       g   Q R4       hVP                  '       g   Q R4       h\
        P                  ! V4      p\
        P                  ! V4      p\         P                  ! 4        VP                  ^8X  g   Q R4       hVP                  ^8X  g   Q R4       hR# )c                  óL   € ] tR t^,t^tR.t^ t^ tR R ltR R lt	R R lt
RtR	# )
ÚMyVersionedÚgarbagedatac               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   ÚMyVersioned.__annotate__3   s   € ÷ <ñ < $ñ <r   c                	ó$   € R V n         R V n        R# )Úxxxc                ó   € R # )zcant persistr   )Úqs   &r   Ú<lambda>Ú&MyVersioned.__init__.<locals>.<lambda>5   s   € ©^r   N)ÚsomedatarC   r#   s   &r   r%   ÚMyVersioned.__init__3   s   € Ø %�”Ù#;�Ö r   c               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   rE   7   ó   € ÷ ñ ¨4ñ r   c                	ó8   € V ;P                   ^,          un         R# r1   )Úv3r#   s   &r   ÚupgradeToVersion3ÚMyVersioned.upgradeToVersion37   ó   € Ø—’˜1•—r   c               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   rE   :   rO   r   c                	ó8   € V ;P                   ^,          un         R# r1   )Úv4r#   s   &r   ÚupgradeToVersion4ÚMyVersioned.upgradeToVersion4:   rT   r   )rC   rL   N)r)   r*   r+   r,   r5   ÚpersistenceForgetsrQ   rW   r%   rR   rX   r-   r   r   r   rB   rB   ,   s.   † Ø!"Ðà"/ ÐØˆBØˆBõ<õ÷ñ r   rB   zhasn't been upgraded yetzdidn't do version 3 upgradezdidn't do version 4 upgradezupgraded unnecessarilyN)
r   r8   rB   rQ   rW   r6   r7   r5   r9   r:   )r$   ÚmvÚpicklÚobjs   &   r   Útest_versionUpgradeÚ VersionTests.test_versionUpgrade)   sæ   € ô	œ&×*Ñ*ô 	ô" ‹]ˆØ—E—E�E˜RŸUŸU˜UÐ?Ð%?Ó?Ð#Ü—’˜RÓ ˆØ)*ŒÔ&Ü�lŠl˜5Ó!ˆÜ×ÒÔØ�v�vˆvÐ4Ð4Ó4ˆvØ�v�vˆvÐ4Ð4Ó4ˆvÜ—’˜SÓ!ˆÜ�lŠl˜5Ó!ˆÜ×ÒÔØ�v‰v˜Œ{Ð4Ð4Ó4ˆ{Ø�v‰v˜Œ{Ð4Ð4Ó4Š{r   c               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   r   K   s   € ÷ %ñ % dñ %r   c                	óþ  €  ! R  R\         P                  4      s\        R^ 4      p\        R^ 4      p\        P                  ! W34      p??^\        n        R \        n        \        P                  ! V4      w  r\         P                  ! 4        V P                  VP                  R4       V P                  VP                  R4       V P                  VP                  4       V P                  VP                  4       R# )c                  ó.   € ] tR t^NtR R ltR R ltRtR# )ÚClassWithCustomHashc               ó$   € V ^8„  d   QhRRRRRR/# )r   ÚuniqueÚstrÚhashÚintr   r   r   )r   s   "r   r   Ú ClassWithCustomHash.__annotate__O   s!   € ÷ !ñ ! sð !°#ð !¸$ñ !r   c                	ó   € Wn         W n        R # ©N)re   rg   )r$   re   rg   s   &&&r   r%   ÚClassWithCustomHash.__init__O   s   € Ø$”Ø –	r   c               ó   € V ^8„  d   QhRR/# ©r   r   rh   r   )r   s   "r   r   ri   S   s   € ÷ !ñ ! #ñ !r   c                	ó   € V P                   # rk   )rg   r#   s   &r   Ú__hash__ÚClassWithCustomHash.__hash__S   s   € Ø—y‘yÐ r   )rg   re   N)r)   r*   r+   r,   r%   rp   r-   r   r   r   rc   rc   N   s   † õ!÷!ñ !r   rc   Úv1Úv2c                ó   € \        V R R4      # )ÚupgradedT©Úsetattrr#   s   &r   rJ   Ú3VersionTests.test_nonIdentityHash.<locals>.<lambda>\   s   € ¼WØ�*˜dô>
r   N)r   r8   rc   r6   r7   r5   r3   r9   r:   ÚassertEqualre   Ú
assertTrueru   )r$   rr   rs   Úpkls   &   r   Útest_nonIdentityHashÚ!VersionTests.test_nonIdentityHashK   s½   € ô	!¤&×"2Ñ"2ô 	!ô !  qÓ)ˆÜ   qÓ)ˆä�lŠl˜B˜8Ó$ˆØ�Ø12ÔÔ.ñ1
ÔÔ-ô —’˜cÓ"‰ˆÜ×ÒÔØ×Ñ˜Ÿ™ DÔ)Ø×Ñ˜Ÿ™ DÔ)Ø�‰˜Ÿ™Ô$Ø�‰˜Ÿ™Ö$r   c               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   r   f   s   € ÷ &ñ &Àñ &r   c                	ó  a€  ! R  R\         P                  4      s ! R R\         P                  4      s\        4       p\        4       p\        P
                  ! V4      \        P
                  ! V4      upo??^\        n        R V3R llpV\        n        ^\        n        R R lpV\        n        \        P                  ! V4      p\         P                  ! 4        V P                  VP                  P                  4       R# )	c                  ó   € ] tR t^itRtR# )Ú	ToyClassAr   N©r)   r*   r+   r,   r-   r   r   r   r�   r�   i   ó   † Ûr   r�   c                  ó   € ] tR t^ltRtR# )Ú	ToyClassBr   Nr‚   r   r   r   r…   r…   l   rƒ   r   r…   c               ó    € V ^8„  d   QhRRRR/# )r   r$   r   r   r   r   )r   s   "r   r   ÚRVersionTests.test_upgradeDeserializesObjectsRequiringUpgrade.<locals>.__annotate__u   s   € ÷ 	ñ 	 Cð 	¨Dñ 	r   c                óh   <€ \         P                  ! S4      V n        \        P                  ! 4        R # rk   )r6   r9   Úyr   r:   )r$   ÚpklBs   &€r   r3   ÚWVersionTests.test_upgradeDeserializesObjectsRequiringUpgrade.<locals>.upgradeToVersion1u   s   ø€ Ü—\’\ $Ó'ˆDŒFÜ×ÒÖr   c               ó    € V ^8„  d   QhRRRR/# )r   r$   Úobjectr   r   r   )r   s   "r   r   r‡   |   s   € ÷ 	,ñ 	,˜fð 	,¨ñ 	,r   c                ó    € \        V R R4       R# )ru   TNrv   r#   s   &r   ÚsetUpgradedÚQVersionTests.test_upgradeDeserializesObjectsRequiringUpgrade.<locals>.setUpgraded|   s   € Ü�D˜* dÖ+r   N)r   r8   r�   r…   r6   r7   r5   r3   r9   r:   rz   r‰   ru   )r$   Úxr‰   ÚpklAr3   r�   rŠ   s   &     @r   Ú/test_upgradeDeserializesObjectsRequiringUpgradeÚ<VersionTests.test_upgradeDeserializesObjectsRequiringUpgradef   s¸   ø€ ô	œ×(Ñ(ô 	ô	œ×(Ñ(ô 	ô ‹KˆÜ‹KˆÜ—\’\ !“_¤f§l¢l°1£oˆ
ˆˆdØˆqØ'(Œ	Ô$÷	ð 	ð '8Œ	Ô#Ø'(Œ	Ô$õ	,ð '2Œ	Ô#ä�LŠL˜ÓˆÜ×ÒÔØ�‰˜Ÿ™Ÿ™Ö%r   )r‰   N)	r)   r*   r+   r,   r=   r^   r|   r“   r-   r   r   r   r   r      s   † õ2õ& 5õD%÷6&ñ &r   r   c                  ó   € ] tR t^†tRtR# )ÚVersionedSubClassr   Nr‚   r   r   r   r–   r–   †   ó   † Ûr   r–   c                  ó   € ] tR t^ŠtRtR# )ÚSecondVersionedSubClassr   Nr‚   r   r   r   r™   r™   Š   r—   r   r™   c                  ó   € ] tR t^ŽtRtR# )ÚVersionedSubSubClassr   Nr‚   r   r   r   r›   r›   Ž   r—   r   r›   c                  ó   € ] tR t^’tRtR# )ÚVersionedDiamondSubClassr   Nr‚   r   r   r   r�   r�   ’   r—   r   r�   c                  óJ   € ] tR t^–tRtR R ltR R ltR R ltR R	 ltR
t	R# )ÚAybabtuTestsz’
L{styles._aybabtu} gets all of classes in the inheritance hierarchy of its
argument that are strictly between L{Versioned} and the class itself.
c               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   ÚAybabtuTests.__annotate__œ   s   € ÷ @ñ @¨ñ @r   c                ón   € V P                  \        P                  ! \        P                  4      . 4       R# )z=
L{styles._aybabtu} of L{Versioned} itself is an empty list.
N)ry   r   Ú_aybabtur8   r#   s   &r   Útest_aybabtuStrictEmptyÚ$AybabtuTests.test_aybabtuStrictEmptyœ   s#   € ð 	×ÑœŸš¬×)9Ñ)9Ó:¸BÖ?r   c               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   r¡   ¢   s   € ÷ Añ A¨Dñ Ar   c                óZ   € V P                  \        P                  ! \        4      . 4       R# )zu
There are no classes I{between} L{VersionedSubClass} and L{Versioned},
so L{styles._aybabtu} returns an empty list.
N)ry   r   r£   r–   r#   s   &r   Útest_aybabtuStrictSubclassÚ'AybabtuTests.test_aybabtuStrictSubclass¢   s   € ð
 	×ÑœŸšÔ):Ó;¸RÖ@r   c               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   r¡   ©   s   € ÷ Uñ U¨ñ Ur   c                ód   € V P                  \        P                  ! \        4      \        .4       R# )zn
With a sub-sub-class of L{Versioned}, L{styles._aybabtu} returns a list
containing the intervening subclass.
N)ry   r   r£   r›   r–   r#   s   &r   Útest_aybabtuSubsubclassÚ$AybabtuTests.test_aybabtuSubsubclass©   s"   € ð
 	×ÑœŸšÔ)=Ó>ÔARÐ@SÖTr   c               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   r¡   °   s   € ÷ 
ñ 
 Dñ 
r   c                óx   € V P                  \        P                  ! \        4      \        \
        \        .4       R# )zw
For a diamond-shaped inheritance graph, L{styles._aybabtu} returns a
list containing I{both} intermediate subclasses.
N)ry   r   r£   r�   r›   r–   r™   r#   s   &r   Útest_aybabtuStrictÚAybabtuTests.test_aybabtuStrict°   s+   € ð
 	×ÑÜ�OŠOÔ4Ó5Ü!Ô#4Ô6MÐNö	
r   r   N)
r)   r*   r+   r,   Ú__doc__r¤   r¨   r¬   r°   r-   r   r   r   rŸ   rŸ   –   s#   † ñõ
@õAõU÷
ñ 
r   rŸ   c                  ó"   € ] tR t^»tR R ltRtR# )ÚMyEphemeralc               ó    € V ^8„  d   QhRRRR/# ©r   r‘   rh   r   r   r   )r   s   "r   r   ÚMyEphemeral.__annotate__¼   ó   € ÷ ñ ˜#ð  $ñ r   c                	ó   € Wn         R # rk   ©r‘   ©r$   r‘   s   &&r   r%   ÚMyEphemeral.__init__¼   ó   € ØŽr   rº   Nr(   r   r   r   r´   r´   »   s   † ÷ñ r   r´   c                  ó"   € ] tR t^ÀtR R ltRtR# )ÚEphemeralTestsc               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   ÚEphemeralTests.__annotate__Á   s   € ÷ 	*ñ 	* ñ 	*r   c                	óv  € \        ^4      pV P                  VP                  \         4       V P                  VP                  ^4       \        P
                  ! V4      p\        P                  ! V4      pV P                  VP                  \        P                  4       V P                  \        VR4      4       R# )é   r‘   N)r´   ry   Ú	__class__r‘   r6   r7   r9   r   Ú	EphemeralÚassertFalseÚhasattr)r$   Úor\   s   &  r   Útest_ephemeralÚEphemeralTests.test_ephemeralÁ   s|   € Ü˜‹NˆØ×Ñ˜Ÿ™¤kÔ2Ø×Ñ˜Ÿ™˜aÔ ä—’˜Q“ˆÜ�LŠL˜Óˆà×Ñ˜Ÿ™¤f×&6Ñ&6Ô7Ø×Ñœ  C›Ö)r   r   N)r)   r*   r+   r,   rÉ   r-   r   r   r   r¿   r¿   À   s   † ÷	*ñ 	*r   r¿   c                  ó.   € ] tR t^ÍtR R ltR R ltRtR# )Ú
Pickleablec               ó    € V ^8„  d   QhRRRR/# r¶   r   )r   s   "r   r   ÚPickleable.__annotate__Î   r¸   r   c                	ó   € Wn         R # rk   rº   r»   s   &&r   r%   ÚPickleable.__init__Î   r½   r   c               ó   € V ^8„  d   QhRR/# rn   r   )r   s   "r   r   rÎ   Ñ   s   € ÷ ñ �cñ r   c                	ó   € V P                   # rk   rº   r#   s   &r   ÚgetXÚPickleable.getXÑ   s   € Ø�v‰vˆr   rº   N)r)   r*   r+   r,   r%   rÓ   r-   r   r   r   rÌ   rÌ   Í   s   † õ÷ñ r   rÌ   c                  ó&   € ] tR t^ÕtRtR R ltRtR# )ÚNotPickleablez!
A class that is not pickleable.
c               ó   € V ^8„  d   QhRR/# ©r   r   r   r   )r   s   "r   r   ÚNotPickleable.__annotate__Ú   s   € ÷ -ñ -˜Hñ -r   c                ó   € \        R4      h)z)
Raise an exception instead of pickling.
zNot serializable.)Ú	TypeErrorr#   s   &r   Ú
__reduce__ÚNotPickleable.__reduce__Ú   s   € ô Ð+Ó,Ð,r   r   N)r)   r*   r+   r,   r²   rÜ   r-   r   r   r   rÖ   rÖ   Õ   s   † ñ÷-ñ -r   rÖ   c                  ó&   € ] tR t^átRtR R ltRtR# )ÚCopyRegisteredzV
A class that is pickleable only because it is registered with the
C{copyreg} module.
c               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   ÚCopyRegistered.__annotate__ç   s   € ÷ -ñ -˜$ñ -r   c                ó$   € \        4       V n        R# )z5
Ensure that this object is normally not pickleable.
N)rÖ   ÚnotPickleabler#   s   &r   r%   ÚCopyRegistered.__init__ç   s   € ô +›_ˆÖr   )rã   N)r)   r*   r+   r,   r²   r%   r-   r   r   r   rß   rß   á   s   † ñ÷
-ñ -r   rß   c                  ó   € ] tR t^îtRtRtR# )ÚCopyRegisteredLoadedz*
L{CopyRegistered} after unserialization.
r   N)r)   r*   r+   r,   r²   r-   r   r   r   ræ   ræ   î   s   † õr   ræ   c               ó    € V ^8„  d   QhRRRR/# )r   Úcrr�   r   z,tuple[type[CopyRegisteredLoaded], tuple[()]]r   )r   s   "r   r   r   ô   s   € ÷ 	$ñ 	$˜Vð 	$Ð(Tñ 	$r   c                ó   € \         R3# )zÕ
Externally implement C{__reduce__} for L{CopyRegistered}.

@param cr: The L{CopyRegistered} instance.

@return: a 2-tuple of callable and argument list, in this case
    L{CopyRegisteredLoaded} and no arguments.
r   )ræ   )rè   s   &r   ÚreduceCopyRegisteredrê   ô   s   € ô   Ð#Ð#r   c                  ó2   € ] tR tRt$ RtR]R&   R R ltRtR# )	ÚAi  ú
dummy class
zCallable[[], None]Úbmethodc               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   ÚA.__annotate__
  ó   € ÷ ñ ˜ñ r   c                	ó   € R # rk   r   r#   s   &r   ÚamethodÚ	A.amethod
  ó   € Ùr   r   N)r)   r*   r+   r,   r²   Ú__annotations__ró   r-   r   r   r   rì   rì     s   ‡ ñð  Ó÷ñ r   rì   c                  ó2   € ] tR tRt$ RtR]R&   R R ltRtR# )	ÚBi  rí   rì   Úac               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   ÚB.__annotate__  rñ   r   c                	ó   € R # rk   r   r#   s   &r   rî   Ú	B.bmethod  rõ   r   r   N)r)   r*   r+   r,   r²   rö   rî   r-   r   r   r   rø   rø     s   ‡ ñð 	ƒD÷ñ r   rø   c               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   r     s   € ÷ 	ñ 	�$ñ 	r   c                 ó   € R # rk   r   r   r   r   Úfunktionr     s   € Ùr   c                  ó2   € ] tR tRtRtR R ltR R ltRtR# )	ÚPicklingTestsi  z$Test pickling of extra object types.c               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   ÚPicklingTests.__annotate__   s   € ÷ $ñ $˜Tñ $r   c                	ó’   € \         P                  ! \        4      p\         P                  ! V4      pV P	                  V\        4       R # rk   )r6   r7   r   r9   ry   )r$   r\   rÈ   s   &  r   Útest_moduleÚPicklingTests.test_module   s.   € Ü—’œVÓ$ˆÜ�LŠL˜ÓˆØ×Ñ˜œFÖ#r   c               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   r  %  s   € ÷ 2ñ 2 Tñ 2r   c                	ó  € \        ^4      p\        P                  ! VP                  4      p\        P                  ! V4      pV P                  V! 4       ^4       V P                  \        V4      \        VP                  4      4       R# )é   N)rÌ   r6   r7   rÓ   r9   ry   Útype)r$   r]   r\   rÈ   s   &   r   Útest_instanceMethodÚ!PicklingTests.test_instanceMethod%  sY   € Ü˜‹mˆÜ—’˜SŸX™XÓ&ˆÜ�LŠL˜ÓˆØ×Ñ™›˜aÔ Ø×Ñœ˜a›¤$ s§x¡x£.Ö1r   r   N)r)   r*   r+   r,   r²   r  r  r-   r   r   r   r  r    s   † Ù.õ$÷
2ñ 2r   r  c                  ó&   € ] tR tRtRtR R ltRtR# )ÚStringIOTransitionTestsi-  zŠ
When pickling a cStringIO in Python 2, it should unpickle as a BytesIO or a
StringIO in Python 3, depending on the type of its contents.
c               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   Ú$StringIOTransitionTests.__annotate__3  s   € ÷ 4ñ 4 dñ 4r   c                ó¶   € Rp\         P                  ! V4      pV P                  V\        P                  4       V P                  VP                  4       R4       R# )zO
A cStringIO pickled with bytes in it will yield an L{io.BytesIO} on
python 3.
sE   ctwisted.persisted.styles
unpickleStringI
p0
(S'test'
p1
I0
tp2
Rp3
.ÚtestN)r6   r9   ÚassertIsInstanceÚioÚStringIOry   Úgetvalue)r$   ÚpickledStringIWithTextÚloadeds   &  r   Útest_unpickleBytesIOÚ,StringIOTransitionTests.test_unpickleBytesIO3  sH   € ð-ð 	ô —’Ð4Ó5ˆØ×Ñ˜f¤b§k¡kÔ2Ø×Ñ˜Ÿ™Ó*¨FÖ3r   r   N)r)   r*   r+   r,   r²   r  r-   r   r   r   r  r  -  s   † ñ÷
4ñ 4r   r  c                  óB   € ] tR tRt$ R ]R&   R ]R&   R]R&   R R ltRtR	# )
ÚEvilSourceroriA  rù   Úbr�   Úcc               ó    € V ^8„  d   QhRRRR/# )r   r‘   r�   r   r   r   )r   s   "r   r   ÚEvilSourceror.__annotate__F  s   € ÷ ñ ˜&ð  Tñ r   c                	óf   € W n         W P                   n        WP                   P                  n        R # rk   )rù   r  r  r»   s   &&r   r%   ÚEvilSourceror.__init__F  s   € ØŒØ�‰ŒØ�‰�‰Ž
r   )rù   N)r)   r*   r+   r,   rö   r%   r-   r   r   r   r  r  A  s   ‡ ØÓØÓØƒI÷ñ r   r  c                  ó:   € ] tR tRt$ R]R&   R R ltR R ltRtR	# )
ÚNonDictStateiL  rf   Ústatec               ó   € V ^8„  d   QhRR/# )r   r   rf   r   )r   s   "r   r   ÚNonDictState.__annotate__O  s   € ÷ ñ ˜cñ r   c                	ó   € V P                   # rk   ©r&  r#   s   &r   Ú__getstate__ÚNonDictState.__getstate__O  s   € Ø�z‰zÐr   c               ó    € V ^8„  d   QhRRRR/# )r   r&  rf   r   r   r   )r   s   "r   r   r(  R  s   € ÷ ñ  #ð ¨$ñ r   c                	ó   € Wn         R # rk   r*  )r$   r&  s   &&r   Ú__setstate__ÚNonDictState.__setstate__R  s   € ØŽ
r   r*  N)r)   r*   r+   r,   rö   r+  r/  r-   r   r   r   r%  r%  L  s   ‡ ØƒJõ÷ñ r   r%  Ú_CircularTupleTypec                  óŽ   € ] tR tRtR R ltR R ltR R ltR R	 ltR
 R ltR R lt	R R lt
R R ltR R ltR R ltRtR# )ÚAOTTestsiY  c               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   ÚAOTTests.__annotate__Z  s   € ÷ %ñ % $ñ %r   c           
     	óÜ   € ^RRR\        ^^^4      RR\        P                  ^,           R\        3
p\        P
                  ! \        P                  ! V4      4      pV P                  W4       R# )r2   g       @y              @TÚhelloÚworldN)ÚsliceÚsysÚmaxsizeÚEllipsisr	   ÚunjellyFromSourceÚjellyToSourcery   )r$   r]   ÚrtObjs   &  r   Útest_simpleTypesÚAOTTests.test_simpleTypesZ  sb   € àØØØÜ�!�Q˜‹NØØÜ�K‰K˜!�OØÜð
ˆô ×%Ò%¤c×&7Ò&7¸Ó&<Ó=ˆØ×Ñ˜Ö$r   c               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   r5  j  s   € ÷ Tñ T¨ñ Tr   c                	ó`  € \        4       p\        4       pVP                  Vn        Wn        \        P
                  ! \        P                  ! V4      4      P                  P                  pV P                  \        P                  ! V4      P                  \        P                  ! V4      4       R # rk   )rì   rø   rî   rù   r	   r=  r>  ry   Ú_selfOfMethodrÄ   Ú_classOfMethod)r$   rù   r  Úim_s   &   r   Útest_methodSelfIdentityÚ AOTTests.test_methodSelfIdentityj  ss   € Ü‹CˆÜ‹CˆØ—I‘IˆŒ	ØŒÜ×#Ò#¤C×$5Ò$5°aÓ$8Ó9×;Ñ;×CÑCˆØ×Ñœ×*Ò*¨3Ó/×9Ñ9¼3×;MÒ;MÈcÓ;RÖSr   c               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   r5  r  s   € ÷ %ñ %¨Dñ %r   c                ó2  € \        4       p\        4       pVP                  Vn        Wn        \        P                  p\        = V P	                  \
        \        P                  \        P                  ! V4      4       V\        n        R#   T\        n        i ; i)z�
If a class change after an instance has been created,
L{aot.unjellyFromSource} shoud raise a C{TypeError} when trying to
unjelly the instance.
N)	rì   rø   rî   rù   ÚassertRaisesrÛ   r	   r=  r>  )r$   rù   r  Úsavedbmethods   &   r   Útest_methodNotSelfIdentityÚ#AOTTests.test_methodNotSelfIdentityr  sh   € ô ‹CˆÜ‹CˆØ—I‘IˆŒ	ØŒÜ—y‘yˆÜˆIð	%Ø×Ñœi¬×)>Ñ)>Ä×@QÒ@QÐRSÓ@TÔUà$ŒAŽIø˜ŒA�Iús   Á9B	 Â	Bc               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   r5  ƒ  s   € ÷ Gñ G dñ Gr   c                ón   €  ! R R4      pV P                  \        \        P                  V! 4       4       R# )z‘
L{aot.jellyToSource} should raise a C{TypeError} when trying to jelly
an unknown type without a C{__dict__} property or C{__getstate__}
method.
c                  óB   € ] tR tRt]R R l4       t]R R l4       tRtR# )Ú2AOTTests.test_unsupportedType.<locals>.UnknownTypeiŠ  c               ó   € V ^8„  d   QhRR/# rØ   r   )r   s   "r   r   Ú?AOTTests.test_unsupportedType.<locals>.UnknownType.__annotate__Œ  s   € ÷ 'ñ ' (ñ 'r   c                	ó   € \        4       hrk   ©ÚAttributeErrorr#   s   &r   Ú__dict__Ú;AOTTests.test_unsupportedType.<locals>.UnknownType.__dict__‹  ó   € ä$Ó&Ð&r   c               ó   € V ^8„  d   QhRR/# rØ   r   )r   s   "r   r   rT  �  s   € ÷ 'ñ ' hñ 'r   c                	ó   € \        4       hrk   rV  r#   s   &r   r+  Ú?AOTTests.test_unsupportedType.<locals>.UnknownType.__getstate__�  rZ  r   r   N)r)   r*   r+   r,   ÚpropertyrX  r+  r-   r   r   r   ÚUnknownTyperR  Š  s(   † Øô'ó ð'ð ô'ó ô'r   r_  N)rK  rÛ   r	   r>  )r$   r_  s   & r   Útest_unsupportedTypeÚAOTTests.test_unsupportedTypeƒ  s(   € ÷	'ñ 	'ð 	×Ñœ)¤S×%6Ñ%6¹»ÖFr   c               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   r5  •  s   € ÷ $ñ $ Dñ $r   c                	óà  € \         P                  ! 4       P                  pR RRV/p^^^RR^R^d^d,          \        \         P                  V\        .p\        V4      pVP                  V4       VP                  V4       VP                  V4       \         P                  ! \         P                  ! W3.4      4      pV^ ,          V^,          J g   Q hV^,          R,          VR,          8X  g   Q hR# )r7  r8  Úmethodzhe	llo

"x world!u   goodbye 
	á€� world!g      ð?:r   é   NN)	r	   Ú
AOTJellierÚ	jellyToAOr   r   ÚtupleÚappendr=  r>  )r$   ÚajÚdÚlÚtÚujs   &     r   Útest_basicIdentityÚAOTTests.test_basicIdentity•  sÎ   € ô �^Š^Ó×'Ñ'ˆØ�g˜x¨Ð,ˆàØØØ"Ø'ØØØ��HÜÜ�N‰NØÜð
ˆô �!‹HˆØ	�‰�ŒØ	�‰�ŒØ	�‰�ŒÜ×"Ò"¤3×#4Ò#4°a°VÓ#<Ó=ˆØ�!�u˜˜1�‹~Ðˆ~Ø�!�u�S�z˜Q˜s�VÔ#Ð#Ò#r   c               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   r5  °  s   € ÷ Lñ L 4ñ Lr   c                	ó²   € \        4       pR Vn        \        P                  ! \        P                  ! V4      4      P                  VP                  8X  g   Q hR# )z	meringue!N)r%  r&  r	   r=  r>  )r$   rù   s   & r   Útest_nonDictStateÚAOTTests.test_nonDictState°  s>   € Ü‹NˆØˆŒÜ×$Ò$¤S×%6Ò%6°qÓ%9Ó:×@Ñ@ÀAÇGÁGÔKÐKÒKr   c               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   r5  µ  s   € ÷ 8ñ 8˜dñ 8r   c                ó–   € \         P                  ! \         P                  ! \        4       4      4      pV P	                  V\
        4       R# )zk
L{aot.jellyToSource} and L{aot.unjellyFromSource} honor functions
registered in the pickle copy registry.
N)r	   r=  r>  rß   r  ræ   )r$   rn  s   & r   Útest_copyRegÚAOTTests.test_copyRegµ  s3   € ô
 ×"Ò"¤3×#4Ò#4´^Ó5EÓ#FÓGˆØ×Ñ˜bÔ"6Ö7r   c               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   r5  ½  s   € ÷ "ñ " dñ "r   c                	óB  € \        \        . 4      4      p\        P                  ! V4      p\        P                  ! V4      pVP                  VJ g   Q hVP                  P
                  VP
                  J g   Q hVP                  VP                  P                  Jg   Q hR # rk   )r  r	   Ú
jellyToAOTÚunjellyFromAOTrù   r  r  )r$   rÈ   Új1Úojs   &   r   Útest_funkyReferencesÚAOTTests.test_funkyReferences½  sq   € Üœ-¨Ó+Ó,ˆÜ�^Š^˜AÓˆÜ×Ò Ó#ˆà�t‰t�r‹zÐˆzØ�t‰t�v‰v˜Ÿ™‹~Ðˆ~Ø�t‰t˜2Ÿ4™4Ÿ6™6Ó!Ð!Ò!r   c               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   r5  Æ  s   € ÷ )ñ ) Dñ )r   c                óF  € . pVR3pVP                  V4       \        P                  ! V4      p\        P                  ! V4      pV P	                  V^ ,          \
        4       V P                  V^ ,          ^ ,          V4       V P                  V^ ,          ^,          R4       R# )zC
L{aot.jellyToAOT} can persist circular references through tuples.
iá  N)ri  r	   r{  r|  r  rh  ÚassertIsry   )r$   rl  rm  r}  r~  s   &    r   Útest_circularTupleÚAOTTests.test_circularTupleÆ  s}   € ð !#ˆØ�ˆIˆØ	�‰�ŒÜ�^Š^˜AÓˆÜ×Ò Ó#ˆØ×Ñ˜b �e¤UÔ+Ø�‰�b˜•e˜A•h Ô#Ø×Ñ˜˜A�˜q� 4Ö(r   c               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   r5  Ó  s   € ÷ 
ñ 
˜tñ 
r   c                ó‚   € V P                  \        P                  ! RR. //4      \        P                  ! R4      4       R# )z*
The generated serialization is indented.
r7  r8  z|                app={
                  'hello':{
                    'world':[],
                    },
                  }N)ry   r	   r>  ÚtextwrapÚdedentr#   s   &r   ÚtestIndentifyÚAOTTests.testIndentifyÓ  s:   € ð 	×ÑÜ×Ò˜w¨°"¨Ð6Ó7Ü�OŠOðóö
	
r   r   N)r)   r*   r+   r,   r@  rG  rM  r`  ro  rs  rw  r  r„  rŠ  r-   r   r   r   r3  r3  Y  s<   † õ%õ Tõ%õ"Gõ$$õ6Lõ
8õ"õ)÷
ñ 
r   r3  c                  óV   € ] tR tRtRtR R ltR R ltR R ltR	 R
 ltR R lt	Rt
R# )ÚCrefUtilTestsiä  z
Tests for L{crefutil}.
c               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   ÚCrefUtilTests.__annotate__é  s   € ÷ =ñ = Tñ =r   c                óv   € \         P                  ! / 4      pV P                  \        VP                  ^^4       R# )z?
L{crefutil._DictKeyAndValue} only support keys C{0} and C{1}.
N)r
   Ú_DictKeyAndValuerK  ÚRuntimeErrorÚ__setitem__©r$   rk  s   & r   Útest_dictUnknownKeyÚ!CrefUtilTests.test_dictUnknownKeyé  s,   € ô ×%Ò% bÓ)ˆØ×Ñœ,¨¯©°q¸!Ö<r   c               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   r�  ð  s   € ÷ =ñ =¨Dñ =r   c                ó~   € \         P                  ! 4       p^V^ &   V P                  \        VP                  ^ ^4       R# )z9
L{crefutil._Defer} can be assigned a key only one time.
N)r
   Ú_DeferrK  r’  r“  r”  s   & r   Útest_deferSetMultipleTimesÚ(CrefUtilTests.test_deferSetMultipleTimesð  s1   € ô �OŠOÓˆØˆˆ!‰Ø×Ñœ,¨¯©°q¸!Ö<r   c               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   r�  ø  s   € ÷ Sñ S¸ñ Sr   c                ó„   € \         P                  ! . RO\        4      pV P                  \        VP
                  / R4       R# )z™
A L{crefutil._Container} where all of its elements are known at
construction time is nonsensical and will result in errors in any call
to addDependant.
z	ignore-meN)r2   r   rÃ   )r
   Ú
_ContainerÚlistrK  ÚAssertionErrorÚaddDependant)r$   Ú	containers   & r   Ú&test_containerWhereAllElementsAreKnownÚ4CrefUtilTests.test_containerWhereAllElementsAreKnownø  s0   € ô ×'Ò'ª	´4Ó8ˆ	Ø×Ñœ.¨)×*@Ñ*@À"ÀkÖRr   c               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   r�    s   € ÷ 	
ñ 	
Àñ 	
r   c                ó€   € V P                  \        \        4       P                  \        P
                  ! 4       R4       R# )zÑ
If a dictionary key contains a circular reference (which is probably a
bad practice anyway) it will be resolved by a
L{crefutil._DictKeyAndValue}, not by placing a L{crefutil.NotKnown}
into a dictionary key.
ÚvalueN)rK  r   Údictr“  r
   ÚNotKnownr#   s   &r   Ú.test_dontPutCircularReferencesInDictionaryKeysÚ<CrefUtilTests.test_dontPutCircularReferencesInDictionaryKeys  s,   € ð 	×ÑÜœD›F×.Ñ.´×0AÒ0AÓ0CÀWö	
r   c               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   r�    s   € ÷ 	
ñ 	
¸Dñ 	
r   c                óŒ   € V P                  \        \        P                  ! R\        P                  ! 4       \
        4      4       R# )z»
L{crefutil._InstanceMethod} raises L{AssertionError} to indicate it
should not be called.  This should not be possible with any of its API
clients, but is provided for helping to debug.
Úno_nameN)rK  r   r
   Ú_InstanceMethodr©  r  r#   s   &r   Ú*test_dontCallInstanceMethodsThatArentReadyÚ8CrefUtilTests.test_dontCallInstanceMethodsThatArentReady  s0   € ð 	×ÑÜÜ×$Ò$ Y´×0AÒ0AÓ0CÄTÓJö	
r   r   N)r)   r*   r+   r,   r²   r•  rš  r£  rª  r°  r-   r   r   r   r�  r�  ä  s&   † ñõ=õ=õSõ	
÷	
ñ 	
r   r�  )0Ú
__future__r   Úcopyregr  r6   r:  rˆ  Útypingr   r   r   r   r   Útwisted.persistedr	   r
   r   Útwisted.trialr   Útwisted.trial.unittestr   r   r8   r–   r™   r›   r�   rŸ   rÅ   r´   r¿   rÌ   rÖ   rß   ræ   rê   rì   rø   r   r  r  r  r%  rh   r1  r3  r�  Ú	testCasesr   r   r   Ú<module>r¹     sr  ðõ #ó Û 	Û Û 
Û ß -Ó -å ÷ 4Ñ 3Ý "Ý +ôn&�8ô n&ôb	˜×(Ñ(ô 	ô	˜f×.Ñ.ô 	ô	Ð,ô 	ô	Ð3Ð5Lô 	ô"
�8ô "
ôJ�&×"Ñ"ô ô

*�Xô 
*÷ñ ÷	-ñ 	-÷
-ñ 
-÷ñ õ	$ð ‡‚ˆ~Ð3Ô 4÷ñ ÷ñ õ	ô2�Hô 2ô 4˜hô 4÷(ñ ÷ñ ð ˜%Ð 4°cÐ 9Õ:Õ;Ð ôH
ˆxô H
ôV1
�Hô 1
ðh ˜>¨=Ð9‚	r   