o
    i                     @  s!  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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%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$.d%d& e/d'D   ed( Z0e01d)d*  ej2d+krd,Z3nd-Z3d.e3 Z4d/e4 Z5ed0e3e5e5f ej6d1Z7e	e%d2e7ed38  Z9d4Z:d5Z;d6e:e;f Z<ed7e=e4e5e<d8 ej>ej?B d1Z@e9e%d9e@8  ZAed:e4e5e5f ej6d1ZBeB1d;d*  ed<e4e4f ej6d1ZCeed=eC ZDeed>eC ZEeed?ed@ ZFedAZGeG1dBd*  dCZHedDZIeI1dEd*  edFdGeHi ZJeJ1dHd*  edIeGK 8  ZLeL1dJd*  edIeIK 8  ZMedIeJK 8  ZNedKeGK 8  ZOeO1dLd*  edKeIK 8  ZPeP1dMd*  edKeJK 8  ZQeQ1dNd*  edOZReR1dPd*  edQZSeS1dRd*  edSej6d1ZTeT1dTd*  edUej6d1ZUeU1dVd*  edWdX ZVeV1dYd*  edZd[ ZWeW1d\d*  ed]ZXeX1d^d*  e#d_ed`e%dae0 ZYe#dbedce9 e%dae0 ZZeeeYeZB Z[eDeEB Z\e\1ddd*  e#deeAe9B Z]e0e]B Z^eReSB eTB eUB Z_e#de%dfe_e	e%dgeF8 edh8 e%die^8  B  Z`eNeMB eLB ZaeQePB eOB ZbeJeIB eGB ZceceaB ebB Zdedj1dkd* edl1dmd* B ZeeBeWB Zfe^e`B edB eeB efB eVB Zge\egB Zhe\e^B Ziedne%doe^ Zjeje%doedpB e%doedqB e%doedrB Zke&dsedpe	edne&dse^ B Zle^e`B edB eeB edtB ZmeieXB Zne\ZoeGZpe Zqe ZreheqB ZseherB Zted=duB dIB Zue^eXB e#dvdwe^eXB  B Zve Zwe#dxe&dyevdWe	e&dyevedze&dyev   dX B Zxe^eXB ed{ex B edWew edX B e#d|ed}dW e%dyew dX B Zye#d~e%dyeye	e%deu8  Zzezedwe#de%dyez B Z{e#de&dye{ede&dye{  Z|e#de&dye|edze&dye|  Z}ewe}K ZwewZ~etZeede  Ze ZedWees edX Ze1e- edWeet edX Ze1e- esZeede  Ze~eoB e ede	e~eoB e   Ze	eZene ede	ene   Ze	eZeedZe ed[ Ze1e, eedZe ed[ Ze1e, eqeeB K ZqereeB K Zrehe eqe B Ze1e+ e&deeede	e&de  Ze#dedne%dei d e	e d Ze#de	eee&dee	ed e	e  Zde%de d Zde%de d Zehe ere B Ze1e+ e Zee&dee	ede	e  K Ze#dede%dse Ze#de&dseeede&dse  Ze ZeVeedWee edX B Ze#deddW e%de d e%de e	de%de  dX Zee!j e#deddW e%de d e%de e	de%de  dX e!jZe#deddW e%de d e%de d e%de e	de%de  dX e!jZe#dede%dse e!jZe#deded e%dse e!jZe	ed}ZdWe%de e%de dX Ze#deddW e%de e%ddueB  dX 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dW e%de e%de e	ded d e%de_  dX B Zee#deddW e%de dX e!jB e#deddW e%de dX e!jB e#deddW e%de d e%de dX e!jB e#deddW e%de dX e!jB e#deddW e%de\ dX e!jB e#dedădW e%de dX e!jB e#dedƃdW e%de dX e!jB e#dedȃdWe%de dX eVB  e!jB e#dedʃeV e!jB e#ded̃dW e%de dX e!jB e#ded΃dW e%de dX e!jB e#dedЃdW e%de dX e!jB e#ded҃dW e%de dX e!jB e#dedԃe%de e!jB eB e#dedփdW e%de dX e!jB eB e#ded؃dW e%de dX e!jB e#dedڃdW e%de dX e!jB e#ded܃dW e%de dX e!jB e#dedރdW e%de d e%de dX e!jB e#deddW e%de d e%de dX e!jB e#deddW e%de d e%de dX e!jB e#deddW e%de d e%de dX e!jB e#deddW e%de d e%de dX e!jB e#deddW e%de dX e!jB e#deddW e%de dX e!jB e#deddW e%de dX e!jB e#deddW e%de dX e!jB e#deddW e%de dX e!jB e#deddW e%de dX e!jB e#deddW e%de dX e!jB e#deddW e%de dX e!j¡B e#dedeV e!jáB e#dedeV e!jġB e#dedeV e!jšB e#deddW e%de dX e!jơB e#ded dW e%de dX e!jǡB e#deddW e%de dX e!jȡB e#deddW e%de dX e!jɡB e#deddW e%de dX e!jʡB e#dede%de e!jˡB e#d	ed
