o
    
i                     @  s4!  U d Z ddlmZ ddlZddlZddlmZmZmZ ddlm	Z
 ddlmZmZ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Zdd	l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( dZ)dddZ*dddZ+dddZ,dddZ-dddZ.dd!d"Z/eed#ed$d%0d&d' e1d(D   ed) Z2e23d*d+  ej4d,krd-Z5nd.Z5d/e5 Z6d0e6 Z7ed1e5e7e7f ej8d2Z9e	e'd3e9ed4:  Z;d5Z<d6Z=d7e<e=f Z>ed8e?e6e7e>d9 ej@ejAB d2ZBe;e'd:eB:  ZCed;e6e7e7f ej8d2ZDeD3d<d+  ed=e6e6f ej8d2ZEeed>eE ZFeed?eE ZGeed@edA ZHedBZIeI3dCd+  dDZJedEZKeK3dFd+  edGdHeJi ZLeL3dId+  edJeIM :  ZNeN3dKd+  edJeKM :  ZOedJeLM :  ZPedLeIM :  ZQeQ3dMd+  edLeKM :  ZReR3dNd+  edLeLM :  ZSeS3dOd+  edPZTeT3dQd+  edRZUeU3dSd+  edTej8d2ZVeV3dUd+  edVej8d2ZWeW3dWd+  edXdY ZXeX3dZd+  ed[d\ ZYeY3d]d+  ed^ZZeZ3d_d+  e%d`edae'dbe2 Z[e%dcedde; e'dbe2 Z\eee[e\B Z]eFeGB Z^e^3ded+  e%dfeCe;B Z_e2e_B Z`eTeUB eVB eWB Zae%de'dgeae	e'dheH: edi: e'dje`:  B  ZbePeOB eNB ZceSeRB eQB ZdeLeKB eIB ZeeeecB edB Zfedk3dld+ edm3dnd+ B ZgeDeYB Zhe`ebB efB egB ehB eXB Zie^eiB Zje^e`B Zkedoe'dpe` Zlele'dpedqB e'dpedrB e'dpedsB Zme(dtedqe	edoe(dte` B Zne`ebB efB egB eduB ZoekeZB Zpe^ZqeIZre Zse ZtejesB ZuejetB Zved>dvB dJB Zwe`eZB e%dwdxe`eZB  B Zxe Zye%dye(dzexdXe	e(dzexed{e(dzex   dY B Zze`eZB ed|ez B edXey edY B e%d}ed~dX e'dzey dY B Z{e%de'dze{e	e'dew:  Z|e|edxe%de'dze| B Z}e%de(dze}ede(dze}  Z~e%de(dze~ed{e(dze~  ZeyeK ZyeyZevZeede  Ze ZedXeeu edY Ze3e/ edXeev edY Ze3e/ euZeede  ZeeqB e ede	eeqB e   Ze	eZepe ede	epe   Ze	eZeed[e ed\ Ze3e. eed[e ed\ Ze3e. eseeB K ZseteeB K Zteje ese B Ze3e- e(deeede	e(de  Ze%dedoe'dek d e	e d Ze%de	eee(dee	ed e	e  Zde'de d Zde'de d Zeje ete B Ze3e- e Zee(dee	ede	e  K Ze%dede'dte Ze%de(dteeede(dte  Ze ZeXeedXe!e edY B Ze%deddX e'de d e'de e	de'de  dY Zeej e%deddX e'de d e'de e	de'de  dY ejZe%deddX e'de d e'de d e'de e	de'de  dY ejZe%dede'dte ejZe%deded e'dte ejZe	ed~ZdXe'de e'de dY Ze%deddX e'de e'ddveB  dY e%dede B e%dede B e%dede B e%dede B e%dede B e%deddX e'de e'de e	ded d e'dea  dY B Zee%deddX e'de dY ejB e%deddX e'de dY ejB e%deddX e'de d e'de dY ejB e%deddX e'de dY ejB e%dedÃdX e'de^ dY ejB e%dedŃdX e'de dY ejB e%dedǃdX e'de dY ejB e%dedɃdXe'de dY eXB  ejB e%ded˃eX ejB e%ded̓dX e'de dY ejB e%dedσdX e'de dY ejB e%dedуdX e'de dY ejB e%dedӃdX e'de dY ejB e%dedՃe'de ejB eB e%ded׃dX e'de dY ejB eB e%dedكdX e'de dY ejB e%dedۃdX e'de dY ejB e%ded݃dX e'de dY ejB e%ded߃dX e'de d e'de dY ejB e%deddX e'de d e'de dY ejB e%deddX e'de d e'de dY ejB e%deddX e'de d e'de dY ejB e%deddX e'de d e'de dY ejB e%deddX e'de dY ejB e%deddX e'de dY ejB e%deddX e'de dY ejB e%deddX e'de dY ejB e%deddX e'de dY ejB e%deddX e'de dY ej¡B e%deddX e'de dY ejáB e%deddX e'de dY ejġB e%dedeX ejšB e%dedeX ejơB e%dedeX ejǡB e%deddX e'de dY ejȡB e%d eddX e'de dY ejɡB e%deddX e'de dY ejʡB e%deddX e'de dY ejˡB e%deddX e'de dY ej̡B e%ded	e'de ej͡B e%d
