Ë
    š”eÐ@ ã                   ó8  — d Z ddlZddlmZ ddlmZ ddlmZ  G d„ d«      Z G d„ d	ej                  «      Z	 G d
„ dej                  «      Z
 G d„ de
«      Z G d„ de
«      Z G d„ deej                  «      Z G d„ dej                  «      Z G d„ dee«      Z G d„ d«      Z G d„ deej                  «      Z G d„ deej                  «      Z G d„ de«      Z G d„ dej                  «      Z G d „ d!e«      Z G d"„ d#e«      Z G d$„ d%ej                  «      Z G d&„ d'e«      Z G d(„ d)ej                  «      Z G d*„ d+ej                  «      Z G d,„ d-ej                  «      Z G d.„ d/ej                  «      Z G d0„ d1ej                  «      Z G d2„ d3ej                  «      Z G d4„ d5ee«      Z G d6„ d7ej                  «      Z  G d8„ d9e «      Z! G d:„ d;ej                  «      Z" G d<„ d=ej                  «      Z# G d>„ d?ej                  «      Z$ G d@„ dAej                  «      Z% G dB„ dCej                  «      Z& G dD„ dEe&e«      Z' G dF„ dGej                  «      Z( G dH„ dIe(e«      Z) G dJ„ dKej                  «      Z* G dL„ dMe*e«      Z+ G dN„ dO«      Z, G dP„ dQ«      Z-y)Rz@Test the new API for making and checking interface declarations
é    N)ÚOptimizationTestMixin)ÚMissingSomeAttrs)Ú!NameAndModuleComparisonTestsMixinc                   ó   — e Zd Z	 dd„Zy)Ú_Py3ClassAdvicec                 óî   — dd l }|j                  d¬«      5 }|j                  «        	 t        |||«       |r| j	                  d«       	 	 d d d «       y # t
        $ r Y d d d «       yw xY w# 1 sw Y   y xY w)Nr   T)ÚrecordzDidn't raise TypeErrorF)ÚwarningsÚcatch_warningsÚresetwarningsÚexecÚfailÚ	TypeError)ÚselfÚcodeÚglobsÚlocsÚfails_under_py3kr
   Úlogs          úH/usr/lib/python3/dist-packages/zope/interface/tests/test_declarations.pyÚ_run_generated_codez#_Py3ClassAdvice._run_generated_code   s„   € ó 	Ø×$Ñ$¨DÐ$Ó1ð 
	°SØ×"Ñ"Ô$ð8Ü�T˜5 $Ô'ñ $Ø—I‘IÐ6Õ7Ø÷
	ð 
	øô
 ò Ø÷
	ð 
	ð
ú÷
	ð 
	ús-   —A+©A¶A+Á	A(ÁA+Á'A(Á(A+Á+A4N)T)Ú__name__Ú
__module__Ú__qualname__r   © ó    r   r   r      s   „ ð .2ôr   r   c                   ó   — e Zd Zd„ Zd„ Zd„ Zy)Ú
NamedTestsc                 ór   — ddl m}  |d«       G d„ d«      «       }| j                  |j                  d«       y )Nr   ©ÚnamedÚfooc                   ó   — e Zd Zy)ú"NamedTests.test_class.<locals>.FooN©r   r   r   r   r   r   ÚFoor$   2   ó   „ àr   r&   ©Úzope.interface.declarationsr!   ÚassertEqualÚ__component_name__)r   r!   r&   s      r   Ú
test_classzNamedTests.test_class/   s8   € Ý5á	ˆu‹÷	ð 	ó 
ð	ð 	×Ñ˜×/Ñ/°Õ7r   c                 ód   — ddl m}  |d«      d„ «       }| j                  |j                  d«       y )Nr   r    r"   c                 ó   — t        «       ‚©N©ÚNotImplementedError)Úos    r   ÚdoFooz'NamedTests.test_function.<locals>.doFoo;   s   € ä%Ó'Ð'r   r(   )r   r!   r3   s      r   Útest_functionzNamedTests.test_function8   s3   € Ý5á	ˆu‹ñ	(ó 
ð	(ð 	×Ñ˜×1Ñ1°5Õ9r   c                 ó†   — ddl m}  G d„ d«      } |«       }  |d«      |«       | j                  |j                  d«       y )Nr   r    c                   ó   — e Zd Zy)ú%NamedTests.test_instance.<locals>.FooNr%   r   r   r   r&   r7   D   ó   „ Ør   r&   r"   r(   )r   r!   r&   r"   s       r   Útest_instancezNamedTests.test_instanceA   s:   € Ý5÷	ñ 	á‹eˆØ‰ˆe‹�SÔà×Ñ˜×/Ñ/°Õ7r   N)r   r   r   r,   r4   r9   r   r   r   r   r   -   s   „ ò8ò:ó8r   r   c                   óH   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zy)ÚEmptyDeclarationTestsc                 ó   — ddl m}  |«       S ©Nr   )ÚDeclaration©r)   r>   ©r   r>   s     r   Ú	_getEmptyzEmptyDeclarationTests._getEmptyP   s   € Ý;Ù‹}Ðr   c                 óZ   — | j                  «       }| j                  t        |«      g «       y r/   )rA   r*   Úlist©r   Údecls     r   Útest___iter___emptyz)EmptyDeclarationTests.test___iter___emptyT   s"   € Ø�~‰~ÓˆØ×Ñœ˜d› RÕ(r   c                 ó„   — ddl m} | j                  «       }| j                  t	        |j                  «       «      |g«       y ©Nr   ©Ú	Interface)Úzope.interface.interfacerJ   rA   r*   rC   Ú	flattened©r   rJ   rE   s      r   Útest_flattened_emptyz*EmptyDeclarationTests.test_flattened_emptyX   s/   € Ý6Ø�~‰~ÓˆØ×Ñœ˜dŸn™nÓ.Ó/°)°Õ=r   c                 óT   — ddl m} | j                  «       }| j                  ||«       y rH   )rK   rJ   rA   ÚassertNotInrM   s      r   Útest___contains___emptyz-EmptyDeclarationTests.test___contains___empty]   s!   € Ý6Ø�~‰~ÓˆØ×Ñ˜ DÕ)r   c                 ó´   — ddl m} | j                  «       }| j                  |j	                  |«      «       | j                  |j	                  |d¬«      «       y )Nr   rI   T©Ústrict)rK   rJ   rA   Ú
assertTrueÚextendsrM   s      r   Útest_extends_emptyz(EmptyDeclarationTests.test_extends_emptyb   s?   € Ý6Ø�~‰~ÓˆØ�‰˜Ÿ™ YÓ/Ô0Ø�‰˜Ÿ™ Y°t˜Ó<Õ=r   c                 óz   — | j                  «       }t        |j                  «       «      }| j                  |g «       y r/   )rA   rC   Ú
interfacesr*   )r   rE   Úls      r   Útest_interfaces_emptyz+EmptyDeclarationTests.test_interfaces_emptyh   s/   € Ø�~‰~ÓˆÜ�—‘Ó"Ó#ˆØ×Ñ˜˜BÕr   c                 ól   — ddl m} | j                  «       }| j                  |j                  ||f«       y rH   )rK   rJ   rA   r*   Ú__sro__rM   s      r   Útest___sro___z#EmptyDeclarationTests.test___sro___m   s*   € Ý6Ø�~‰~ÓˆØ×Ñ˜Ÿ™¨¨iÐ'9Õ:r   c                 ój   — ddl m} | j                  «       }| j                  |j                  |f«       y rH   )rK   rJ   rA   r*   Ú__iro__rM   s      r   Útest___iro___z#EmptyDeclarationTests.test___iro___r   s'   € Ý6Ø�~‰~ÓˆØ×Ñ˜Ÿ™¨	 |Õ4r   c                 óÞ   — | j                  «       }| j                  |j                  d«      «       | j                  |j                  dd«      d«       | j	                  |j
                  «       y )NÚattrÚabcÚdef)rA   ÚassertIsNoneÚgetr*   ÚassertFalseÚ_v_attrsrD   s     r   Útest_getzEmptyDeclarationTests.test_getw   sT   € Ø�~‰~ÓˆØ×Ñ˜$Ÿ(™( 6Ó*Ô+Ø×Ñ˜Ÿ™ %¨Ó/°Ô7ð 	×Ñ˜Ÿ™Õ'r   c                 óš   — | j                  «       }t        «       |_        |j                  |«       | j	                  |j                  «       y r/   )rA   Úobjectri   Úchangedrh   rD   s     r   Ú test_changed_w_existing__v_attrsz6EmptyDeclarationTests.test_changed_w_existing__v_attrs   s5   € Ø�~‰~ÓˆÜ›ˆŒØ�‰�TÔØ×Ñ˜Ÿ™Õ'r   N)r   r   r   rA   rF   rN   rQ   rW   r[   r^   ra   rj   rn   r   r   r   r;   r;   L   s4   „ òò)ò>ò
*ò
>ò ò
;ò
5ò
(ó(r   r;   c                   óœ   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚDeclarationTestsc                 ó   — ddl m} |S r=   r?   r@   s     r   Ú_getTargetClassz DeclarationTests._getTargetClassˆ   ó   € Ý;ØÐr   c                 ó.   —  | j                  «       |i |¤ŽS r/   ©rr   ©r   ÚargsÚkws      r   Ú_makeOnezDeclarationTests._makeOneŒ   ó   € Ø%ˆt×#Ñ#Ó% tÐ2¨rÑ2Ð2r   c                 ón   — | j                  «       }| j                  t        |j                  «      g «       y r/   )ry   r*   rC   Ú	__bases__rD   s     r   Útest_ctor_no_basesz#DeclarationTests.test_ctor_no_bases�   s&   € Ø�}‰}‹ˆØ×Ñœ˜dŸn™nÓ-¨rÕ2r   c                 óŽ   — ddl m}  |d«      }| j                  |«      }| j                  t	        |j
                  «      |g«       y ©Nr   ©ÚInterfaceClassÚIFoo)rK   r�   ry   r*   rC   r|   ©r   r�   r‚   rE   s       r   Útest_ctor_w_interface_in_basesz/DeclarationTests.test_ctor_w_interface_in_bases“   s8   € Ý;Ù˜fÓ%ˆØ�}‰}˜TÓ"ˆØ×Ñœ˜dŸn™nÓ-°¨vÕ6r   c                 óŒ   — ddl m}  |«       }| j                  |«      }| j                  t	        |j
                  «      |g«       y ©Nr   ©Ú
Implements)r)   rˆ   ry   r*   rC   r|   )r   rˆ   ÚimplrE   s       r   Útest_ctor_w_implements_in_basesz0DeclarationTests.test_ctor_w_implements_in_bases™   s5   € Ý:Ù‹|ˆØ�}‰}˜TÓ"ˆØ×Ñœ˜dŸn™nÓ-°¨vÕ6r   c                 ó|   — | j                  «       }|j                  |«       | j                  |j                  «       y r/   )ry   rm   rf   ri   rD   s     r   Ú!test_changed_wo_existing__v_attrsz2DeclarationTests.test_changed_wo_existing__v_attrsŸ   s+   € Ø�}‰}‹ˆØ�‰�TÔØ×Ñ˜$Ÿ-™-Õ(r   c                 óH   — | j                  «       }| j                  ||«       y r/   )ry   rP   rD   s     r   Útest___contains__w_selfz(DeclarationTests.test___contains__w_self¤   s   € Ø�}‰}‹ˆØ×Ñ˜˜tÕ$r   c                 ód   — ddl m}  |d«      }| j                  «       }| j                  ||«       y r   )rK   r�   ry   rP   rƒ   s       r   Ú"test___contains__w_unrelated_ifacez3DeclarationTests.test___contains__w_unrelated_iface¨   s*   € Ý;Ù˜fÓ%ˆØ�}‰}‹ˆØ×Ñ˜˜tÕ$r   c                 óf   — ddl m}  |d«      }| j                  |«      }| j                  ||«       y r   )rK   r�   ry   ÚassertInrƒ   s       r   Ú!test___contains__w_base_interfacez2DeclarationTests.test___contains__w_base_interface®   s+   € Ý;Ù˜fÓ%ˆØ�}‰}˜TÓ"ˆØ�‰�d˜DÕ!r   c                 óz   — ddl m}  |d«      }| j                  |«      }| j                  t	        |«      |g«       y r   ©rK   r�   ry   r*   rC   rƒ   s       r   Útest___iter___single_basez*DeclarationTests.test___iter___single_base´   s3   € Ý;Ù˜fÓ%ˆØ�}‰}˜TÓ"ˆØ×Ñœ˜d› d VÕ,r   c                 óŽ   — ddl m}  |d«      } |d«      }| j                  ||«      }| j                  t	        |«      ||g«       y ©Nr   r€   r‚   ÚIBarr•   ©r   r�   r‚   r™   rE   s        r   Útest___iter___multiple_basesz-DeclarationTests.test___iter___multiple_basesº   sA   € Ý;Ù˜fÓ%ˆÙ˜fÓ%ˆØ�}‰}˜T 4Ó(ˆØ×Ñœ˜d› d¨D \Õ2r   c                 óŽ   — ddl m}  |d«      } |d|f«      }| j                  |«      }| j                  t	        |«      |g«       y r˜   r•   rš   s        r   Útest___iter___inheritancez*DeclarationTests.test___iter___inheritanceÁ   sA   € Ý;Ù˜fÓ%ˆÙ˜f t gÓ.ˆØ�}‰}˜TÓ"ˆØ×Ñœ˜d› d VÕ,r   c                 ó’   — ddl m}  |d«      } |d«      }| j                  |||f«      }| j                  t	        |«      ||g«       y r˜   r•   rš   s        r   Ú'test___iter___w_nested_sequence_overlapz8DeclarationTests.test___iter___w_nested_sequence_overlapÈ   sE   € Ý;Ù˜fÓ%ˆÙ˜fÓ%ˆØ�}‰}˜T D¨$ <Ó0ˆØ×Ñœ˜d› d¨D \Õ2r   c                 ó¤   — ddl m} ddl m}  |d«      }| j                  |«      }| j	                  t        |j                  «       «      ||g«       y )Nr   rI   r€   r‚   ©rK   rJ   r�   ry   r*   rC   rL   )r   rJ   r�   r‚   rE   s        r   Útest_flattened_single_basez+DeclarationTests.test_flattened_single_baseÏ   sA   € Ý6Ý;Ù˜fÓ%ˆØ�}‰}˜TÓ"ˆØ×Ñœ˜dŸn™nÓ.Ó/°$¸	Ð1BÕCr   c                 ó¸   — ddl m} ddl m}  |d«      } |d«      }| j                  ||«      }| j	                  t        |j                  «       «      |||g«       y ©Nr   rI   r€   r‚   r™   r¡   ©r   rJ   r�   r‚   r™   rE   s         r   Útest_flattened_multiple_basesz.DeclarationTests.test_flattened_multiple_basesÖ   sO   € Ý6Ý;Ù˜fÓ%ˆÙ˜fÓ%ˆØ�}‰}˜T 4Ó(ˆØ×Ñœ˜dŸn™nÓ.Ó/°$¸¸iÐ1HÕIr   c                 óº   — ddl m} ddl m}  |d«      } |d|f«      }| j                  |«      }| j	                  t        |j                  «       «      |||g«       y r¤   r¡   r¥   s         r   Útest_flattened_inheritancez+DeclarationTests.test_flattened_inheritanceÞ   sQ   € Ý6Ý;Ù˜fÓ%ˆÙ˜f t gÓ.ˆØ�}‰}˜TÓ"ˆØ×Ñœ˜dŸn™nÓ.Ó/°$¸¸iÐ1HÕIr   c                 ó¼   — ddl m} ddl m}  |d«      } |d«      }| j                  |||f«      }| j	                  t        |j                  «       «      |||g«       y r¤   r¡   r¥   s         r   Ú(test_flattened_w_nested_sequence_overlapz9DeclarationTests.test_flattened_w_nested_sequence_overlapæ   sU   € Ý6Ý;Ù˜fÓ%ˆÙ˜fÓ%ˆð
 �}‰}˜T D¨$ <Ó0ˆà×Ñœ˜dŸn™nÓ.Ó/°$¸¸iÐ1HÕIr   c                 óÔ   — ddl m}  |d«      } |d«      }| j                  |«      }||z
  }| j                  || j	                  «       «       | j                  t        |«      |g«       y r˜   ©rK   r�   ry   ÚassertIsInstancerr   r*   rC   ©r   r�   r‚   r™   ÚbeforeÚafters         r   Ú test___sub___unrelated_interfacez1DeclarationTests.test___sub___unrelated_interfaceó   s_   € Ý;Ù˜fÓ%ˆÙ˜fÓ%ˆØ—‘˜tÓ$ˆØ˜‘ˆØ×Ñ˜e T×%9Ñ%9Ó%;Ô<Ø×Ñœ˜e› t fÕ-r   c                 ó‚   — ddl m}  |d«      }| j                  |«      }||z
  }| j                  t	        |«      g «       y r   r•   )r   r�   r‚   r¯   r°   s        r   Útest___sub___related_interfacez/DeclarationTests.test___sub___related_interfaceü   s:   € Ý;Ù˜fÓ%ˆØ—‘˜tÓ$ˆØ˜‘ˆØ×Ñœ˜e› bÕ)r   c                 ó–   — ddl m}  |d«      } |d|f«      }| j                  |«      }||z
  }| j                  t	        |«      g «       y r˜   r•   r®   s         r   Ú-test___sub___related_interface_by_inheritancez>DeclarationTests.test___sub___related_interface_by_inheritance  sH   € Ý;Ù˜fÓ%ˆÙ˜f t gÓ.ˆØ—‘˜tÓ$ˆØ˜‘ˆØ×Ñœ˜e› bÕ)r   c                 óÖ   — ddl m}  |d«      } |d«      }| j                  |«      }||z   }| j                  || j	                  «       «       | j                  t        |«      ||g«       y r˜   r¬   r®   s         r   Ú test___add___unrelated_interfacez1DeclarationTests.test___add___unrelated_interface  sa   € Ý;Ù˜fÓ%ˆÙ˜fÓ%ˆØ—‘˜tÓ$ˆØ˜‘ˆØ×Ñ˜e T×%9Ñ%9Ó%;Ô<Ø×Ñœ˜e› t¨T lÕ3r   c                 óÎ   — ddl m}  |d«      } |d«      } |d«      }| j                  ||«      }| j                  ||«      }||z   }| j                  t	        |«      |||g«       y )Nr   r€   r‚   r™   ÚIBazr•   )r   r�   r‚   r™   r¹   r¯   Úotherr°   s           r   Útest___add___related_interfacez/DeclarationTests.test___add___related_interface  sg   € Ý;Ù˜fÓ%ˆÙ˜fÓ%ˆÙ˜fÓ%ˆØ—‘˜t TÓ*ˆØ—‘˜d DÓ)ˆØ˜‘ˆØ×Ñœ˜e› t¨T°4Ð&8Õ9r   c                 óœ  — ddl m} ddlm} ddlm} ddl m}  |d«      } |d|f«      } ||j                  j                  d«      5  | j                  |«      }||z   }d d d «       | j                  j                  |||f«       | j                  |j                  ||f«       | j                  t        |«      ||g«       y # 1 sw Y   ŒdxY w)	Nr   rI   r€   ©Ú	C3Setting©ÚroÚIBaseÚIDerivedT)Úzope.interfacerJ   rK   r�   Úzope.interface.tests.test_ror¾   rÀ   ÚC3Ú
STRICT_IROry   r*   r`   r|   rC   )	r   rJ   r�   r¾   rÀ   rÁ   rÂ   Úbaser°   s	            r   Ú"test___add___overlapping_interfacez3DeclarationTests.test___add___overlapping_interface  s·   € õ 	-Ý;Ý:Ý%á˜wÓ'ˆÙ! *¨u¨hÓ7ˆá�r—u‘u×'Ñ'¨Ó.ñ 	$Ø—=‘= Ó'ˆDØ˜8‘OˆE÷	$ð 	×Ñ˜Ÿ™¨°5¸)Ð(DÔEØ×Ñ˜Ÿ™¨8°UÐ*;Ô<Ø×Ñœ˜e› x°Ð&7Õ8÷	$ð 	$ús   ÁCÃCc                 óÆ  — ddl m} ddl m} ddl m} ddlm} ddl m}  G d„ d|«      } G d	„ d
|«      } ||«       G d„ d«      «       } ||j                  j                  d«      5   ||«      |z   }	d d d «       | j                  	j                  |	|||f«       | j                  |	j                  ||f«       | j                  t        |	«      ||g«       y # 1 sw Y   ŒexY w)Nr   rI   ©ÚimplementedBy©Úimplementerr½   r¿   c                   ó   — e Zd Zy)úPDeclarationTests.test___add___overlapping_interface_implementedBy.<locals>.IBaseNr%   r   r   r   rÁ   rÏ   ?  r8   r   rÁ   c                   ó   — e Zd Zy)úSDeclarationTests.test___add___overlapping_interface_implementedBy.<locals>.IDerivedNr%   r   r   r   rÂ   rÑ   B  r8   r   rÂ   c                   ó   — e Zd Zy)úODeclarationTests.test___add___overlapping_interface_implementedBy.<locals>.BaseNr%   r   r   r   ÚBaserÓ   E  r'   r   rÔ   T)rÃ   rJ   rË   rÍ   rÄ   r¾   rÀ   rÅ   rÆ   r*   r]   r|   rC   )
r   rJ   rË   rÍ   r¾   rÀ   rÁ   rÂ   rÔ   r°   s
             r   Ú0test___add___overlapping_interface_implementedByzADeclarationTests.test___add___overlapping_interface_implementedBy4  sÔ   € õ
 	-Ý0Ý.Ý:Ý%ô	�Iô 	ô	�uô 	ñ 
�UÓ	÷	ð 	ó 
ð	ñ �r—u‘u×'Ñ'¨Ó.ñ 	3Ù! $Ó'¨(Ñ2ˆE÷	3ð 	×Ñ˜Ÿ™¨°¸%ÀÐ(KÔLØ×Ñ˜Ÿ™¨8°UÐ*;Ô<Ø×Ñœ˜e› x°Ð&7Õ8÷	3ð 	3ús   Á'CÃC N)r   r   r   rr   ry   r}   r„   rŠ   rŒ   rŽ   r�   r“   r–   r›   r�   rŸ   r¢   r¦   r¨   rª   r±   r³   rµ   r·   r»   rÈ   rÕ   r   r   r   rp   rp   †   s~   „ òò3ò3ò7ò7ò)ò
%ò%ò"ò-ò3ò-ò3òDòJòJòJò.ò*ò*ò4ò:ò9ó,9r   rp   c                   óN   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zy)ÚTestImmutableDeclarationc                 ó   — ddl m} |S )Nr   )Ú_ImmutableDeclaration)r)   rÙ   )r   rÙ   s     r   rr   z(TestImmutableDeclaration._getTargetClassS  s   € ÝEØ$Ð$r   c                 ó   — ddl m} |S )Nr   )Ú_empty)r)   rÛ   )r   rÛ   s     r   rA   z"TestImmutableDeclaration._getEmptyW  s
   € Ý6Øˆr   c                 ó¨   — dd l }|j                  |j                  | j                  «       «      «      }| j	                  || j                  «       «       y )Nr   )ÚpickleÚloadsÚdumpsrA   ÚassertIs)r   rÝ   Úcopieds      r   Útest_picklez$TestImmutableDeclaration.test_pickle[  s8   € ÛØ—‘˜fŸl™l¨4¯>©>Ó+;Ó<Ó=ˆØ�‰�f˜dŸn™nÓ.Õ/r   c                 ój   — | j                   | j                  «       «       | j                  «       «       y r/   )rà   rr   rA   ©r   s    r   Útest_singletonz'TestImmutableDeclaration.test_singleton`  s)   € Ø�‰Ø"ˆD× Ñ Ó"Ó$Ø�N‰NÓõ	