dW e%de d e%de d e%de dX e!j̡B e#deddW e%de d e%de dX e!j͡B e#deddW e%de d e%de dX e!jΡB e#deddW e%de d e%de dX e!jϡB e#deddW e%de dX e!jСB e#deddW e%de dX e!jСB e#deddW e%de dX e!jѡB e#deddW e%de dX e!jҡB e#deddW e%de dX e!jӡB eB eB eB ZeVdWe%de ee&de dX B Ze#de%dae^e e!j֡e^B Ze#de%dae^e e!j֡ZedWe edX ZeeB eB e`B edB eeB e\B Ze#dd{e%deڃ e!jۡe#ddIe%deڃ e!jܡB e#d dKe%deڃ e!jݡB eB Ze#d!e%deރee&d"due&d#eރ e&d"de&d#eރ B  e!jߡZe#d$e%de߃ee&d"dIe&d#e߃ e&d"dK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) dd*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d/e&d#e  e!jZeeK ZeeB eB Ze#d0ed1e%de Ze^ZeZedqe%d2e Ze#d3ed4e%d5eeB  ZeeB e#d6dWe%de e	ed7e%d8e\  dX B e\B Ze#d9ed:ed; ee&d<e Ze	e%d=ed>Ze#d?ed@e e%dae^ e	edAej  Ze#dBedCe ek Ze#dDedEe ek Ze#dFedGe ej Ze#dHedIe el edJ el Ze#dKedLe el edJ el Ze#dMedNe el edJ el Ze#dOedPedQ e Ze#dRedSedQ e Ze#dTedSedU e Ze#dVedSe Ze#dWedPe Ze#dXedYe%d5e^edqe%d2e^ B  Ze#dZe	ed[e%d\e^ e%d]ee	e%d^e e%d^eB  ee&d_e edU e%d`e ZeeB eB eB eB eB eB eB eB eB eB Ze&d8e\d ee&daem d ZeVdWee&d8e\ dX B d ee&daeedWeem edX eVB  d ZeeB Z e	e%dbe#dcedde  Ze Zee&deee	ede	e  K Zede	e ed Ze#dfedge%dse Ze#dhedne%dei e%dse Ze#diedje e%dei e%dse Ze#dkedldW e%de ed7 e%d8e\ dX Ze#dmedde  ZeeB eB eB eB eB eB eB Z	e#dne	e&dye#doeee&dye	e	d e	e&dye#doe  Z
eZe#dpedqee&d<e Ze#dre%dsedteduB e%deك e%dee\B B Ze#dvedwed; ee&d<e Zedxe%dyeG Zedze%d{eG 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%d8e\edWe%de ed7 e%de\ dX B duB  Ze	edUe%d`e 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dU d e	e%d`e#de&dye#doe d e e B  Ze#dede%dee e e e Ze#dedee&d8eiduB  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 d1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delimitedList
restOfLine)decodeUnicodeEscape   )	operators)Comp	CompValueParam	ParamListFliteralrdflib.Literalreturnc                 C  s   t j|  | jdS )Ndatatype)rdflibr   r!   )r    r#   W/var/www/edux/Edux_v2/venv/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|  zg }t r
td|  t| }t| D ]\}}|dkr&||d |d g nn|dkrK|d t| ksB| |d  dksB| |d  dkrCq||d  nIt|trt|d	 d
kr_||d  t|dkri||7 }|d |k r~| |d  dvr~||d  nt|tr||	 7 }n	|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
    Terms,;r   .r         z.,;N)indent)DEBUGprintlen	enumerateextendappend
isinstancelistr   asListjsondumps	traceback	print_exc)r&   resl_itrB   rD   r#   r#   r$   expandTriples8   sH   
0


rJ   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)r9   r:   r"   BNoderA   rJ   	Exception)r&   er#   r#   r$   expandBNodeTriplesm   s   

