b+ ddlmZddlmZddlmZddlmZddlm Z ddl m Z dZ d Z d Zd Zd Zd ZdZdZdZdZe e eeeeeeeeg ZGddZGddZGddZy)) OrderedDict) ResponseError)Edge)VersionMismatchException)Node)Pathz Labels addedz Nodes createdz Nodes deletedzRelationships deletedzProperties setzRelationships createdzIndices createdzIndices deletedzCached executionzinternal execution timeceZdZdZdZdZdZy)ResultSetColumnTypesrrN)__name__ __module__ __qualname__COLUMN_UNKNOWN COLUMN_SCALAR COLUMN_NODECOLUMN_RELATIONC/usr/lib/python3/dist-packages/redis/commands/graph/query_result.pyr r $sNMKOrr c<eZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zy )ResultSetScalarTypesrrr r  N)rrr VALUE_UNKNOWN VALUE_NULL VALUE_STRING VALUE_INTEGER VALUE_BOOLEAN VALUE_DOUBLE VALUE_ARRAY VALUE_EDGE VALUE_NODE VALUE_PATH VALUE_MAP VALUE_POINTrrrrr+s>MJLMMLKJJJIKrrc$eZdZddZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZedZdZedZedZedZedZedZedZedZedZedZedZ y) QueryResultc||_g|_g|_|j|t |dk(r|j |dy|r|j |y|j |d|j|y)a7 A class that represents a result of the query operation. Args: graph: The graph on which the query was executed. response: The response from the server. profile: A boolean indicating if the query command was "GRAPH.PROFILE" rrN)graphheader result_set_check_for_errorslenparse_statistics parse_profile parse_results)selfr2responseprofiles r__init__zQueryResult.__init__;sz   x( x=A   ! !(1+ .    x (  ! !(2, /   x (rct|dtr%|d}t|dk(r|d}t|}|t|dtr|dy)Nrzversion mismatchrr1) isinstancerstrr)r:r;errorversions rr5zQueryResult._check_for_errorsXs] hqk= 1QKE5z//"1+09K hrlM 22,  3rc|j||_t|jdk(ry|j||_yNr) parse_headerr3r6 parse_recordsr4)r:raw_result_sets rr9zQueryResult.parse_resultses<''7  t{{ q ,,^<rci|_t|D])\}}t|ts|j ||<+t D]&}|j ||}|||j|<(yN) statistics enumerater?bytesdecodeSTATS _get_value)r:raw_statisticsidxstatsvs rr7zQueryResult.parse_statisticsnsq#>2 4IC$&&*kkms# 4 'A>2A}%&" 'rc|d}|SrDr)r:rGr3s rrEzQueryResult.parse_header{s" rc g}|d}|D]}g}t|D]\}}|j|dtjk(r!|j |j |J|j|dtj k(r!|j |j||j|dtjk(r!|j |j|td|j ||S)NrrzUnknown column type. ) rKr3r rappend parse_scalarr parse_noder parse_edgeprint)r:rGrecordsr4rowrecordrQcells rrFzQueryResult.parse_recordss#A&  #CF&s^ 4 T;;s#A&*>*L*LLMM$"3"3D"9:[[%a(,@,L,LLMM$//$"78KK$Q'+?+O+OOMM$//$"7823 4 NN6 " #rci}|D]9}|jj|d}|j|dd}|||<;|SNrr)r2 get_propertyrX)r:props propertiesprop prop_name prop_values rparse_entity_propertiesz#QueryResult.parse_entity_propertiessV  /D //Q8I**484J$.Jy ! / rc|t|tr|jSt|ts t|S|SrI)r?rLrMr@)r:r_s r parse_stringzQueryResult.parse_strings1 dE ";;= D#&t9 Krct|d}d}t|ddkDr6g}|dD],}|j|jj |.|j |d}t |||S)Nrrr )node_idlabelrd)intr6rWr2 get_labelrhr)r:r_rllabels inner_labelrds rrYzQueryResult.parse_nodes~ d1g, tAw> >ZFL I0>> >&0&>ELLNEEB A'!> ;./: 70== =5\F4 10<< <" "FU3u:& 8 --eAh7q  8* %0;; ;__U+F" 0;; ;__U+F 0;; ;__U+F 0:: :^^E*F 0<< <%%e,F  0>> > ) * rcx|Dcgc]$}|d|jdj&c}|_ycc}w)Nr,)indexstripr4)r:r;xs rr8zQueryResult.parse_profiles/@HI11Q.446IIs)7c2t|jdk(SrD)r6r4r:s ris_emptyzQueryResult.is_empty6s4??#q((rc||D]7}||vst|jddjddcSy)Nz: r r)rsplit)rerJrRs rrOzQueryResult._get_value9sH @Dt|TZZ-a066s;A>?? @rc@||jvr|j|SdSrD)rJ)r:rRs r _get_statzQueryResult._get_statAs!(,(?tt$FQFrc,|jtSrI)r LABELS_ADDEDrs r labels_addedzQueryResult.labels_addedDs~~l++rc,|jtSrI)r NODES_CREATEDrs r nodes_createdzQueryResult.nodes_createdH~~m,,rc,|jtSrI)r NODES_DELETEDrs r nodes_deletedzQueryResult.nodes_deletedLrrc,|jtSrI)rPROPERTIES_SETrs rproperties_setzQueryResult.properties_setPs~~n--rc,|jtSrI)rRELATIONSHIPS_CREATEDrs rrelationships_createdz!QueryResult.relationships_createdT~~344rc,|jtSrI)rRELATIONSHIPS_DELETEDrs rrelationships_deletedz!QueryResult.relationships_deletedXrrc,|jtSrI)rINDICES_CREATEDrs rindices_createdzQueryResult.indices_created\~~o..rc,|jtSrI)rINDICES_DELETEDrs rindices_deletedzQueryResult.indices_deleted`rrc2|jtdk(S)Nr)rCACHED_EXECUTIONrs rcached_executionzQueryResult.cached_executionds~~./144rc,|jtSrI)rINTERNAL_EXECUTION_TIMErs r run_time_mszQueryResult.run_time_mshs~~566rN)F)!rrrr=r5r9r7rErFrhrjrYrZr{rrrXr8r staticmethodrOrpropertyrrrrrrrrrrrrrr/r/:s8): = ' ( J " 2hJH)G,,----..5555////5577rr/N) collectionsrredisredger exceptionsrnoderpathr rrrrrrrrrrrNr rr/rrrrs# 0   /!/##%3   p7p7r