
    h                         S SK r S SKrS SKJr  S SKJrJrJrJrJ	r	J
r
Jr  S SKrSSKJrJr  SSKJr  \(       a  SSKJr  SS	KJr   " S
 S\5      rg)    N)UserDict)TYPE_CHECKINGDictIterableListOptionalTupleUnion   )ErrorsWarnings   )	SpanGroup)Doc)Spanc                     ^  \ rS rSrSr\R                  " / 5      r\" 5       4SSS\	\
\\4      SS4S jjrS	\S
\\\	S   4   SS4S jrS\S\	S   S\4S jrSS\S   SS 4S jjrSU 4S jjrS\4S jrS\SS 4S jrSS jrSrU =r$ )
SpanGroups   zDA dict-like proxy held by the Doc, to control access to span groups.docr   itemsreturnNc                 f    [         R                  " U5      U l        [        R                  " X5        g N)weakrefrefdoc_refr   __init__)selfr   r   s      T/home/james-whalen/.local/lib/python3.13/site-packages/spacy/tokens/_dict_proxies.pyr   SpanGroups.__init__   s"     {{3'$&    keyvaluer   c                     [        U[        5      (       d  U R                  X5      nUR                  U R	                  5       L d   e[
        R                  " XU5        g r   )
isinstancer   _make_span_groupr   r   r   __setitem__)r   r"   r#   s      r   r'   SpanGroups.__setitem__    sG    %++))#5EyyDLLN***T.r!   namespansc                 6    U R                  5       n[        X1US9$ )N)r)   r*   )_ensure_docr   )r   r)   r*   r   s       r   r&   SpanGroups._make_span_group&   s     u55r!   c                 r   ^ Tc  U R                  5       mU4S jU R                  5        5       n[        TUS9$ )Nc              3   H   >#    U  H  u  pXR                  TS 94v   M     g7f))r   N)copy).0kvr   s      r   	<genexpr>"SpanGroups.copy.<locals>.<genexpr>-   s      CldaaC)ls   ")r   )r,   r   r   )r   r   	data_copys    ` r   r0   SpanGroups.copy*   s3    ;""$CCdjjlC	#Y//r!   c                 z   > [        U[        5      (       d  Uc  / nOUnU R                  X5      n[        TU ]  XS9$ )N)default)r%   r   r&   super
setdefault)r   r"   r9   r*   	__class__s       r   r;   SpanGroups.setdefault0   sB    '9--++C7Gw!#!77r!   c                     [        U 5      S:X  a  U R                  $ 0 nU R                  5        H4  u  p#UR                  UR	                  5       / 5      R                  U5        M6     [        R                  " U5      $ )Nr   )len_EMPTY_BYTESr   r;   to_bytesappendsrslymsgpack_dumps)r   msgr"   r#   s       r   rA   SpanGroups.to_bytes9   sc     t9>$$$&(**,JCNN5>>+R077< '""3''r!   
bytes_datac                    U(       a  XR                   :X  a  / O[        R                  " U5      nU R                  5         U R	                  5       n[        U[        5      (       a  U H  n[        U5      R                  U5      nUR                  U ;   aH  [        R                  " [        R                  R                  UR                  XR                     S95        XPUR                  '   M     U $ UR                  5        HD  u  pF[        U5      R                  U5      nXPUS   '   USS   H  nUR!                  5       X'   M     MF     U $ )N)
group_namegroup_valuesr   r   )r@   rC   msgpack_loadsclearr,   r%   listr   
from_bytesr)   warningswarnr   W120formatr   r0   )r   rG   rE   r   value_bytesgroupkeysr"   s           r   rN   SpanGroups.from_bytesD   s     /@/@!@ $$Z0 	
 	

 c4    #!#11+>::%
 MM ,,',zzZZ@P - 
 $)UZZ   #,  &)YY[!!#11+> !&T!W8C %

DI $ &1 r!   c                 ^    U R                  5       nUc  [        [        R                  5      eU$ r   )r   
ValueErrorr   E866)r   r   s     r   r,   SpanGroups._ensure_docj   s&    lln;V[[))
r!   )r   r   )r   r   )__name__
__module____qualname____firstlineno____doc__rC   rD   r@   tupler   r	   strr   r   r
   r'   r&   r   r0   r;   bytesrA   rN   r,   __static_attributes____classcell__)r<   s   @r   r   r      s    N&&r*L DI7''!)%Y*?!@'	'/s /5HV<L1L+M /RV /6S 6&1A 6i 60 0< 08	(% 	($U $| $L r!   r   )rO   r   collectionsr   typingr   r   r   r   r   r	   r
   rC   errorsr   r   
span_groupr   r   r   spanr   r    r!   r   <module>rk      s7        N N N  % !Y Yr!   