HEX
Server: LiteSpeed
System: Linux ws4.angoweb.net 5.14.0-611.13.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 11 04:57:59 EST 2025 x86_64
User: tswangoe (2287)
PHP: 8.1.33
Disabled: show_source, system, shell_exec, passthru, exec, phpinfo, popen, proc_open
Upload Files
File: //usr/lib/python3.9/site-packages/redis/commands/graph/__pycache__/query_result.cpython-39.pyc
a

��b�+�
@s�ddlmZddlmZddlmZddlmZddlm	Z	ddl
mZdZd	Z
d
ZdZdZd
ZdZdZdZdZee
eeeeeeeeg
ZGdd�d�ZGdd�d�ZGdd�d�ZdS)�)�OrderedDict)�
ResponseError�)�Edge)�VersionMismatchException)�Node)�PathzLabels addedz
Nodes createdz
Nodes deletedzRelationships deletedzProperties setzRelationships createdzIndices createdzIndices deletedzCached executionzinternal execution timec@seZdZdZdZdZdZdS)�ResultSetColumnTypesrr��N)�__name__�
__module__�__qualname__ZCOLUMN_UNKNOWN�
COLUMN_SCALAR�COLUMN_NODE�COLUMN_RELATION�rr�E/usr/lib/python3.9/site-packages/redis/commands/graph/query_result.pyr	$sr	c@s<eZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
S)�ResultSetScalarTypesrrr
r������	�
�N)rr
r�
VALUE_UNKNOWN�
VALUE_NULL�VALUE_STRING�
VALUE_INTEGER�
VALUE_BOOLEAN�VALUE_DOUBLE�VALUE_ARRAY�
VALUE_EDGE�
VALUE_NODE�
VALUE_PATH�	VALUE_MAP�VALUE_POINTrrrrr+src@seZdZd;dd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zd d!�Zed"d#��Zd$d%�Zed&d'��Zed(d)��Zed*d+��Zed,d-��Zed.d/��Zed0d1��Zed2d3��Zed4d5��Zed6d7��Zed8d9��Z d:S)<�QueryResultFcCsd||_g|_g|_|�|�t|�dkr8|�|d�n(|rH|�|�n|�|d�|�|�dS)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"
        rr���N)�graph�header�
result_set�_check_for_errors�len�parse_statistics�
parse_profile�
parse_results)�selfr+�responseZprofilerrr�__init__;s

zQueryResult.__init__cCsPt|dt�r6|d}t|�dkr2|d}t|�}|�t|dt�rL|d�dS)Nrzversion mismatchrr*)�
isinstancer�strr)r3r4�error�versionrrrr.XszQueryResult._check_for_errorscCs.|�|�|_t|j�dkrdS|�|�|_dS�Nr)�parse_headerr,r/�
parse_recordsr-)r3�raw_result_setrrrr2eszQueryResult.parse_resultscCsZi|_t|�D]\}}t|t�r|��||<qtD]"}|�||�}|dur2||j|<q2dS�N)�
statistics�	enumerater6�bytes�decode�STATS�
_get_value)r3Zraw_statistics�idx�stat�s�vrrrr0ns
zQueryResult.parse_statisticscCs|d}|Sr:r)r3r=r,rrrr;{szQueryResult.parse_headercCs�g}|d}|D]�}g}t|�D]�\}}|j|dtjkrN|�|�|��q |j|dtjkrt|�|�|��q |j|dtjkr�|�|�	|��q t
d�q |�|�q|S)NrrzUnknown column type.
)r@r,r	r�append�parse_scalarr�
parse_noder�
parse_edge�print)r3r=Zrecordsr-�row�recordrE�cellrrrr<�s�
zQueryResult.parse_recordscCs<i}|D].}|j�|d�}|�|dd��}|||<q|S�Nrr)r+Zget_propertyrJ)r3Zprops�
properties�propZ	prop_nameZ
prop_valuerrr�parse_entity_properties�s
z#QueryResult.parse_entity_propertiescCs,t|t�r|��St|t�s$t|�S|SdSr>)r6rArBr7)r3rPrrr�parse_string�s