rP   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   r2   CollectionOut)
r9   r:   r?   r@   r"   rM   RDFrestfirstnil)r&   rF   otherxbr#   r#   r$   expandCollection~   s"   

"
rZ   <z[^<>"{}|^`\\%s]* c                 c  s    | ]}d | V  qdS )z\x%02XNr#   ).0rH   r#   r#   r$   	<genexpr>   s    r^   !   >c                 C  s   t | d S Nr   )r"   URIRefrX   r#   r#   r$   <lambda>   s    rd   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   r7   r"   rM   rc   r#   r#   r$   rd          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integerrc   r#   r#   r$   rd     rn   z[eE][+-]?[0-9]+z[0-9]*\.[0-9]+c                 C  rr   rs   )r"   r   ru   decimalrc   r#   r#   r$   rd     rn   z/[0-9]+\.[0-9]*%(e)s|\.([0-9])+%(e)s|[0-9]+%(e)srO   c                 C  rr   rs   )r"   r   ru   doublerc   r#   r#   r$   rd     rn   +c                 C  s   t jd| d  t jjdS )Nry   r   r    rt   rc   r#   r#   r$   rd         -c                 C     t | d S ra   r%   rc   r#   r#   r$   rd   $      c                 C  r|   ra   r}   rc   r#   r#   r$   rd   (  r~   c                 C  r|   ra   r}   rc   r#   r#   r$   rd   ,  r~   z)'''((?:'|'')?(?:[^'\\]|\\['ntbrf\\]))*'''c                 C     t t| d dd S Nr   r6   r2   r"   r   r   rc   r#   r#   r$   rd   7  rz   z+"""(?:(?:"|"")?(?:[^"\\]|\\["ntbrf\\]))*"""c                 C  r   r   r   rc   r#   r#   r$   rd   ?  rz   z#'(?:[^'\n\r\\]|\\['ntbrf\\])*'(?!')c                 C  r   Nr   r   r   rc   r#   r#   r$   rd   H  rz   z#"(?:[^"\n\r\\]|\\["ntbrf\\])*"(?!")c                 C  r   r   r   rc   r#   r#   r$   rd   Q  rz   ()c                 C     t jjS N)r"   rS   rV   rc   r#   r#   r$   rd   V      []c                 C  s   t  S r   rm   rc   r#   r#   r$   rd   ]  r   ac                 C  r   r   )r"   rS   typerc   r#   r#   r$   rd   a  r   BaseBASEiri
PrefixDeclPREFIXc                 C  s   t j| d S ra   )r"   termVariablerc   r#   r#   r$   rd   q  s    pnamestringr)   z^^r!   truec                   C  
   t dS )NTr*   r#   r#   r#   r$   rd        
 falsec                   C  r   )NFr*   r#   r#   r#   r$   rd     r   GRAPHgraphiriDEFAULTNAMEDALLgraphUNDEF*InversePath^PathNegatedPropertySetpart|!DistinctPathDISTINCTPathEltmodPathEltOrInversePathSequence/PathAlternativer1   r4   triplesr5   QuadsNotTriplesr   {}QuadsquadsNotTriplesquadsMinusGraphPatternMINUSGroupOrUnionGraphPatternUNIONBuiltin_REGEXREGEXtextpatternrf   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oprW   AdditiveExpressionRelationalExpressionz!=z<=z>=IN )adjacent
joinString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  rO   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parseAll)hasattrr  r?   bytesdecoder  QueryparseString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   r/   )r&   r   r   rQ   )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   r   r"   rdflib.compatr   r\   r   rI  parserutilsr   r   r   r   r9   r%   r,   r.   rJ   rP   rZ   joinrangeIRIREFsetParseAction
maxunicodePN_CHARS_BASE_rePN_CHARS_U_rePN_CHARS_reU	PN_PREFIXleaveWhitespace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,  r.  r0  r3  r5  r7  r9  r=  r?  rA  BuiltInCallArgListrD  iriOrFunctionFunctionCallBrackettedExpressionPrimaryExpressionrE  rF  rG  UnaryExpressionrH  rJ  NumericExpressionrK  ValueLogicalrP  rQ  
ConstraintrR  SourceSelectorDefaultGraphClauseNamedGraphClauserU  GroupConditionr[  _Silentra  rd  rf  rh  rj  rm  ro  rq  rt  rv  rx  ry  rz  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	   85



	



	







	 

 
		
R  #&),/0347:>GPYbknqtwz}           
          

  $  -  6  ?  B  E  H  K  N  O  P  V





 

		"""   (

	
"

	







 

	

