HEX
Server: Apache
System: Linux srv1.prosuiteplus.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: prosuiteplus (1001)
PHP: 8.3.20
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/jmespath/__pycache__/visitor.cpython-38.pyc
U

@`a\*�@s�ddlZddlmZddlmZddlmZdd�Zdd�Zd	d
�Z	dd�Z
Gd
d�de�ZGdd�de�Z
Gdd�de�ZGdd�de�ZGdd�de�ZdS)�N)�	functions)�string_type)�NumbercCst||�rdS||kSdS)NF)�_is_special_integer_case��x�y�r	�2/usr/lib/python3/dist-packages/jmespath/visitor.py�_equalss
rcCs\t|�tkr,|dks|dkr,|dkp*|dkSt|�tkrX|dksH|dkrX|dkpV|dkSdS)Nr�TF)�type�intrr	r	r
rsrcCst|�pt|t�S�N)�_is_actual_number�
isinstancer�rr	r	r
�_is_comparable&srcCs|dks|dkrdSt|t�S)NTF)rrrr	r	r
r.src@seZdZdZddd�ZdS)�Optionsz8Options to control how a JMESPath function is evaluated.NcCs||_||_dSr)�dict_cls�custom_functions)�selfrrr	r	r
�__init__=s	zOptions.__init__)NN)�__name__�
__module__�__qualname__�__doc__rr	r	r	r
r;src@seZdZdd�Zdd�ZdS)�_ExpressioncCs||_||_dSr)�
expression�interpreter)rrrr	r	r
rKsz_Expression.__init__cOs|jj|f|�|�Sr)r�visit�r�node�args�kwargsr	r	r
r Osz_Expression.visitN)rrrrr r	r	r	r
rJsrc@s$eZdZdd�Zdd�Zdd�ZdS)�VisitorcCs
i|_dSr)�
_method_cache�rr	r	r
rTszVisitor.__init__cOsL|d}|j�|�}|dkr<t|d|d|j�}||j|<||f|�|�S)Nr
zvisit_%s)r&�get�getattr�
default_visit)rr"r#r$Z	node_type�methodr	r	r
r Ws
�
z
Visitor.visitcOstd��dS)Nr*��NotImplementedErrorr!r	r	r
r*`szVisitor.default_visitN)rrrrr r*r	r	r	r
r%Ss	r%cseZdZedd�ejejejejd�Z	ddgZ
eZd;�fdd�	Z
d	d
�Zdd�Zd
d�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Z d/d0�Z!d1d2�Z"d3d4�Z#d5d6�Z$d7d8�Z%d9d:�Z&�Z'S)<�TreeInterpretercCst||�Sr)rrr	r	r
�<lambda>g�zTreeInterpreter.<lambda>)�eq�ne�lt�gtZlteZgter1r2Ncsbtt|���|j|_|dkr$t�}||_|jdk	r>|jj|_|jdk	rT|jj|_	n
t
��|_	dSr)�superr.r�MAP_TYPE�	_dict_clsrZ_optionsrr�
_functionsrZ	Functions)rZoptions��	__class__r	r
rps


zTreeInterpreter.__init__cOst|d��dS)Nr
r,r!r	r	r
r*}szTreeInterpreter.default_visitcCs"|}|dD]}|�||�}q|S�N�children�r �rr"�value�resultr	r	r
�visit_subexpression�sz#TreeInterpreter.visit_subexpressioncCs,z|�|d�WStk
r&YdSXdS�Nr?)r(�AttributeError�rr"r?r	r	r
�visit_field�szTreeInterpreter.visit_fieldcCs�|j|d}|d|jkrF||�|dd|�|�|dd|��S|�|dd|�}|�|dd|�}ttf}t|�r�t|�s�dS|||�SdS)Nr?r<rr)�COMPARATOR_FUNC�
_EQUALITY_OPSr r�floatr)rr"r?Zcomparator_func�left�rightZ	num_typesr	r	r
�visit_comparator�s��z TreeInterpreter.visit_comparatorcCs|Srr	rDr	r	r
�
visit_current�szTreeInterpreter.visit_currentcCst|dd|�S�Nr<r)rrDr	r	r
�visit_expref�szTreeInterpreter.visit_exprefcCs:g}|dD]}|�||�}|�|�q|j�|d|�S�Nr<r?)r �appendr8Z
call_function)rr"r?Z
resolved_args�child�currentr	r	r
�visit_function_expression�s
z)TreeInterpreter.visit_function_expressioncCsx|�|dd|�}t|t�s"dS|dd}g}|D]<}|�|�||��r6|�|dd|�}|dk	r6|�|�q6|S)Nr<r�r)r r�list�_is_truerP)rr"r?�baseZcomparator_node�	collected�elementrRr	r	r
�visit_filter_projection�s
z'TreeInterpreter.visit_filter_projectioncCsT|�|dd|�}t|t�s"dSg}|D]$}t|t�rD|�|�q*|�|�q*|SrM)r rrU�extendrP)rr"r?rWZmerged_listrYr	r	r
�
visit_flatten�s

