
    h                         S SK r S SKrS SKJrJrJrJrJrJrJ	r	  SSK
Jr  \(       a  SSKJr  SSKJr  SSKJr   " S	 S
5      rS\4S jrS rg)    N)TYPE_CHECKINGAnyDictListOptionalTupleUnion   )Errors   )Doc)Span)Tokenc            
          \ rS rSr% \\\4r0 r\	\
\
4   \S'   0 r\	\
\
4   \S'   0 r\	\
\
4   \S'   \	\\
4   \S'   \S   \S'   \\   \S'   \\   \S	'     SS\	\\
4   S\S   S\\   S\\   4S jjrS\\   4S jrS\S\
4S jrS\S\
4S jrS\S\
4S jrS\S\
4S jrS\S\4S jrS\S\\\\\   \\   4   4S jr\S\\	\
\
4   \	\
\
4   \	\
\
4   4   4S j5       r\S\\	\
\
4   \	\
\
4   \	\
\
4   4   SS
4S j5       rSrg
)
Underscore   doc_extensionsspan_extensionstoken_extensions_extensions)r   r   r   _obj_start_endN
extensionsobjstartendc                     [         R                  U SU5        [         R                  U SU5        [         R                  U SUR                  5        [         R                  U SU5        [         R                  U SU5        g )Nr   r   _docr   r   )object__setattr__doc)selfr   r   r   r   s        Q/home/james-whalen/.local/lib/python3.13/site-packages/spacy/tokens/underscore.py__init__Underscore.__init__   sd     	4
;4- 	414514-    returnc                 V    [        U R                  R                  5       5      n/ SQU-   $ )N)setgethas)listr   keys)r#   r   s     r$   __dir__Underscore.__dir__)   s&    $**//12
$z11r'   namec                 T   XR                   ;  a&  [        [        R                  R	                  US95      eU R                   U   u  p#pEUb  U" U R
                  5      $ UbB  [        R                  " X0R
                  5      nUR                  =(       d    SnSnX-   Ul        U$ U R                  U5      n	XR                  R                  ;   a  U R                  R                  U	   $ [        X R                  5      (       a)  [        R                  " U5      n
U R                  X5        U
$ U$ )Nr1    zsThis method is a partial function and its first argument (the object it's called on) will be filled automatically. )r   AttributeErrorr   E046formatr   	functoolspartial__doc___get_keyr   	user_data
isinstancemutable_typescopyr!   )r#   r1   defaultmethodgettersettermethod_partialmethod_docstringmethod_docstring_prefixkeynew_defaults              r$   __getattr__Underscore.__getattr__.   s	   ''' !3!3!3!>??*.*:*:4*@'$))$$&..vyyAN  &~~3M $ &=%ON"!!--%Cii)))yy**3//G%7%788"ii0  3""Nr'   valuec                    XR                   ;  a&  [        [        R                  R	                  US95      eU R                   U   u  p4pVUb  U" U R
                  U5      $ X R                  R                  U R                  U5      '   g )Nr3   )	r   r5   r   E047r7   r   r   r<   r;   )r#   r1   rK   r@   rA   rB   rC   s          r$   r!   Underscore.__setattr__J   sr    ''' !3!3!3!>??*.*:*:4*@'$))U++7<IId 34r'   c                 $    U R                  X5      $ N)r!   )r#   r1   rK   s      r$   r*   Underscore.setS   s    ,,r'   c                 $    U R                  U5      $ rP   )rI   r#   r1   s     r$   r+   Underscore.getV   s    %%r'   c                     XR                   ;   $ rP   )r   rS   s     r$   r,   Underscore.hasY   s    ''''r'   c                 4    SXR                   U R                  4$ )Nz._.)r   r   rS   s     r$   r;   Underscore._get_key\   s    t[[$))44r'   c                 H    U R                   U R                  U R                  4$ rP   r   r   r   )clss    r$   	get_stateUnderscore.get_state_   s!    ##S%8%8#:L:LLLr'   statec                 .    Uu  U l         U l        U l        g rP   rZ   )r[   r^   s     r$   
load_stateUnderscore.load_statec   s     INEc133Er'    )NN) __name__
__module____qualname____firstlineno__dictr-   r*   r>   r   r   r   __annotations__r   r   strr	   r   intr%   r   r/   rI   r!   r+   boolr,   r   r;   classmethodr\   r`   __static_attributes__rb   r'   r$   r   r      s   4%M%'NDcN'&(OT#s(^(')d38n)c3h
&
''SM
3-  $!.cN. )*. }	.
 c].$2c 2
  8= =C =- -C -& & &( ( (5S 5U3Xc]HSM+Q%R 5 M%S#XS#XS#X NO M M N$sCx.$sCx.$sCx.HIN	N Nr'   r   kwargsc                     U R                  S5      nU R                  S5      nU R                  S5      nU R                  S5      nUc  Ub  [        [        R                  5      eSU ;   USLUSL4n[	        S U 5       5      nUS:w  a&  [        [        R
                  R                  US95      eUbA  [        US	5      (       d0  [        [        R                  R                  S[        U5      S
95      eUbA  [        US	5      (       d0  [        [        R                  R                  S[        U5      S
95      eUbA  [        US	5      (       d0  [        [        R                  R                  S[        U5      S
95      eXX#4$ )z>Validate and convert arguments. Reused in Doc, Token and Span.r@   rB   rC   rA   Nc              3   (   #    U  H  oS L v   M
     g7f)TNrb   ).0ts     r$   	<genexpr>get_ext_args.<locals>.<genexpr>s   s     3
1$Y
   r   )
nr_defined__call__)r1   rK   )
r+   
ValueErrorr   E089sumE083r7   hasattrE091repr)rn   r@   rB   rC   rA   
valid_optsrv   s          r$   get_ext_argsr   j   sL   jj#GZZ!FZZ!FZZ!F~&,%%v%vT'96;MNJ3
33JQ++z+BCC'&*"="=++f+NOO'&*"="=++f+NOO'&*"="=++f+NOOV,,r'   c                 J    U u  pp4Uc  Uc  [        S U  5       5      (       a  gg)zCheck if an extension attribute is writable.
ext (tuple): The (default, getter, setter, method) tuple available  via
    {Doc,Span,Token}.get_extension.
RETURNS (bool): Whether the attribute is writable.
c              3   (   #    U  H  oS L v   M
     g 7frP   rb   )rq   es     r$   rs   #is_writable_attr.<locals>.<genexpr>   s     7O3aT	3ru   TF)all)extr@   rA   rB   rC   s        r$   is_writable_attrr      s1     '*#GV W0C7O37O4O4Or'   )r?   r8   typingr   r   r   r   r   r   r	   errorsr   r"   r   spanr   tokenr   r   r   r   rb   r'   r$   <module>r      sC      I I I ZN ZNz-3 -*r'   