r   c                 óX   — | j                  | j                  «       j                  d«       y )Nr   )r*   rA   r|   rä   s    r   Útest__bases__z&TestImmutableDeclaration.test__bases__f  s   € Ø×Ñ˜Ÿ™Ó)×3Ñ3°RÕ8r   c                 óè   — | j                  «       }d|_        | j                  | j                  «       j                  d«       | j                  t        «      5  d|_        d d d «       y # 1 sw Y   y xY w)Nr   )é   )rA   r|   r*   ÚassertRaisesr   )r   Úemptys     r   Útest_change__bases__z-TestImmutableDeclaration.test_change__bases__i  s\   € Ø—‘Ó ˆØˆŒØ×Ñ˜Ÿ™Ó)×3Ñ3°RÔ8à×ÑœyÓ)ñ 	#Ø"ˆEŒO÷	#÷ 	#ñ 	#ús   ÁA(Á(A1c                 ó¢   — | j                  «       }|j                  }| j                  i |«       d|d<   | j                  i |j                  «       y )Né   ré   )rA   Ú
dependentsr*   )r   rë   Údepss      r   Útest_dependentsz(TestImmutableDeclaration.test_dependentsq  sH   € Ø—‘Ó ˆØ×ÑˆØ×Ñ˜˜TÔ"àˆˆQ‰Ø×Ñ˜˜U×-Ñ-Õ.r   c                 óB   — | j                  «       j                  d «       y r/   )rA   rm   rä   s    r   Útest_changedz%TestImmutableDeclaration.test_changedy  s   € à�‰Ó× Ñ  Õ&r   c                 ó   — | j                  | j                  «       j                  | «      «       | j                  | j                  «       j                  | d¬«      «       | j                  | j                  «       j                  | d¬«      «       y )NTrS   F)rh   rA   rV   rä   s    r   Útest_extends_always_falsez2TestImmutableDeclaration.test_extends_always_false}  sl   € Ø×Ñ˜Ÿ™Ó)×1Ñ1°$Ó7Ô8Ø×Ñ˜Ÿ™Ó)×1Ñ1°$¸tÐ1ÓDÔEØ×Ñ˜Ÿ™Ó)×1Ñ1°$¸uÐ1ÓEÕFr   c                 óÀ   — | j                  | j                  «       j                  d«      «       | j                  | j                  «       j                  dd«      d«       y )NÚnameé*   )rf   rA   rg   r*   rä   s    r   Útest_get_always_defaultz0TestImmutableDeclaration.test_get_always_default‚  sF   € Ø×Ñ˜$Ÿ.™.Ó*×.Ñ.¨vÓ6Ô7Ø×Ñ˜Ÿ™Ó)×-Ñ-¨f°bÓ9¸2Õ>r   c                 ó†  — | j                  «       }| j                  |j                  i «       d|j                  d<   | j                  |j                  i «       | j                  |j	                  d«      «       i x}|_        d|d<   | j                  |j                  i «       | j                  |j	                  d«      «       y )Nrø   rc   )rA   r*   ri   rf   rg   )r   rE   Úattrss      r   Útest_v_attrsz%TestImmutableDeclaration.test_v_attrs†  s›   € Ø�~‰~ÓˆØ×Ñ˜Ÿ™¨Ô+à "ˆ�‰�fÑØ×Ñ˜Ÿ™¨Ô+Ø×Ñ˜$Ÿ(™( 6Ó*Ô+à "Ð"ˆ�”Øˆˆf‰Ø×Ñ˜Ÿ™¨Ô+Ø×Ñ˜$Ÿ(™( 6Ó*Õ+r   N)r   r   r   rr   rA   râ   rå   rç   rì   rñ   ró   rõ   rù   rü   r   r   r   r×   r×   Q  s:   „ ò%òò0ò

ò9ò#ò/ò'òGò
?ó,r   r×   c                   óH   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zy)ÚTestImplementsc                 ó   — ddl m} |S r†   )r)   rˆ   )r   rˆ   s     r   rr   zTestImplements._getTargetClass—  ó   € Ý:ØÐr   c                 ó.   —  | j                  «       |i |¤ŽS r/   ru   rv   s      r   ry   zTestImplements._makeOne›  rz   r   c                 ó2   — ddl m}  G d„ d«      } ||«      S )Nr   rÊ   c                   ó   — e Zd Zy)ú+TestImplements._makeOneToCompare.<locals>.ANr%   r   r   r   ÚAr     r8   r   r  ©r)   rË   )r   rË   r  s      r   Ú_makeOneToComparez TestImplements._makeOneToComparež  s   € Ý=÷	ñ 	ñ ˜QÓÐr   c                 ó  — | j                  «       }| j                  |j                  d «       | j                  |j                  d«       | j                  |j                  d«       | j                  t        |j                  «      g «       y )Nr   ú?)ry   r*   ÚinheritÚdeclaredr   rC   r|   ©r   r‰   s     r   r}   z!TestImplements.test_ctor_no_bases¥  sb   € Ø�}‰}‹ˆØ×Ñ˜Ÿ™ tÔ,Ø×Ñ˜Ÿ™¨Ô+Ø×Ñ˜Ÿ™¨Ô,Ø×Ñœ˜dŸn™nÓ-¨rÕ2r   c                 óh   — | j                  «       }d|_        | j                  t        |«      d«       y )NÚTestingzclassImplements(Testing))ry   r   r*   Úreprr  s     r   Útest___repr__zTestImplements.test___repr__¬  s)   € Ø�}‰}‹ˆØ!ˆŒØ×Ñœ˜d›Ð%?Õ@r   c                 ót   — ddl m} | j                  «       }| j                  |j	                  «       |df«       y )Nr   rÊ   r/   )r)   rË   ry   r*   Ú
__reduce__)r   rË   r‰   s      r   Útest___reduce__zTestImplements.test___reduce__±  s,   € Ý=Ø�}‰}‹ˆØ×Ñ˜Ÿ™Ó*¨]¸GÐ,DÕEr   c                 ót  — ddl m}  G d„ d«      } G d„ d«      }ddlm}  |d«      }| j	                   ||«       ||«      «       | j	                  t         ||«      «      t         ||«      «      «       | j                   ||«      d k  «       | j                  d  ||«      kD  «       | j                   ||«       ||«      k  «       | j                   ||«      |kD  «       | j                   ||«       ||«      k  «       | j                   ||«      |k\  «       | j                   ||«      |k7  «       y )	Nr   rÊ   c                   ó   — e Zd Zy)ú#TestImplements.test_sort.<locals>.ANr%   r   r   r   r  r  ¸  r8   r   r  c                   ó   — e Zd Zy)ú#TestImplements.test_sort.<locals>.BNr%   r   r   r   ÚBr  º  r8   r   r  r€   r‚   )r)   rË   rK   r�   r*   ÚhashrU   )r   rË   r  r  r�   r‚   s         r   Ú	test_sortzTestImplements.test_sort¶  s  € Ý=÷	ñ 	÷	ñ 	å;Ù˜fÓ%ˆà×Ñ™ qÓ)©=¸Ó+;Ô<Ø×Ñœ™m¨AÓ.Ó/´±mÀAÓ6FÓ1GÔHØ�‰™ aÓ(¨4Ñ/Ô0Ø�‰˜™}¨QÓ/Ñ/Ô0Ø�‰™ aÓ(©=¸Ó+;Ñ;Ô<Ø�‰™ aÓ(¨4Ñ/Ô0Ø�‰™ aÓ(©M¸!Ó,<Ñ<Ô=Ø�‰™ aÓ(¨DÑ0Ô1Ø�‰™ aÓ(¨DÑ0Õ1r   c                 óä  —  G d„ d«      }ddl m}  G d„ d«      } G d„ d«      } ||«      } ||«      } ||«      }| j                  ||k(  «       | j                  ||k7  «       | j                  ||k7  «       | j                  ||k(  «       | j                  ||k(  «       | j                  ||k7  «       | j                  ||k7  «       | j                  ||k7  «       | j                  ||k7  «       y )	Nc                   ó$   — e Zd Zd„ Zd„ Zd„ Zd„ Zy)ú1TestImplements.test_proxy_equality.<locals>.Proxyc                 ó   — || _         y r/   ©Ú_wrapped)r   Úwrappeds     r   Ú__init__z:TestImplements.test_proxy_equality.<locals>.Proxy.__init__Ì  s	   € Ø '�•r   c                 ó   — t        «       ‚r/   r0   ©r   r÷   s     r   Ú__getattr__z=TestImplements.test_proxy_equality.<locals>.Proxy.__getattr__Ï  ó   € Ü)Ó+Ð+r   c                 ó    — | j                   |k(  S r/   r   ©r   rº   s     r   Ú__eq__z8TestImplements.test_proxy_equality.<locals>.Proxy.__eq__Ò  ó   € Ø—}‘}¨Ñ-Ð-r   c                 ó    — | j                   |k7  S r/   r   r)  s     r   Ú__ne__z8TestImplements.test_proxy_equality.<locals>.Proxy.__ne__Õ  r+  r   N)r   r   r   r#  r&  r*  r-  r   r   r   ÚProxyr  Ë  s   „ ò(ò,ò.ó.r   r.  r   rÊ   c                   ó   — e Zd Zy)ú-TestImplements.test_proxy_equality.<locals>.ANr%   r   r   r   r  r0  Ù  r8   r   r  c                   ó   — e Zd Zy)ú-TestImplements.test_proxy_equality.<locals>.BNr%   r   r   r   r  r2  Ü  r8   r   r  )r)   rË   rU   rh   )r   r.  rË   r  r  ÚimplementedByAÚimplementedByBÚproxys           r   Útest_proxy_equalityz"TestImplements.test_proxy_equalityÉ  sä   € ÷	.ñ 	.õ 	>÷	ñ 	÷	ñ 	ñ ' qÓ)ˆÙ& qÓ)ˆÙ�nÓ%ˆð 	�‰˜¨.Ñ8Ô9Ø�‰˜¨.Ñ8Ô9Ø�‰˜¨.Ñ8Ô9à�‰˜ Ñ/Ô0Ø�‰˜¨%Ñ/Ô0Ø×Ñ˜ .Ñ0Ô1Ø×Ñ˜¨5Ñ0Ô1à�‰˜ Ñ/Ô0Ø�‰˜¨%Ñ/Õ0r   c                 óh  — | j                  «       }| j                  |j                  «       | j                  d|j                  «       d|_        | j                  d|j                  «       |j                  d «       | j                  |j                  «       | j                  d|j                  «       y )NÚ_super_cacherø   )ry   rf   r8  rP   Ú__dict__r’   rm   r  s     r   Ú test_changed_deletes_super_cachez/TestImplements.test_changed_deletes_super_cacheñ  sƒ   € Ø�}‰}‹ˆØ×Ñ˜$×+Ñ+Ô,Ø×Ñ˜¨¯©Ô7àˆÔØ�‰�n d§m¡mÔ4à�‰�TÔØ×Ñ˜$×+Ñ+Ô,Ø×Ñ˜¨¯©Õ7r   c                 ó"  — | j                  «       }| j                  |j                  «       | j                  d|j                  «       |j                  d «       | j                  |j                  «       | j                  d|j                  «       y )Nr8  )ry   rf   r8  rP   r9  rm   r  s     r   Ú%test_changed_does_not_add_super_cachez4TestImplements.test_changed_does_not_add_super_cacheý  si   € Ø�}‰}‹ˆØ×Ñ˜$×+Ñ+Ô,Ø×Ñ˜¨¯©Ô7à�‰�TÔØ×Ñ˜$×+Ñ+Ô,Ø×Ñ˜¨¯©Õ7r   N)r   r   r   rr   ry   r  r}   r  r  r  r6  r:  r<  r   r   r   rþ   rþ   ”  s7   „ òò3ò ò3òAò
Fò
2ò&&1òP
8ó8r   rþ   c                   ó´   ‡ — e Zd Zd„ ZeZd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zˆ fd„Zˆ fd„Zˆ fd„Zˆ fd„Zˆ fd„Zˆ fd„Zˆ xZS )ÚTest_implementedByFallbackc                 ó   — ddl m} |S )Nr   )ÚimplementedByFallback)r)   r@  )r   r@  s     r   rr   z*Test_implementedByFallback._getTargetClass	  s   € åEØ$Ð$r   c                 ó.   —  | j                  «       |i |¤ŽS r/   ru   rv   s      r   Ú_callFUTz#Test_implementedByFallback._callFUT  rz   r   c                 óˆ   —  G d„ d«      } |«       }d |_         | j                  t        | j                  |«      «      g «       y )Nc                   ó   — e Zd ZdZy)ú]Test_implementedByFallback.test_dictless_wo_existing_Implements_wo_registrations.<locals>.Foo©Ú__implemented__N©r   r   r   Ú	__slots__r   r   r   r&   rE    ó   „ Ø,‰Ir   r&   )rG  r*   rC   rB  ©r   r&   r"   s      r   Ú5test_dictless_wo_existing_Implements_wo_registrationszPTest_implementedByFallback.test_dictless_wo_existing_Implements_wo_registrations  s9   € ÷	-ñ 	-á‹eˆØ"ˆÔØ×Ñœ˜dŸm™m¨CÓ0Ó1°2Õ6r   c                 óh   —  G d„ d«      } |«       }| j                  t        | j                  |«       y )Nc                   ó0   — e Zd Zd„ Zd„ Z eee«      Zd„ Zy)úhTest_implementedByFallback.test_dictless_wo_existing_Implements_cant_assign___implemented__.<locals>.Fooc                 ó   — t        «       ‚r/   r0   rä   s    r   Ú	_get_implzrTest_implementedByFallback.test_dictless_wo_existing_Implements_cant_assign___implemented__.<locals>.Foo._get_impl  r'  r   c                 ó   — t         ‚r/   )r   )r   Úvals     r   Ú	_set_implzrTest_implementedByFallback.test_dictless_wo_existing_Implements_cant_assign___implemented__.<locals>.Foo._set_impl  s   € Ü�r   c                 ó   — t        «       ‚r/   r0   rä   s    r   Ú__call__zqTest_implementedByFallback.test_dictless_wo_existing_Implements_cant_assign___implemented__.<locals>.Foo.__call__!  s   € ä)Ó+Ð+r   N)r   r   r   rQ  rT  ÚpropertyrG  rV  r   r   r   r&   rO    s   „ ò,ò á& y°)Ó<ˆOó,r   r&   ©rê   r   rB  rK  s      r   Ú@test_dictless_wo_existing_Implements_cant_assign___implemented__z[Test_implementedByFallback.test_dictless_wo_existing_Implements_cant_assign___implemented__  s+   € ÷	,ñ 	,ñ ‹eˆØ×Ñœ) T§]¡]°CÕ8r   c                 óä   — ddl m}  G d„ d«      } |«       }d |_        t        «       }t	        |d«      5 }|||<   | j                  | j                  |«      |u «       d d d «       y # 1 sw Y   y xY w)Nr   ©Údeclarationsc                   ó   — e Zd ZdZy)ú\Test_implementedByFallback.test_dictless_wo_existing_Implements_w_registrations.<locals>.FoorF  NrH  r   r   r   r&   r^  )  rJ  r   r&   Ú#BuiltinImplementationSpecifications)rÃ   r\  rG  rl   Ú_MonkeyDictrU   rB  )r   r\  r&   r"   ÚregÚspecss         r   Ú4test_dictless_wo_existing_Implements_w_registrationszOTest_implementedByFallback.test_dictless_wo_existing_Implements_w_registrations'  sn   € Ý/÷	-ñ 	-á‹eˆØ"ˆÔÜ‹hˆÜ˜Ø>ó@ð 	7ØCHØˆE�#‰JØ�O‰O˜DŸM™M¨#Ó.°#Ð5Ô6÷	7÷ 	7ñ 	7ús   µ(A&Á&A/c                 ó’   — ddl m}  |«       } G d„ d«      } |«       }||_        | j                  | j	                  |«      |u «       y )Nr   r‡   c                   ó   — e Zd ZdZy)úKTest_implementedByFallback.test_dictless_w_existing_Implements.<locals>.FoorF  NrH  r   r   r   r&   rf  6  rJ  r   r&   )r)   rˆ   rG  rU   rB  )r   rˆ   r‰   r&   r"   s        r   Ú#test_dictless_w_existing_Implementsz>Test_implementedByFallback.test_dictless_w_existing_Implements3  s?   € Ý:Ù‹|ˆ÷	-ñ 	-á‹eˆØ"ˆÔØ�‰˜Ÿ™ cÓ*¨dÐ2Õ3r   c                 ó¨   — ddl m}  G d„ d«      } |«       } |d«      }|f|_        | j                  t	        | j                  |«      «      |g«       y )Nr   r€   c                   ó   — e Zd ZdZy)úOTest_implementedByFallback.test_dictless_w_existing_not_Implements.<locals>.FoorF  NrH  r   r   r   r&   rj  >  rJ  r   r&   r‚   )rK   r�   rG  r*   rC   rB  )r   r�   r&   r"   r‚   s        r   Ú'test_dictless_w_existing_not_ImplementszBTest_implementedByFallback.test_dictless_w_existing_not_Implements<  sJ   € Ý;÷	-ñ 	-á‹eˆÙ˜fÓ%ˆØ#˜gˆÔØ×Ñœ˜dŸm™m¨CÓ0Ó1°D°6Õ:r   c                 ó|   ‡— ddl m}  |«       Š G ˆfd„d«      }| j                  | j                  |«      ‰u «       y )Nr   r‡   c                   ó   •— e Zd ZW ° Zy)úJTest_implementedByFallback.test_w_existing_attr_as_Implements.<locals>.FooN©r   r   r   rG  ©r‰   s   €r   r&   rn  H  ó   ø„ Ù"‰Or   r&   ©r)   rˆ   rU   rB  ©r   rˆ   r&   r‰   s      @r   Ú"test_w_existing_attr_as_Implementsz=Test_implementedByFallback.test_w_existing_attr_as_ImplementsE  ó1   ø€ Ý:Ù‹|ˆ÷	#ó 	#à�‰˜Ÿ™ cÓ*¨dÐ2Õ3r   c                 ó   — ddl m} ddlm} t	        |d«      5 }| j                  t        | j                  t        «      «      g «       | j                  t        | j                  t        «      «      g «       | j                  t        | j                  t        «      «      g «       t        t        t        fD ]B  }||   }| j                  ||«       | j                  t        |«      d|j                  ›d�«       ŒD 	 d d d «       y # 1 sw Y   y xY w)Nr   r[  r‡   r_  zclassImplements(ú))rÃ   r\  r)   rˆ   r`  r*   rC   rB  ÚtupleÚdictr­   r  r   )r   r\  rˆ   rb  ÚtypÚspecs         r   Útest_builtins_added_to_cachez7Test_implementedByFallback.test_builtins_added_to_cacheL  s×   € Ý/Ý:Ü˜Ø>ó@ð 
	4ØCHØ×ÑœT $§-¡-´Ó"6Ó7¸Ô<Ø×ÑœT $§-¡-´Ó"5Ó6¸Ô;Ø×ÑœT $§-¡-´Ó"5Ó6¸Ô;Üœt¤TÐ*ò 4�Ø˜S‘z�Ø×%Ñ% d¨JÔ7Ø× Ñ ¤ d¤à$'§L£Lð"3õ4ñ4÷
	4÷ 
	4ñ 
	4ús   ™C!DÄDc                 ó¨  — ddl m} t        «       t        «       t        «       }}}t        |d«      5 }||t        <   ||t
        <   ||t        <   | j                  | j                  t        «      |u «       | j                  | j                  t
        «      |u «       | j                  | j                  t        «      |u «       d d d «       y # 1 sw Y   y xY w)Nr   r[  r_  )	rÃ   r\  rl   r`  rx  rC   ry  rU   rB  )r   r\  Út_specÚl_specÚd_specrb  s         r   Útest_builtins_w_existing_cachez9Test_implementedByFallback.test_builtins_w_existing_cache[  s§   € Ý/Ü!'£¬6«8´V³X˜�ˆÜ˜Ø>ó@ð 	;ØCHØ!ˆE”%‰LØ ˆE”$‰KØ ˆE”$‰KØ�O‰O˜DŸM™M¬%Ó0°FÐ:Ô;Ø�O‰O˜DŸM™M¬$Ó/°6Ð9Ô:Ø�O‰O˜DŸM™M¬$Ó/°6Ð9Ô:÷	;÷ 	;ñ 	;ús   ±BCÃCc                 ól   —  G d„ d«      }| j                  t        | j                  |«      «      g «       y )Nc                   ó   — e Zd Zy)úITest_implementedByFallback.test_oldstyle_class_no_assertions.<locals>.FooNr%   r   r   r   r&   r„  i  r8   r   r&   ©r*   rC   rB  ©r   r&   s     r   Ú!test_oldstyle_class_no_assertionsz<Test_implementedByFallback.test_oldstyle_class_no_assertionsg  ó*   € ÷	ñ 	à×Ñœ˜dŸm™m¨CÓ0Ó1°2Õ6r   c                 ól   —  G d„ d«      }| j                  t        | j                  |«      «      g «       y )Nc                   ó   — e Zd Zy)ú:Test_implementedByFallback.test_no_assertions.<locals>.FooNr%   r   r   r   r&   r‹  o  r8   r   r&   r…  r†  s     r   Útest_no_assertionsz-Test_implementedByFallback.test_no_assertionsm  rˆ  r   c                 óh   —  G d„ d«      } |«       }| j                  t        | j                  |«       y )Nc                   ó   — e Zd ZdZy)úHTest_implementedByFallback.test_w_None_no_bases_not_factory.<locals>.FooNro  r   r   r   r&   r�  t  ó   „ Ø"‰Or   r&   rX  rK  s      r   Ú test_w_None_no_bases_not_factoryz;Test_implementedByFallback.test_w_None_no_bases_not_factorys  s)   € ÷	#ñ 	#á‹eˆØ×Ñœ) T§]¡]°CÕ8r   c                 óz  — ddl m}  G d„ d«      } |«       }d|_        | j                  |«      }| j	                  |j                  d«       | j                  |j                  |«       | j                  |j                  |«       | j                  |j                  |«       | j                  d|j                  «       y )Nr   )ÚobjectSpecificationDescriptorc                   ó   — e Zd ZdZd„ Zy)úFTest_implementedByFallback.test_w_None_no_bases_w_factory.<locals>.FooNc                 ó   — t        «       ‚r/   r0   rä   s    r   rV  zOTest_implementedByFallback.test_w_None_no_bases_w_factory.<locals>.Foo.__call__}  r'  r   )r   r   r   rG  rV  r   r   r   r&   r•  {  s   „ Ø"ˆOó,r   r&   r"   z*zope.interface.tests.test_declarations.fooÚ__provides__)r)   r“  r   rB  r*   rà   r
  rG  Ú__providedBy__rP   r9  )r   r“  r&   r"   r{  s        r   Útest_w_None_no_bases_w_factoryz9Test_implementedByFallback.test_w_None_no_bases_w_factoryy  s”   € ÝM÷	,ñ 	,ñ
 ‹eˆØˆŒØ�}‰}˜SÓ!ˆØ×Ñ˜Ÿ™ØEô	Gà�‰�d—l‘l CÔ(Ø�‰�c×)Ñ)¨4Ô0Ø�‰�c×(Ñ(Ð*GÔHØ×Ñ˜¨¯©Õ6r   c                 óª  — ddl m}  G d„ d«      }| j                  |«      }| j                  |j                  d«       | j                  |j                  |«       | j                  |j                  |«       | j                  |j                  |«       | j                  |j                  |«       | j                  |j                  |j                  «       y )Nr   ©ÚClassProvidesc                   ó   — e Zd ZdZy)úDTest_implementedByFallback.test_w_None_no_bases_w_class.<locals>.FooNro  r   r   r   r&   rž  Œ  r�  r   r&   z*zope.interface.tests.test_declarations.Foo)r)   rœ  rB  r*   r   rà   r
  rG  r­   r˜  r—  )r   rœ  r&   r{  s       r   Útest_w_None_no_bases_w_classz7Test_implementedByFallback.test_w_None_no_bases_w_classŠ  s£   € Ý=÷	#ñ 	#à�}‰}˜SÓ!ˆØ×Ñ˜Ÿ™ØEô	Gà�‰�d—l‘l CÔ(Ø�‰�c×)Ñ)¨4Ô0Ø×Ñ˜c×0Ñ0°-Ô@Ø×Ñ˜c×.Ñ.°Ô>Ø×Ñ˜×)Ñ)¨3×+=Ñ+=Õ>r   c                 ó|   ‡— ddl m}  |«       Š G ˆfd„d«      }| j                  | j                  |«      ‰u «       y )Nr   r‡   c                   ó   •— e Zd ZW ° Zy)úBTest_implementedByFallback.test_w_existing_Implements.<locals>.FooNro  rp  s   €r   r&   r¢  š  rq  r   r&   rr  rs  s      @r   Útest_w_existing_Implementsz5Test_implementedByFallback.test_w_existing_Implements—  ru  r   c                 óf  •— ddl m} ddlm}  G d„ d|«      } G d„ d|«      } ||«       G d„ d	«      «       } ||«       G d
„ d|«      «       }| j	                  t        | j                  |«      «      ||g«       t        ||«      }| j	                  t        | j                  |«      «      |g«       y )Nr   rI   rÌ   c                   ó   — e Zd Zy)úSTest_implementedByFallback.test_super_when_base_implements_interface.<locals>.IBaseNr%   r   r   r   rÁ   r¦  ¢  r8   r   rÁ   c                   ó   — e Zd Zy)úVTest_implementedByFallback.test_super_when_base_implements_interface.<locals>.IDerivedNr%   r   r   r   rÂ   r¨  ¥  r8   r   rÂ   c                   ó   — e Zd Zy)úRTest_implementedByFallback.test_super_when_base_implements_interface.<locals>.BaseNr%   r   r   r   rÔ   rª  ¨  r'   r   rÔ   c                   ó   — e Zd Zy)úUTest_implementedByFallback.test_super_when_base_implements_interface.<locals>.DerivedNr%   r   r   r   ÚDerivedr¬  ¬  r'   r   r­  ©rÃ   rJ   r)   rÍ   r*   rC   rB  Úsuper©	r   rJ   rÍ   rÁ   rÂ   rÔ   r­  ÚsupÚ	__class__s	           €r   Ú)test_super_when_base_implements_interfacezDTest_implementedByFallback.test_super_when_base_implements_interfacež  s°   ø€ Ý,Ý;ô	�Iô 	ô	�uô 	ñ 
�UÓ	÷	ð 	ó 
ð	ñ 
�XÓ	ô	�dó 	ó 
ð	ð 	×Ñœ˜dŸm™m¨GÓ4Ó5¸À%Ð7HÔIÜ�G˜WÓ%ˆØ×Ñœ˜dŸm™m¨CÓ0Ó1°E°7Õ;r   c                 ó”  •— ddl m} ddlm}  G d„ d|«      } G d„ d|«      } ||«       G d„ d	«      «       } G d
„ d|«      } G d„ d|«      } ||«       G d„ d||«      «       }| j	                  t        | j                  |«      «      ||g«       t        ||«      }	| j	                  t        | j                  |	«      «      |g«       y )Nr   rI   rÌ   c                   ó   — e Zd Zy)ú[Test_implementedByFallback.test_super_when_base_implements_interface_diamond.<locals>.IBaseNr%   r   r   r   rÁ   r¶  ¸  r8   r   rÁ   c                   ó   — e Zd Zy)ú^Test_implementedByFallback.test_super_when_base_implements_interface_diamond.<locals>.IDerivedNr%   r   r   r   rÂ   r¸  »  r8   r   rÂ   c                   ó   — e Zd Zy)úZTest_implementedByFallback.test_super_when_base_implements_interface_diamond.<locals>.BaseNr%   r   r   r   rÔ   rº  ¾  r'   r   rÔ   c                   ó   — e Zd Zy)ú\Test_implementedByFallback.test_super_when_base_implements_interface_diamond.<locals>.Child1Nr%   r   r   r   ÚChild1r¼  Â  r8   r   r½  c                   ó   — e Zd Zy)ú\Test_implementedByFallback.test_super_when_base_implements_interface_diamond.<locals>.Child2Nr%   r   r   r   ÚChild2r¿  Å  r8   r   rÀ  c                   ó   — e Zd Zy)ú]Test_implementedByFallback.test_super_when_base_implements_interface_diamond.<locals>.DerivedNr%   r   r   r   r­  rÂ  È  r'   r   r­  r®  )r   rJ   rÍ   rÁ   rÂ   rÔ   r½  rÀ  r­  r±  r²  s             €r   Ú1test_super_when_base_implements_interface_diamondzLTest_implementedByFallback.test_super_when_base_implements_interface_diamond´  sÊ   ø€ Ý,Ý;ô	�Iô 	ô	�uô 	ñ 
�UÓ	÷	ð 	ó 
ð	ô	�Tô 	ô	�Tô 	ñ 
�XÓ	ô	�f˜fó 	ó 
ð	ð 	×Ñœ˜dŸm™m¨GÓ4Ó5¸À%Ð7HÔIÜ�G˜WÓ%ˆØ×Ñœ˜dŸm™m¨CÓ0Ó1°E°7Õ;r   c                 ó  •— ddl m} ddlm}  G d„ d|«      } G d„ d|«      } G d„ d	«      } G d
„ d|«      } ||«       G d„ d|«      «       } ||«       G d„ d||«      «       }| j	                  |j
                  ||||t        f«       | j	                  t        | j                  |«      «      ||g«       t        ||«      }	| j                  |	«      }
