
    PiHZ                       d Z ddlmZ ddlmZ ddlmZmZmZm	Z	m
Z
mZmZmZmZmZ ddlmZmZ ddlmZ ddlmZmZmZ dd	lmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/ dd
l0m1Z1m2Z2m3Z3 eee e"e$e%e&e*e+e,e-e#hZ4 G d de5          Z6 e6d          Z7dZ8eeee	e9ef         e9df                  e	e9ef         e9df         Z: G d d          Z; edd          Z<e7e7e7e7de7ddfe<j=        _>        dS )zK
Implementation of the JSON-LD Context structure. See: http://json-ld.org/
    )annotations)
namedtuple)
TYPE_CHECKINGAny
CollectionDict	GeneratorListOptionalSetTupleUnion)urljoinurlsplit)RDF   )INVALID_CONTEXT_ENTRYINVALID_REMOTE_CONTEXTRECURSIVE_CONTEXT_INCLUSION)BASE	CONTAINERCONTEXTGRAPHIDIMPORTINCLUDEDINDEXJSONLANGLISTNESTNONEPREFIX	PROPAGATE	PROTECTEDREVSETTYPEVALUEVERSIONVOCAB)norm_urlsource_to_json	split_iric                      e Zd ZdS )DefinedN)__name__
__module____qualname__     x/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/rdflib/plugins/shared/jsonld/context.pyr0   r0   ;   s        Dr5   r0   ):/?#[]@Nc                  P   e Zd Z	 	 	 didjd	Zedkd            Zej        dld            ZdmdndZdndZdodZ	dpdZ
dqdZdrdZdrdZdrdZdrd Zdrd!Zdrd"Zdrd#Zdrd$Zdsd'Zdtd(Zdud*Z ed+           Z ed,           Z ed-           Z ed.           Z ed/           Z ed0           Z ed1           Zeeded2edd2fdvdAZdedd2fdwdBZ dxdDZ!dydFZ"dzdHZ#dmd{dKZ$dydLZ%d|dMZ&	 	 d}d~dPZ'ddQZ(	 dddXZ)ddYZ*	 	 d}dd\Z+	 ddd_Z,	 dddbZ-dddZ.ddeZ/ddgZ0ddhZ1dS )ContextN皙?source_ContextSourceTypebaseOptional[str]versionOptional[float]c                    |pd| _         d | _        d | _        |  || _        || _        i | _        i | _        i | _        i | _        d| _	        d | _
        d| _        i | _        |r|                     |           d S d S )Nr@   FT)rE   languagevocabrC   doc_baseterms_alias_lookup	_prefixesactiveparent	propagate_context_cacheload)selfrA   rC   rE   s       r6   __init__zContext.__init__J   s     &n$(
!	%'
,.OQ)+)-.0 	IIf	 	r5   returnc                    | j         S N)_baserT   s    r6   rC   zContext.baseb   s
    zr5   c                    |r%|                     d          }|dk    r
