+
    -½i¥  ã                   óð   € R t ^ RIt^ RIt^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIH	t	 ^ RIH
t
 ^ RIHt ^ R	IHt ^ R
IHt ^ RIHt RR.t]3tRR ltR tRR ltRR lt]P                   ]n         RtR tR# )z!Verify interface implementations
N)ÚFunctionType)Ú
MethodType)ÚBrokenImplementation)ÚBrokenMethodImplementation)ÚDoesNotImplement)ÚInvalid)ÚMultipleInvalid)ÚMethod)ÚfromFunction)Ú
fromMethodÚverifyObjectÚverifyClassc                óª  € VR8X  d   V P                   pMV P                  p. pV'       g)   V! V4      '       g   VP                  \        W4      4       V P	                  RR7       F  w  rg \        WWqV4       K  	  V'       d&   \        V4      ^8X  d
   V^ ,          h\        WV4      hR#   \         d   pTP                  T4        Rp?Kh  Rp?ii ; i)aH  
Verify that *candidate* might correctly provide *iface*.

This involves:

- Making sure the candidate claims that it provides the
  interface using ``iface.providedBy`` (unless *tentative* is `True`, in
  which case this step is skipped). This means that the candidate's class
  declares that it `implements <zope.interface.implementer>` the
  interface, or the candidate itself declares that it `provides
  <zope.interface.provider>`
  the interface

- Making sure the candidate defines all the necessary methods

- Making sure the methods have the correct signature (to the
  extent possible)

- Making sure the candidate defines all the necessary attributes

:return bool: Returns a true value if everything that could be
   checked passed.
:raises zope.interface.Invalid: If any of the previous
   conditions does not hold.

.. versionchanged:: 5.0
    If multiple methods or attributes are invalid, all such errors
    are collected and reported. Previously, only the first error was
    reported.  As a special case, if only one such error is present, it is
    raised alone, like before.
ÚcT)ÚallN)	ÚimplementedByÚ
providedByÚappendr   ÚnamesAndDescriptionsÚ_verify_elementr   Úlenr   )	ÚifaceÚ	candidateÚ	tentativeÚvtypeÚtesterÚexcsÚnameÚdescÚes	   &&&&     Ú7/usr/lib/python3/dist-packages/zope/interface/verify.pyÚ_verifyr!   )   s¹   € ðB �„|Ø×$Ñ$‰à×!Ñ!ˆà€Dß™V I×.Ò.Ø�‰Ô$ UÓ6Ô7à×0Ñ0°TÐ0Ö:‰
ˆð	Ü˜E¨¸%Ö@ñ ;÷ Üˆt‹9˜Œ>Ø�q•'ˆMÜ˜e°Ó5Ð5áøô ô 	Ø�K‰K˜�NŠNûð	ús   Á+B+Â+CÂ6CÃCc                 óT  €  \        W14      p\        T\        4      '       g   R# \
        P                  ! T4      '       g   \
        P                  ! T4      '       d   R# \        T\        4      '       d;   \        T\        4      '       d   TR 8X  d   \        YPT^R7      pM�\        YPTR7      pM�\        T\        4      '       d+   \        TP                  4      \        J d   \        YPT4      pMA\        T\        4      '       d
   TR 8X  d   R# \        T4      '       g   \!        TRTT T4      hR# \#        TP%                  4       TP%                  4       4      pT'       d   \!        Y'YPT4      hR#   \         d.    \        T\        4      '       g   TR 8X  d    R# \	        YT4      hi ; i)r   N)r   Úimlevel)r   zimplementation is not a method)ÚgetattrÚAttributeErrorÚ
isinstancer	   r   ÚinspectÚismethoddescriptorÚ	isbuiltinr   Útyper
   ÚMethodTypesÚ__func__r   ÚpropertyÚcallabler   Ú	_incompatÚgetSignatureInfo)r   r   r   r   r   ÚattrÚmethÚmesss   &&&&&   r    r   r   a   sg  € ð
;Ü�yÓ'ˆô �dœF×#Ò#áä×!Ò! $×'Ò'¬7×+<Ò+<¸T×+BÒ+Bñ 	ä�$œ×%Ò%ä�i¤×&Ò&¨5°C¬<ô
   °$ÀÔB‰Dô   °$Ô7‰Dô 	�4œ×%Ò%ÜˆT�]‰]Óœ|Ó+ä˜$ tÓ,‰ä	�Dœ(×	#Ò	#¨°¬ñ
 	ô ˜�~Š~Ü,ØØ0ØØØóð ñ 	ô �T×*Ñ*Ó,¨d×.CÑ.CÓ.EÓF€DßÜ(¨°TÀ)ÓLÐLñ øôM ô ;ä˜4¤×(Ò(¨e°s¬lò ô # 5°	Ó:Ð:ð;ús   ‚E/ Å/(F'ÆF'c                ó   € \        WVRR7      # )z>
Verify that the *candidate* might correctly provide *iface*.
r   ©r   ©r!   ©r   r   r   s   &&&r    r   r   ¯   s   € ô �5 Y°cÔ:Ð:ó    c                 ó   € \        WVR R7      # )Úor5   r6   r7   s   &&&r    r   r   ¶   s   € Ü�5 Y°cÔ:Ð:r8   z*implementation requires too many argumentsc                 óT  € \        VR ,          4      \        V R ,          4      8”  d   \        # \        VR,          4      \        V R,          4      8  d   VR,          '       g   R# V R,          '       d   VR,          '       g   R# V R,          '       d   VR,          '       g   R# R# R# )ÚrequiredÚ
positionalÚvarargsz-implementation doesn't allow enough argumentsÚkwargsz0implementation doesn't support keyword argumentsz1implementation doesn't support variable argumentsN)r   Ú_MSG_TOO_MANY)r<   Úimplementeds   &&r    r/   r/   ¿   sŠ   € ô
 ˆ;�zÕ"Ó#¤c¨(°:Õ*>Ó&?Ô?ÜÐô 
ˆ[˜Õ&Ó	'¬#¨h°|Õ.DÓ*EÔ	EØ˜	×"Ô"á>à�×Ô +¨h×"7Ô"7ÙAà�	×Ô ;¨y×#9Ô#9ÙBñ $:Ñr8   )FN)F)Ú__doc__r'   ÚsysÚtypesr   r   Úzope.interface.exceptionsr   r   r   r   r   Úzope.interface.interfacer	   r
   r   Ú__all__r+   r!   r   r   r   r@   r/   © r8   r    Ú<module>rI      sw   ðñã Û 
Ý Ý å :Ý @Ý 6Ý -Ý 5Ý +Ý 1Ý /ð Øð€ð ˆn€ô5òpKMô\;ô;ð —‘€Ô à<€ôCr8   