+
    -iv!                         R t . ROt ! R R]4      t ! R	 R
]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t	 ! R R]
4      tR# )zInterface-specific exceptions
InvalidDoesNotImplementBrokenImplementationBrokenMethodImplementationMultipleInvalidBadImplementsInvalidInterfacec                       ] tR t^tRtRtR# )r   z A specification is violated
     N__name__
__module____qualname____firstlineno____doc____static_attributes__r
       ;/usr/lib/python3/dist-packages/zope/interface/exceptions.pyr   r          r   c                      a  ] tR t^#t o ^ t^t]tRtRR lt	]
R 4       t]
R 4       t]
R 4       t]
R 4       tRtR	tR
tR tRtV tR# )_TargetInvalidz<Not Given>Nc                \     V P                   V,          #   T P                   d    Tu # i ; iN)args_NOT_GIVEN_CATCH)selfixdefaults   &&&r   _get_arg_or_default"_TargetInvalid._get_arg_or_default9   s/    	99R= $$ 	N	s    ++c                8    V P                  V P                  4      # r   )r   _IX_INTERFACEr   s   &r   	interface_TargetInvalid.interface?   s    ''(:(:;;r   c                N    V P                  V P                  V P                  4      # r   )r   
_IX_TARGET
_NOT_GIVENr"   s   &r   target_TargetInvalid.targetC   s    ''IIr   c                H    V P                   pWP                  J d   R # RV: 2# )z	An objectzThe object )r(   r'   )r   r(   s   & r   _str_subject_TargetInvalid._str_subject[   s%    __$VJ''r   c                <    R V P                   ;'       g    R,          # )z$has failed to implement interface %sz	<Unknown>)r#   r"   s   &r   _str_description_TargetInvalid._str_descriptionb   s    5NN))k
 	
r   z: z	<unknown>.c                    R P                  V P                  V P                  V P                  V P                  V P
                  4      # )z{} {}{}{}{})formatr+   r.   _str_conjunction_str_details_str_trailerr"   s   &r   __str___TargetInvalid.__str__l   sB    ##!!!!
 	
r   r
   r   )r   r   r   r   r!   r&   
IndexErrorr   r'   r   propertyr#   r(   r+   r.   r3   r4   r5   r6   r   __classdictcell____classdict__s   @r   r   r   #   s      MJ "J < < J J. ( ( 
 

 LL
 
r   r   c                       ] tR t^vtRtRtRtR# )r   z
DoesNotImplement(interface[, target])

The *target* (optional) does not implement the *interface*.

.. versionchanged:: 5.0.0
   Add the *target* argument and attribute, and change the resulting
   string value of this object accordingly.
z.Does not declaratively implement the interfacer
   N)r   r   r   r   r   r4   r   r
   r   r   r   r   v   s     DLr   c                   |   a  ] tR t^t o Rt]P                  ^,           t]^,           t]	R 4       t
]	R 4       tRtV tR# )r   a?  
BrokenImplementation(interface, name[, target])

The *target* (optional) is missing the attribute *name*.

.. versionchanged:: 5.0.0
   Add the *target* argument and attribute, and change the resulting
   string value of this object accordingly.

   The *name* can either be a simple string or a ``Attribute`` object.
c                (    V P                   ^,          #    r   r"   s   &r   nameBrokenImplementation.name       yy|r   c                    R \        V P                  \        4      '       d   \        V P                  4      ,          # V P                  ,          # )z!The %s attribute was not provided)
isinstancerC   strreprr"   s   &r   r4   !BrokenImplementation._str_details   s;    2)$))S99DO
 	
?Cyy
 	
r   r
   N)r   r   r   r   r   r   r!   _IX_NAMEr&   r9   rC   r4   r   r:   r;   s   @r   r   r      sK     
 ++a/HAJ  
 
r   c                      a  ] tR t^t o Rt^t]^,           t]^,           t]R 4       t	]R 4       t
]R 4       t]R 4       tRtV tR# )r   aw  
BrokenMethodImplementation(
    method, message[, implementation, interface, target]
)

The *target* (optional) has a *method* in *implementation* that violates
its contract in a way described by *mess*.