|d|         }t          | d          r||                     |          n|| _        |rdt	          |          dd         z  nd | _        d S )Nr:   r   rY   z%s://%s   )findhasattrresolve_irirY   r   _basedomain)rT   rC   
hash_indexs      r6   rC   zContext.basef   s     	*3JBAjL) g&&+/+; T""" 	

 ?CL9x~~ac':::r5   Tr   rQ   boolc                R    | j         du r| j        n| }|                    ||          S NF)rQ   rP   _subcontext)rT   rA   rQ   rP   s       r6   
subcontextzContext.subcontexts   s/     $% 7 7T!!&)444r5   c                   t          | j                  }||_        | |_        | j        |_        | j        |_        | j        |_        | j        |_        d | j        	                                D             |_        | j
                                        |_
        | j                                        |_        | j                                        |_        | j        |_        |                    |           |S )N)rE   c                *    i | ]\  }}||d d          S rX   r4   ).0kls      r6   
<dictcomp>z'Context._subcontext.<locals>.<dictcomp>   s&    >>>$!Qa111>>>r5   )r?   rE   rQ   rP   rH   rI   rC   rJ   rL   itemsrK   copyrM   rN   rR   rS   )rT   rA   rQ   ctxs       r6   rf   zContext._subcontexty   s    dl+++!
}J	9}>>$+*;*;*=*=>>>
JOO%%	l''))++--!0
r5   Nonec                v    d | _         d | _        i | _        i | _        i | _        i | _        d| _        d| _        d S )NFT)rH   rI   rK   rL   rM   rN   rO   rQ   rZ   s    r6   _clearzContext._clear   s>    

r5   termOptional[Term]c                ^    |r*|j         t          ur|                     |j         d          S | S )NTrQ   )contextUNDEFrf   )rT   rt   s     r6   get_context_for_termzContext.get_context_for_term   s7     	BDL--##DLD#AAAr5   nodeOptional[Context]c                   | j         dk    rt          |t                    r|                     |          nd }t          |t                    s|r|gng }d }|D ]2}	 | j                            |          }n# t          $ r Y nw xY w| n3|r'|j        r | 	                    |j        d          }|r|S | j
        du r| j        n| S )Nr@   Frw   )rE   
isinstancedictget_typelistrK   get	TypeErrorrx   rg   rQ   rP   )rT   r{   rtypetypetermrtrg   s         r6   get_context_for_typezContext.get_context_for_type   s   <3+5dD+A+AKDMM$'''tEeT** 1#(0bH  #z~~b11HH    D 'E (  &H, &!__X-=_OO
 &%%"n55t{{4?s   A66
BBobjDict[str, Any]c                8    |                      |t                    S rX   )_getr   rT   r   s     r6   get_idzContext.get_id   s    yyb!!!r5   c                8    |                      |t                    S rX   )r   r(   r   s     r6   r   zContext.get_type       yyd###r5   c                8    |                      |t                    S rX   )r   r   r   s     r6   get_languagezContext.get_language   r   r5   c                8    |                      |t                    S rX   )r   r)   r   s     r6   	get_valuezContext.get_value       yye$$$r5   c                8    |                      |t                    S rX   )r   r   r   s     r6   	get_graphzContext.get_graph   r   r5   c                8    |                      |t                    S rX   )r   r    r   s     r6   get_listzContext.get_list   r   r5   c                8    |                      |t                    S rX   )r   r'   r   s     r6   get_setzContext.get_set       yyc"""r5   c                8    |                      |t                    S rX   )r   r&   r   s     r6   get_revzContext.get_rev   r   r5   keystrc                    | j                             |g           D ]}||v r|                    |          c S |                    |          S rX   )rL   r   )rT   r   r   aliass       r6   r   zContext._get   sU    [__S"-- 	& 	&E||wwu~~%%% wws||r5   c                <    |                      |          D ]}|c S d S rX   )get_keysrT   r   r   s      r6   get_keyzContext.get_key   s0    ]]3'' 	 	ELLL	 	r5   Generator[str, None, None]c              #  L   K   || j         v r| j         |         D ]}|V  |V  d S rX   )rL   r   s      r6   r   zContext.get_keys   sA      $+S)  					r5   c                6    |                      t                    S rX   )r   r   rZ   s    r6   <lambda>zContext.<lambda>       T\\$%7%7 r5   c                6    |                      t                    S rX   )r   r   rZ   s    r6   r   zContext.<lambda>   s    4<<#3#3 r5   c                6    |                      t                    S rX   )r   r(   rZ   s    r6   r   zContext.<lambda>   r   r5   c                6    |                      t                    S rX   )r   r)   rZ   s    r6   r   zContext.<lambda>       dll5&9&9 r5   c                6    |                      t                    S rX   )r   r    rZ   s    r6   r   zContext.<lambda>   r   r5   c                6    |                      t                    S rX   )r   r&   rZ   s    r6   r   zContext.<lambda>   s    DLL$5$5 r5   c                6    |                      t                    S rX   )r   r   rZ   s    r6   r   zContext.<lambda>   r   r5   FnameidrefcoercionUnion[Defined, str]	container$Union[Collection[Any], str, Defined]indexOptional[Union[str, Defined]]rH   reverserx   prefixOptional[bool]	protectedc                   | j         dk     s|	/t          |t                    o|                    t                    }	|                     |          sd S | j         dk    r%| j                            |          }|r	|j        rd S t          |t          t          t          f          rt          |          }n(|t          urt          |g          }nt                      }t          |||||||||	|

  
        }|| j        |<   t          t          t           fD ]}||v r n	t          }|| j        ||p|||f<   |j        du r|| j        |<   d S d S )Nr@   T)rE   r~   r   endswithURI_GEN_DELIMS_accept_termrK   r   r   r   settuplery   Termr    r   r'   rM   r   rN   )rT   r   r   r   r   r   rH   r   rx   r   r   existingrt   container_keys                 r6   add_termzContext.add_term   s    <#s++N~0N0NF  && 	F<3z~~d++H H. i$U!344 	IIIe##YK((III
 
  