eddX e'de d e'de d e'de dY ejΡB e%deddX e'de d e'de dY ejϡB e%deddX e'de d e'de dY ejСB e%deddX e'de d e'de dY ejѡB e%deddX e'de dY ejҡB e%deddX e'de dY ejҡB e%deddX e'de dY ejӡB e%deddX e'de dY ejԡB e%deddX e'de dY ejաB eB eB eB ZeXdXe'de e!e(de dY B Ze%de'dbe`e ejءe`B Ze%de'dbe`e ejءZedXe edY ZeeB eB ebB efB egB e^B Ze%dd|e'de܃ ejݡe%d dJe'de܃ ejޡB e%d!dLe'de܃ ejߡB eB Ze%d"e'deee(d#dve(d$e e(d#de(d$e B  ejZe%d%e'deee(d#dJe(d$e e(d#dLe(d$e B  ejZeZe%d&e'dee	e'd#de'd$e e'd#d'e'd$e B e'd#d#e'd$e B e'd#d)e'd$e B e'd#d(e'd$e B e'd#d)e'd$e B e'd#ed*e'd$e B e'd#eeded* fd+die"d,e'd$e B  ejZeZe%d-e'deed.e(d$e  ejZe%d/e'deed0e(d$e  ejZeeK ZeeB eB Ze%d1ed2e'de Ze`ZeZedre'd3e Ze%d4ed5e'd6eeB  ZeeB e%d7dXe'de e	ed8e'd9e^  dY B e^B Ze%d:ed;ed< ee(d=e Ze	e'd>ed?Ze%d@edAe e'dbe` e	edBel  Ze%dCedDe em Ze%dEedFe em Ze%dGedHe el Ze%dIedJe en edK en Ze%dLedMe en edK en Ze%dNedOe en edK en Ze%dPedQedR e Ze%dSedTedR e Ze%dUedTedV e Ze%dWedTe Ze%dXedQe Ze%dYedZe'd6e`edre'd3e` B  Ze%d[e	ed\e'd]e` e'd^ee	e'd_e e'd_eB  ee(d`e edV e'dae ZeeB eB eB eB eB eB eB eB eB eB Ze(d9e^d ee(dbeo d Z eXdXee(d9e^ dY B d ee(dbeedXeeo edY eXB  d Ze eB Ze	e'dce%ddedee Ze Zee(dfee	ede	e  K Zede	e ed Ze%dgedhe'dte Ze%diedoe'dek e'dte Ze%djedke e'dek e'dte Ze%dledmdX e'de ed8 e'd9e^ dY Z	e%dnedee Z
eeB eB eB eB eB e	B e
B Ze%doe	e(dze%dpeee(dzee	d e	e(dze%dpe  ZeZe%dqedree(d=e Ze%dse'dteduedvB e'deۃ e'dee^B B Ze%dwedxed< ee(d=e Zedye'dzeI Zed{e'd|eI Ze%d}ee	e ee	e B Ze	e'd~ee	e'de e	e'de e	e'de Zede	e'ded~edB  ee(de%de'd9e^edXe'de ed8 e'de^ dY B dvB  Ze	edVe'dae Ze%dee e e ZeedeeB  ed K Ze%deee(de e e e Ze%dedeee(de e e e ee(deedV d e	e'dae%de(dze%dpe d e e B  Ze%dedee(de e e e Ze%dedee(d9ekdvB  ee(de e	e e e Ze Zee(de]e	e(dee	de   K Ze]eeB eB eB  Ze%deZeZe de#  e de#  ej!dej"d2Z#de$d< dddZ%dddZ&dddZ'dS (  z'
SPARQL 1.1 Parser

based on pyparsing
    )annotationsN)AnyBinaryIOList)Optional)TextIOTupleUnion)CaselessKeyword)
CombineForwardGroupLiteral	OneOrMorer   ParseResultsRegexSuppress
ZeroOrMore)decodeUnicodeEscape   )	operators)DelimitedListcombine_join_kwargsrest_of_line)Comp	CompValueParam	ParamListFliteralrdflib.Literalreturnc                 C  s   t j|  | jdS )Ndatatype)rdflibr   r"   )r    r$   P/home/ubuntu/.local/lib/python3.10/site-packages/rdflib/plugins/sparql/parser.pyneg,   s   r&   termsTuple[Any, OptionalType[str]]c                 C     t j| d | d dS )Nr   r   )langr#   r   r'   r$   r$   r%   setLanguage0      r-   c                 C  r)   )Nr   r   r!   r+   r,   r$   r$   r%   setDataType4   r.   r/   r   	List[Any]c           	      C  s  d\}}zg }t rtd|  t| }t| D ]\}}|dkr&|||g n|dkrI|d t| ksB| |d  dksB| |d  dkrCq|| net|trt|d dkr]||d	  t|dkrg||7 }|d |k r| |d  d
vr|d	 d}}||d	  n*t|tr||	 7 }n|dkr|| t|d dkr|}n
t|d dkr|}t rtt|| qt rd	dl
}t|j|dd |W S    t rd	dl}|   )z?
    Expand ; and , syntax for repeat predicates, subjects
    )NNTerms,;r   .      r   )r4   r2   r3   N)indent)DEBUGprintlen	enumerateextendappend
