
    W                     8    S SK Jr   " S S\5      r " S S\S9rg)    )ABCMetac                   8   ^  \ rS rSrU 4S jr\S 5       rSrU =r$ )EnforceOverridesMeta   c                   > [         T
U ]  " XX#40 UD6nUR                  5        H  u  pUR                  S5      (       a  M  U R	                  U5      n[        USS5      nU H[  n[        XS5      n	U	(       a  [        U	5      (       d  M(  U(       d
   SU-  5       e[        U	SS5      (       d  MM   SU	< SU< S35       e   M     U$ )	N____override__Fz:Method %s overrides but does not have @overrides decorator__finalized__zMethod z is finalized in z, it cannot be overridden)super__new__items
startswithhandle_special_valuegetattrcallable)mclsnamebases	namespacekwargsclsvalueis_overridebasebase_class_method	__class__s             $lib/third_party/overrides/enforce.pyr   EnforceOverridesMeta.__new__   s    god%EfE$??,KD t$$--e4E!%?K$+D$>!(9J0K0KYOSWXY ##4ouMM ($0M  -& 
    c                     [        U [        5      (       d  [        U [        5      (       a  U R                  S [        5      n U $ [        U [
        5      (       a  U R                  n U $ )N)
isinstanceclassmethodstaticmethod__get__dictpropertyfget)r   s    r   r   )EnforceOverridesMeta.handle_special_value   sO    e[))Z|-L-LMM$-E  x((JJEr    )	__name__
__module____qualname____firstlineno__r   r#   r   __static_attributes____classcell__)r   s   @r   r   r      s    .  r   r   c                       \ rS rSrSrSrg)EnforceOverrides%   z4Use this as the parent class for your custom classesr)   N)r*   r+   r,   r-   __doc__r.   r)   r   r   r1   r1   %   s    :r   r1   )	metaclassN)abcr   r   r1   r)   r   r   <module>r6      s"    7 B	!5 	r   