4 #D#. 	" 	"M	)) * "MNReX1='JK;$$(DN5!!! r5   c                   | j         }||}|t          ur|r|                    ||||f          }|r|S |t          ur"|                    ||t          |f          }|r|S |r|                    ||||f          }|r|S nS|r(|                    |t          t          |f          }|r|S n)|                    ||pt          t          |f          }|r|S |                    |t          t          |f          S rX   )rM   ry   r   r   r'   )rT   r   r   r   rH   r   lufounds           r6   	find_termzContext.find_term  s0    \H5  Y FFE8Y@AAE 5  FFE8UG<==E  	FFE8Y@AAE  	FFE5$899E  FFE8#4uc7CDDE vvueUG4555r5   curie_or_iric                    |                      |d          }|                     |          r|S d|v rdS |                     |          S )NF  )expandisblankr`   )rT   r   iris      r6   resolvezContext.resolve@  sP    kk,..<< 	J#::2$$$r5   r   c                ,    t          | j        |          S rX   )r,   rY   )rT   r   s     r6   r`   zContext.resolve_iriL  s    
C(((r5   refc                ,    |                     d          S )Nz_:)
startswith)rT   r   s     r6   r   zContext.isblankP  s    ~~d###r5   term_curie_or_iri	use_vocabc                   t          |t                    s|S |                     |          sdS |r#| j                            |          }|r|j        S |                     |          \  }}}|dk    r|S |5| j                            |          }|r|j        r|j        r
|j        |z   S n|r|r| j        r
| j        |z   S d S | 	                    |          S )Nr   _)
r~   r   r   rK   r   id_prep_expandr   rI   r`   )rT   r   r   rt   is_termpfxlocalnss           r6   r   zContext.expandS  s   +S11 	%$$  !233 	2 	:>>"344D w"//0ABBe#::$$?$$B %bi %BE %uu}$ 	 	z 6z$5554 1222r5   c                X   t          t          |                    \  }}| j                            |          }|rd                    ||f          S | j        rPt          |          | j        k    rdS |                    | j                  r|t          | j                  d          S |S )Nr7   r   )	r.   r   rN   r   joinrY   r   ra   len)rT   r   r   r   r   s        r6   
shrink_irizContext.shrink_irin  s    SXX&&Dn  $$ 		488S$K(((Z 	43xx4:%%r 011 43t/002233
r5   c                   t          |          }|                     |          }|r|j        S t          |          \  }}|| j        k    r|S | j                            |          }|rd                    ||f          S |S Nr7   )r   r   r   r.   rI   rN   r   r   )rT   r   rt   r   r   r   s         r6   	to_symbolzContext.to_symbol}  s    #hh~~c"" 	9S>>DKn  $$ 	)88S$K(((
r5   referenced_contextsSet[Any]c                   d| _         g }t          |t                    r|n|g}|pt                      }|                     ||||           |D ]3\  }}||                                  |                     |||           4d S )NT)rO   r~   r   r   _prep_sourcesrs   _read_source)rT   rA   rC   r   sources
source_urls         r6   rS   zContext.load  s     PR &fd33A&1:SUU42EFFF") 	K 	KJ~ !!&*6IJJJJ	K 	Kr5   c                    | j         dk     rdS |rBt          |          dk    r/|d         dk    r#|d                                         r	|t          v S dS )Nr@   Tr   r   r=   )rE   r   isalnum	NODE_KEYS)rT   r   s     r6   r   zContext._accept_term  sX    <#4 	3s88a<<CFcMMc!fnn6F6FM)##4r5   inputs8Union[List[Union[Dict[str, Any], str, None]], List[str]]r   <List[Tuple[Optional[str], Union[Dict[str, Any], str, None]]]Set[str]in_source_urlc                   |D ]}|}|}t          |t                    rD|}|p| j        }	|                     ||	|          }
|
@|rt          r|	J t          |	|          }|
}t          |t                    r0t          |v r'|t                   }t          |t                    r|n|g}t          |t                    r| 	                    |||||           |
                    ||f           d S rX   )r~   r   rJ   _fetch_contextr   r   r   r   r   r   append)rT   rC   r   r   r   r   rA   r   new_basesource_doc_basenew_ctxs              r6   r   zContext._prep_sources  s=      	5  	5F&JH&#&& %#
"&"7$---O-@  ? H( ? $3#>#>#>#*?J#G#G$F&$'' Nf$$#G_F'1&$'?'?MVVfXF&$'' 5""fg/BJ    
F34444A 	5  	5r5   c                    t          ||          }||v rt          |                    |           || j        v r| j        |         S t	          |          \  }}|rt
          |vrt          || j        |<   |S rX   )r   r   addrR   r-   r   r   )rT   rA   rC   r   r   source_jsonr   s          r6   r   zContext._fetch_context  s     T6**
,,,-- 	
+++,,,&z22 (
33Q 	)7+55(( +6J'r5   r   Optional[Set[str]]c                V   |                     t                    }|rt          |t                    st          |                     || j        |pt                                }t          |t                    st          |t                   }|
                    |           |}|                     t          | j                  | _        |                     t          | j                  | _        |                     t          d          }|                                D ]\  }}|t          t          t          t          hv r"|t"          k    rt          |t$                    r|| _        J|t(          k    r|| _        ]|t,          k    r|s	|s|| _        t|                     ||||           d S re   )r   r   r~   r   r   r   rC   r   r   r   updater+   rI   r*   rE   r%   rn   r$   rc   rQ   r   rH   r   
_read_term)	rT   rA   r   r   importsimportedr   r   values	            r6   r   zContext._read_source  s    **V$$ 	gs++ ,++**$7$@355 H h-- ,++(HOOF###FZZtz22
zz'4<88JJy%00	 ,,.. 	? 	?JCugvy999	!!j&=&=!!& %! &' & %DIUI>>>>	? 	?r5   dfnUnion[Dict[str, Any], str]c                ~   d }t          |t                    r|                    t                    }|                    t          |          }|                    t
          t                    }|r,|t          t
          t          fvr| 	                    ||          }|p|                    t          t                    }|t
          k    r!t          t          j                  }t          }nL|t          ur| 	                    ||          }n,d|v r| 	                    ||          }n| j        r
| j        |z   }|                    t          t                    }|                     ||||                    t           t                    |                    t"          t                    |                    t$          t                    t'          |          ||                    t(                    |
  
         nZt          |t                    r-|                     |          sd S | 	                    ||          }|                     |||           |t,          v r0| j                            |g                               |           d S | j                                        D ]}	||	v r|	                    |           d S )Nr7   )r   )r~   r   r   r&   r%   r(   ry   r   r+   _rec_expandr   r   typerI   r   r   r   r   r   rc   r#   r   r   rL   
setdefaultr   valuesremove)
rT   rA   r   r  r   r   revr   rx   vs
             r6   r  zContext._read_term  sk    c4   (	<''#,,C	955IwwtU++H >HRu,===++FH==-3772u--E}}CH e##((77((66 *
T)gggu--GMM	5))u%%e$$S		#      #s## 6((-- F((55MM$M;;;IK""5"--44T::::: ['')) # #199HHTNNN# #r5   exprprevc                   ||k    s	|t           v r|S |                     |          \  }}}|rV|                     ||          }|3|dz   | j        k    r|S | j                            |          }|r|j        }||}n3||z   }n-|                     ||          p|}d|vr| j        r
| j        |z   S |                     |||          S r   )r   r   _get_source_idrI   rK   r   r   r  )	rT   rA   r  r  r   r   nxtr   rt   s	            r6   r  zContext._rec_expandJ  s     4<<49,,K !--d33c 	(%%fc22C{9
**K:>>#..D &"g{Ci%%fc229cC#~~$*~zC''T222r5   Tuple[bool, Optional[str], str]c                    d|vrdd |fS |                     dd          \  }}|                    d          sd||fS dd |fS )Nr7   Tr   z//F)splitr   )rT   r  r   r   s       r6   r   zContext._prep_expandh  s_    d??t##ZZQ''
U%% 	%#u$$$$$r5   c                    |                     |          }|$| j                             |          }|r|j        }n/t          |t                    r|                     t
                    }|S rX   )r   rK   r   r~   r   r   )rT   rA   r   rt   r  s        r6   r  zContext._get_source_idq  s_    zz#<*..%%C vd## 	 88B<<Dr5   r   c                   i }|j         t          k    r"|                     |j                   |t          <   |j        rt          |j                  |t          <   |j        t          k    r|j        |t          <   |j	        r|j
        |t          <   n|j
        |t          <   |                                t          hk    r|t                   S |S rX   )r  ry   r   r(   r   r   r   rH   r   r   r   r&   r   keys)rT   rt   tdicts      r6   
_term_dictzContext._term_dict|  s     "9//$)44E$K> 	4#DN33E)=E!!-E$K< 	 E#JJE"I::<<B49r5   c                    d  j                                         D             }|                     fd j                                        D                         j        r j        |t          <    j        r j        |t          <   |S )z
        Returns a dictionary representation of the context that can be
        serialized to JSON.

        Returns:
            a dictionary representation of the context.
        c                    i | ]\  }}||	S r4   r4   )rj   rk   r  s      r6   rm   z#Context.to_dict.<locals>.<dictcomp>  s    777fq!Q777r5   c                F    i | ]}|j                             |          S r4   )r   r  )rj   rt   rT   s     r6   rm   z#Context.to_dict.<locals>.<dictcomp>  s)    UUUt$)T__T22UUUr5   )	rN   rn   r  rM   r  rC   r   rH   r   )rT   rs   ` r6   to_dictzContext.to_dict  s     87 4 4 6 6777	UUUUt|?R?R?T?TUUUVVV9 	 iAdG= 	$mAdGr5   )NNr@   )rA   rB   rC   rD   rE   rF   )rV   rD   )rC   rD   )T)rA   r   rQ   rc   rV   r?   )rV   rq   )rt   ru   rV   r?   )r{   r   rV   r|   )r   r   rV   r   )r   r   r   r   rV   r   )r   r   rV   r   )r   r   rV   r   )r   r   r   r   r   r   r   r   r   r   rH   r   r   rc   rx   r   r   r   r   rc   )