isinstancelistr   as_listjsondumps	traceback	print_exc)	r'   last_subjectlast_predicateresl_itrA   rC   r$   r$   r%   expandTriples8   sT   
0


rK   c              
   C  s   z+t rtd|  td| d  tdt g|  d   tt g|  d  gW S  ty? } zt r:td|  d}~ww )z5
    expand [ ?p ?o ] syntax for implicit bnodes
    zBnode terms1r   2z>>>>>>>>N)r8   r9   r#   BNoder@   rK   	Exception)r'   er$   r$   r%   expandBNodeTriplesw   s   

rQ   List[List[Any]]c                 C  s   t rtd|  g }g }| D ]/}t|tr||7 }|d }t }|r3||d tjj||tjj|g7 }q||tjj|g7 }q||tjjtjj	g7 }||7 }t rStd| |gS )z3
    expand ( 1 2 3 ) notation for collections
    zCollection: r   CollectionOut)
r8   r9   r>   r?   r#   rN   RDFrestfirstnil)r'   rG   otherxbr$   r$   r%   expandCollection   s"   

"
r\   <z[^<>"{}|^`\\%s]* c                 c  s    | ]}d | V  qdS )z\x%02XNr$   ).0rI   r$   r$   r%   	<genexpr>   s    r`   !   >c                 C  s   t | d S Nr   )r#   URIRefrZ   r$   r$   r%   <lambda>   s    rf   i  uJ   A-Za-zÀ-ÖØ-öø-˿Ͱ-ͽͿ-῿‌-‍⁰-↏Ⰰ-⿯、-퟿豈-﷏ﷰ-�uS   A-Za-zÀ-ÖØ-öø-˿Ͱ-ͽͿ-῿‌-‍⁰-↏Ⰰ-⿯、-퟿豈-﷏ﷰ-�𐀀-󯿿_u   \-0-9·̀-ͯ‿-⁀z[%s](?:[%s\.]*[%s])?)flagsprefix:z\\[_~\.\-!$&"'()*+,;=/?#@%]z%[0-9a-fA-F]{2}z(%s|%s)z([%(PN_CHARS_U)s:0-9]|%(PLX)s)
                     (([%(PN_CHARS)s\.:]|%(PLX)s)*
                      ([%(PN_CHARS)s:]|%(PLX)s) )?)