zTreeInterpreter.visit_flattencCs|Srr	rDr	r	r
�visit_identity�szTreeInterpreter.visit_identitycCs8t|t�sdSz||dWStk
r2YdSXdSrB)rrU�
IndexErrorrDr	r	r
�visit_index�s
zTreeInterpreter.visit_indexcCs"|}|dD]}|�||�}q|Sr;r=r>r	r	r
�visit_index_expression�sz&TreeInterpreter.visit_index_expressioncCs"t|t�sdSt|d�}||Sr;)rrU�slice)rr"r?�sr	r	r
�visit_slice�s
zTreeInterpreter.visit_slicecCs|�|dd|�SrMr=rDr	r	r
�visit_key_val_pair�sz"TreeInterpreter.visit_key_val_paircCs|dSrBr	rDr	r	r
�
visit_literal�szTreeInterpreter.visit_literalcCs:|dkrdS|��}|dD]}|�||�||d<q|SrO)r7r �rr"r?rXrQr	r	r
�visit_multi_select_dict�sz'TreeInterpreter.visit_multi_select_dictcCs4|dkrdSg}|dD]}|�|�||��q|Sr;)rPr rfr	r	r
�visit_multi_select_list�sz'TreeInterpreter.visit_multi_select_listcCs6|�|dd|�}|�|�r2|�|dd|�}|S�Nr<rr�r �	_is_false�rr"r?Zmatchedr	r	r
�visit_or_expression�s
z#TreeInterpreter.visit_or_expressioncCs6|�|dd|�}|�|�r"|S|�|dd|�Srirjrlr	r	r
�visit_and_expression�s
z$TreeInterpreter.visit_and_expressioncCs2|�|dd|�}t|�tkr,|dkr,dS|S)Nr<rF)r r
r)rr"r?Zoriginal_resultr	r	r
�visit_not_expressionsz$TreeInterpreter.visit_not_expressioncCs"|}|dD]}|�||�}q|Sr;r=r>r	r	r
�
visit_pipe
szTreeInterpreter.visit_pipecCsZ|�|dd|�}t|t�s"dSg}|D]*}|�|dd|�}|dk	r*|�|�q*|Sri)r rrUrP�rr"r?rWrXrYrRr	r	r
�visit_projections
z TreeInterpreter.visit_projectioncCsp|�|dd|�}z|��}Wntk
r6YdSXg}|D]*}|�|dd|�}|dk	r@|�|�q@|Sri)r �valuesrCrPrqr	r	r
�visit_value_projectionsz&TreeInterpreter.visit_value_projectioncCs(|dkp&|gkp&|ikp&|dkp&|dkS)N�Fr	�rr?r	r	r
rk(s �zTreeInterpreter._is_falsecCs|�|�Sr)rkrvr	r	r
rV/szTreeInterpreter._is_true)N)(rrrr�operatorr3r4�le�gerFrG�dictr6rr*rArErKrLrNrSrZr\r]r_r`rcrdrergrhrmrnrorprrrtrkrV�
__classcell__r	r	r9r
r.dsF�




r.cs,eZdZ�fdd�Zdd�Zdd�Z�ZS)�GraphvizVisitorcstt|���g|_d|_dS)Nr)r5r|r�_lines�_countr'r9r	r
r4szGraphvizVisitor.__init__cOsP|j�d�d|d|jf}|jd7_|�||�|j�d�d�|j�S)Nz
digraph AST {�%s%sr
r�}�
)r}rPr~�_visit�join)rr"r#r$rRr	r	r
r 9szGraphvizVisitor.visitc	Csx|j�d||d|�dd�f�|�dg�D]D}d|d|jf}|jd7_|j�d||f�|�||�q.dS)	Nz%s [label="%s(%s)"]r
r?rur<rrz
  %s -> %s)r}rPr(r~r�)rr"rRrQZ
child_namer	r	r
r�As
�zGraphvizVisitor._visit)rrrrr r�r{r	r	r9r
r|3sr|)rwZjmespathrZjmespath.compatrZnumbersrrrrr�objectrrr%r.r|r	r	r	r
�<module>s
	P