r   r   r   r   r   r   rH   rD   r   rc   )r   r   rV   r   )r   r   rV   r   )r   r   rV   rc   )r   r   r   rc   rV   rD   )r   r   rV   rD   )NN)rA   rB   rC   rD   r   r   )r   r   rV   rc   rX   )
rC   rD   r   r   r   r   r   r   r   rD   )rA   r   rC   rD   r   r   )rA   r   r   rD   r   r  )F)
rA   r   r   r   r  r	  r   rc   rV   rq   )rA   r   r  rD   r  rD   rV   rD   )r  r   rV   r  )rA   r   r   r   rV   rD   )rt   r   rV   r	  )rV   r   )2r1   r2   r3   rU   propertyrC   setterrg   rf   rs   rz   r   r   r   r   r   r   r   r   r   r   r   r   lang_keyid_keytype_key	value_keylist_keyrev_key	graph_keyry   r   r   r   r`   r   r   r   r   rS   r   r   r   r   r  r  r   r  r  r#  r4   r5   r6   r?   r?   I   sE        &*"#&	    0    X 
[
M 
M 
M [
M5 5 5 5 5          
@ @ @ @." " " "$ $ $ $$ $ $ $% % % %% % % %$ $ $ $# # # ## # # #          x7788HX3344Fx7788H99::Ix7788Hh5566G99::I ).:?/327!%8) 8) 8) 8) 8)z 37)."&$6 $6 $6 $6 $6L
% 
% 
% 
%) ) ) )$ $ $ $3 3 3 3 36      " #(,	K K K K K(    (,(5 (5 (5 (5 (5T   8 %)26	$? $? $? $? $?V  8# 8# 8# 8# 8#v RV3 3 3 3 3<% % % %	 	 	 	         r5   r?   r   zNid, name, type, container, index, language, reverse, context,prefix, protectedF)?__doc__
__future__r   collectionsr   typingr   r   r   r   r	   r
   r   r   r   r   urllib.parser   r   rdflib.namespacer   errorsr   r   r   r  r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   utilr,   r-   r.   r   intr0   ry   r   r   rB   r?   r   __new____defaults__r4   r5   r6   <module>r8     s   
 # " " " " " " " " " " "                        + * * * * * * *                     
                                               0 6 5 5 5 5 5 5 5 5 5B$dD#sD%QUV		 	 	 	 	c 	 	 	 	

 5tCH~sD(	)*DcNCE 
Q	 Q	 Q	 Q	 Q	 Q	 Q	 Q	h z
W 
 #E5%ueT   r5   