zQueryResult.parse_stringcCs`t|d�}d}t|d�dkrDg}|dD]}|�|j�|��q,|�|d�}t|||d�S)Nrrr
)�node_idZlabelrR)�intr/rIr+Z	get_labelrTr)r3rPrV�labelsZinner_labelrRrrrrK�szQueryResult.parse_nodecCsTt|d�}|j�|d�}t|d�}t|d�}|�|d�}t|||||d�S)Nrrr
rr)�edge_idrR)rWr+Zget_relationrTr)r3rPrYZrelationZsrc_node_idZdest_node_idrRrrrrL�s
�zQueryResult.parse_edgecCs&|�|d�}|�|d�}t||�SrQ)rJr)r3rPZnodesZedgesrrr�
parse_path�szQueryResult.parse_pathcCsHt�}t|�}td|d�D](}|�||�}|�||d�||<q|S)Nrr
r)rr/�rangerUrJ)r3rP�mZ	n_entries�i�keyrrr�	parse_map�szQueryResult.parse_mapcCs(i}t|d�|d<t|d�|d<|S)NrZlatituderZ	longitude)�float)r3rP�prrr�parse_point�szQueryResult.parse_pointcCszt|d�}|d}d}|tjkr*d}�nL|tjkrB|�|�}�n4|tjkrXt|�}�n|tjkr�t|t�rt|�	�n|}|dkr�d}n|dkr�d}nt
d�n�|tjkr�t|�}n�|tj
kr�|}}tt|��D]}|�||�||<q�n�|tjk�r|�|�}nt|tjk�r|�|�}n\|tjk�r2|�|�}nD|tjk�rJ|�|�}n,|tjk�rb|�|�}n|tjk�rvt
d�|S)	Nrr�trueTZfalseFzUnknown boolean type
zUnknown scalar type
)rWrrrrUr r!r6rArBrMr"r`r#r[r/rJr%rKr$rLr&rZr'r_r(rbr)r3rPZscalar_type�valueZscalarZarrayr]rrrrJ�sF







zQueryResult.parse_scalarcCsdd�|D�|_dS)NcSs"g|]}|d|�d�����qS)r�,)�index�strip)�.0�xrrr�
<listcomp>�z-QueryResult.parse_profile.<locals>.<listcomp>)r-)r3r4rrrr1szQueryResult.parse_profilecCst|j�dkSr:)r/r-�r3rrr�is_empty6szQueryResult.is_emptycCs6|D],}||vrt|�d�d�d�d�SqdS)Nz: r� r)r`�split)rSr?rFrrrrD9s"zQueryResult._get_valuecCs||jvr|j|SdSr:)r?)r3rFrrr�	_get_statAszQueryResult._get_statcCs
|�t�Sr>)rp�LABELS_ADDEDrlrrr�labels_addedDszQueryResult.labels_addedcCs
|�t�Sr>)rp�
NODES_CREATEDrlrrr�
nodes_createdHszQueryResult.nodes_createdcCs
|�t�Sr>)rp�
NODES_DELETEDrlrrr�
nodes_deletedLszQueryResult.nodes_deletedcCs
|�t�Sr>)rp�PROPERTIES_SETrlrrr�properties_setPszQueryResult.properties_setcCs
|�t�Sr>)rp�RELATIONSHIPS_CREATEDrlrrr�relationships_createdTsz!QueryResult.relationships_createdcCs
|�t�Sr>)rp�RELATIONSHIPS_DELETEDrlrrr�relationships_deletedXsz!QueryResult.relationships_deletedcCs
|�t�Sr>)rp�INDICES_CREATEDrlrrr�indices_created\szQueryResult.indices_createdcCs
|�t�Sr>)rp�INDICES_DELETEDrlrrr�indices_deleted`szQueryResult.indices_deletedcCs|�t�dkS)Nr)rp�CACHED_EXECUTIONrlrrr�cached_executiondszQueryResult.cached_executioncCs
|�t�Sr>)rp�INTERNAL_EXECUTION_TIMErlrrr�run_time_mshszQueryResult.run_time_msN)F)!rr
rr5r.r2r0r;r<rTrUrKrLrZr_rbrJr1rm�staticmethodrDrp�propertyrrrtrvrxrzr|r~r�r�r�rrrrr):sN

	


4$









r)N)�collectionsrZredisrZedger�
exceptionsrZnoder�pathrrqrsrur{rwryr}rr�r�rCr	rr)rrrr�<module>s:