| j	                  t        |
«      |g«       | j                  |
j                  «       y )Nr   rI   rÌ   c                   ó   — e Zd Zy)ú]Test_implementedByFallback.test_super_when_parent_implements_interface_diamond.<locals>.IBaseNr%   r   r   r   rÁ   rÆ  Ô  r8   r   rÁ   c                   ó   — e Zd Zy)ú`Test_implementedByFallback.test_super_when_parent_implements_interface_diamond.<locals>.IDerivedNr%   r   r   r   rÂ   rÈ  ×  r8   r   rÂ   c                   ó   — e Zd Zy)ú\Test_implementedByFallback.test_super_when_parent_implements_interface_diamond.<locals>.BaseNr%   r   r   r   rÔ   rÊ  Û  r8   r   rÔ   c                   ó   — e Zd Zy)ú^Test_implementedByFallback.test_super_when_parent_implements_interface_diamond.<locals>.Child1Nr%   r   r   r   r½  rÌ  Þ  r8   r   r½  c                   ó   — e Zd Zy)ú^Test_implementedByFallback.test_super_when_parent_implements_interface_diamond.<locals>.Child2Nr%   r   r   r   rÀ  rÎ  á  r'   r   rÀ  c                   ó   — e Zd Zy)ú_Test_implementedByFallback.test_super_when_parent_implements_interface_diamond.<locals>.DerivedNr%   r   r   r   r­  rÐ  å  r'   r   r­  )rÃ   rJ   r)   rÍ   r*   Ú__mro__rl   rC   rB  r¯  rf   Ú_dependents)r   rJ   rÍ   rÁ   rÂ   rÔ   r½  rÀ  r­  r±  Úfutr²  s              €r   Ú3test_super_when_parent_implements_interface_diamondzNTest_implementedByFallback.test_super_when_parent_implements_interface_diamondÐ  sÿ   ø€ Ý,Ý;ô	�Iô 	ô	�uô 	÷	ñ 	ô	�Tô 	ñ 
�UÓ	ô	�Tó 	ó 
ð	ñ 
�XÓ	ô	�f˜fó 	ó 
ð	ð 	×Ñ˜Ÿ™¨7°F¸FÀDÌ&Ð*QÔRØ×Ñœ˜dŸm™m¨GÓ4Ó5¸À%Ð7HÔIÜ�G˜WÓ%ˆØ�m‰m˜CÓ ˆØ×Ñœ˜c› U GÔ,Ø×Ñ˜#Ÿ/™/Õ*r   c                 óL  •— ddl m} ddlm}  G d„ d|«      } G d„ d|«      } G d„ d	«      } ||«       G d
„ d|«      «       }| j	                  t        | j                  |«      «      |g«       t        ||«      }| j	                  t        | j                  |«      «      g «       y )Nr   rI   rÌ   c                   ó   — e Zd Zy)úYTest_implementedByFallback.test_super_when_base_doesnt_implement_interface.<locals>.IBaseNr%   r   r   r   rÁ   r×  ô  r8   r   rÁ   c                   ó   — e Zd Zy)ú\Test_implementedByFallback.test_super_when_base_doesnt_implement_interface.<locals>.IDerivedNr%   r   r   r   rÂ   rÙ  ÷  r8   r   rÂ   c                   ó   — e Zd Zy)úXTest_implementedByFallback.test_super_when_base_doesnt_implement_interface.<locals>.BaseNr%   r   r   r   rÔ   rÛ  ú  r8   r   rÔ   c                   ó   — e Zd Zy)ú[Test_implementedByFallback.test_super_when_base_doesnt_implement_interface.<locals>.DerivedNr%   r   r   r   r­  rÝ  ý  r'   r   r­  r®  r°  s	           €r   Ú/test_super_when_base_doesnt_implement_interfacezJTest_implementedByFallback.test_super_when_base_doesnt_implement_interfaceð  s—   ø€ Ý,Ý;ô	�Iô 	ô	�uô 	÷	ñ 	ñ 
�XÓ	ô	�dó 	ó 
ð	ð 	×Ñœ˜dŸm™m¨GÓ4Ó5¸°zÔBä�G˜WÓ%ˆØ×Ñœ˜dŸm™m¨CÓ0Ó1°2Õ6r   c                 ó6  •— ddl m} ddlm}  G d„ d|«      } G d„ d|«      } ||«       G d„ d	«      «       }| j	                  t        | j                  |«      «      |g«       t        ||«      }| j	                  t        | j                  |«      «      g «       y )
Nr   rI   rÌ   c                   ó   — e Zd Zy)úHTest_implementedByFallback.test_super_when_base_is_object.<locals>.IBaseNr%   r   r   r   rÁ   rá  
  r8   r   rÁ   c                   ó   — e Zd Zy)úKTest_implementedByFallback.test_super_when_base_is_object.<locals>.IDerivedNr%   r   r   r   rÂ   rã    r8   r   rÂ   c                   ó   — e Zd Zy)úJTest_implementedByFallback.test_super_when_base_is_object.<locals>.DerivedNr%   r   r   r   r­  rå    r'   r   r­  r®  )r   rJ   rÍ   rÁ   rÂ   r­  r±  r²  s          €r   Útest_super_when_base_is_objectz9Test_implementedByFallback.test_super_when_base_is_object  s‹   ø€ Ý,Ý;ô	�Iô 	ô	�uô 	ñ 
�XÓ	÷	ð 	ó 
ð	ð 	×Ñœ˜dŸm™m¨GÓ4Ó5¸°zÔBä�G˜WÓ%ˆØ×Ñœ˜dŸm™m¨CÓ0Ó1°2Õ6r   c                 óð  •— ddl m} ddlm}  G d„ d|«      } G d„ d|«      } G d„ d	|«      } G d
„ d|«      } G d„ d|«      } ||«       G d„ d«      «       } ||«       G d„ d|«      «       }	 ||«       G d„ d|«      «       }
 |||«       G d„ d|	|
«      «       }|}t	        ||«      }t	        |	|«      }t	        |
|«      }| j                  t        | j                  |«      «      |||||g«       | j                  t        | j                  |«      «      |||g«       | j                  t        | j                  |«      «      ||g«       | j                  t        | j                  |«      «      |g«       y )Nr   rÌ   rI   c                   ó   — e Zd Zy)úRTest_implementedByFallback.test_super_multi_level_multi_inheritance.<locals>.IBaseNr%   r   r   r   rÁ   ré    r8   r   rÁ   c                   ó   — e Zd Zy)úPTest_implementedByFallback.test_super_multi_level_multi_inheritance.<locals>.IM1Nr%   r   r   r   ÚIM1rë    r8   r   rì  c                   ó   — e Zd Zy)úPTest_implementedByFallback.test_super_multi_level_multi_inheritance.<locals>.IM2Nr%   r   r   r   ÚIM2rî  "  r8   r   rï  c                   ó   — e Zd Zy)úUTest_implementedByFallback.test_super_multi_level_multi_inheritance.<locals>.IDerivedNr%   r   r   r   rÂ   rñ  %  r8   r   rÂ   c                   ó   — e Zd Zy)úWTest_implementedByFallback.test_super_multi_level_multi_inheritance.<locals>.IUnrelatedNr%   r   r   r   Ú
IUnrelatedró  (  r8   r   rô  c                   ó   — e Zd Zy)úQTest_implementedByFallback.test_super_multi_level_multi_inheritance.<locals>.BaseNr%   r   r   r   rÔ   rö  +  r'   r   rÔ   c                   ó   — e Zd Zy)úOTest_implementedByFallback.test_super_multi_level_multi_inheritance.<locals>.M1Nr%   r   r   r   ÚM1rø  /  r'   r   rù  c                   ó   — e Zd Zy)úOTest_implementedByFallback.test_super_multi_level_multi_inheritance.<locals>.M2Nr%   r   r   r   ÚM2rû  3  r'   r   rü  c                   ó   — e Zd Zy)úTTest_implementedByFallback.test_super_multi_level_multi_inheritance.<locals>.DerivedNr%   r   r   r   r­  rþ  7  r'   r   r­  ©r)   rÍ   rÃ   rJ   r¯  r*   rC   rB  ©r   rÍ   rJ   rÁ   rì  rï  rÂ   rô  rÔ   rù  rü  r­  ÚdÚsdÚsm1Úsm2r²  s                   €r   Ú(test_super_multi_level_multi_inheritancezCTest_implementedByFallback.test_super_multi_level_multi_inheritance  s�  ø€ Ý;Ý,ô	�Iô 	ô	�)ô 	ô	�)ô 	ô	�uô 	ô	˜ô 	ñ 
�UÓ	÷	ð 	ó 
ð	ñ 
�SÓ	ô	�ó 	ó 
ð	ñ 
�SÓ	ô	�ó 	ó 
ð	ñ 
�X˜zÓ	*ô	�b˜"ó 	ó 
+ð	ð ˆÜ�7˜GÓ$ˆÜ�B˜Ó ˆÜ�B˜Ó ˆà×Ñœ˜dŸm™m¨AÓ.Ó/Ø" J°°U¸CÐ@ô	Bà×Ñœ˜dŸm™m¨BÓ/Ó0Ø˜u cÐ*ô	,à×Ñœ˜dŸm™m¨CÓ0Ó1Ø˜u˜ô	'à×Ñœ˜dŸm™m¨CÓ0Ó1Ø˜õ	"r   )r   r   r   rr   Ú_getFallbackClassrB  rL  rY  rc  rg  rk  rt  r|  r�  r‡  rŒ  r‘  r™  rŸ  r£  r³  rÃ  rÔ  rÞ  ræ  r  Ú__classcell__©r²  s   @r   r>  r>    s   ø„ ò%ð
 (Ðò3ò7ò9ò
7ò4ò;ò4ò4ò
;ò7ò7ò9ò7ò"?ò4ô<ô,<ô8+ô@7ô,7÷$/"ð /"r   r>  c                   ó   — e Zd Zd„ Zy)ÚTest_implementedByc                 ó   — ddl m} |S )Nr   rÊ   r  )r   rË   s     r   rr   z"Test_implementedBy._getTargetClassN  ó   € Ý=ØÐr   N©r   r   r   rr   r   r   r   r
  r
  J  s   „ ór   r
  c                   ó0   — e Zd ZdZd„ Zde dz   dfd„Zd„ Zy)Ú_ImplementsTestMixinTc                 ó   — t         ‚r/   r0   )r   ÚclsÚifaces      r   rB  z_ImplementsTestMixin._callFUTV  s   € ä!Ð!r   Nz.Fooú	not givenc                 óH  — ddl m} ddlm}  |d«      }| j	                  ||«      }| j                  ||«       |j                  }	|�| j                  |	|«       | j                  |	j                  |«       |dk(  r|n|}| j                  |	j                  |«       | j                  |j                  |	«       | j                  r^| j                  |j                  |«       | j                  |j                  |«       | j                  |j                  |j                  «       ||fS )Nr   r›  r€   r‚   r  )r)   rœ  rK   r�   rB  rà   rG  r*   r   r
  ÚFUT_SETS_PROVIDED_BYr­   r˜  r—  )
r   r&   Ú	orig_specÚ	spec_namer
  rœ  r�   r‚   Úreturnedr{  s
             r   Ú_check_implementerz'_ImplementsTestMixin._check_implementerZ  s÷   € õ 	>Ý;Ù˜fÓ%ˆà—=‘=  dÓ+ˆà�‰�h Ô$Ø×"Ñ"ˆØÐ Ø�M‰M˜$ 	Ô*à×Ñ˜Ÿ™Ø"ô	$à  KÒ/‘#°WˆØ�‰�d—l‘l GÔ,Ø�‰�c×)Ñ)¨4Ô0Ø×$Ò$Ø×!Ñ! #×"4Ñ"4°mÔDØ×!Ñ! #×"2Ñ"2°MÔBØ×Ñ˜S×-Ñ-¨s×/AÑ/AÔBà�DˆyÐr   c                 ó:   —  G d„ d«      }| j                  |«       y )Nc                   ó   — e Zd Zy)ú,_ImplementsTestMixin.test_class.<locals>.FooNr%   r   r   r   r&   r  v  r8   r   r&   )r  r†  s     r   r,   z_ImplementsTestMixin.test_classu  s   € ÷	ñ 	à×Ñ Õ$r   )r   r   r   r  rB  r  r,   r   r   r   r  r  S  s'   „ ØÐò"ð
 &*Ø%-°Ñ%6Ø#.óó6%r   r  c                   ó(   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zy)ÚTest_classImplementsOnlyFc                 ó$   — ddl m}  |||«       |S )Nr   )ÚclassImplementsOnly)r)   r   )r   r  r  r   s       r   rB  z!Test_classImplementsOnly._callFUT}  s   € ÝCÙ˜C Ô'Øˆ
r   c                 óT  ‡— ddl m} ddlm}  |d«      } |d«      } ||«      Š|f‰_         G ˆfd„d«      }|‰_        | j                  ||«       | j                  |j                  ‰u «       | j                  ‰j
                  d «       | j                  ‰j                  |f«       y )Nr   r‡   r€   r‚   r™   c                   ó   •— e Zd ZW ° Zy)ú@Test_classImplementsOnly.test_w_existing_Implements.<locals>.FooNro  rp  s   €r   r&   r#  ‰  rq  r   r&   )
r)   rˆ   rK   r�   r  r
  rB  rU   rG  r*   ©r   rˆ   r�   r‚   r™   r&   r‰   s         @r   r£  z3Test_classImplementsOnly.test_w_existing_Implements‚  s�   ø€ Ý:Ý;Ù˜fÓ%ˆÙ˜fÓ%ˆÙ˜$ÓˆØ˜ˆŒ÷	#ó 	#àˆŒØ�‰�c˜4Ô à�‰˜×+Ñ+¨tÐ3Ô4Ø×Ñ˜Ÿ™ tÔ,Ø×Ñ˜Ÿ™¨¨Õ0r   c                 ó€   ‡— ddl m} ddlm}  |d«      } ||«      Š G ˆfd„d«      }| j	                  |‰dd ¬«       y )	Nr   r‡   r€   r™   c                   ó   •— e Zd ZW ° Zy)ú0Test_classImplementsOnly.test_class.<locals>.FooNro  )Úold_specs   €r   r&   r'  ˜  s   ø„ Ù&‰Or   r&   r	  ©r
  )r)   rˆ   rK   r�   r  )r   rˆ   r�   r™   r&   r(  s        @r   r,   z#Test_classImplementsOnly.test_class’  s>   ø€ Ý:Ý;Ù˜fÓ%ˆÙ˜dÓ#ˆ÷	'ó 	'à×Ñ  X¨s¸DÐÕAr   c                 óÊ   — | j                  t        dt        fi «      d ¬«      \  }} G d„ d|«      }| j                  ||«       | j	                  |j                  |«      «       y )Nr&   r)  c                   ó   — e Zd Zy)úRTest_classImplementsOnly.test_redundant_with_super_still_implements.<locals>.ChildNr%   r   r   r   ÚChildr,  £  r8   r   r-  )r  Útyperl   rB  rU   rË   )r   rÔ   rÁ   r-  s       r   Ú*test_redundant_with_super_still_implementszCTest_classImplementsOnly.test_redundant_with_super_still_implements�  s_   € Ø×-Ñ-Ü�œ˜	 2Ó&Øð .ó 
‰ˆˆeô
	�Dô 	ð 	�‰�e˜UÔ#Ø�‰˜×+Ñ+¨EÓ2Õ3r   N)r   r   r   r  rB  r£  r,   r/  r   r   r   r  r  z  s   „ Ø Ðòò
1ò Bó
4r   r  c                   ó6   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	y)	ÚTest_classImplementsc                 óF   — ddl m}  |||«      }| j                  |«       |S )Nr   ©ÚclassImplements)r)   r4  rf   )r   r  r  r4  Úresults        r   rB  zTest_classImplements._callFUT¬  s$   € Ý?Ù   eÓ,ˆØ×Ñ˜&Ô!Øˆ
r   c                 óà  — | j                  |«      \  }} G d„ d|«      }| j                  ||«      }| j                  d|j                  «       | j	                  d|j                  «       | j                  d|j                  «       |j
                  }| j                  |j                  d«       | j                  |j                  |«       | j                  |j                   |«       «      «       y )Nc                   ó   — e Zd Zy)úATest_classImplements.__check_implementer_redundant.<locals>.ChildNr%   r   r   r   r-  r8  ·  r8   r   r-  rG  r˜  r—  r   )r  rB  r’   r9  rP   rG  r*   r  r
  rU   Ú
providedBy)r   rÔ   rÁ   r-  r  r{  s         r   Ú__check_implementer_redundantz2Test_classImplements.__check_implementer_redundant²  sÂ   € ð ×-Ñ-¨dÓ3‰ˆˆeô	�Dô 	ð —=‘= ¨Ó.ˆØ�‰Ð'¨×):Ñ):Ô;Ø×ÑÐ)¨8×+<Ñ+<Ô=Ø�‰�n h×&7Ñ&7Ô8à×$Ñ$ˆØ×Ñ˜Ÿ™¨Ô+Ø×Ñ˜Ÿ™ uÔ-à�‰˜×(Ñ(©«Ó1Õ2r   c                 ó:   —  G d„ d«      }| j                  |«       y )Nc                   ó   — e Zd Zy)úUTest_classImplements.test_redundant_implementer_empty_class_declarations.<locals>.FooNr%   r   r   r   r&   r=  Æ  r8   r   r&   )Ú2_Test_classImplements__check_implementer_redundantr†  s     r   Ú3test_redundant_implementer_empty_class_declarationszHTest_classImplements.test_redundant_implementer_empty_class_declarationsÅ  s   € ÷	ñ 	à×*Ñ*¨3Õ/r   c                 ó’  — ddl m} ddl m} ddl m} ddlm}  G d„ d«      } ||j                  j                  d«      5  | j                  ||«       | j                  t         ||«      «      |g«        G d	„ d
|«      }| j                  ||«       | j                  t         ||«      «      |g«       d d d «       y # 1 sw Y   y xY w)Nr   rI   rÊ   r¿   r½   c                   ó   — e Zd Zy)úFTest_classImplements.test_redundant_implementer_Interface.<locals>.FooNr%   r   r   r   r&   rB  Ð  r8   r   r&   Fc                   ó   — e Zd Zy)úFTest_classImplements.test_redundant_implementer_Interface.<locals>.BazNr%   r   r   r   ÚBazrD  ×  ó   „ Ør   rE  )rÃ   rJ   rË   rÀ   rÄ   r¾   rÅ   rÆ   rB  r*   rC   )r   rJ   rË   rÀ   r¾   r&   rE  s          r   Ú$test_redundant_implementer_Interfacez9Test_classImplements.test_redundant_implementer_InterfaceÊ  s©   € Ý,Ý0Ý%Ý:÷	ñ 	ñ �r—u‘u×'Ñ'¨Ó/ñ 	DØ�M‰M˜#˜yÔ)Ø×ÑœT¡-°Ó"4Ó5¸	°{ÔCô�cô ð �M‰M˜#˜yÔ)Ø×ÑœT¡-°Ó"4Ó5¸	°{ÔC÷	D÷ 	Dñ 	Dús   Á A4B=Â=Cc                 ó
   — ||fS r/   r   ©r   Úapplied_firstÚapplied_seconds      r   Ú_order_for_twoz#Test_classImplements._order_for_twoÝ  s   € Ø˜~Ð.Ð.r   c                 óp  ‡— ddl m} ddlm}  |d«      } |d«      } ||«      Š|f‰_         G ˆfd„d«      }|‰_        | j                  ||«       | j                  |j                  ‰«       | j                  ‰j
                  |«       | j                  ‰j                  | j                  ||«      «       y )Nr   r‡   r€   r‚   r™   c                   ó   •— e Zd ZW ° Zy)ú<Test_classImplements.test_w_existing_Implements.<locals>.FooNro  rp  s   €r   r&   rO  ç  rq  r   r&   )r)   rˆ   rK   r�   r  r
  rB  rà   rG  r*   rL  r$  s         @r   r£  z/Test_classImplements.test_w_existing_Implementsà  s›   ø€ Ý:Ý;Ù˜fÓ%ˆÙ˜fÓ%ˆÙ˜$ÓˆØ˜ˆŒ÷	#ó 	#àˆŒØ�‰�c˜4Ô à�‰�c×)Ñ)¨4Ô0Ø×Ñ˜Ÿ™ sÔ+Ø×Ñ˜Ÿ™Ø×,Ñ,¨T°4Ó8õ	:r   c                 ób  ‡	‡
— ddl m} ddlm}  |d«      } |d«      } |d|f«      }|j	                  d|«      Š
|f‰
_         G ˆ
fd„d	«      } G ˆ
fd
„d«      }|j	                  d|«      Š	|f‰	_         G ˆ	fd„d||«      }|‰	_        | j                  ||«       | j                  |j                  ‰	«       | j                  ‰	j                  |«       | j                  ‰	j
                  | j                  ||«      «       | j                  ‰	j                  | j                  ||«      ‰
fz   «       y )Nr   r‡   r€   ÚIRootÚISecondRootÚIExtendsRootÚRootc                   ó   •— e Zd ZW ° Zy)úFTest_classImplements.test_w_existing_Implements_w_bases.<locals>.Root1Nro  ©Ú	impl_roots   €r   ÚRoot1rV  û  ó   ø„ Ù'‰Or   rY  c                   ó   •— e Zd ZW ° Zy)úFTest_classImplements.test_w_existing_Implements_w_bases.<locals>.Root2Nro  rW  s   €r   ÚRoot2r\  ý  rZ  r   r]  ÚExtendsRoot1c                   ó   •— e Zd ZW ° Zy)úLTest_classImplements.test_w_existing_Implements_w_bases.<locals>.ExtendsRootNro  )Úimpl_extends_roots   €r   ÚExtendsRootr`    s   ø„ Ù/‰Or   rb  )r)   rˆ   rK   r�   r!   r  r
  rB  rà   rG  r*   rL  r|   )r   rˆ   r�   rQ  rR  rS  rY  r]  rb  ra  rX  s            @@r   Ú"test_w_existing_Implements_w_basesz7Test_classImplements.test_w_existing_Implements_w_basesñ  s#  ù€ Ý:Ý;Ù˜wÓ'ˆÙ$ ]Ó3ˆÙ% n°u°hÓ?ˆà×$Ñ$ V¨UÓ3ˆ	Ø#˜Xˆ	Ô÷	(ó 	(÷	(ó 	(ð '×,Ñ,¨^¸\ÓJÐØ&2 _ÐÔ"ö	0˜% ô 	0à$/ÐÔ!à�‰�k ;Ô/à�‰�k×1Ñ1Ð3DÔEØ×ÑÐ*×2Ñ2°KÔ@Ø×ÑÐ*×3Ñ3Ø×,Ñ,¨\¸;ÓHô	Jà×ÑÐ*×4Ñ4Ø×,Ñ,¨\¸;ÓGÈ9È,ÑVõ	Xr   N)