PN_CHARS_UPN_CHARSPLX	localnamez_:[0-9%s](?:[\.%s]*[%s])?c                 C  s   t | d dd  S )Nr   r6   r#   rN   re   r$   r$   r%   rf          u   [%s0-9][%s0-9·̀-ͯ‿-⁀]*?$@z[a-zA-Z]+(?:-[a-zA-Z0-9]+)*z[0-9]+c                 C     t j| d t jjdS Nr   r!   r#   r   XSDintegerre   r$   r$   r%   rf     rp   z[eE][+-]?[0-9]+z[0-9]*\.[0-9]+c                 C  rt   ru   )r#   r   rw   decimalre   r$   r$   r%   rf     rp   z/[0-9]+\.[0-9]*%(e)s|\.([0-9])+%(e)s|[0-9]+%(e)srP   c                 C  rt   ru   )r#   r   rw   doublere   r$   r$   r%   rf     rp   +c                 C  s   t jd| d  t jjdS )Nr{   r   r!   rv   re   r$   r$   r%   rf   #      -c                 C     t | d S rc   r&   re   r$   r$   r%   rf   .      c                 C  r~   rc   r   re   r$   r$   r%   rf   2  r   c                 C  r~   rc   r   re   r$   r$   r%   rf   6  r   z)'''((?:'|'')?(?:[^'\\]|\\['ntbrf\\]))*'''c                 C     t t| d dd S Nr   r5   rS   r#   r   r   re   r$   r$   r%   rf   A  r|   z+"""(?:(?:"|"")?(?:[^"\\]|\\["ntbrf\\]))*"""c                 C  r   r   r   re   r$   r$   r%   rf   I  r|   z#'(?:[^'\n\r\\]|\\['ntbrf\\])*'(?!')c                 C  r   Nr   r   r   re   r$   r$   r%   rf   R  r|   z#"(?:[^"\n\r\\]|\\["ntbrf\\])*"(?!")c                 C  r   r   r   re   r$   r$   r%   rf   [  r|   ()c                 C     t jjS N)r#   rU   rX   re   r$   r$   r%   rf   `      []c                 C  s   t  S r   ro   re   r$   r$   r%   rf   g  r   ac                 C  r   r   )r#   rU   typere   r$   r$   r%   rf   k  r   BaseBASEiri
PrefixDeclPREFIXc                 C  s   t j| d S rc   )r#   termVariablere   r$   r$   r%   rf   {  s    pnamestringr*   z^^r"   truec                   C  
   t dS )NTr+   r$   r$   r$   r%   rf        
 falsec                   C  r   )NFr+   r$   r$   r$   r%   rf     r   GRAPHgraphiriDEFAULTNAMEDALLgraphUNDEF*InversePath^PathNegatedPropertySetpart|!DistinctPathDISTINCTPathEltmodPathEltOrInversePathSequence/PathAlternativer2   r3   triplesr4   QuadsNotTriplesr   {}QuadsquadsNotTriplesquadsMinusGraphPatternMINUSGroupOrUnionGraphPatternUNIONBuiltin_REGEXREGEXtextpatternrh   Builtin_SUBSTRSUBSTRargstartlengthBuiltin_REPLACEREPLACEreplacementBuiltin_EXISTSEXISTSBuiltin_NOTEXISTSNOTdistinctvarsAggregate_CountCOUNTAggregate_SumSUMAggregate_MinMINAggregate_MaxMAXAggregate_AvgAVGAggregate_SampleSAMPLEAggregate_GroupConcatGROUP_CONCAT	SEPARATOR=	separatorBuiltin_STRSTRBuiltin_LANGLANGBuiltin_LANGMATCHESLANGMATCHESarg1arg2Builtin_DATATYPEDATATYPEBuiltin_BOUNDBOUNDBuiltin_IRIIRIBuiltin_URIURIBuiltin_BNODEBNODEBuiltin_RANDRANDBuiltin_ABSABSBuiltin_CEILCEILBuiltin_FLOORFLOORBuiltin_ROUNDROUNDBuiltin_CONCATCONCATBuiltin_STRLENSTRLENBuiltin_UCASEUCASEBuiltin_LCASELCASEBuiltin_ENCODE_FOR_URIENCODE_FOR_URIBuiltin_CONTAINSCONTAINSBuiltin_STRSTARTS	STRSTARTSBuiltin_STRENDSSTRENDSBuiltin_STRBEFORE	STRBEFOREBuiltin_STRAFTERSTRAFTERBuiltin_YEARYEARBuiltin_MONTHMONTHBuiltin_DAYDAYBuiltin_HOURSHOURSBuiltin_MINUTESMINUTESBuiltin_SECONDSSECONDSBuiltin_TIMEZONETIMEZONE
