
    01iHZ                       S r SSKJr  SSKJr  SSKJrJrJrJ	r	J
r
JrJrJrJrJr  SSKJrJr  SSKJr  SSKJrJrJr  SS	KJrJrJrJrJrJrJ r J!r!J"r"J#r#J$r$J%r%J&r&J'r'J(r(J)r)J*r*J+r+J,r,J-r-J.r.J/r/  SS
K0J1r1J2r2J3r3  \\\ \"\$\%\&\*\+\,\-\#1r4 " S S\55      r6\6" S5      r7Sr8\\\\	\9\4   \9S4      \	\9\4   \9S4   r: " S S5      r;\" SS5      r<\7\7\7\7S\7SS4\<Rz                  l>        g)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                      \ rS rSrSrg)Defined;    N)__name__
__module____qualname____firstlineno____static_attributes__r2       ^/home/james-whalen/.local/lib/python3.13/site-packages/rdflib/plugins/shared/jsonld/context.pyr0   r0   ;   s    r8   r0   ):/?#[]@Nc                     \ rS rSr   S2     S3S jjr\S4S j5       r\R                  S5S j5       rS6S7S jjrS7S jr	S8S jr
S9S	 jrS:S
 jrS;S jrS;S jrS;S jrS;S jrS;S jrS;S jrS;S jrS;S jrS<S jrS=S jrS>S jr\" S 5      r\" S 5      r\" S 5      r\" S 5      r\" S 5      r\" S 5      r\" S 5      r\\S\S\SS4                   S?S jjr S\SS4         S@S jjr!SAS  jr"SBS! jr#SCS" jr$S6SDS# jjr%SBS$ jr&SES% jr'  SF     SGS& jjr(SHS' jr) SI         SJS( jjr*      SKS) jr+  SF     SLS* jjr, SM         SNS+ jjr- SI       SOS, jjr.SPS- jr/SQS. jr0SRS/ jr1SSS0 jr2S1r3g)TContextI   Nc                    U=(       d    SU l         S U l        S U l        U   X l        X l        0 U l        0 U l        0 U l        0 U l        SU l	        S U l
        SU l        0 U l        U(       a  U R                  U5        g g )N皙?FT)versionlanguagevocabbasedoc_baseterms_alias_lookup	_prefixesactiveparent	propagate_context_cacheload)selfsourcerI   rF   s       r9   __init__Context.__init__J   sw     &n$(
	%'
,.OQ)+)-.0IIf r8   c                    U R                   $ N)_baserT   s    r9   rI   Context.baseb   s    zzr8   c                    U(       a  UR                  S5      nUS:  a  USU n[        U S5      (       a  Ub  U R                  U5      OUU l        U(       a  S[	        U5      SS -  U l        g S U l        g )Nr=   r   rZ   z%s://%s   )findhasattrresolve_irirZ   r   _basedomain)rT   rI   
hash_indexs      r9   rI   r\   f   sw    3JBAj) g&&4+; T" 	

 ?C9x~a'::r8   c                ^    U R                   SL a  U R                  OU nUR                  X5      $ NF)rQ   rP   _subcontext)rT   rU   rQ   rP   s       r9   
subcontextContext.subcontexts   s)     $% 7T!!&44r8   c                D   [        U R                  S9nX#l        Xl        U R                  Ul        U R
                  Ul        U R                  Ul        U R                  Ul        U R                  R                  5        VVs0 s H
  u  pEXES S  _M     snnUl        U R                  R                  5       Ul
        U R                  R                  5       Ul        U R                  R                  5       Ul        U R                  Ul        UR                  U5        U$ s  snnf )N)rF   )rB   rF   rQ   rP   rG   rH   rI   rJ   rL   itemsrK   copyrM   rN   rR   rS   )rT   rU   rQ   ctxkls         r9   rg   Context._subcontexty   s    dll+!
}}JJ	99}}*.++*;*;*=>*=$!a1g*=>
JJOO%	ll'')++-!00
 ?s   Dc                t    S U l         S U l        0 U l        0 U l        0 U l        0 U l        SU l        SU l        g )NFT)rG   rH   rK   rL   rM   rN   rO   rQ   r[   s    r9   _clearContext._clear   s:    

r8   c                n    U(       a-  UR                   [        La  U R                  UR                   SS9$ U $ )NTrQ   )contextUNDEFrg   )rT   terms     r9   get_context_for_termContext.get_context_for_term   s/    DLL-##DLLD#AAr8   c                   U R                   S:  a  [        U[        5      (       a  U R                  U5      OS n[        U[        5      (       d  U(       a  U/O/ nS nU H$  n U R
                  R                  U5      nUc  M$    O   U(       a4  UR                  (       a#  U R                  UR                  SS9nU(       a  U$ U R                  SL a  U R                  $ U $ ! [         a     Nmf = f)NrE   Fru   )rF   
isinstancedictget_typelistrK   get	TypeErrorrv   rh   rQ   rP   )rT   nodertypetypetermrtrh   s         r9   get_context_for_typeContext.get_context_for_type   s    <<3+5dD+A+ADMM$'tEeT**#(bH#zz~~b1H '  H,,!__X-=-=_O
%%"nn5t{{?4? ! s   "C
C+*C+c                .    U R                  U[        5      $ rY   )_getr   rT   objs     r9   get_idContext.get_id   s    yyb!!r8   c                .    U R                  U[        5      $ rY   )r   r(   r   s     r9   r~   Context.get_type       yyd##r8   c                .    U R                  U[        5      $ rY   )r   r   r   s     r9   get_languageContext.get_language   r   r8   c                .    U R                  U[        5      $ rY   )r   r)   r   s     r9   	get_valueContext.get_value       yye$$r8   c                .    U R                  U[        5      $ rY   )r   r   r   s     r9   	get_graphContext.get_graph   r   r8   c                .    U R                  U[        5      $ rY   )r   r    r   s     r9   get_listContext.get_list   r   r8   c                .    U R                  U[        5      $ rY   )r   r'   r   s     r9   get_setContext.get_set       yyc""r8   c                .    U R                  U[        5      $ rY   )r   r&   r   s     r9   get_revContext.get_rev   r   r8   c                    U R                   R                  U/ 5       H  nX1;   d  M
  UR                  U5      s  $    UR                  U5      $ rY   )rL   r   )rT   r   keyaliass       r9   r   Context._get   s>    [[__S"-E|wwu~% . wws|r8   c                8    U R                  U5       H  nUs  $    g rY   )get_keysrT   r   r   s      r9   get_keyContext.get_key   s    ]]3'EL (r8   c              #  f   #    XR                   ;   a  U R                   U    H  nUv   M	     Uv   g 7frY   )rL   r   s      r9   r   Context.get_keys   s,     ++S) *	s   /1c                ,    U R                  [        5      $ rY   )r   r   r[   s    r9   <lambda>Context.<lambda>       T\\$%7r8   c                ,    U R                  [        5      $ rY   )r   r   r[   s    r9   r   r      s    4<<#3r8   c                ,    U R                  [        5      $ rY   )r   r(   r[   s    r9   r   r      r   r8   c                ,    U R                  [        5      $ rY   )r   r)   r[   s    r9   r   r          dll5&9r8   c                ,    U R                  [        5      $ rY   )r   r    r[   s    r9   r   r      r   r8   c                ,    U R                  [        5      $ rY   )r   r&   r[   s    r9   r   r      s    DLL$5r8   c                ,    U R                  [        5      $ rY   )r   r   r[   s    r9   r   r      r   r8   Fc                   U R                   S:  d  U	c,  [        U[        5      =(       a    UR                  [        5      n	U R                  U5      (       d  g U R                   S:  a4  U R                  R                  U5      nU(       a  UR                  (       a  g [        U[        [        [        45      (       a  [        U5      nO U[        La  [        U/5      nO
[        5       n[        UUUUUUUUU	U
5
      nXR                  U'   [        [        [         4 H
  nX;   d  M
    O   [        nXR"                  X#=(       d    UX4'   UR$                  SL a  XR&                  U'   g g )NrE   T)rF   r|   strendswithURI_GEN_DELIMS_accept_termrK   r   	protectedr   settuplerw   Termr    r   r'   rM   prefixrN   )rT   nameidrefcoercion	containerindexrG   reverserv   r   r   existingrx   container_keys                 r9   add_termContext.add_term   s2    <<#s+N~0NF  &&<<3zz~~d+HH..i$U!344IIe#YK(II
  

4 #D#.M) / "MNRe1=JK;;$$(NN5! r8   c                
   U R                   nUc  UnU[        La#  U(       a  UR                  XX545      nU(       a  U$ U[        La!  UR                  X[        U45      nU(       a  U$ U(       a  UR                  XX545      nU(       a  U$ O\U(       a'  UR                  U[        [        U45      nU(       a  U$ O.UR                  X=(       d    [        [        U45      nU(       a  U$ UR                  U[        [        U45      $ rY   )rM   rw   r   r   r'   )rT   r   r   r   rG   r   lufounds           r9   	find_termContext.find_term  s     \\H5 YFFEY@AE5 FFEUG<=EFFEY@AE FFE5$89E  FFE#4uc7CDEvvueUG455r8   c                    U R                  US5      nU R                  U5      (       a  U$ SU;   a  gU R                  U5      $ )NF  )expandisblankrb   )rT   curie_or_iriiris      r9   resolveContext.resolve@  sA    kk,.<<J#:$$r8   c                .    [        U R                  U5      $ rY   )r,   rZ   )rT   r   s     r9   rb   Context.resolve_iriL  s    

C((r8   c                $    UR                  S5      $ )Nz_:)
startswith)rT   refs     r9   r   Context.isblankP  s    ~~d##r8   c                .   [        U[        5      (       d  U$ U R                  U5      (       d  gU(       a.  U R                  R	                  U5      nU(       a  UR
                  $ U R                  U5      u  pEnUS:X  a  U$ UbT  U R                  R	                  U5      nU(       a1  UR                  (       a   UR
                  (       a  UR
                  U-   $ O/U(       a(  U(       a!  U R                  (       a  U R                  U-   $ g U R                  U5      $ )Nr   _)
r|   r   r   rK   r   id_prep_expandr   rH   rb   )rT   term_curie_or_iri	use_vocabrx   is_termpfxlocalnss           r9   r   Context.expandS  s    +S11$$  !233::>>"34Dww"//0ABe#:$$?$BbiiBEEuuu}$zzzz$555 122r8   c                `   [        [        U5      5      u  p#U R                  R                  U5      nU(       a  SR	                  XC45      $ U R
                  (       aR  [        U5      U R
                  :X  a  gUR                  U R                  5      (       a  U[        U R                  5      S  $ U$ )Nr:   r   )	r.   r   rN   r   joinrZ   r   rc   len)rT   r   r   r   r   s        r9   
shrink_iriContext.shrink_irin  s    SX&nn  $88SK((ZZ3x4::% 0 0113t//0233
r8   c                   [        U5      nU R                  U5      nU(       a  UR                  $ [        U5      u  p4X0R                  :X  a  U$ U R
                  R                  U5      nU(       a  SR                  XT45      $ U$ Nr:   )r   r   r   r.   rH   rN   r   r   )rT   r   rx   r   r   r   s         r9   	to_symbolContext.to_symbol}  sm    #h~~c"99S>Knn  $88SK((
r8   c                    SU l         / n[        U[        5      (       a  UOU/nU=(       d
    [        5       nU R	                  X!XC5        U H,  u  pQUc  U R                  5         M  U R                  XU5        M.     g )NT)rO   r|   r   r   _prep_sourcesrr   _read_source)rT   rU   rI   referenced_contextssources
source_urls         r9   rS   Context.load  sr     PR &fd33&1:SU4F")J~ !!&6IJ #*r8   c                    U R                   S:  a  gU(       a9  [        U5      S:  a*  US   S:X  a!  US   R                  5       (       a	  U[        ;   $ g)NrE   Tr   r   r@   )rF   r   isalnum	NODE_KEYS)rT   r   s     r9   r   Context._accept_term  sF    <<#3s8a<CFcMc!fnn6F6F)##r8   c                   U H  nUnUn[        U[        5      (       aR  UnU=(       d    U R                  n	U R                  XiU5      n
U
c  MJ  U(       a  [        (       a  U	c   e[        X5      nU
n[        U[        5      (       a-  [        U;   a#  U[           n[        U[        5      (       a  UOU/n[        U[        5      (       a  U R                  XX4U5        M  UR                  Xv45        M     g rY   )r|   r   rJ   _fetch_contextr   r   r}   r   r   r   append)rT   rI   inputsr   r   in_source_urlrU   r   new_basesource_doc_basenew_ctxs              r9   r   Context._prep_sources  s     F&JH&#&&#
"&"7$-----@ ?(= $3#>>#>#*?#G$F&$''f$#G_F'1&$'?'?VfXF&$''""gJ 
34A r8   c                    [        X!5      nXC;   a  [        eUR                  U5        X@R                  ;   a  U R                  U   $ [	        U5      u  pVU(       a  [
        U;  a  [        eXPR                  U'   U$ rY   )r   r   addrR   r-   r   r   )rT   rU   rI   r   r   source_jsonr   s          r9   r  Context._fetch_context  s{     T*
,-- 	
+,,,&&z22 (
37+5(( +6J'r8   c                B   UR                  [        5      nU(       a  [        U[        5      (       d  [        eU R                  X@R                  U=(       d
    [        5       5      n[        U[        5      (       d  [        eU[           nUR                  U5        UnUR                  [        U R                  5      U l        UR                  [        U R                  5      U l        UR                  [        S5      nUR!                  5        H  u  pxU[        [        [        [        1;   a  M!  U["        :X  a  [        U[$        5      (       a  Xl        MH  U[(        :X  a  Xl        MZ  U[,        :X  a  U(       d  U(       d  Xl        Mz  M|  M~  U R/                  XX5        M     g rf   )r   r   r|   r   r   r  rI   r   r}   r   updater+   rH   r*   rF   r%   rk   r$   boolrQ   r   rG   r   
_read_term)	rT   rU   r   r   importsimportedr   r   values	            r9   r   Context._read_source  s(    **V$gs++++**$7$@35H h--++(HOOF#FZZtzz2
zz'4<<8JJy%0	 ,,.JCugvy99	!j&=&=!& %!' %I +2z U> )r8   c                   S n[        U[        5      (       Ga  UR                  [        5      nUR                  [        U5      nUR                  [
        [        5      nU(       a&  U[        [
        [        4;  a  U R                  X5      nU=(       d    UR                  [        [        5      nU[
        :X  a   [        [        R                  5      n[        nOSU[        La  U R                  X5      nO8SU;   a  U R                  X5      nO U R                  (       a  U R                  U-   nUR                  [        [        5      nU R                  UUUUR                  [         [        5      UR                  ["        [        5      UR                  [$        [        5      ['        U5      UUR                  [(        5      US9
  OM[        U[        5      (       a(  U R+                  U5      (       d  g U R                  X5      nU R                  X%US9  U[,        ;   a,  U R.                  R1                  U/ 5      R3                  U5        g U R.                  R5                  5        H  n	X);   d  M
  U	R7                  U5        M     g )Nr:   )r   )r|   r}   r   r&   r%   r(   rw   r   r+   _rec_expandr   r   typerH   r   r   r   r   r   r  r#   r   r   rL   
setdefaultr  valuesremove)
rT   rU   r   dfnr   r   revr   rv   vs
             r9   r  Context._read_term  s    c4  ''#,C	95IwwtU+HHRu,==++F=-3772u-E}CHH e#((7((6

T)gggu-GMM	5)u%e$S	#   #s##((--((5MM$M;IKK""5"-44T: [['')9HHTN *r8   c                   X#:X  d
  U[         ;   a  U$ U R                  U5      u  pEnU(       ab  U R                  X5      nUcC  US-   U R                  :X  a  U$ U R                  R                  U5      nU(       a  UR                  nUc  UnOEXv-   nO@U R                  X5      =(       d    UnSU;  a   U R                  (       a  U R                  U-   $ U R                  XU5      $ r   )r   r   _get_source_idrH   rK   r   r   r  )	rT   rU   exprprevr   r   nxtr   rx   s	            r9   r  Context._rec_expandJ  s     <49,K !--d3c%%f2C{9

*K::>>#.D"gg{i%%f29cC#~$**zzC''T22r8   c                ~    SU;  a  SS U4$ UR                  SS5      u  p#UR                  S5      (       d  SX#4$ SS U4$ )Nr:   Tr   z//F)splitr   )rT   r#  r   r   s       r9   r   Context._prep_expandh  sQ    d?t##ZZQ'
%%#$$$$$r8   c                    UR                  U5      nUc0  U R                  R                  U5      nU(       a  UR                  nU$ [        U[        5      (       a  UR                  [
        5      nU$ rY   )r   rK   r   r|   r}   r   )rT   rU   r   rx   r  s        r9   r"  Context._get_source_idq  sZ    zz#<**..%Cvv  d##88B<Dr8   c                   0 nUR                   [        :w  a"  U R                  UR                   5      U[        '   UR                  (       a  [        UR                  5      U[        '   UR                  [        :w  a  UR                  U[        '   UR                  (       a  UR                  U[        '   OUR                  U[        '   UR                  5       [        1:X  a	  U[           $ U$ rY   )r  rw   r   r(   r   r   r   rG   r   r   r   r&   r   keys)rT   rx   tdicts      r9   
_term_dictContext._term_dict|  s     "99//$))4E$K>>#DNN3E)==E!--E$K<<E#JE"I::<B49r8   c           	        U R                   R                  5        VVs0 s H  u  pX!_M	     nnnUR                  U R                  R	                  5        Vs0 s H  oDR
                  U R                  U5      _M      sn5        U R                  (       a  U R                  U[        '   U R                  (       a  U R                  U[        '   U$ s  snnf s  snf )z
Returns a dictionary representation of the context that can be
serialized to JSON.

Returns:
    a dictionary representation of the context.
)rN   rk   r  rM   r  r   r/  rI   r   rG   r   )rT   rn   r  rrx   s        r9   to_dictContext.to_dict  s     !% 4 4 67 6fqQT 67	t||?R?R?TU?Tt))T__T22?TUV99iiAdG==mmAdG 8Us   C%C)rL   rZ   rc   rR   rM   rN   rO   rI   rJ   rG   rP   rQ   rK   rF   rH   )NNrE   )rU   _ContextSourceTyperI   Optional[str]rF   zOptional[float])returnr6  )rI   r6  )T)rU   r   rQ   r  r7  rB   )r7  None)rx   zOptional[Term]r7  rB   )r   r   r7  zOptional[Context])r   Dict[str, Any]r7  r   )r   r9  r   r   r7  r   )r   r   r7  r   )r   r   r7  zGenerator[str, None, None])r   r   r   r   r   Union[Defined, str]r   z$Union[Collection[Any], str, Defined]r   Optional[Union[str, Defined]]rG   r;  r   r  rv   r   r   zOptional[bool]r   r  )
r   r   r   r;  r   r:  rG   r6  r   r  )r   r   r7  r   )r   r   r7  r   )r   r   r7  r  )r   r   r   r  r7  r6  )r   r   r7  r6  )NN)rU   r5  rI   r6  r   zSet[Any])r   r   r7  r  rY   )
rI   r6  r  z8Union[List[Union[Dict[str, Any], str, None]], List[str]]r   z<List[Tuple[Optional[str], Union[Dict[str, Any], str, None]]]r   Set[str]r  r6  )rU   r   rI   r6  r   r<  )rU   r9  r   r6  r   zOptional[Set[str]])F)
rU   r9  r   r   r  Union[Dict[str, Any], str]r   r  r7  r8  )rU   r9  r#  r6  r$  r6  r7  r6  )r#  r   r7  zTuple[bool, Optional[str], str])rU   r9  r   r   r7  r6  )rx   r   r7  r=  )r7  r9  )4r3   r4   r5   r6   rV   propertyrI   setterrh   rg   rr   ry   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_keyrw   r   r   r   rb   r   r   r   r   rS   r   r   r  r   r  r  r   r"  r/  r3  r7   r2   r8   r9   rB   rB   I   s    &*"#&	"  !	0   
[[
M 
M5 
@."$$%%$## 78H34F78H9:I78H56G9:I ).:?/327!%8)8) 8) &	8)
 88) -8) 08) 8) 8) 8) 8)z 37)."&$6$6 0$6 '	$6
  $6 $6L
%)$36" #(,	K"K K &	K( (,(5(5 I(5 N	(5
 &(5 %(5T!.EM8 %)26	$?$? "$? 0	$?V  8#8# 8# (	8#
 8# 
8#v RV3$3,93AN3	3<%	 r8   rB   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   rw   r   r   r5  rB   r   __new____defaults__r2   r8   r9   <module>rR     s  
 # "   +   
     0 6 5B$dD#sD%QUV		c 	 	
 5tCH~sD(	)*DcNCE 
Q	 Q	h 
W
 #E5%ueT r8   