r   r   r   rB  r>  r?  rG  rL  r£  rc  r   r   r   r1  r1  ª  s'   „ òò3ò&0ò
Dò&/ò:ó"Xr   r1  c                   ó   — e Zd Zd„ Zd„ Zy)ÚTest_classImplementsFirstc                 óF   — ddl m}  |||«      }| j                  |«       |S )Nr   )ÚclassImplementsFirst)r)   rg  rf   )r   r  r  rg  r5  s        r   rB  z"Test_classImplementsFirst._callFUT  s$   € ÝDÙ% c¨5Ó1ˆØ×Ñ˜&Ô!Øˆ
r   c                 ó
   — ||fS r/   r   rI  s      r   rL  z(Test_classImplementsFirst._order_for_two  s   € Ø Ð.Ð.r   N)r   r   r   rB  rL  r   r   r   re  re    s   „ òó/r   re  c                   ó   — e Zd Zd„ Zd„ Zy)ÚTest__implements_advicec                 ó   — ddl m}  ||i |¤ŽS )Nr   )Ú_implements_advice)r)   rl  )r   rw   rx   rl  s       r   rB  z Test__implements_advice._callFUT  ó   € ÝBÙ! 4Ð.¨2Ñ.Ð.r   c                 ó4  ‡‡— ddl mŠ ddl m} ddlm}  |d«      Š G ˆˆfd„d«      }| j                  |«       | j                  d|j                  «       | j                  |j                  |«       | j                  t        |j                  «      ‰g«       y )	Nr   r3  r‡   r€   r‚   c                   ó   •— e Zd ZW ° fW °fZy)ú@Test__implements_advice.test_no_existing_implements.<locals>.FooN)r   r   r   Ú__implements_advice_data__)r‚   r4  s   €€r   r&   rp  '  s   ø„ Ù+/¨'±?Ð)CÑ&r   r&   rq  )r)   r4  rˆ   rK   r�   rB  rP   r9  r­   rG  r*   rC   )r   rˆ   r�   r&   r‚   r4  s       @@r   Útest_no_existing_implementsz3Test__implements_advice.test_no_existing_implements"  sv   ù€ Ý?Ý:Ý;Ù˜fÓ%ˆ÷	Dô 	Dà�‰�cÔØ×ÑÐ5°s·|±|ÔDØ×Ñ˜c×1Ñ1°:Ô>Ø×Ñœ˜c×1Ñ1Ó2°T°FÕ;r   N)r   r   r   rB  rr  r   r   r   rj  rj    s   „ ò/ó
<r   rj  c                   ó0   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTest_implementerc                 ó   — ddl m} |S )Nr   rÌ   )r)   rÍ   )r   rÍ   s     r   rr   z Test_implementer._getTargetClass1  rs   r   c                 ó.   —  | j                  «       |i |¤ŽS r/   ru   rv   s      r   ry   zTest_implementer._makeOne5  rz   r   c                 ó0   —  | j                   |Ž } ||«      S r/   ©ry   )r   r  ÚifacesÚ	decorators       r   rB  zTest_implementer._callFUT8  s   € Ø!�D—M‘M 6Ð*ˆ	Ù˜‹~Ðr   c                 ó€   — ddl m}  |d«      }| j                  |«      }| j                  t        |t        «       «       y r   )rK   r�   ry   rê   r   rl   )r   r�   r‚   rz  s       r   Ú test_nonclass_cannot_assign_attrz1Test_implementer.test_nonclass_cannot_assign_attr<  s1   € Ý;Ù˜fÓ%ˆØ—M‘M $Ó'ˆ	Ø×Ñœ) Y´³Õ9r   c                 óX  — ddl m}  |d«      } G d„ d«      } |«       }| j                  |«      } ||«      }| j                  ||u «       |j                  }| j                  |j                  d«       | j                  |j                  «       | j                  |j                  |«       y )Nr   r€   r‚   c                   ó   — e Zd Zy)ú;Test_implementer.test_nonclass_can_assign_attr.<locals>.FooNr%   r   r   r   r&   r  E  r8   r   r&   z(zope.interface.tests.test_declarations.?)
rK   r�   ry   rU   rG  r*   r   rf   r
  rà   )r   r�   r‚   r&   r"   rz  r  r{  s           r   Útest_nonclass_can_assign_attrz.Test_implementer.test_nonclass_can_assign_attrB  s�   € Ý;Ù˜fÓ%ˆ÷	ñ 	á‹eˆØ—M‘M $Ó'ˆ	Ù˜S“>ˆØ�‰˜ C˜Ô(Ø×"Ñ"ˆØ×Ñ˜Ÿ™Ð(RÔSØ×Ñ˜$Ÿ,™,Ô(Ø�‰�c×)Ñ)¨4Õ0r   c                 ó2  — dd l }ddlm}  |d«      }t        |j	                  «       «      }t        d«      D ]  } G d„ d«      }| j                  ||«       Œ  |j                  «        t        |j	                  «       «      }d}| j                  |||z   «       y )Nr   r€   r‚   il  c                   ó   — e Zd Zy)úHTest_implementer.test_does_not_leak_on_unique_classes.<locals>.TestClassNr%   r   r   r   Ú	TestClassrƒ  ]  rF  r   r„  )	ÚgcrK   r�   ÚlenÚget_objectsÚrangerB  ÚcollectÚassertLessEqual)	r   r…  r�   r‚   Úbegin_countÚ_r„  Ú	end_countÚfudge_factors	            r   Ú$test_does_not_leak_on_unique_classesz5Test_implementer.test_does_not_leak_on_unique_classesP  sŠ   € ó 	Ý;Ù˜fÓ%ˆä˜"Ÿ.™.Ó*Ó+ˆä�t“ò 	+ˆA÷ñ ð �M‰M˜) TÕ*ð		+ð 	�
‰
Œä˜Ÿ™Ó(Ó)ˆ	ð ˆØ×Ñ˜Y¨°lÑ(BÕCr   N)	r   r   r   rr   ry   rB  r|  r€  r�  r   r   r   rt  rt  /  s!   „ òò3òò:ò1óDr   rt  c                   ó*   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTest_implementer_onlyc                 ó   — ddl m} |S )Nr   )Úimplementer_only)r)   r“  )r   r“  s     r   rr   z%Test_implementer_only._getTargetClassq  s   € Ý@ØÐr   c                 ó.   —  | j                  «       |i |¤ŽS r/   ru   rv   s      r   ry   zTest_implementer_only._makeOneu  rz   r   c                 ó4   — | j                  |«      } ||«      S r/   rx  )r   r  r  rz  s       r   rB  zTest_implementer_only._callFUTx  s   € Ø—M‘M %Ó(ˆ	Ù˜‹~Ðr   c                 óv   — ddl m}  |d«      }| j                  |«      }d„ }| j                  t        ||«       y )Nr   r€   r‚   c                  ó   — t        «       ‚r/   r0   r   r   r   Ú	_functionz6Test_implementer_only.test_function.<locals>._function€  ó   € Ü%Ó'Ð'r   )rK   r�   ry   rê   Ú
ValueError)r   r�   r‚   rz  r˜  s        r   r4   z#Test_implementer_only.test_function|  s4   € Ý;Ù˜fÓ%ˆØ—M‘M $Ó'ˆ	ò	(à×Ñœ* i°Õ;r   c                 ó˜   — ddl m}  |d«      }| j                  |«      } G d„ d«      }| j                  t        ||j
                  «       y )Nr   r€   r‚   c                   ó   — e Zd Zd„ Zy)ú.Test_implementer_only.test_method.<locals>.Barc                 ó   — t        «       ‚r/   r0   rä   s    r   Ú_methodz6Test_implementer_only.test_method.<locals>.Bar._method‰  r'  r   N)r   r   r   rŸ  r   r   r   ÚBarr�  ˆ  s   „ ó,r   r   )rK   r�   ry   rê   rš  rŸ  )r   r�   r‚   rz  r   s        r   Útest_methodz!Test_implementer_only.test_method„  s?   € Ý;Ù˜fÓ%ˆØ—M‘M $Ó'ˆ	÷	,ñ 	,ð 	×Ñœ* i°·±Õ=r   N)r   r   r   rr   ry   rB  r4   r¡  r   r   r   r‘  r‘  o  s   „ ò ò3òò<ó>r   r‘  c                   ó0   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚProvidesClassTestsc                 ó   — ddl m} |S ©Nr   ©ÚProvidesClass©r)   r§  ©r   r§  s     r   rr   z"ProvidesClassTests._getTargetClass“  r  r   c                 ó.   —  | j                  «       |i |¤ŽS r/   ru   rv   s      r   ry   zProvidesClassTests._makeOne—  rz   r   c                 ó�   — ddl m}  |d«      } G d„ d«      }| j                  ||«      }| j                  t	        |«      |g«       y )Nr   r€   r‚   c                   ó   — e Zd Zy)ú?ProvidesClassTests.test_simple_class_one_interface.<locals>.FooNr%   r   r   r   r&   r­  �  r8   r   r&   r•   ©r   r�   r‚   r&   r{  s        r   Útest_simple_class_one_interfacez2ProvidesClassTests.test_simple_class_one_interfaceš  s?   € Ý;Ù˜fÓ%ˆ÷	ñ 	à�}‰}˜S $Ó'ˆØ×Ñœ˜d› d VÕ,r   c                 óÖ   — ddl m} ddlm}  |d«      } G d„ d«      }| j	                  ||«      }|j                  «       \  }}| j                  ||«       | j                  |||f«       y )Nr   ©ÚProvidesr€   r‚   c                   ó   — e Zd Zy)ú/ProvidesClassTests.test___reduce__.<locals>.FooNr%   r   r   r   r&   r´  ¦  r8   r   r&   )r)   r²  rK   r�   ry   r  rà   r*   )r   r²  r�   r‚   r&   r{  Úklassrw   s           r   r  z"ProvidesClassTests.test___reduce__¢  s^   € Ý8Ý;Ù˜fÓ%ˆ÷	ñ 	à�}‰}˜S $Ó'ˆØ—o‘oÓ'‰ˆˆtØ�‰�e˜XÔ&Ø×Ñ˜  T˜{Õ+r   c                 óž   — ddl m}  |d«      } G d„ d«      }| j                  ||«      }||_        | j	                  |j                  |«       y )Nr   r€   r‚   c                   ó   — e Zd Zy)ú2ProvidesClassTests.test___get___class.<locals>.FooNr%   r   r   r   r&   r¸  °  r8   r   r&   ©rK   r�   ry   r—  rà   r®  s        r   Útest___get___classz%ProvidesClassTests.test___get___class­  sE   € Ý;Ù˜fÓ%ˆ÷	ñ 	à�}‰}˜S $Ó'ˆØˆÔØ�‰�c×&Ñ&¨Õ-r   c                 óž   ‡— ddl m}  |d«      } G d„ d«      Š| j                  ‰|«      }|‰_        ˆfd„}| j	                  t
        |«       y )Nr   r€   r‚   c                   ó   — e Zd Zy)ú5ProvidesClassTests.test___get___instance.<locals>.FooNr%   r   r   r   r&   r½  ¹  r8   r   r&   c                  ó*   •—  ‰«       } | j                   S r/   )r—  )r"   r&   s    €r   Ú_testz7ProvidesClassTests.test___get___instance.<locals>._test½  s   ø€ Ù“%ˆCØ×#Ñ#Ð#r   )rK   r�   ry   r—  rê   ÚAttributeError)r   r�   r‚   r{  r¿  r&   s        @r   Útest___get___instancez(ProvidesClassTests.test___get___instance¶  sI   ø€ Ý;Ù˜fÓ%ˆ÷	ñ 	à�}‰}˜S $Ó'ˆØˆÔô	$ð 	×Ñœ.¨%Õ0r   N)	r   r   r   rr   ry   r¯  r  rº  rÁ  r   r   r   r£  r£  ‘  s    „ òò3ò-ò	,ò.ó
