
    h-	                     8    S SK Jr   " S S\5      r " S S\S9rg)    )ABCMetac                   X   ^  \ rS rSrU 4S jr\S 5       r\S 5       r\S 5       rSr	U =r
$ )EnforceOverridesMeta   c                   > [        U 5       Hz  nUR                  S5      (       a  M  US:w  d  M#  [        X5      n[        U[        [
        [        [        [        [        [        45      (       a  Md  [        [        X5      SS5        M|     [        TU ]4  " XX#40 UD6nUR                  5        HQ  u  pU R                  X5        UR                  S5      (       a  M.  U R!                  U5      nU R#                  XU5        MS     U$ )N__mro__ignored__T)dir
startswithgetattr
isinstanceboolstrintfloattuplelistdictsetattrsuper__new__items _check_if_overrides_final_method_handle_special_value/_check_if_overrides_without_overrides_decorator)	mclsnamebases	namespacekwargsmethodvaluecls	__class__s	           dC:\Users\julio\OneDrive\Documentos\Trabajo\Ideas Frescas\venv\Lib\site-packages\overrides/enforce.pyr   EnforceOverridesMeta.__new__   s    $iF$$T**v-!%$S%d)STTGD1=$G	   god%EfE$??,KD11$>??4((2259DDTRWX	 -
 
    c                     [        USS5      nU HS  n[        X@S5      nU(       a"  [        U5      (       a  [        USS5      (       a  M:  U(       a  MC  [        SU  SU S35      e   g )N__override__Fr
   Method z overrides method from z& but does not have @override decorator)r   callable	TypeError)r   r#   r   is_overridebasebase_class_methods         r&   r   DEnforceOverridesMeta._check_if_overrides_without_overrides_decorator   so    e^U;D 'E :% 122,mUCC;dV#:4&@fg  r(   c                 v    U H3  n[        X S5      n[        USS5      (       d  M#  [        SU  SU S35      e   g )NF	__final__r+   z is finalized in z, it cannot be overridden)r   r-   )r   r   r/   r0   s       r&   r   5EnforceOverridesMeta._check_if_overrides_final_method%   sJ    D 'E :(+u==dV#4TF:ST 	 r(   c                     [        U [        5      (       d  [        U [        5      (       a  U R                  S [        5      n U $ [        U [
        5      (       a  U R                  n U $ )N)r   classmethodstaticmethod__get__r   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   r7   r   r   r   __static_attributes____classcell__)r%   s   @r&   r   r      sD           r(   r   c                       \ rS rSrSrSrg)EnforceOverrides8   z4Use this as the parent class for your custom classesr<   N)r=   r>   r?   r@   __doc__rA   r<   r(   r&   rD   rD   8   s    :r(   rD   )	metaclassN)abcr   r   rD   r<   r(   r&   <module>rI      s"    17 1h	!5 	r(   