Builtin_TZTZBuiltin_NOWNOWBuiltin_UUIDUUIDBuiltin_STRUUIDSTRUUIDBuiltin_MD5MD5Builtin_SHA1SHA1Builtin_SHA256SHA256Builtin_SHA384SHA384Builtin_SHA512SHA512Builtin_COALESCECOALESCE
Builtin_IFIFarg3Builtin_STRLANGSTRLANGBuiltin_STRDTSTRDTBuiltin_sameTermsameTermBuiltin_isIRIisIRIBuiltin_isURIisURIBuiltin_isBLANKisBLANKBuiltin_isLITERAL	isLITERALBuiltin_isNUMERIC	isNUMERICexprFunctionUnaryNot	UnaryPlus
UnaryMinusMultiplicativeExpressionoprY   AdditiveExpressionRelationalExpressionz!=z<=z>=INadjacent ConditionalAndExpressionz&&ConditionalOrExpressionz||FilterFILTERnamedDatasetClauseFROMdefaultGroupAsASvarGroupClauseGROUPBY	conditionsilentSILENTLoadLOADINTOClearCLEARDropDROPCreateCREATEAddADDTOMoveMOVECopyCOPY
InsertDataINSERTDATA
DeleteDataDELETEDeleteWhereWHEREDeleteClauseInsertClauseUsingClauseUSINGModifyWITH
withClausedeleteinsertusingwherevaluevaluesClauseValuesClauseVALUEStemplateOptionalGraphPatternOPTIONALGraphGraphPatternServiceGraphPatternSERVICEBindBIND
InlineDataGroupGraphPatternSubTriplesBlockHavingClauseHAVINGOrderConditionorderASCDESCOrderClauseORDERLIMITlimitOFFSEToffsetLimitOffsetClausesgroupbyhavingorderbylimitoffsetSELECTmodifierREDUCED
projectionevar	SubSelectSelectQuerydatasetClauseConstructQuery	CONSTRUCTFakeGroupGraphPattenAskQueryASKDescribeQueryDESCRIBEprologuerequestUpdate#z \\u([0-9a-f]{4}(?:[0-9a-f]{4})?)z
re.PatternexpandUnicodeEscapes_reqstrc                 C  s   ddd}t || S )	a0  
    The syntax of the SPARQL Query Language is expressed over code points in Unicode [UNICODE]. The encoding is always UTF-8 [RFC3629].
    Unicode code points may also be expressed using an \ uXXXX (U+0 to U+FFFF) or \ UXXXXXXXX syntax (for U+10000 onwards) where X is a hexadecimal digit [0-9A-F]
    mre.Matchr    r  c              
   S  sH   zt t| ddW S  ttfy# } z
td| d |d }~ww )Nr      zInvalid unicode code point: )chrintgroup
ValueErrorOverflowError)r  rP   r$   r$   r%   expand  s   z$expandUnicodeEscapes.<locals>.expandN)r  r  r    r  )r  sub)r  r  r$   r$   r%   expandUnicodeEscapes  s   
r  #Union[str, bytes, TextIO, BinaryIO]c                 C  s<   t | dr	|  } t| tr| d} t| } tj| ddS )Nreadutf-8T	parse_all)hasattrr  r>   bytesdecoder  Queryparse_stringr  r$   r$   r%   
parseQuery  s   