1r   r£  c                   ó$   ‡ — e Zd Zˆ fd„Zd„ Zˆ xZS )ÚProvidesClassStrictTestsc                 ó@   •‡— t         ‰| �  «       Š G ˆfd„d‰«      }|S )Nc                   ó   •— e Zd Zˆ fd„Zy)ú@ProvidesClassStrictTests._getTargetClass.<locals>.StrictProvidesc                 ó,   •— ‰j                  | |d¬«      S ©NT)Ú	base_mrosrT   ©Ú_do_calculate_ro)r   rÉ  r§  s     €r   rË  zQProvidesClassStrictTests._getTargetClass.<locals>.StrictProvides._do_calculate_roÉ  ó   ø€ Ø$×5Ñ5°dÀiÐX\Ð5Ó]Ð]r   N©r   r   r   rË  r¦  s   €r   ÚStrictProvidesrÆ  È  ó	   ø„ õ^r   rÎ  ©r¯  rr   )r   rÎ  r§  r²  s     @€r   rr   z(ProvidesClassStrictTests._getTargetClassÆ  s&   ù€ Ü™Ñ/Ó1ˆö	^˜]ô 	^ð Ðr   c           	      óî   — ddl m} ddl m} ddl m}  G d„ d|«      } ||«       G d„ d«      «       }| j	                  ||«      }| j                  |j                  | ||«      | |t        «      |f«       y )	Nr   rÊ   rI   rÌ   c                   ó   — e Zd Zy)úMProvidesClassStrictTests.test_overlapping_interfaces_corrected.<locals>.IBaseNr%   r   r   r   rÁ   rÓ  Ô  r8   r   rÁ   c                   ó   — e Zd Zy)úLProvidesClassStrictTests.test_overlapping_interfaces_corrected.<locals>.BaseNr%   r   r   r   rÔ   rÕ  ×  r'   r   rÔ   )rÃ   rË   rJ   rÍ   ry   r*   r]   rl   )r   rË   rJ   rÍ   rÁ   rÔ   r{  s          r   Ú%test_overlapping_interfaces_correctedz>ProvidesClassStrictTests.test_overlapping_interfaces_correctedÍ  s{   € õ 	1Ý,Ý.ô	�Iô 	ñ 
�UÓ	÷	ð 	ó 
ð	ð �}‰}˜T 5Ó)ˆØ×Ñ˜Ÿ™ØÙ˜$ÓØÙœ&Ó!Øð(
õ 	r   ©r   r   r   rr   rÖ  r  r  s   @r   rÃ  rÃ  Ã  s   ø„ ôör   rÃ  c                   óZ   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zy)ÚTestProvidesClassReprc                 ó   — ddl m} |S r¥  r¨  r©  s     r   rr   z%TestProvidesClassRepr._getTargetClassç  r  r   c                 ó.   —  | j                  «       |i |¤ŽS r/   ru   rv   s      r   ry   zTestProvidesClassRepr._makeOneë  rz   r   c                 ó0  — ddl m}  |d«      }|j                  dk(  sJ ‚|j                  t        k(  sJ ‚t	        |«      dj                  t        «      k(  sJ ‚ |d«      }| j                  t        | «      ||«      }| j                  t	        |«      d«       y )Nr   r€   r‚   z<InterfaceClass {}.IFoo>r™   z3directlyProvides(TestProvidesClassRepr, IFoo, IBar))	rK   r�   r   r   r  Úformatry   r.  r*   )r   r�   r‚   r™   Úinsts        r   Útest__repr__z"TestProvidesClassRepr.test__repr__î  s‰   € Ý;Ù˜fÓ%ˆØ�}‰} Ò&Ð&Ð&Ø�‰¤(Ò*Ð*Ð*Ü�D‹zÐ7×>Ñ>¼xÓHÒHÐHÐHá˜fÓ%ˆà�}‰}œT $›Z¨¨tÓ4ˆØ×ÑÜ�‹JØAõ	
r   c                 ó^   — ddl m} |j                  }| j                  t	        |«      d«       y )Nr   ©ÚdummyzIdirectlyProvides(sys.modules['zope.interface.tests.dummy'], IDummyModule))Úzope.interface.testsrâ  r—  r*   r  )r   râ  Úprovidess      r   Ú'test__repr__module_provides_typical_usez=TestProvidesClassRepr.test__repr__module_provides_typical_useý  s*   € õ 	/Ø×%Ñ%ˆØ×ÑÜ�‹NØWõ	
r   c                 óî   — dd l }ddlm} |j                  }t	        |j
                  dz   «      D ]8  }| j                  |j                  «      5  |j                  ||«       d d d «       Œ: y # 1 sw Y   ŒExY w)Nr   rá  ré   )	rÝ   rã  râ  r—  rˆ  ÚHIGHEST_PROTOCOLrê   ÚPicklingErrorrß   )r   rÝ   râ  rä  Úprotos        r   Útest__repr__module_after_picklez5TestProvidesClassRepr.test__repr__module_after_pickle  sn   € ãÝ.Ø×%Ñ%ˆÜ˜6×2Ñ2°QÑ6Ó7ò 	.ˆEØ×"Ñ" 6×#7Ñ#7Ó8ñ .Ø—‘˜X uÔ-÷.ð .ñ	.÷.ð .ús   ÁA+Á+A4	c                 óZ  — dd l }ddlm} ddlm} ddlm} ddlm}  |d«      } |d«      }|j                  }|`| j                  t        |d|«        |||«       |j                  }	| j                  t        |	«      d	«        |||«       |j                  }	| j                  t        |	«      d
«       |j                  t           }
t        |
d«      rJ ‚ ||
||«       | j                  t         |
d«       | j#                  |
j                  |	«       | j                  t        |	«      d«       y )Nr   rá  ©ÚdirectlyProvides©ÚalsoProvidesr€   r‚   r™   r—  zAdirectlyProvides(sys.modules['zope.interface.tests.dummy'], IFoo)zGdirectlyProvides(sys.modules['zope.interface.tests.dummy'], IFoo, IBar)zfdirectlyProvides(('zope.interface.tests.dummy', 'zope.interface.tests.test_declarations'), IFoo, IBar))Úsysrã  râ  r)   rí  rï  rK   r�   r—  Ú
addCleanupÚsetattrr*   r  Úmodulesr   ÚhasattrÚdelattrrà   )r   rð  râ  rí  rï  r�   r‚   r™   Úorig_providesrä  Ú	my_modules              r   Ú#test__repr__directlyProvides_modulez9TestProvidesClassRepr.test__repr__directlyProvides_module  s  € ÛÝ.Ý@Ý<Ý;á˜fÓ%ˆÙ˜fÓ%ˆà×*Ñ*ˆØÐØ�‰œ ¨¸ÔFá˜ Ô%Ø×%Ñ%ˆà×ÑÜ�‹NØOô	
ñ
 	�U˜DÔ!Ø×%Ñ%ˆà×ÑÜ�‹NØUô	
ð —K‘K¤Ñ)ˆ	Ü˜9 nÔ5Ð5Ð5á˜ D¨$Ô/Ø�‰œ ¨NÔ;Ø�‰�i×,Ñ,¨hÔ7Ø×ÑÜ�‹Nðõ	
r   c                 óÚ   — ddl m} ddlm}  |d«      }| j	                  ||«      }|xj
                  dz  c_        |xj
                  dz  c_        | j                  t        |«      d«       y )Nr   r€   )Ú