.. versionchanged:: 5.0.0
   Add the *interface* and *target* argument and attribute,
   and change the resulting string value of this object accordingly.

   The *method* can either be a simple string or a ``Method`` object.

.. versionchanged:: 5.0.0
   If *implementation* is given, then the *message* will have the
   string "implementation" replaced with an short but informative
   representation of *implementation*.

c                (    V P                   ^ ,          # )    rB   r"   s   &r   method!BrokenMethodImplementation.method   rE   r   c                (    V P                   ^,          # r@   rB   r"   s   &r   messBrokenMethodImplementation.mess   rE   r   c                H   ^ RI p VP                  p\        p V! V 4      p T P                  pYC! T4      ,           #   \         d    TP                  pTP
                  p LIi ; i  \        \        3 d    \        T 4      u # i ; i  \         d    T P                  p Lri ; i)rN   N)inspect	signaturerH   AttributeError
getargspecformatargspec
ValueError	TypeErrorrI   r   r   )implrU   sig	formatsigrC   s   &    r   __implementation_str/BrokenMethodImplementation.__implementation_str   s     		.##CI
	d)C	!$$D in$$%  	.$$C--I	. I& 	
 :	  	!==D	!s1   < A% B #A"!A"%BBB! B!c                   V P                  V P                  V P                  4      pV P                  pWP                  Jd2   R V9   d+   VP	                  R R4      pW P                  V4      3,          pRP                  \        V P                  \        4      '       d   \        V P                  4      V4      # V P                  V4      # )implementationz%rz)The contract of {} is violated because {})r   _IX_IMPLr'   rR   replace/_BrokenMethodImplementation__implementation_strr2   rG   rO   rH   rI   )r   r\   messages   &  r   r4   'BrokenMethodImplementation._str_details   s    ''tG))&+;w+Foo&6=G!:!:4!@ BBG:AA!+DKK!=!=D
 	
CG;;
 	
r   r
   N)r   r   r   r   r   rc   r!   r&   r9   rO   rR   staticmethodre   r4   r   r:   r;   s   @r   r   r      sr     * HqLM"J    % %6 

 

r   c                   b   a a ] tR t^t oRtRtV 3R lt]R 4       t]R 4       t	Rt
RtRtVtV ;t# )r   z
The *target* has failed to implement the *interface* in
multiple ways.

The failures are described by *exceptions*, a collection of
other `Invalid` instances.

.. versionadded:: 5.0
c                :   < \         SV `  W\        V4      4       R # r   )super__init__tuple)r   r#   r(   
exceptions	__class__s   &&&&r   rl   MultipleInvalid.__init__   s    E*,=>r   c                (    V P                   ^,          # )   rB   r"   s   &r   rn   MultipleInvalid.exceptions   rE   r   c                T    R R P                  R V P                   4       4      ,           # )z
    c              3      "   T F@  p\        V\        4      '       d   VP                  P                  4       M
\	        V4      x  KB  	  R # 5ir   )rG   r   r4   striprH   ).0xs   & r   	<genexpr>/MultipleInvalid._str_details.<locals>.<genexpr>  s9      (
$ '1N&C&CANN  "QO$s   AA
)joinrn   r"   s   &r   r4   MultipleInvalid._str_details   s-     (-- (
__(
 
 
 	
r   : r
   )r   r   r   r   r   r   rl   r9   rn   r4   r3   r5   r   r:   __classcell__)ro   r<   s   @@r   r   r      sN      ?   
 
 LLr   c                       ] tR tRtRtRtR# )r   i  z'The interface has invalid contents
    r
   Nr   r
   r   r   r   r     r   r   c                       ] tR tRtRtRtR# )r   i  zAn implementation assertion is invalid

because it doesn't contain an interface or a sequence of valid
implementation assertions.
r
   Nr   r
   r   r   r   r     s    r   N)r   r   r   r   r   r   r   )r   __all__	Exceptionr   r   r   r   r   r   r   r[   r   r
   r   r   <module>r      sz   
i 
P
W P
fD~ D
> 
6I
 I
Xn By 
I r   