r  r   c                 C  s@   t | dr	|  } t| tr| d} t| } tj| ddd S )Nr  r  Tr  r   )r  r  r>   r  r  r  
UpdateUnitr  r  r$   r$   r%   parseUpdate  s   


r  )r   r   r    r   )r'   r(   r    r   )r'   r   r    r0   )r'   r   r    rR   )r  r  r    r  )r  r  r    r   )r  r  r    r   ((  __doc__
__future__r   resystypingr   r   r   r   OptionalTyper   r   r	   	pyparsingr
   Keywordr   r   r   r   r   r   r   r   r   r#   rdflib.compatr   r^   r   rK  pyparsing_compatr   r   r   parserutilsr   r   r   r   r8   r&   r-   r/   rK   rQ   r\   joinrangeIRIREFset_parse_action
maxunicodePN_CHARS_BASE_rePN_CHARS_U_rePN_CHARS_reU	PN_PREFIXleave_whitespacePNAME_NSPN_LOCAL_ESC_re
PERCENT_rePLX_redictXUNICODEPN_LOCALPNAME_LNBLANK_NODE_LABELVARNAMEVAR1VAR2LANGTAGINTEGEREXPONENT_reDECIMALDOUBLEcopyINTEGER_POSITIVEDECIMAL_POSITIVEDOUBLE_POSITIVEINTEGER_NEGATIVEDECIMAL_NEGATIVEDOUBLE_NEGATIVESTRING_LITERAL_LONG1STRING_LITERAL_LONG2STRING_LITERAL1STRING_LITERAL2NILANONABaseDeclr   PrologueVarPrefixedNamer   String
RDFLiteralNumericLiteralPositiveNumericLiteralNegativeNumericLiteralUnsignedNumericLiteralBooleanLiteral	BlankNode	GraphTerm	VarOrTermVarOrIriGraphRefGraphRefAllGraphOrDefaultDataBlockValueVerb
VerbSimpleIntegerTriplesNodeTriplesNodePath	GraphNodeGraphNodePathPathModPathOneInPropertySetPathr   PathPrimaryr   r   r   r   VerbPath
ObjectPathObjectListPathGroupGraphPattern
CollectionCollectionPathObject
ObjectListPropertyListPathNotEmptyPropertyListPathPropertyListNotEmptyPropertyListBlankNodePropertyListBlankNodePropertyListPathTriplesSameSubjectTriplesTemplater   r   QuadPatternQuadDataTriplesSameSubjectPathr  r   r   
ExpressionExpressionListRegexExpression	setEvalFnr   r   SubstringExpressionr   StrReplaceExpressionr   
ExistsFuncNotExistsFunc	_Distinct_AggregateParams	Aggregater   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  r  r  r  r  r   r"  r$  r&  r(  r*  r,  r.  r0  r2  r5  r7  r9  r;  r?  rA  rC  BuiltInCallArgListrF  iriOrFunctionFunctionCallBrackettedExpressionPrimaryExpressionrG  rH  rI  UnaryExpressionrJ  rL  NumericExpressionrM  ValueLogicalrQ  rR  
ConstraintrS  SourceSelectorDefaultGraphClauseNamedGraphClauserV  GroupConditionr\  _Silentrb  re  rg  ri  rk  rn  rp  rr  ru  rw  ry  rz  r{  r}  Update1InlineDataOneVarInlineDataFull	DataBlockr  ConstructTriplesConstructTemplater  r  r  r  r  GraphPatternNotTriplesr  HavingConditionr  r  r  LimitClauseOffsetClauser  SolutionModifierSelectClauseWhereClauser  r  r  r  r  r  r  r  	QueryUnitignorecompileIr  __annotations__r  r  r  r$   r$   r$   r%   <module>   s	   0?



	


	







	 

 
		
R  #&),/0347:>GPYbknqtwz}           
          

  $  -  6  ?  B  E  H  K  N  O  P  V





 

		"""   (

	
"
	







 

	