ModuleTyper‚   )zsome.module)zanother.modulez9directlyProvides(('some.module', 'another.module'), IFoo))rK   r�   r)   rú  ry   Ú_v_module_namesr*   r  )r   r�   rú  r‚   rÞ  s        r   Ú)test__repr__module_provides_cached_sharedz?TestProvidesClassRepr.test__repr__module_provides_cached_shared=  s^   € Ý;Ý:Ù˜fÓ%ˆà�}‰}˜Z¨Ó.ˆØ×ÒÐ 0Ñ0ÕØ×ÒÐ 3Ñ3ÕØ×ÑÜ�‹JØGõ	
r   c                 ó¸   — ddl m}  |dd¬«      } |dd¬«      } |d«      }| j                  t        | «      |||«      }| j	                  t        |«      d«       y )	Nr   r€   r‚   Úmod1©r   Úmod2r¹   z>directlyProvides(TestProvidesClassRepr, IFoo, IBaz, mod2.IFoo)©rK   r�   ry   r.  r*   r  ©r   r�   r‚   ÚIFoo2r¹   rÞ  s         r   Útest__repr__duplicate_namesz1TestProvidesClassRepr.test__repr__duplicate_namesJ  sW   € Ý;Ù˜f°Ô8ˆÙ˜v°&Ô9ˆÙ˜fÓ%ˆà�}‰}œT $›Z¨¨t°UÓ;ˆØ×ÑÜ�‹JØLõ	
r   c                 óÄ   — ddl m} ddl m}  G d„ d|«      } G d„ d«      } |t        | «      «      }| j	                  |||«      }| j                  t        |«      d«       y )	Nr   rI   rÊ   c                   ó   — e Zd ZdZy)úKTestProvidesClassRepr.test__repr__implementedBy_in_interfaces.<locals>.IFooúDoes nothingN©r   r   r   Ú__doc__r   r   r   r‚   r  Y  ó   „ Úr   r‚   c                   ó   — e Zd ZdZy)úJTestProvidesClassRepr.test__repr__implementedBy_in_interfaces.<locals>.Barr  Nr	  r   r   r   r   r  \  r  r   r   zCdirectlyProvides(Bar, IFoo, classImplements(TestProvidesClassRepr)))rÃ   rJ   rË   r.  ry   r*   r  )r   rJ   rË   r‚   r   r‰   rÞ  s          r   Ú'test__repr__implementedBy_in_interfacesz=TestProvidesClassRepr.test__repr__implementedBy_in_interfacesV  sX   € Ý,Ý0ô	�9ô 	÷	ñ 	ñ œT $›ZÓ(ˆà�}‰}˜S $¨Ó-ˆØ×ÑÜ�‹JØQõ	
r   c                 ón   — | j                  t        | «      «      }| j                  t        |«      d«       y )Nz'directlyProvides(TestProvidesClassRepr)©ry   r.  r*   r  ©r   rÞ  s     r   Útest__repr__empty_interfacesz2TestProvidesClassRepr.test__repr__empty_interfacesg  s,   € Ø�}‰}œT $›ZÓ(ˆØ×ÑÜ�‹JØ5õ	
r   c                 ó€   ‡ —  G ˆ fd„d«      }‰ j                   |«       «      }‰ j                  t        |«      d«       y )Nc                   ó"   •— e Zd ZdZˆ fd„Zd„ Zy)ú;TestProvidesClassRepr.test__repr__non_class.<locals>.Objectr   c                 ó&   •— ‰j                  d«      S )NzShould not call str)r   )rŒ  r   s    €r   ú<lambda>zDTestProvidesClassRepr.test__repr__non_class.<locals>.Object.<lambda>q  s   ø€  §	¡	Ð*?Ó @€ r   c                  ó   — y)Nz<Object>r   rä   s    r   Ú__repr__zDTestProvidesClassRepr.test__repr__non_class.<locals>.Object.__repr__s  s   € Ø!r   N)r   r   r   r|   Ú__str__r  rä   s   €r   ÚObjectr  o  s   ø„ ØˆIÛ@ˆGó"r   r  zdirectlyProvides(<Object>))ry   r*   r  )r   r  rÞ  s   `  r   Útest__repr__non_classz+TestProvidesClassRepr.test__repr__non_classn  s7   ø€ ÷	"ó 	"ð �}‰}™V›XÓ&ˆØ×ÑÜ�‹JØ(õ	
r   c                 ó²   — ddl m} ddl m} ddlm}  |d«      } ||«       G d„ d«      «       } | |«       «      }| j                  t        |«      d«       y )	Nr   rÌ   ©r9  r€   r‚   c                   ó   — e Zd Zy)úDTestProvidesClassRepr.test__repr__providedBy_from_class.<locals>.FooNr%   r   r   r   r&   r   �  r'   r   r&   úclassImplements(Foo, IFoo))r)   rÍ   r9  rK   r�   r*   r  )r   rÍ   r9  r�   r‚   r&   rÞ  s          r   Ú!test__repr__providedBy_from_classz7TestProvidesClassRepr.test__repr__providedBy_from_class{  sW   € Ý;Ý:Ý;Ù˜fÓ%ˆá	�TÓ	÷	ð 	ó 
ð	ñ ™#›%Ó ˆØ×ÑÜ�‹JØ(õ	
r   c                 óä   — ddl m} ddl m} ddl m} ddlm}  |d«      } |d«      } ||«       G d„ d	«      «       } |«       } |||«        ||«      }	| j                  t        |	«      d
«       y )Nr   rÌ   r  rî  r€   r‚   r™   c                   ó   — e Zd Zy)úFTestProvidesClassRepr.test__repr__providedBy_alsoProvides.<locals>.FooNr%   r   r   r   r&   r%  “  r'   r   r&   z7directlyProvides(Foo, IBar, classImplements(Foo, IFoo)))r)   rÍ   r9  rï  rK   r�   r*   r  )
r   rÍ   r9  rï  r�   r‚   r™   r&   r"   rÞ  s
             r   Ú#test__repr__providedBy_alsoProvidesz9TestProvidesClassRepr.test__repr__providedBy_alsoProvides‹  sr   € Ý;Ý:Ý<Ý;Ù˜fÓ%ˆÙ˜fÓ%ˆá	�TÓ	÷	ð 	ó 
ð	ñ ‹eˆÙ�S˜$Ôá˜#‹ˆØ×ÑÜ�‹JØEõ	
r   N)r   r   r   rr   ry   rß  rå  rê  rø  rü  r  r  r  r  r"  r&  r   r   r   rÙ  rÙ  å  sD   „ òò3ò
ò
ò.ò+
òZ
ò

ò
ò"
ò
ò
ó 
r   rÙ  c                   ó   — e Zd Zd„ Zd„ Zd„ Zy)ÚTest_Providesc                 ó   — ddl m}  ||i |¤ŽS )Nr   r±  )r)   r²  )r   rw   rx   r²  s       r   rB  zTest_Provides._callFUT¤  s   € Ý8Ù˜Ð$ Ñ$Ð$r   c                 ó  — ddl m} ddlm}  |d«      }i } G d„ d«      }t	        ||¬«      5  | j                  ||«      }d d d «       | j                  t        «      |g«       | j                  |||f   |u «       y # 1 sw Y   Œ>xY w)Nr   r[  r€   r‚   c                   ó   — e Zd Zy)ú.Test_Provides.test_no_cached_spec.<locals>.FooNr%   r   r   r   r&   r,  ­  r8   r   r&   ©ÚInstanceDeclarations)	rÃ   r\  rK   r�   Ú_MonkeyrB  r*   rC   rU   )r   r\  r�   r‚   Úcacher&   r{  s          r   Útest_no_cached_specz!Test_Provides.test_no_cached_spec¨  s€   € Ý/Ý;Ù˜fÓ%ˆØˆ÷	ñ 	ä�\¸Ô>ñ 	,Ø—=‘=  dÓ+ˆD÷	,à×Ñœ˜d› d VÔ,Ø�‰˜˜s D˜kÑ*¨dÐ2Õ3÷	,ð 	,ús   ®A>Á>Bc                 óî   — ddl m} ddlm}  |d«      }t	        «       } G d„ d«      }||f|i}t        ||¬«      5  | j                  ||«      }d d d «       | j                  |u «       y # 1 sw Y   ŒxY w)Nr   r[  r€   r‚   c                   ó   — e Zd Zy)ú-Test_Provides.test_w_cached_spec.<locals>.FooNr%   r   r   r   r&   r4  ¹  r8   r   r&   r-  )rÃ   r\  rK   r�   rl   r/  rB  rU   )r   r\  r�   r‚   Úpriorr&   r0  r{  s           r   Útest_w_cached_specz Test_Provides.test_w_cached_spec´  sp   € Ý/Ý;Ù˜fÓ%ˆÜ“ˆ÷	ñ 	à�t�˜eÐ$ˆÜ�\¸Ô>ñ 	,Ø—=‘=  dÓ+ˆD÷	,à�‰˜ ˜Õ&÷	,ð 	,ús   ¼A+Á+A4N)r   r   r   rB  r1  r6  r   r   r   r(  r(  ¢  s   „ ò%ò
4ó
'r   r(  c                   ó$   — e Zd Zd„ Zd„ Zd„ Zd„ Zy)ÚTest_directlyProvidesc                 ó   — ddl m}  ||i |¤ŽS )Nr   rì  )r)   rí  )r   rw   rx   rí  s       r   rB  zTest_directlyProvides._callFUTÃ  ó   € Ý@Ù Ð,¨Ñ,Ð,r   c                 óö   — ddl m} ddlm}  |d«      } G d„ d«      } |«       }| j	                  ||«       | j                  |j                  |«       | j                  t        |j                  «      |g«       y )Nr   r¦  r€   r‚   c                   ó   — e Zd Zy)ú7Test_directlyProvides.test_w_normal_object.<locals>.FooNr%   r   r   r   r&   r=  Ë  r8   r   r&   ©	r)   r§  rK   r�   rB  r­   r—  r*   rC   ©r   r§  r�   r‚   r&   Úobjs         r   Útest_w_normal_objectz*Test_directlyProvides.test_w_normal_objectÇ  ód   € Ý=Ý;Ù˜fÓ%ˆ÷	ñ 	á‹eˆØ�‰�c˜4Ô Ø×Ñ˜c×.Ñ.°Ô>Ø×Ñœ˜c×.Ñ.Ó/°$°Õ8r   c                 óè   — ddl m} ddlm}  |d«      } G d„ d«      }| j	                  ||«       | j                  |j                  |«       | j                  t        |j                  «      |g«       y )Nr   r›  r€   r‚   c                   ó   — e Zd Zy)ú/Test_directlyProvides.test_w_class.<locals>.FooNr%   r   r   r   r&   rE  Ö  r8   r   r&   )	r)   rœ  rK   r�   rB  r­   r—  r*   rC   ©r   rœ  r�   r‚   r&   s        r   Útest_w_classz"Test_directlyProvides.test_w_classÒ  s]   € Ý=Ý;Ù˜fÓ%ˆ÷	ñ 	à�‰�c˜4Ô Ø×Ñ˜c×.Ñ.°Ô>Ø×Ñœ˜c×.Ñ.Ó/°$°Õ8r   c                 óä   ‡— ddl m} ddlm}  |d«      }i Š G ˆfd„d«      } |«       }| j	                  ||«       | j                  ‰d   |«       | j                  t        ‰d   «      |g«       y )Nr   r¦  r€   r‚   c                   ó   •— e Zd Zd„ Zˆ fd„Zy)ú:Test_directlyProvides.test_w_classless_object.<locals>.Fooc                 ó$   — |dk(  ry t        |«      ‚©Nr²  r0   r%  s     r   Ú__getattribute__zKTest_directlyProvides.test_w_classless_object.<locals>.Foo.__getattribute__â  s   € à˜;Ò&ØÜ)¨$Ó/Ð/r   c                 ó   •— |‰|<   y r/   r   )r   r÷   ÚvalueÚthe_dicts      €r   Ú__setattr__zFTest_directlyProvides.test_w_classless_object.<locals>.Foo.__setattr__ç  s   ø€ Ø!&�˜’r   N©r   r   r   rM  rQ  ©rP  s   €r   r&   rJ  á  s   ø„ ò0õ
'r   r&   r—  )r)   r§  rK   r�   rB  r­   r*   rC   )r   r§  r�   r‚   r&   r@  rP  s         @r   Útest_w_classless_objectz-Test_directlyProvides.test_w_classless_objectÜ  sj   ø€ Ý=Ý;Ù˜fÓ%ˆØˆ÷	'ó 	'ñ ‹eˆØ�‰�c˜4Ô Ø×Ñ˜h ~Ñ6¸ÔFØ×Ñœ˜h ~Ñ6Ó7¸$¸Õ@r   N)r   r   r   rB  rA  rG  rT  r   r   r   r8  r8  Á  s   „ ò-ò	9ò9óAr   r8  c                   ó   — e Zd Zd„ Zd„ Zd„ Zy)ÚTest_alsoProvidesc                 ó   — ddl m}  ||i |¤ŽS )Nr   rî  )r)   rï  )r   rw   rx   rï  s       r   rB  zTest_alsoProvides._callFUTñ  s   € Ý<Ù˜TÐ( RÑ(Ð(r   c                 óö   — ddl m} ddlm}  |d«      } G d„ d«      } |«       }| j	                  ||«       | j                  |j                  |«       | j                  t        |j                  «      |g«       y )Nr   r¦  r€   r‚   c                   ó   — e Zd Zy)ú8Test_alsoProvides.test_wo_existing_provides.<locals>.FooNr%   r   r   r   r&   rZ  ù  r8   r   r&   r>  r?  s         r   Útest_wo_existing_providesz+Test_alsoProvides.test_wo_existing_providesõ  rB  r   c                 ó&  — ddl m} ddl m} ddlm}  |d«      } |d«      } G d„ d«      } |«       } |||«       | j                  ||«       | j                  |j                  |«       | j                  t        |j                  «      ||g«       y )	Nr   rì  r¦  r€   r‚   r™   c                   ó   — e Zd Zy)ú7Test_alsoProvides.test_w_existing_provides.<locals>.FooNr%   r   r   r   r&   r^    r8   r   r&   )
r)   rí  r§  rK   r�   rB  r­   r—  r*   rC   )r   rí  r§  r�   r‚   r™   r&   r@  s           r   Útest_w_existing_providesz*Test_alsoProvides.test_w_existing_provides   s}   € Ý@Ý=Ý;Ù˜fÓ%ˆÙ˜fÓ%ˆ÷	ñ 	á‹eˆÙ˜˜dÔ#Ø�‰�c˜4Ô Ø×Ñ˜c×.Ñ.°Ô>Ø×Ñœ˜c×.Ñ.Ó/°$¸°Õ>r   N)r   r   r   rB  r[  r_  r   r   r   rV  rV  ï  s   „ ò)ò	9ó?r   rV  c                   ó*   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTest_noLongerProvidesc                 ó   — ddl m}  ||i |¤ŽS )Nr   )ÚnoLongerProvides)r)   rc  )r   rw   rx   rc  s       r   rB  zTest_noLongerProvides._callFUT  r:  r   c                 ó°   — ddl m}  |d«      } G d„ d«      } |«       }| j                  ||«       | j                  t	        |j
                  «      g «       y )Nr   r€   r‚   c                   ó   — e Zd Zy)ú<Test_noLongerProvides.test_wo_existing_provides.<locals>.FooNr%   r   r   r   r&   rf    r8   r   r&   )rK   r�   rB  r*   rC   r—  )r   r�   r‚   r&   r@  s        r   r[  z/Test_noLongerProvides.test_wo_existing_provides  sI   € Ý;Ù˜fÓ%ˆ÷	ñ 	á‹eˆØ�‰�c˜4Ô Ø×Ñœ˜c×.Ñ.Ó/°Õ4r   c                 óÎ   — ddl m} ddlm}  |d«      } G d„ d«      } |«       } |||«       | j	                  ||«       | j                  t        |j                  «      g «       y )Nr   rì  r€   r‚   c                   ó   — e Zd Zy)ú?Test_noLongerProvides.test_w_existing_provides_hit.<locals>.FooNr%   r   r   r   r&   ri  "  r8   r   r&   ©r)   rí  rK   r�   rB  r*   rC   r—  )r   rí  r�   r‚   r&   r@  s         r   Útest_w_existing_provides_hitz2Test_noLongerProvides.test_w_existing_provides_hit  sV   € Ý@Ý;Ù˜fÓ%ˆ÷	ñ 	á‹eˆÙ˜˜dÔ#Ø�‰�c˜4Ô Ø×Ñœ˜c×.Ñ.Ó/°Õ4r   c                 óà   — ddl m} ddlm}  |d«      } |d«      } G d„ d«      } |«       } |||«       | j	                  ||«       | j                  t        |j                  «      |g«       y )Nr   rì  r€   r‚   r™   c                   ó   — e Zd Zy)ú@Test_noLongerProvides.test_w_existing_provides_miss.<locals>.FooNr%   r   r   r   r&   rn  .  r8   r   r&   rj  )r   rí  r�   r‚   r™   r&   r@  s          r   Útest_w_existing_provides_missz3Test_noLongerProvides.test_w_existing_provides_miss)  sb   € Ý@Ý;Ù˜fÓ%ˆÙ˜fÓ%ˆ÷	ñ 	á‹eˆÙ˜˜dÔ#Ø�‰�c˜4Ô Ø×Ñœ˜c×.Ñ.Ó/°$°Õ8r   c                 ó¨   — ddl m} ddlm}  |d«      } ||«       G d„ d«      «       } |«       }| j	                  t
        | j                  ||«       y )Nr   rÌ   r€   r‚   c                   ó   — e Zd Zy)úDTest_noLongerProvides.test_w_iface_implemented_by_class.<locals>.FooNr%   r   r   r   r&   rr  9  r'   r   r&   )r)   rÍ   rK   r�   rê   rš  rB  )r   rÍ   r�   r‚   r&   r@  s         r   Ú!test_w_iface_implemented_by_classz7Test_noLongerProvides.test_w_iface_implemented_by_class5  sM   € Ý;Ý;Ù˜fÓ%ˆÙ	�TÓ	÷	ð 	ó 
ð	á‹eˆØ×Ñœ* d§m¡m°S¸$Õ?r   N)r   r   r   rB  r[  rk  ro  rs  r   r   r   ra  ra    s   „ ò-ò5ò	5ò
9ó@r   ra  c                   ó*   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚClassProvidesBaseFallbackTestsc                 ó   — ddl m} |S ©Nr   )ÚClassProvidesBaseFallback©r)   rx  ©r   rx  s     r   rr   z.ClassProvidesBaseFallbackTests._getTargetClassB  ó   € åIØ(Ð(r   c                 óF   —  G d„ d| j                  «       «      } |||«      S )Nc                   ó   — e Zd Zd„ Zy)ú8ClassProvidesBaseFallbackTests._makeOne.<locals>.Derivedc                 ó    — || _         || _        y r/   )Ú_clsÚ_implements)r   ÚkÚis      r   r#  zAClassProvidesBaseFallbackTests._makeOne.<locals>.Derived.__init__K  s   € Ø�”	Ø#$�Õ r   N)r   r   r   r#  r   r   r   r­  r~  J  s   „ ó%r   r­  ru   )r   rµ  Ú
implementsr­  s       r   ry   z'ClassProvidesBaseFallbackTests._makeOneG  s&   € ô	%�d×*Ñ*Ó,ô 	%ñ �u˜jÓ)Ð)r   c                 ó    — ddl m}  |d«      } G d„ d«      }| j                  ||«      x}|_        | j	                  |j                  |u «       y )Nr   r€   r‚   c                   ó   — e Zd Zy)úGClassProvidesBaseFallbackTests.test_w_same_class_via_class.<locals>.FooNr%   r   r   r   r&   r‡  S  r8   r   r&   )rK   r�   ry   r—  rU   )r   r�   r‚   r&   Úcpbps        r   Útest_w_same_class_via_classz:ClassProvidesBaseFallbackTests.test_w_same_class_via_classP  sH   € Ý;Ù˜fÓ%ˆ÷	ñ 	à"&§-¡-°°TÓ":Ð:ˆˆsÔØ�‰˜×(Ñ(¨DÐ0Õ1r   c                 ó¨   — ddl m}  |d«      } G d„ d«      } |«       }| j                  ||«      |_        | j	                  |j                  |«       y )Nr   r€   r‚   c                   ó   — e Zd Zy)úJClassProvidesBaseFallbackTests.test_w_same_class_via_instance.<locals>.FooNr%   r   r   r   r&   rŒ  [  r8   r   r&   r¹  )r   r�   r‚   r&   r"   s        r   Útest_w_same_class_via_instancez=ClassProvidesBaseFallbackTests.test_w_same_class_via_instanceX  sG   € Ý;Ù˜fÓ%ˆ÷	ñ 	á‹eˆØŸ=™=¨¨dÓ3ˆÔØ�‰�c×&Ñ&¨Õ-r   c                 óö   — ddl m}  |d«      } G d„ d«      } G d„ d|«      } |«       }| j                  ||«      |_        | j	                  t
        t        |d«       | j	                  t
        t        |d«       y )	Nr   r€   r‚   c                   ó   — e Zd Zy)úBClassProvidesBaseFallbackTests.test_w_different_class.<locals>.FooNr%   r   r   r   r&   r�  d  r8   r   r&   c                   ó   — e Zd Zy)úBClassProvidesBaseFallbackTests.test_w_different_class.<locals>.BarNr%   r   r   r   r   r’  f  r8   r   r   r—  )rK   r�   ry   r—  rê   rÀ  Úgetattr)r   r�   r‚   r&   r   Úbars         r   Útest_w_different_classz5ClassProvidesBaseFallbackTests.test_w_different_classa  sg   € Ý;Ù˜fÓ%ˆ÷	ñ 	ô	�#ô 	á‹eˆØŸ=™=¨¨dÓ3ˆÔØ×Ñœ.¬'°3¸ÔGØ×Ñœ.¬'°3¸ÕGr   N)r   r   r   rr   ry   r‰  r�  r•  r   r   r   ru  ru  @  s   „ ò)ò
*ò2ò.ó
Hr   ru  c                   ó   — e Zd Zd„ Zd„ Zy)ÚClassProvidesBaseTestsc                 ó   — ddl m} |S )Nr   )ÚClassProvidesBase)r)   r™  )r   r™  s     r   rr   z&ClassProvidesBaseTests._getTargetClassr  s   € ÝAØ Ð r   c                 ó   — ddl m} |S rw  ry  rz  s     r   r  z(ClassProvidesBaseTests._getFallbackClassv  r{  r   N)r   r   r   rr   r  r   r   r   r—  r—  n  s   „ ò!ó)r   r—  c                   ó$   — e Zd Zd„ Zd„ Zd„ Zd„ Zy)ÚClassProvidesTestsc                 ó   — ddl m} |S ©Nr   r›  ©r)   rœ  ©r   rœ  s     r   rr   z"ClassProvidesTests._getTargetClass~  r  r   c                 ó.   —  | j                  «       |i |¤ŽS r/   ru   rv   s      r   ry   zClassProvidesTests._makeOne‚  rz   r   c                 ó<  — ddl m} ddlm}  |d«      } |d«      } ||«       G d„ d«      «       }| j	                  |t        |«      |«      x}|_        | j                  |j                  |u «       | j                  t         |«       j                  «      |g«       y )Nr   rÌ   r€   r‚   r™   c                   ó   — e Zd Zy)ú7ClassProvidesTests.test_w_simple_metaclass.<locals>.FooNr%   r   r   r   r&   r¤  Š  r'   r   r&   )
r)   rÍ   rK   r�   ry   r.  r—  rU   r*   rC   ©r   rÍ   r�   r‚   r™   r&   Úcps          r   Útest_w_simple_metaclassz*ClassProvidesTests.test_w_simple_metaclass…  sŒ   € Ý;Ý;Ù˜fÓ%ˆÙ˜fÓ%ˆÙ	�TÓ	÷	ð 	ó 
ð	à $§¡¨c´4¸³9¸dÓ CÐCˆˆSÔØ�‰˜×(Ñ(¨BÐ.Ô/Ø×Ñœ™c›e×0Ñ0Ó1°D°6Õ:r   c                 ó  — ddl m} ddlm}  |d«      } |d«      } ||«       G d„ d«      «       }| j	                  |t        |«      |«      x}|_        | j                  |j                  «       t        |«      |t        |«      |ff«       y )Nr   rÌ   r€   r‚   r™   c                   ó   — e Zd Zy)ú/ClassProvidesTests.test___reduce__.<locals>.FooNr%   r   r   r   r&   rª  –  r'   r   r&   )	r)   rÍ   rK   r�   ry   r.  r—  r*   r  r¥  s          r   r  z"ClassProvidesTests.test___reduce__‘  sƒ   € Ý;Ý;Ù˜fÓ%ˆÙ˜fÓ%ˆÙ	�TÓ	÷	ð 	ó 
ð	à $§¡¨c´4¸³9¸dÓ CÐCˆˆSÔØ×Ñ˜Ÿ™›Ü˜r›( S¬$¨s«)°TÐ$:Ð;õ	=r   N)r   r   r   rr   ry   r§  r  r   r   r   rœ  rœ  |  s   „ òò3ò
;ó
=r   rœ  c                   ó$   ‡ — e Zd Zˆ fd„Zd„ Zˆ xZS )ÚClassProvidesStrictTestsc                 ó@   •‡— t         ‰| �  «       Š G ˆfd„d‰«      }|S )Nc                   ó   •— e Zd Zˆ fd„Zy)úEClassProvidesStrictTests._getTargetClass.<locals>.StrictClassProvidesc                 ó,   •— ‰j                  | |d¬«      S rÈ  rÊ  )r   rÉ  rœ  s     €r   rË  zVClassProvidesStrictTests._getTargetClass.<locals>.StrictClassProvides._do_calculate_ro¤  rÌ  r   NrÍ  r›  s   €r   ÚStrictClassProvidesr¯  £  rÏ  r   r±  rÐ  )r   r±  rœ  r²  s     @€r   rr   z(ClassProvidesStrictTests._getTargetClass¡  s&   ù€ Ü™Ñ/Ó1ˆö	^ -ô 	^ð #Ð"r   c           
      ó.  — ddl m} ddl m} ddl m}  G d„ d|«      } ||«       G d„ dt        «      «       } |d	t
        fi «      }| j                  |||«      }| j                  |j                  | ||«      | |t        «       |t
        «      |f«       y )
Nr   rÊ   rI   rÌ   c                   ó   — e Zd Zy)úMClassProvidesStrictTests.test_overlapping_interfaces_corrected.<locals>.IBaseNr%   r   r   r   rÁ   r´  ¯  r8   r   rÁ   c                   ó   — e Zd Zy)úQClassProvidesStrictTests.test_overlapping_interfaces_corrected.<locals>.metaclassNr%   r   r   r   Ú	metaclassr¶  ²  r'   r   r·  r  )	rÃ   rË   rJ   rÍ   r.  rl   ry   r*   r]   )r   rË   rJ   rÍ   rÁ   r·  r  r{  s           r   rÖ  z>ClassProvidesStrictTests.test_overlapping_interfaces_corrected¨  sž   € õ 	1Ý,Ý.ô	�Iô 	ñ 
�UÓ	ô	œó 	ó 
ð	ñ ØÜˆIØó
ˆð �}‰}˜S )¨UÓ3ˆØ×Ñ˜Ÿ™ØÙ˜)Ó$ØÙœ$ÓÙœ&Ó!Øð(
õ 	r   r×  r  s   @r   r¬  r¬  ž  s   ø„ ô#ör   r¬  c                   ó6   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	y)	ÚTestClassProvidesReprc                 ó   — ddl m} |S rž  rŸ  r   s     r   rr   z%TestClassProvidesRepr._getTargetClassÉ  r  r   c                 ó.   —  | j                  «       |i |¤ŽS r/   ru   rv   s      r   ry   zTestClassProvidesRepr._makeOneÍ  rz   r   c                 óx   — | j                  t        | «      t        «      }| j                  t        |«      d«       y )Nz'directlyProvides(TestClassProvidesRepr)r  r  s     r   Útest__repr__emptyz'TestClassProvidesRepr.test__repr__emptyÐ  s.   € Ø�}‰}œT $›Z¬Ó.ˆØ×ÑÜ�‹JØ5õ	
r   c                 óœ   — ddl m}  G d„ d|«      }| j                  t        | «      t        |«      }| j	                  t        |«      d«       y )Nr   rI   c                   ó   — e Zd ZdZy)ú=TestClassProvidesRepr.test__repr__providing_one.<locals>.IFoor  Nr	  r   r   r   r‚   rÀ  Ù  r  r   r‚   z-directlyProvides(TestClassProvidesRepr, IFoo))rÃ   rJ   ry   r.  r*   r  )r   rJ   r‚   rÞ  s       r   Útest__repr__providing_onez/TestClassProvidesRepr.test__repr__providing_one×  sA   € Ý,ô	�9ô 	ð �}‰}œT $›Z¬¨tÓ4ˆØ×ÑÜ�‹JØ;õ	
r   c                 óÂ   — ddl m}  |dd¬«      } |dd¬«      } |d«      }| j                  t        | «      t        |||«      }| j	                  t        |«      d«       y )	Nr   r€   r‚   rþ  rÿ  r   r¹   z>directlyProvides(TestClassProvidesRepr, IFoo, IBaz, mod2.IFoo)r  r  s         r   r  z1TestClassProvidesRepr.test__repr__duplicate_namesâ  sY   € Ý;Ù˜f°Ô8ˆÙ˜v°&Ô9ˆÙ˜fÓ%ˆà�}‰}œT $›Z¬¨t°T¸5ÓAˆØ×ÑÜ�‹JØLõ	
r   c                 ó¨   — ddl m} ddl m} ddlm}  |d«      } ||«       G d„ d«      «       } ||«      }| j                  t        |«      d«       y )	Nr   rÌ   rÊ   r€   r‚   c                   ó   — e Zd Zy)ú<TestClassProvidesRepr.test__repr__implementedBy.<locals>.FooNr%   r   r   r   r&   rÅ  ô  r'   r   r&   r!  )r)   rÍ   rË   rK   r�   r*   r  )r   rÍ   rË   r�   r‚   r&   rÞ  s          r   Útest__repr__implementedByz/TestClassProvidesRepr.test__repr__implementedByî  sU   € Ý;Ý=Ý;Ù˜fÓ%ˆá	�TÓ	÷	ð 	ó 
ð	ñ ˜SÓ!ˆØ×ÑÜ�‹JØ(õ	
r   c                 óü   — ddl m}  G d„ d«      } | |«       «      }| j                  t        |«      dj	                  t
        «      «        |«       }d|_         ||«      }| j                  t        |«      d«       y )Nr   rÊ   c                   ó   — e Zd Zd„ Zy)úRTestClassProvidesRepr.test__repr__implementedBy_generic_callable.<locals>.Callablec                 ó   — | S r/   r   rä   s    r   rV  z[TestClassProvidesRepr.test__repr__implementedBy_generic_callable.<locals>.Callable.__call__  s   € Ø�r   N)r   r   r   rV  r   r   r   ÚCallablerÉ    s   „ ór   rË  zclassImplements({}.?)zclassImplements(Callable))r)   rË   r*   r  rÝ  r   )r   rË   rË  rÞ  Úcs        r   Ú*test__repr__implementedBy_generic_callablez@TestClassProvidesRepr.test__repr__implementedBy_generic_callableþ  sr   € Ý=÷	ñ 	ñ ™X›ZÓ(ˆØ×ÑÜ�‹JØ#×*Ñ*¬8Ó4ô	
ñ
 ‹JˆØˆŒ
Ù˜QÓˆØ×ÑÜ�‹JØ'õ	
r   N)
r   r   r   rr   ry   r½  rÁ  r  rÆ  rÍ  r   r   r   r¹  r¹  Ç  s%   „ òò3ò
ò	
ò

ò
ó 
r   r¹  c                   ó*   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTest_directlyProvidedByc                 ó   — ddl m}  ||i |¤ŽS )Nr   )ÚdirectlyProvidedBy)r)   rÑ  )r   rw   rx   rÑ  s       r   rB  z Test_directlyProvidedBy._callFUT  rm  r   c                 óz   —  G d„ d«      } |«       }| j                  t        | j                  |«      «      g «       y )Nc                   ó   — e Zd Zy)úNTest_directlyProvidedBy.test_wo_declarations_in_class_or_instance.<locals>.FooNr%   r   r   r   r&   rÔ    r8   r   r&   r…  rK  s      r   Ú)test_wo_declarations_in_class_or_instancezATest_directlyProvidedBy.test_wo_declarations_in_class_or_instance  s1   € ÷	ñ 	á‹eˆØ×Ñœ˜dŸm™m¨CÓ0Ó1°2Õ6r   c                 ó¸   — ddl m} ddlm}  |d«      } ||«       G d„ d«      «       } |«       }| j	                  t        | j                  |«      «      g «       y )Nr   rÌ   r€   r‚   c                   ó   — e Zd Zy)úRTest_directlyProvidedBy.test_w_declarations_in_class_but_not_instance.<locals>.FooNr%   r   r   r   r&   rØ  %  r'   r   r&   )r)   rÍ   rK   r�   r*   rC   rB  )r   rÍ   r�   r‚   r&   r"   s         r   Ú-test_w_declarations_in_class_but_not_instancezETest_directlyProvidedBy.test_w_declarations_in_class_but_not_instance!  sS   € Ý;Ý;Ù˜fÓ%ˆÙ	�TÓ	÷	ð 	ó 
ð	á‹eˆØ×Ñœ˜dŸm™m¨CÓ0Ó1°2Õ6r   c                 ó¶   — ddl m} ddlm}  |d«      } G d„ d«      } |«       } |||«       | j	                  t        | j                  |«      «      |g«       y )Nr   rì  r€   r‚   c                   ó   — e Zd Zy)úRTest_directlyProvidedBy.test_w_declarations_in_instance_but_not_class.<locals>.FooNr%   r   r   r   r&   rÜ  /  r8   r   r&   )r)   rí  rK   r�   r*   rC   rB  )r   rí  r�   r‚   r&   r"   s         r   Ú-test_w_declarations_in_instance_but_not_classzETest_directlyProvidedBy.test_w_declarations_in_instance_but_not_class+  sM   € Ý@Ý;Ù˜fÓ%ˆ÷	ñ 	á‹eˆÙ˜˜dÔ#Ø×Ñœ˜dŸm™m¨CÓ0Ó1°D°6Õ:r   c                 óè   — ddl m} ddl m} ddlm}  |d«      } |d«      } ||«       G d„ d«      «       } |«       } |||«       | j                  t        | j                  |«      «      |g«       y )	Nr   rì  rÌ   r€   r‚   r™   c                   ó   — e Zd Zy)úNTest_directlyProvidedBy.test_w_declarations_in_instance_and_class.<locals>.FooNr%   r   r   r   r&   rà  ;  r'   r   r&   )r)   rí  rÍ   rK   r�   r*   rC   rB  )r   rí  rÍ   r�   r‚   r™   r&   r"   s           r   Ú)test_w_declarations_in_instance_and_classzATest_directlyProvidedBy.test_w_declarations_in_instance_and_class5  sl   € Ý@Ý;Ý;Ù˜fÓ%ˆÙ˜fÓ%ˆÙ	�TÓ	÷	ð 	ó 
ð	á‹eˆÙ˜˜dÔ#Ø×Ñœ˜dŸm™m¨CÓ0Ó1°D°6Õ:r   N)r   r   r   rB  rÕ  rÙ  rÝ  rá  r   r   r   rÏ  rÏ    s   „ ò/ò7ò7ò;ó;r   rÏ  c                   ó   — e Zd Zd„ Zd„ Zd„ Zy)ÚTest_providerc                 ó   — ddl m} |S )Nr   )Úprovider)r)   rå  )r   rå  s     r   rr   zTest_provider._getTargetClassE  s
   € Ý8Øˆr   c                 ó.   —  | j                  «       |i |¤ŽS r/   ru   rv   s      r   ry   zTest_provider._makeOneI  rz   r   c                 óì   — ddl m} ddlm}  |d«      }| j	                  |«       G d„ d«      «       }| j                  |j                  |«       | j                  t        |j                  «      |g«       y )Nr   r›  r€   r‚   c                   ó   — e Zd Zy)ú'Test_provider.test_w_class.<locals>.FooNr%   r   r   r   r&   ré  P  r'   r   r&   )	r)   rœ  rK   r�   ry   r­   r—  r*   rC   rF  s        r   rG  zTest_provider.test_w_classL  se   € Ý=Ý;Ù˜fÓ%ˆØ	�‰�tÓ	÷	ð 	ó 
ð	à×Ñ˜c×.Ñ.°Ô>Ø×Ñœ˜c×.Ñ.Ó/°$°Õ8r   N)r   r   r   rr   ry   rG  r   r   r   rã  rã  C  s   „ òò3ó9r   rã  c                   ó$   — e Zd Zd„ Zd„ Zd„ Zd„ Zy)ÚTest_moduleProvidesc                 ó²   — ddl m} ddlm}  |d«      }d||dœ}i }dj	                  dd	g«      }t        |||«       |d
   }| j                  t        |«       y )Nr   ©ÚmoduleProvidesr€   r‚   úzope.interface.tests.foo©r   rî  r‚   ú
z
def foo():ú    moduleProvides(IFoo)r"   )r)   rî  rK   r�   Újoinr   rê   r   )r   rî  r�   r‚   r   r   ÚCODEr"   s           r   Útest_called_from_functionz-Test_moduleProvides.test_called_from_functionZ  sg   € Ý>Ý;Ù˜fÓ%ˆØ7Ø#1¸4ñAˆàˆØ�y‰yØØ&ðó ˆô 	ˆT�5˜$ÔØ�5‰kˆØ×Ñœ) SÕ)r   c                 óÐ   — ddl m} ddlm}  |d«      }d||dœ}i }dj	                  dd	g«      }| j                  t        «      5  t        |||«       d d d «       y # 1 sw Y   y xY w)
Nr   rí  r€   r‚   rï  rð  rñ  zclass Foo(object):rò  ©r)   rî  rK   r�   ró  rê   r   r   )r   rî  r�   r‚   r   r   rô  s          r   Útest_called_from_classz*Test_moduleProvides.test_called_from_classi  sq   € Ý>Ý;Ù˜fÓ%ˆØ7Ø#1¸4ñAˆàˆØ�y‰yØ Ø&ðó ˆð ×ÑœyÓ)ñ 	$Ü��u˜dÔ#÷	$÷ 	$ñ 	$ús   ÁAÁA%c                 ó¶   — ddl m} ddlm}  |d«      }d||dœ}dj	                  dg«      }t        ||«       |d	   }| j                  t        |«      |g«       y )
Nr   rí  r€   r‚   rï  rð  rñ  úmoduleProvides(IFoo)r—  )r)   rî  rK   r�   ró  r   r*   rC   )r   rî  r�   r‚   r   rô  r{  s          r   Ú"test_called_once_from_module_scopez6Test_moduleProvides.test_called_once_from_module_scopew  sd   € Ý>Ý;Ù˜fÓ%ˆØ7Ø#1¸4ñAˆà�y‰yØ"ðó ˆô 	ˆT�5ÔØ�^Ñ$ˆØ×Ñœ˜d› d VÕ,r   c                 óÊ   — ddl m} ddlm}  |d«      }d||dœ}dj	                  ddg«      }| j                  t        «      5  t        ||«       d d d «       y # 1 sw Y   y xY w)	Nr   rí  r€   r‚   rï  rð  rñ  rú  r÷  )r   rî  r�   r‚   r   rô  s         r   Ú#test_called_twice_from_module_scopez7Test_moduleProvides.test_called_twice_from_module_scope„  sl   € Ý>Ý;Ù˜fÓ%ˆØ7Ø#1¸4ñAˆð �y‰yØ"Ø"ðó ˆð ×ÑœyÓ)ñ 	Ü��uÔ÷	÷ 	ñ 	ús   ÁAÁA"N)r   r   r   rõ  rø  rû  rý  r   r   r   rë  rë  W  s   „ ò*ò$ò-ór   rë  c                   óX   — e Zd Zd„ ZeZd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd	„ Zd
„ Zd„ Zd„ Zy)Ú#Test_getObjectSpecificationFallbackc                 ó   — ddl m} |S )Nr   )ÚgetObjectSpecificationFallback)r)   r  )r   r  s     r   r  z5Test_getObjectSpecificationFallback._getFallbackClass•  s   € åNØ-Ð-r   c                 ó.   —  | j                  «       |i |¤ŽS r/   ru   rv   s      r   rB  z,Test_getObjectSpecificationFallback._callFUTœ  rz   r   c                 óˆ   ‡— i Š G ˆfd„d«      } |«       }| j                  |«      }| j                  t        |«      g «       y )Nc                   ó   •— e Zd Zˆ fd„Zd„ Zy)úTTest_getObjectSpecificationFallback.test_wo_existing_provides_classless.<locals>.Fooc                 ó`   •— |dk(  rt        |«      ‚	 ‰|   S # t        $ r t        |«      ‚w xY wrL  )rÀ  ÚKeyError)r   r÷   rP  s     €r   rM  zeTest_getObjectSpecificationFallback.test_wo_existing_provides_classless.<locals>.Foo.__getattribute__¢  s?   ø€ à˜;Ò&Ü(¨Ó.Ð.ð/Ø# D™>Ð)øÜò /Ü(¨Ó.Ð.ð/ús   “ ˜-c                 ó   — t        «       ‚r/   r0   )r   r÷   rO  s      r   rQ  z`Test_getObjectSpecificationFallback.test_wo_existing_provides_classless.<locals>.Foo.__setattr__ª  r'  r   NrR  rS  s   €r   r&   r  ¡  s   ø„ ô/ó,r   r&   ©rB  r*   rC   )r   r&   r"   r{  rP  s       @r   Ú#test_wo_existing_provides_classlesszGTest_getObjectSpecificationFallback.test_wo_existing_provides_classlessŸ  s=   ø€ Øˆ÷
	,ó 
	,ñ ‹eˆØ�}‰}˜SÓ!ˆØ×Ñœ˜d› RÕ(r   c                 óž   — ddl m} ddlm}  |d«      }d„ } |||«       | j	                  |«      }| j                  ||j                  «       y )Nr   rì  r€   r‚   c                  ó   — t        «       ‚r/   r0   r   r   r   r"   zOTest_getObjectSpecificationFallback.test_existing_provides_is_spec.<locals>.foo´  r™  r   )r)   rí  rK   r�   rB  rà   r—  )r   rí  r�   r‚   r"   r{  s         r   Útest_existing_provides_is_speczBTest_getObjectSpecificationFallback.test_existing_provides_is_spec°  sC   € Ý@Ý;Ù˜fÓ%ˆò	(á˜˜dÔ#Ø�}‰}˜SÓ!ˆØ�‰�d˜C×,Ñ,Õ-r   c                 ó€   — d„ }t        «       |_        | j                  |«      }| j                  t	        |«      g «       y )Nc                  ó   — t        «       ‚r/   r0   r   r   r   r"   zSTest_getObjectSpecificationFallback.test_existing_provides_is_not_spec.<locals>.foo»  r™  r   )rl   r—  rB  r*   rC   )r   r"   r{  s      r   Ú"test_existing_provides_is_not_speczFTest_getObjectSpecificationFallback.test_existing_provides_is_not_specº  s3   € ò	(ä!›8ˆÔØ�}‰}˜SÓ!ˆØ×Ñœ˜d› RÕ(r   c                 óº   — ddl m} ddlm}  |d«      } G d„ d«      } |«       } |||«       | j	                  |«      }| j                  t        |«      |g«       y )Nr   rì  r€   r‚   c                   ó   — e Zd Zy)úGTest_getObjectSpecificationFallback.test_existing_provides.<locals>.FooNr%   r   r   r   r&   r  Å  r8   r   r&   )r)   rí  rK   r�   rB  r*   rC   )r   rí  r�   r‚   r&   r"   r{  s          r   Útest_existing_providesz:Test_getObjectSpecificationFallback.test_existing_providesÁ  sQ   € Ý@Ý;Ù˜fÓ%ˆ÷	ñ 	á‹eˆÙ˜˜dÔ#Ø�}‰}˜SÓ!ˆØ×Ñœ˜d› d VÕ,r   c                 ó¾   — ddl m} ddlm}  |d«      } ||«       G d„ d«      «       } |«       }| j	                  |«      }| j                  t        |«      |g«       y )Nr   rÌ   r€   r‚   c                   ó   — e Zd Zy)úWTest_getObjectSpecificationFallback.test_wo_provides_on_class_w_implements.<locals>.FooNr%   r   r   r   r&   r  Ð  r'   r   r&   )r)   rÍ   rK   r�   rB  r*   rC   ©r   rÍ   r�   r‚   r&   r"   r{  s          r   Ú&test_wo_provides_on_class_w_implementszJTest_getObjectSpecificationFallback.test_wo_provides_on_class_w_implementsÌ  sY   € Ý;Ý;Ù˜fÓ%ˆÙ	�TÓ	÷	ð 	ó 
ð	á‹eˆØ�}‰}˜SÓ!ˆØ×Ñœ˜d› d VÕ,r   c                 ó~   —  G d„ d«      } |«       }| j                  |«      }| j                  t        |«      g «       y )Nc                   ó   — e Zd Zy)úXTest_getObjectSpecificationFallback.test_wo_provides_on_class_wo_implements.<locals>.FooNr%   r   r   r   r&   r  Ø  r8   r   r&   r	  ©r   r&   r"   r{  s       r   Ú'test_wo_provides_on_class_wo_implementszKTest_getObjectSpecificationFallback.test_wo_provides_on_class_wo_implements×  ó5   € ÷	ñ 	á‹eˆØ�}‰}˜SÓ!ˆØ×Ñœ˜d› RÕ(r   c                 óH   — t        j                  | | j                  d¬«       y )Nr—  ©Úexpected_missing©r   Útest_raisesrB  rä   s    r   Ú,test_catches_only_AttributeError_on_provideszPTest_getObjectSpecificationFallback.test_catches_only_AttributeError_on_providesÞ  s   € Ü×$Ñ$ T¨4¯=©=È>ÖZr   c                 óJ   — t        j                  | | j                  dd ¬«       y )Nr²  )r"  r—  r#  rä   s    r   Ú)test_catches_only_AttributeError_on_classzMTest_getObjectSpecificationFallback.test_catches_only_AttributeError_on_classá  s   € Ü×$Ñ$ T¨4¯=©=È;Ø26ö	8r   c                 óD   —  G d„ d«      }| j                   |«       «       y )Nc                   ó   — e Zd Z ee«      Zy)úyTest_getObjectSpecificationFallback.test_raises_AttributeError_when_provides_fails_type_check_AttributeError.<locals>.FooN)r   r   r   r   rÀ  r—  r   r   r   r&   r*  é  s   „ Ù+¨NÓ;‰Lr   r&   )rB  r†  s     r   ÚHtest_raises_AttributeError_when_provides_fails_type_check_AttributeErrorzlTest_getObjectSpecificationFallback.test_raises_AttributeError_when_provides_fails_type_check_AttributeErrorå  s   € ÷	<ñ 	<ð 	�‰‘c“eÕr   c                 óê   —  G d„ d«      }| j                  t        «      5 }| j                   |«       «       d d d «       | j                  dj                  j
                  d   «       y # 1 sw Y   Œ3xY w)Nc                   ó   — e Zd Z ee«      Zy)úwTest_getObjectSpecificationFallback.test_raises_AttributeError_when_provides_fails_type_check_RuntimeError.<locals>.FooN)r   r   r   r   ÚRuntimeErrorr—  r   r   r   r&   r.  ò  s   „ Ù+¨LÓ9‰Lr   r&   r²  r   )rê   r/  rB  r*   Ú	exceptionrw   )r   r&   Úexcs      r   ÚFtest_raises_AttributeError_when_provides_fails_type_check_RuntimeErrorzjTest_getObjectSpecificationFallback.test_raises_AttributeError_when_provides_fails_type_check_RuntimeErrorï  sb   € ÷	:ñ 	:ð ×Ñœ|Ó,ð 	!°Ø�M‰M™#›%Ô ÷	!ð 	×Ñ˜ c§m¡m×&8Ñ&8¸Ñ&;Õ<÷	!ð 	!ús    A)Á)A2N)r   r   r   r  rr   rB  r
  r  r  r  r  r  r%  r'  r+  r2  r   r   r   rÿ  rÿ  “  sF   „ ò.ð
 (€Oò3ò)ò".ò)ò	-ò	-ò)ò[ò8òó	=r   rÿ  c                   ó   — e Zd Zd„ Zy)ÚTest_getObjectSpecificationc                 ó   — ddl m} |S )Nr   )ÚgetObjectSpecification)r)   r6  )r   r6  s     r   rr   z+Test_getObjectSpecification._getTargetClassÿ  s   € ÝFØ%Ð%r   Nr  r   r   r   r4  r4  û  s   „ ó&r   r4  c                   óŒ   ‡ — e Zd Zd„ ZeZd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd	„ Zˆ fd
„Zˆ fd„Zˆ fd„Zˆ fd„Zˆ fd„Zd„ Zd„ Zˆ xZS )ÚTest_providedByFallbackc                 ó   — ddl m} |S )Nr   )ÚprovidedByFallback)r)   r:  )r   r:  s     r   r  z)Test_providedByFallback._getFallbackClass  s   € åBØ!Ð!r   c                 ó.   —  | j                  «       |i |¤ŽS r/   ru   rv   s      r   rB  z Test_providedByFallback._callFUT  rz   r   c                 ó~   —  G d„ d«      } |«       }| j                  |«      }| j                  t        |«      g «       y )Nc                   ó   — e Zd Zy)úNTest_providedByFallback.test_wo_providedBy_on_class_wo_implements.<locals>.FooNr%   r   r   r   r&   r>    r8   r   r&   r	  r  s       r   Ú)test_wo_providedBy_on_class_wo_implementszATest_providedByFallback.test_wo_providedBy_on_class_wo_implements  r  r   c                 óÄ   — ddl m} ddlm}  |d«      } G d„ d«      } |«       } |||«      |_        | j                  |«      }| j                  t        |«      |g«       y )Nr   r±  r€   r‚   c                   ó   — e Zd Zy)úATest_providedByFallback.test_w_providedBy_valid_spec.<locals>.FooNr%   r   r   r   r&   rB    r8   r   r&   )r)   r²  rK   r�   r˜  rB  r*   rC   )r   r²  r�   r‚   r&   r"   r{  s          r   Útest_w_providedBy_valid_specz4Test_providedByFallback.test_w_providedBy_valid_spec  sV   € Ý8Ý;Ù˜fÓ%ˆ÷	ñ 	á‹eˆÙ% c¨4Ó0ˆÔØ�}‰}˜SÓ!ˆØ×Ñœ˜d› d VÕ,r   c                 óœ   —  G d„ d«      } |«       }t        «       |_        | j                  |«      }| j                  t	        |«      g «       y )Nc                   ó   — e Zd Zy)úCTest_providedByFallback.test_w_providedBy_invalid_spec.<locals>.FooNr%   r   r   r   r&   rF  #  r8   r   r&   )rl   r˜  rB  r*   rC   r  s       r   Útest_w_providedBy_invalid_specz6Test_providedByFallback.test_w_providedBy_invalid_spec"  s?   € ÷	ñ 	á‹eˆÜ#›XˆÔØ�}‰}˜SÓ!ˆØ×Ñœ˜d› RÕ(r   c                 óÜ   — ddl m} ddlm}  |d«      } ||«       G d„ d«      «       } |«       }t	        «       |_        | j                  |«      }| j                  t        |«      |g«       y )Nr   rÌ   r€   r‚   c                   ó   — e Zd Zy)úVTest_providedByFallback.test_w_providedBy_invalid_spec_class_w_implements.<locals>.FooNr%   r   r   r   r&   rJ  .  r'   r   r&   )	r)   rÍ   rK   r�   rl   r˜  rB  r*   rC   r  s          r   Ú1test_w_providedBy_invalid_spec_class_w_implementszITest_providedByFallback.test_w_providedBy_invalid_spec_class_w_implements*  sc   € Ý;Ý;Ù˜fÓ%ˆÙ	�TÓ	÷	ð 	ó 
ð	á‹eˆÜ#›XˆÔØ�}‰}˜SÓ!ˆØ×Ñœ˜d› d VÕ,r   c                 ó®   —  G d„ d«      } |«       }t        «       |_        t        «       x}|_        | j                  |«      }| j	                  ||u «       y )Nc                   ó   — e Zd Zy)úcTest_providedByFallback.test_w_providedBy_invalid_spec_w_provides_no_provides_on_class.<locals>.FooNr%   r   r   r   r&   rN  7  r8   r   r&   ©rl   r˜  r—  rB  rU   ©r   r&   r"   Úexpectedr{  s        r   Ú>test_w_providedBy_invalid_spec_w_provides_no_provides_on_classzVTest_providedByFallback.test_w_providedBy_invalid_spec_w_provides_no_provides_on_class6  sK   € ÷	ñ 	á‹eˆÜ#›XˆÔÜ&,£hÐ.ˆ�3Ô#Ø�}‰}˜SÓ!ˆØ�‰˜ Ð(Õ)r   c                 óÌ   —  G d„ d«      } |«       }t        «       |_        t        «       x}|_        t        «       |_        | j                  |«      }| j	                  ||u «       y )Nc                   ó   — e Zd Zy)úeTest_providedByFallback.test_w_providedBy_invalid_spec_w_provides_diff_provides_on_class.<locals>.FooNr%   r   r   r   r&   rU  @  r8   r   r&   rO  rP  s        r   Ú@test_w_providedBy_invalid_spec_w_provides_diff_provides_on_classzXTest_providedByFallback.test_w_providedBy_invalid_spec_w_provides_diff_provides_on_class?  sU   € ÷	ñ 	á‹eˆÜ#›XˆÔÜ&,£hÐ.ˆ�3Ô#Ü!›8ˆÔØ�}‰}˜SÓ!ˆØ�‰˜ Ð(Õ)r   c                 ó  — ddl m} ddlm}  |d«      } ||«       G d„ d«      «       } |«       }t	        «       |_        t	        «       x|_        |_        | j                  |«      }| j                  t        |«      |g«       y )Nr   rÌ   r€   r‚   c                   ó   — e Zd Zy)úeTest_providedByFallback.test_w_providedBy_invalid_spec_w_provides_same_provides_on_class.<locals>.FooNr%   r   r   r   r&   rY  M  r'   r   r&   )
r)   rÍ   rK   r�   rl   r˜  r—  rB  r*   rC   r  s          r   Ú@test_w_providedBy_invalid_spec_w_provides_same_provides_on_classzXTest_providedByFallback.test_w_providedBy_invalid_spec_w_provides_same_provides_on_classI  su   € Ý;Ý;Ù˜fÓ%ˆÙ	�TÓ	÷	ð 	ó 
ð	á‹eˆÜ#›XˆÔÜ.4«hÐ6ˆÔ˜3Ô+Ø�}‰}˜SÓ!ˆØ×Ñœ˜d› d VÕ,r   c                 ó®  •— ddl m} ddlm}  G d„ d|«      } G d„ d|«      } ||«       G d„ d	«      «       } ||«       G d
„ d|«      «       } |«       }| j	                  t        | j                  |«      «      ||g«       t        ||«      }| j                  |«      }	| j                  |	j                  «       | j	                  t        |	«      |g«       y )Nr   rI   rÌ   c                   ó   — e Zd Zy)úPTest_providedByFallback.test_super_when_base_implements_interface.<locals>.IBaseNr%   r   r   r   rÁ   r]  Z  r8   r   rÁ   c                   ó   — e Zd Zy)úSTest_providedByFallback.test_super_when_base_implements_interface.<locals>.IDerivedNr%   r   r   r   rÂ   r_  ]  r8   r   rÂ   c                   ó   — e Zd Zy)úOTest_providedByFallback.test_super_when_base_implements_interface.<locals>.BaseNr%   r   r   r   rÔ   ra  `  r'   r   rÔ   c                   ó   — e Zd Zy)úRTest_providedByFallback.test_super_when_base_implements_interface.<locals>.DerivedNr%   r   r   r   r­  rc  d  r'   r   r­  ©
rÃ   rJ   r)   rÍ   r*   rC   rB  r¯  rf   rÒ  )r   rJ   rÍ   rÁ   rÂ   rÔ   r­  Úderivedr±  rÓ  r²  s             €r   r³  zATest_providedByFallback.test_super_when_base_implements_interfaceV  sÍ   ø€ Ý,Ý;ô	�Iô 	ô	�uô 	ñ 
�UÓ	÷	ð 	ó 
ð	ñ 
�XÓ	ô	�dó 	ó 
ð	ñ “)ˆØ×Ñœ˜dŸm™m¨GÓ4Ó5¸À%Ð7HÔIä�G˜WÓ%ˆØ�m‰m˜CÓ ˆØ×Ñ˜#Ÿ/™/Ô*Ø×Ñœ˜c› U GÕ,r   c                 óZ  •— ddl m} ddlm}  G d„ d|«      } G d„ d|«      } G d„ d	«      } ||«       G d
„ d|«      «       } |«       }| j	                  t        | j                  |«      «      |g«       t        ||«      }| j	                  t        | j                  |«      «      g «       y )Nr   rI   rÌ   c                   ó   — e Zd Zy)úVTest_providedByFallback.test_super_when_base_doesnt_implement_interface.<locals>.IBaseNr%   r   r   r   rÁ   rh  t  r8   r   rÁ   c                   ó   — e Zd Zy)úYTest_providedByFallback.test_super_when_base_doesnt_implement_interface.<locals>.IDerivedNr%   r   r   r   rÂ   rj  w  r8   r   rÂ   c                   ó   — e Zd Zy)úUTest_providedByFallback.test_super_when_base_doesnt_implement_interface.<locals>.BaseNr%   r   r   r   rÔ   rl  z  r8   r   rÔ   c                   ó   — e Zd Zy)úXTest_providedByFallback.test_super_when_base_doesnt_implement_interface.<locals>.DerivedNr%   r   r   r   r­  rn  }  r'   r   r­  r®  )
r   rJ   rÍ   rÁ   rÂ   rÔ   r­  re  r±  r²  s
            €r   rÞ  zGTest_providedByFallback.test_super_when_base_doesnt_implement_interfacep  sž   ø€ Ý,Ý;ô	�Iô 	ô	�uô 	÷	ñ 	ñ 
�XÓ	ô	�dó 	ó 
ð	ñ “)ˆØ×Ñœ˜dŸm™m¨GÓ4Ó5¸°zÔBä�G˜WÓ%ˆØ×Ñœ˜dŸm™m¨CÓ0Ó1°2Õ6r   c                 ó~  •— ddl m} ddlm}  G d„ d|«      } G d„ d|«      } ||«       G d„ d	«      «       } |«       }| j	                  t        | j                  |«      «      |g«       t        ||«      }| j                  |«      }| j                  |j                  «       | j	                  t        |«      g «       y )
Nr   rI   rÌ   c                   ó   — e Zd Zy)úETest_providedByFallback.test_super_when_base_is_object.<locals>.IBaseNr%   r   r   r   rÁ   rq  ‹  r8   r   rÁ   c                   ó   — e Zd Zy)úHTest_providedByFallback.test_super_when_base_is_object.<locals>.IDerivedNr%   r   r   r   rÂ   rs  Ž  r8   r   rÂ   c                   ó   — e Zd Zy)úGTest_providedByFallback.test_super_when_base_is_object.<locals>.DerivedNr%   r   r   r   r­  ru  ‘  r'   r   r­  rd  )
r   rJ   rÍ   rÁ   rÂ   r­  re  r±  rÓ  r²  s
            €r   ræ  z6Test_providedByFallback.test_super_when_base_is_object‡  s¨   ø€ Ý,Ý;ô	�Iô 	ô	�uô 	ñ 
�XÓ	÷	ð 	ó 
ð	ñ “)ˆØ×Ñœ˜dŸm™m¨GÓ4Ó5¸°zÔBä�G˜WÓ%ˆØ�m‰m˜CÓ ˆØ×Ñ˜#Ÿ/™/Ô*Ø×Ñœ˜c› BÕ'r   c                 ó  •— ddl m} ddlm} ddlm}  G d„ d|«      } G d„ d|«      } ||«       G d	„ d
«      «       } G d„ d|«      } |«       }| j                  t        | j                  |«      «      |g«        |||«       | j                  t        | j                  |«      «      ||g«       t        ||«      }	| j                  |	«      }
| j                  |
j                  «       | j                  t        |
«      |g«       y )Nr   rI   rÌ   rì  c                   ó   — e Zd Zy)úOTest_providedByFallback.test_super_when_object_directly_provides.<locals>.IBaseNr%   r   r   r   rÁ   rx  ¢  r8   r   rÁ   c                   ó   — e Zd Zy)úRTest_providedByFallback.test_super_when_object_directly_provides.<locals>.IDerivedNr%   r   r   r   rÂ   rz  ¥  r8   r   rÂ   c                   ó   — e Zd Zy)úNTest_providedByFallback.test_super_when_object_directly_provides.<locals>.BaseNr%   r   r   r   rÔ   r|  ¨  r'   r   rÔ   c                   ó   — e Zd Zy)úQTest_providedByFallback.test_super_when_object_directly_provides.<locals>.DerivedNr%   r   r   r   r­  r~  ¬  r8   r   r­  )rÃ   rJ   r)   rÍ   rí  r*   rC   rB  r¯  rf   rÒ  )r   rJ   rÍ   rí  rÁ   rÂ   rÔ   r­  re  r±  rÓ  r²  s              €r   Ú(test_super_when_object_directly_providesz@Test_providedByFallback.test_super_when_object_directly_provides�  sæ   ø€ Ý,Ý;Ý@ô	�Iô 	ô	�uô 	ñ 
�UÓ	÷	ð 	ó 
ð	ô	�dô 	ñ “)ˆØ×Ñœ˜dŸm™m¨GÓ4Ó5¸°wÔ?á˜ (Ô+Ø×Ñœ˜dŸm™m¨GÓ4Ó5¸À%Ð7HÔIä�G˜WÓ%ˆØ�m‰m˜CÓ ˆØ×Ñ˜#Ÿ/™/Ô*Ø×Ñœ˜c› U GÕ,r   c                 óú  •— ddl m} ddlm}  G d„ d|«      } G d„ d|«      } G d„ d	|«      } G d
„ d|«      } G d„ d|«      } ||«       G d„ d«      «       } ||«       G d„ d|«      «       }	 ||«       G d„ d|«      «       }
 |||«       G d„ d|	|
«      «       } |«       }t	        ||«      }t	        |	|«      }t	        |
|«      }| j                  t        | j                  |«      «      |||||g«       | j                  t        | j                  |«      «      |||g«       | j                  t        | j                  |«      «      ||g«       | j                  t        | j                  |«      «      |g«       y )Nr   rÌ   rI   c                   ó   — e Zd Zy)úOTest_providedByFallback.test_super_multi_level_multi_inheritance.<locals>.IBaseNr%   r   r   r   rÁ   r‚  ¾  r8   r   rÁ   c                   ó   — e Zd Zy)úMTest_providedByFallback.test_super_multi_level_multi_inheritance.<locals>.IM1Nr%   r   r   r   rì  r„  Á  r8   r   rì  c                   ó   — e Zd Zy)úMTest_providedByFallback.test_super_multi_level_multi_inheritance.<locals>.IM2Nr%   r   r   r   rï  r†  Ä  r8   r   rï  c                   ó   — e Zd Zy)úRTest_providedByFallback.test_super_multi_level_multi_inheritance.<locals>.IDerivedNr%   r   r   r   rÂ   rˆ  Ç  r8   r   rÂ   c                   ó   — e Zd Zy)úTTest_providedByFallback.test_super_multi_level_multi_inheritance.<locals>.IUnrelatedNr%   r   r   r   rô  rŠ  Ê  r8   r   rô  c                   ó   — e Zd Zy)úNTest_providedByFallback.test_super_multi_level_multi_inheritance.<locals>.BaseNr%   r   r   r   rÔ   rŒ  Í  r'   r   rÔ   c                   ó   — e Zd Zy)úLTest_providedByFallback.test_super_multi_level_multi_inheritance.<locals>.M1Nr%   r   r   r   rù  rŽ  Ñ  r'   r   rù  c                   ó   — e Zd Zy)úLTest_providedByFallback.test_super_multi_level_multi_inheritance.<locals>.M2Nr%   r   r   r   rü  r�  Õ  r'   r   rü  c                   ó   — e Zd Zy)úQTest_providedByFallback.test_super_multi_level_multi_inheritance.<locals>.DerivedNr%   r   r   r   r­  r’  Ù  r'   r   r­  rÿ  r   s                   €r   r  z@Test_providedByFallback.test_super_multi_level_multi_inheritanceº  s�  ø€ Ý;Ý,ô	�Iô 	ô	�)ô 	ô	�)ô 	ô	�uô 	ô	˜ô 	ñ 
�UÓ	÷	ð 	ó 
ð	ñ 
�SÓ	ô	�ó 	ó 
ð	ñ 
�SÓ	ô	�ó 	ó 
ð	ñ 
�X˜zÓ	*ô	�b˜"ó 	ó 
+ð	ñ ‹IˆÜ�7˜AÓˆÜ�B˜‹lˆÜ�B˜‹lˆà×Ñœ˜dŸm™m¨AÓ.Ó/Ø" J°°U¸CÐ@ô	Bà×Ñœ˜dŸm™m¨BÓ/Ó0Ø˜u cÐ*ô	,à×Ñœ˜dŸm™m¨CÓ0Ó1Ø˜u˜ô	'à×Ñœ˜dŸm™m¨CÓ0Ó1Ø˜õ	"r   c                 óR   — t        j                  | | j                  dt        ¬«       y )Nr˜  )r"  r²  )r   r$  rB  rl   rä   s    r   Ú.test_catches_only_AttributeError_on_providedByzFTest_providedByFallback.test_catches_only_AttributeError_on_providedByë  s   € Ü×$Ñ$ T¨4¯=©=Ø6FÜ/5ö	7r   c                 óH   — t        j                  | | j                  d¬«       y )Nr²  r!  r#  rä   s    r   r'  zATest_providedByFallback.test_catches_only_AttributeError_on_classð  s   € ô 	×$Ñ$Ø�$—-‘-°+ö	?r   )r   r   r   r  rr   rB  r?  rC  rG  rK  rR  rV  rZ  r³  rÞ  ræ  r  r  r”  r'  r  r  s   @r   r8  r8    s[   ø„ ò"ð
 (€Oò3ò)ò	-ò)ò
-ò*ò*ò-ô-ô47ô.(ô,-ô:/"òb7ö
?r   r8  c                   ó   — e Zd Zd„ Zy)ÚTest_providedByc                 ó   — ddl m} |S )Nr   r  )r)   r9  )r   r9  s     r   rr   zTest_providedBy._getTargetClassü  r   r   Nr  r   r   r   r—  r—  ø  s   „ ór   r—  c                   ó@   — e Zd Zd„ ZeZd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Zy	)
Ú*ObjectSpecificationDescriptorFallbackTestsc                 ó   — ddl m} |S )Nr   )Ú%ObjectSpecificationDescriptorFallback)r)   rœ  )r   rœ  s     r   r  z<ObjectSpecificationDescriptorFallbackTests._getFallbackClass	  s   € õ	9à4Ð4r   c                 ó.   —  | j                  «       |i |¤ŽS r/   ru   rv   s      r   ry   z3ObjectSpecificationDescriptorFallbackTests._makeOne	  rz   r   c                 óÒ   — ddl m} ddlm}  |d«      } G d„ d«      } |||«      |_        | j                  «       |_        | j                  t        |j                  «      |g«       y )Nr   r±  r€   r‚   c                   ó   — e Zd Zy)úOObjectSpecificationDescriptorFallbackTests.test_accessed_via_class.<locals>.FooNr%   r   r   r   r&   r   	  r8   r   r&   )	r)   r²  rK   r�   r—  ry   r˜  r*   rC   )r   r²  r�   r‚   r&   s        r   Útest_accessed_via_classzBObjectSpecificationDescriptorFallbackTests.test_accessed_via_class	  sV   € Ý8Ý;Ù˜fÓ%ˆ÷	ñ 	á# C¨Ó.ˆÔØ!Ÿ]™]›_ˆÔØ×Ñœ˜c×0Ñ0Ó1°D°6Õ:r   c                 ó  — ddl m} ddl m} ddlm}  |d«      } |d«      } ||«       G d„ d«      «       } |||«      |_        | j                  «       |_         |«       }| j                  t        |j                  «      |g«       y )	Nr   rÌ   r±  r€   r‚   r™   c                   ó   — e Zd Zy)úZObjectSpecificationDescriptorFallbackTests.test_accessed_via_inst_wo_provides.<locals>.FooNr%   r   r   r   r&   r¤  	  r'   r   r&   )
r)   rÍ   r²  rK   r�   r—  ry   r˜  r*   rC   )r   rÍ   r²  r�   r‚   r™   r&   r"   s           r   Ú"test_accessed_via_inst_wo_provideszMObjectSpecificationDescriptorFallbackTests.test_accessed_via_inst_wo_provides	  s|   € Ý;Ý8Ý;Ù˜fÓ%ˆÙ˜fÓ%ˆÙ	�TÓ	÷	ð 	ó 
ð	á# C¨Ó.ˆÔØ!Ÿ]™]›_ˆÔÙ‹eˆØ×Ñœ˜c×0Ñ0Ó1°D°6Õ:r   c                 óB  — ddl m} ddl m} ddl m} ddlm}  |d«      } |d«      } |d«      } ||«       G d	„ d
«      «       } |||«      |_        | j                  «       |_         |«       }	 ||	|«       | j                  t        |	j                  «      ||g«       y )Nr   rì  rÌ   r±  r€   r‚   r™   r¹   c                   ó   — e Zd Zy)úYObjectSpecificationDescriptorFallbackTests.test_accessed_via_inst_w_provides.<locals>.FooNr%   r   r   r   r&   r¨  .	  r'   r   r&   )r)   rí  rÍ   r²  rK   r�   r—  ry   r˜  r*   rC   )
r   rí  rÍ   r²  r�   r‚   r™   r¹   r&   r"   s
             r   Ú!test_accessed_via_inst_w_provideszLObjectSpecificationDescriptorFallbackTests.test_accessed_via_inst_w_provides&	  s•   € Ý@Ý;Ý8Ý;Ù˜fÓ%ˆÙ˜fÓ%ˆÙ˜fÓ%ˆÙ	�TÓ	÷	ð 	ó 
ð	á# C¨Ó.ˆÔØ!Ÿ]™]›_ˆÔÙ‹eˆÙ˜˜dÔ#Ø×Ñœ˜c×0Ñ0Ó1°D¸$°<Õ@r   c                 ó²   ‡ ‡—  G d„ dt         «      Š G ˆˆ fd„d«      } |«       }‰ j                  ‰«      5  t        |d«       d d d «       y # 1 sw Y   y xY w)Nc                   ó   — e Zd Zy)úvObjectSpecificationDescriptorFallbackTests.test_arbitrary_exception_accessing_provides_not_caught.<locals>.MyExceptionNr%   r   r   r   ÚMyExceptionr¬  9	  r8   r   r­  c                   óD   •— e Zd ZW °j                  «       Zeˆ fd„«       Zy)únObjectSpecificationDescriptorFallbackTests.test_arbitrary_exception_accessing_provides_not_caught.<locals>.Fooc                 ó   •— ‰‚r/   r   )r   r­  s    €r   r—  z{ObjectSpecificationDescriptorFallbackTests.test_arbitrary_exception_accessing_provides_not_caught.<locals>.Foo.__provides__?	  s	   ø€ à!Ð!r   N©r   r   r   ry   r˜  rW  r—  )r­  r   s   €€r   r&   r¯  <	  s    ø„ Ù!Ÿ]™]›_ˆNàó"ó ñ"r   r&   r˜  )Ú	Exceptionrê   r“  )r   r&   r"   r­  s   `  @r   Ú6test_arbitrary_exception_accessing_provides_not_caughtzaObjectSpecificationDescriptorFallbackTests.test_arbitrary_exception_accessing_provides_not_caught7	  sP   ù€ ô	œ)ô 	÷	"ô 	"ñ ‹eˆØ×Ñ˜{Ó+ñ 	+Ü�CÐ)Ô*÷	+÷ 	+ñ 	+ús   ·AÁAc                 ó„   ‡ —  G d„ dt         «      } G ˆ fd„d«      } |«       }t        |d«      }‰ j                  |«       y )Nc                   ó   — e Zd Zy)úmObjectSpecificationDescriptorFallbackTests.test_AttributeError_accessing_provides_caught.<locals>.MyExceptionNr%   r   r   r   r­  r¶  I	  r8   r   r­  c                   ó@   •— e Zd ZW ° j                  «       Zed„ «       Zy)úeObjectSpecificationDescriptorFallbackTests.test_AttributeError_accessing_provides_caught.<locals>.Fooc                 ó   — t         ‚r/   )rÀ  rä   s    r   r—  zrObjectSpecificationDescriptorFallbackTests.test_AttributeError_accessing_provides_caught.<locals>.Foo.__provides__O	  s   € ä$Ð$r   Nr±  rä   s   €r   r&   r¸  L	  s    ø„ Ù!Ÿ]™]›_ˆNàñ%ó ñ%r   r&   r˜  )r²  r“  ÚassertIsNotNone)r   r­  r&   r"   Úprovideds   `    r   Ú-test_AttributeError_accessing_provides_caughtzXObjectSpecificationDescriptorFallbackTests.test_AttributeError_accessing_provides_caughtG	  s=   ø€ ô	œ)ô 	÷	%ó 	%ñ ‹eˆÜ˜3Ð 0Ó1ˆØ×Ñ˜XÕ&r   c                 óÊ   — ddl m} ddl m}  G d„ d|«      } ||«       G d„ d«      «       }| j                  «       |_        t         |«       d«      }| j                  |«       y )	Nr   rI   rÌ   c                   ó   — e Zd Zy)úZObjectSpecificationDescriptorFallbackTests.test_None_in__provides__overrides.<locals>.IFooNr%   r   r   r   r‚   r¿  [	  r8   r   r‚   c                   ó   — e Zd Zed„ «       Zy)úYObjectSpecificationDescriptorFallbackTests.test_None_in__provides__overrides.<locals>.Fooc                  ó   — y r/   r   rä   s    r   r—  zfObjectSpecificationDescriptorFallbackTests.test_None_in__provides__overrides.<locals>.Foo.__provides__a	  s   € àr   N)r   r   r   rW  r—  r   r   r   r&   rÁ  ^	  s   „ ð ñó ñr   r&   r˜  )rÃ   rJ   rÍ   ry   r˜  r“  rf   )r   rJ   rÍ   r‚   r&   r»  s         r   Ú!test_None_in__provides__overrideszLObjectSpecificationDescriptorFallbackTests.test_None_in__provides__overridesW	  s_   € Ý,Ý.ô	�9ô 	ñ 
�TÓ	÷	ð 	ó 
ð	ð "Ÿ]™]›_ˆÔä™3›5Ð"2Ó3ˆØ×Ñ˜(Õ#r   N)r   r   r   r  rr   ry   r¡  r¥  r©  r³  r¼  rÃ  r   r   r   rš  rš  	  s2   „ ò5ð (€Oò3ò;ò;òAò"+ò 'ó $r   rš  c                   ó   — e Zd Zd„ Zy)Ú"ObjectSpecificationDescriptorTestsc                 ó   — ddl m} |S )Nr   )ÚObjectSpecificationDescriptor)r)   rÇ  )r   rÇ  s     r   rr   z2ObjectSpecificationDescriptorTests._getTargetClasso	  s   € ÝMØ,Ð,r   Nr  r   r   r   rÅ  rÅ  j	  s   „ ó
-r   rÅ  c                   ó   — e Zd Zd„ Zd„ Zd„ Zy)r/  c                 ó¦   — || _         |D �ci c]  }|t        ||«      “Œ c}| _        |j                  «       D ]  \  }}t	        |||«       Œ y c c}w r/   )Úmoduler“  Ú
to_restoreÚitemsrò  )r   rÊ  rx   ÚkeyrO  s        r   r#  z_Monkey.__init__y	  sR   € ØˆŒØ@BÖC¸˜3¤¨°Ó 4Ñ4ÒCˆŒØŸ(™(›*ò 	(‰JˆC�Ü�F˜C Õ'ñ	(ùò Ds   ŒAc                 ó   — | S r/   r   rä   s    r   Ú	__enter__z_Monkey.__enter__	  s   € Øˆr   c                 óv   — | j                   j                  «       D ]  \  }}t        | j                  ||«       Œ y r/   )rË  rÌ  rò  rÊ  )r   Úexc_typeÚexc_valÚexc_tbrÍ  rO  s         r   Ú__exit__z_Monkey.__exit__‚	  s2   € ØŸ/™/×/Ñ/Ó1ò 	-‰JˆC�Ü�D—K‘K  eÕ,ñ	-r   N©r   r   r   r#  rÏ  rÔ  r   r   r   r/  r/  w	  s   „ ò(òó-r   r/  c                   ó   — e Zd Zd„ Zd„ Zd„ Zy)r`  c                 óÜ   — || _         t        ||«      | _        | j                  j                  «       | _        | j                  j                  «        | j                  j                  |«       y r/   )rÊ  r“  ÚtargetÚcopyrË  ÚclearÚupdate)r   rÊ  Úattrnamerx   s       r   r#  z_MonkeyDict.__init__‰	  sM   € ØˆŒÜ˜f hÓ/ˆŒØŸ+™+×*Ñ*Ó,ˆŒØ�‰×ÑÔØ�‰×Ñ˜2Õr   c                 ó   — | j                   S r/   )rØ  rä   s    r   rÏ  z_MonkeyDict.__enter__�	  s   € Ø�{‰{Ðr   c                 ó‚   — | j                   j                  «        | j                   j                  | j                  «       y r/   )rØ  rÚ  rÛ  rË  )r   rÑ  rÒ  rÓ  s       r   rÔ  z_MonkeyDict.__exit__“	  s(   € Ø�‰×ÑÔØ�‰×Ñ˜4Ÿ?™?Õ+r   NrÕ  r   r   r   r`  r`  ‡	  s   „ òòó,r   r`  ).r
  Úunittestrã  r   r   Ú#zope.interface.tests.test_interfacer   r   ÚTestCaser   r;   rp   r×   rþ   r>  r
  r  r  r1  re  rj  rt  r‘  r£  rÃ  rÙ  r(  r8  rV  ra  ru  r—  rœ  r¬  r¹  rÏ  rã  rë  rÿ  r4  r8  r—  rš  rÅ  r/  r`  r   r   r   ú<module>râ     s¶  ðñã å 6Ý 1Ý Q÷
ñ ô(8�×"Ñ"ô 8ô>7(˜H×-Ñ-ô 7(ôtH9Ð,ô H9ôV@,Ð4ô @,ôFp8Ð6Ø×&Ñ&ôp8ôf@" ×!2Ñ!2ô @"ôF
Ð3Ø.ô÷%%ñ %%ôN-4Ð3°X×5FÑ5Fô -4ô`cXÐ/°×1BÑ1Bô cXôL	/Ð 4ô 	/ô<˜h×/Ñ/ô <ô&<DÐ+ô <Dô@>Ð4ô >ôD/1˜×*Ñ*ô /1ôdÐ1ô ôDy
˜H×-Ñ-ô y
ôz'�H×%Ñ%ô 'ô>+A˜H×-Ñ-ô +Aô\?˜×)Ñ)ô ?ô@.@˜H×-Ñ-ô .@ôb+H X×%6Ñ%6ô +Hô\)Ð2Ø;ô)ô=˜×*Ñ*ô =ôD&Ð1ô &ôRK
˜H×-Ñ-ô K
ô\+;˜h×/Ñ/ô +;ô\9�H×%Ñ%ô 9ô(9˜(×+Ñ+ô 9ôxe=¨(×*;Ñ*;ô e=ôP&Ð"EØ"7ô&ôp?˜h×/Ñ/ô p?ôhÐ-Ø+ôôg$°×1BÑ1Bô g$ôR-Ø2Øô-÷-ñ -÷ ,ò ,r   