HOME


Mini Shell 1.0
DIR: /lib/python3/dist-packages/twisted/words/xish/__pycache__/
Upload File :
Current File : //lib/python3/dist-packages/twisted/words/xish/__pycache__/xpath.cpython-312.pyc
�

Ϫ�f�$���dZddlmZGd�de�ZGd�d�ZGd�d�ZGd	�d
�ZGd�d�Zd
�Z	Gd�d�Z
Gd�d�ZGd�d�ZGd�d�Z
Gd�d�ZiZd�Zd�Zd�Zd�Zd�Zy)z�
XPath query support.

This module provides L{XPathQuery} to match
L{domish.Element<twisted.words.xish.domish.Element>} instances against
XPath-like expressions.
�)�StringIOc��eZdZd�Zy)�LiteralValuec��|S�N���self�elems  �:/usr/lib/python3/dist-packages/twisted/words/xish/xpath.py�valuezLiteralValue.values����N)�__name__�
__module__�__qualname__r
rrrrrs��rrc��eZdZd�Zd�Zy)�
IndexValuec�*�t|�dz
|_y)N�)�int�index)r
rs  r�__init__zIndexValue.__init__s����Z�!�^��
rc�4�|j|jSr)�childrenrr	s  rr
zIndexValue.values���}�}�T�Z�Z�(�(rN)rrrrr
rrrrrs��$�)rrc��eZdZd�Zd�Zd�Zy)�AttribValuec�T�||_|jdk(r|j|_yy)N�xmlns)�
attribname�value_nsr
)r
rs  rrzAttribValue.__init__ s%��$����?�?�g�%����D�J�&rc��|jSr)�urir	s  rr zAttribValue.value_ns%s���x�x�rc�f�|j|jvr|j|jSyr)r�
attributesr	s  rr
zAttribValue.value(s(���?�?�d�o�o�-��?�?�4�?�?�3�3�rN)rrrrr r
rrrrrs��'�
�rrc��eZdZd�Zd�Zd�Zy)�CompareValuec�p�||_||_|dk(r|j|_y|j|_y)N�=)�lhs�rhs�
_compareEqualr
�_compareNotEqual�r
r)�opr*s    rrzCompareValue.__init__0s1��������
��9��+�+�D�J��.�.�D�Jrc�p�|jj|�|jj|�k(Sr�r)r
r*r	s  rr+zCompareValue._compareEqual8�'���x�x�~�~�d�#�t�x�x�~�~�d�';�;�;rc�p�|jj|�|jj|�k7Srr0r	s  rr,zCompareValue._compareNotEqual;r1rN)rrrrr+r,rrrr&r&/s��/�<�<rr&c�"�eZdZdZd�Zd�Zd�Zy)�BooleanValuea^
    Provide boolean XPath expression operators.

    @ivar lhs: Left hand side expression of the operator.
    @ivar op: The operator. One of C{'and'}, C{'or'}.
    @ivar rhs: Right hand side expression of the operator.
    @ivar value: Reference to the method that will calculate the value of
                 this expression given an element.
    c�p�||_||_|dk(r|j|_y|j|_y)N�and)r)r*�_booleanAndr
�
_booleanOrr-s    rrzBooleanValue.__init__Js/��������
��;��)�)�D�J����D�Jrc�r�|jj|�xr|jj|�S)z�
        Calculate boolean and of the given expressions given an element.

        @param elem: The element to calculate the value of the expression from.
        r0r	s  rr7zBooleanValue._booleanAndRs)���x�x�~�~�d�#�<������t�(<�<rc�r�|jj|�xs|jj|�S)z�
        Calculate boolean or of the given expressions given an element.

        @param elem: The element to calculate the value of the expression from.
        r0r	s  rr8zBooleanValue._booleanOrZs)���x�x�~�~�d�#�;�t�x�x�~�~�d�';�;rN)rrr�__doc__rr7r8rrrr4r4?s���)�=�<rr4c�4�d|z}t�|�}|S)z;
    Internal method which selects the function object
    z_%s_Function)�globals)�fname�	klassname�cs   r�FunctionrAcs$����&�I���	�)���A��Hrc��eZdZd�Zd�Zd�Zy)�
_not_Functionc��d|_yr��	baseValue�r
s rrz_not_Function.__init__ms	����rc��||_yrrE)r
rFs  r�	setParamsz_not_Function.setParamsps	��"��rc�:�|jj|�Sr)rFr
r	s  rr
z_not_Function.valuess���>�>�'�'��-�-�-rN)rrrrrIr
rrrrCrCls���#�.rrCc��eZdZd�Zd�Zy)�_text_Functionc��yrrrGs rrIz_text_Function.setParamsxs��rc��t|�Sr)�strr	s  rr
z_text_Function.value{s���4�y�rN)rrrrIr
rrrrLrLws��
�rrLc�0�eZdZd�Zd�Zd�Zd�Zd�Zd�Zy)�	_Locationc�.�g|_d|_d|_yr��
predicates�elementName�
childLocationrGs rrz_Location.__init__����������!��rc��|jdk7r|j|jk7ry|jD]}|j|�r�yy�Nrr)rU�namerTr
�r
r�ps   r�matchesPredicatesz_Location.matchesPredicates�sJ�����t�#��(8�(8�D�I�I�(E�����	�A��7�7�4�=��	�rc��|j|�sy|jdk7r3|j�D]}|jj|�s�yyyrY)r]rV�elements�matches�r
rr@s   rr`z_Location.matches�sW���%�%�d�+������%��]�]�_�
���%�%�-�-�a�0��
��rc���|j|�sy|jdk7r2|j�D]}|jj||�� y|j	t|��yr)r]rVr_�queryForString�writerO)r
r�	resultbufr@s    rrcz_Location.queryForString�s`���%�%�d�+������%��]�]�_�
@���"�"�1�1�!�Y�?�
@�
�O�O�C��I�&rc���|j|�sy|jdk7r2|j�D]}|jj||�� y|j	|�yr)r]rVr_�
queryForNodes�append�r
r�
resultlistr@s    rrgz_Location.queryForNodes�s^���%�%�d�+������%��]�]�_�
@���"�"�0�0��J�?�
@�
���d�#rc��|j|�sy|jdk7r2|j�D]}|jj||�� y|jD]$}t|t�s�|j|��&yr)r]rVr_�queryForStringListr�
isinstancerOrhris    rrlz_Location.queryForStringList�s{���%�%�d�+������%��]�]�_�
E���"�"�5�5�a��D�
E��]�]�
)���a��%��%�%�a�(�
)rN)	rrrrr]r`rcrgrlrrrrQrQs ��"�
��'�$�
)rrQc�B�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zy
)�_AnyLocationc�.�g|_d|_d|_yrrSrGs rrz_AnyLocation.__init__�rWrc�L�|jD]}|j|�r�yyrY)rTr
r[s   rr]z_AnyLocation.matchesPredicates�s(�����	�A��7�7�4�=��	�rc��|jdk7r|j|j|�|j|j�yr)�parent�listParentsrhrZ)r
r�
parentlists   rrtz_AnyLocation.listParents�s4���;�;�$�����T�[�[�*�5����$�)�)�$rc��|jdk(s|j|jk(rT|j|�rC|jdk7r3|j	�D]}|jj|�s�yyyy�NTF�rUrZr]rVr_r`ras   r�isRootMatchz_AnyLocation.isRootMatch�sv������$��(8�(8�D�I�I�(E��$�$�T�*��!�!�T�)�����$�A��)�)�1�1�!�4�#�$�
��rc�V�|jdk(s|j|jk(rW|j|�rF|jdk7r5|j	�D]!}|jj|�s�|cSy|S|j	�D]}|j|�s�|cSyrrxras   r�findFirstRootMatchz_AnyLocation.findFirstRootMatch�s�������$��(8�(8�D�I�I�(E��$�$�T�*�
�!�!�T�)�����!�A��)�)�1�1�!�4� ��!����
�]�]�_�
���<�<��?��H�
�rc�x�|j|�ry|j�D]}|j|�s�yyrw)ryr_r`ras   rr`z_AnyLocation.matches�s=�����D�!��
�]�]�_�
 ���<�<��?��
 �rc��td��)Nz2queryForString is not implemented for any location)�NotImplementedError)r
rres   rrcz_AnyLocation.queryForStrings��!�"V�W�Wrc��|j|�r|j|�|j�D]}|j||��yr)ryrhr_rgris    rrgz_AnyLocation.queryForNodessE�����D�!����d�#�����	.�A����q�*�-�	.rc���|j|�r3|jD]$}t|t�s�|j	|��&|j�D]}|j
||��yr)ryrrmrOrhr_rlris    rrlz_AnyLocation.queryForStringList
sb�����D�!��]�]�
)���a��%��%�%�a�(�
)�����	3�A��#�#�A�z�2�	3rN)rrrrr]rtryr{r`rcrgrlrrrroro�s0��"�
�%�

��4�X�.�3rroc�0�eZdZd�Zd�Zd�Zd�Zd�Zd�Zy)�
XPathQueryc�j�||_ddlm}m}|||��}t	|d��|_y)Nr)�XPathParser�XPathParserScanner�XPATH)�queryStr�twisted.words.xish.xpathparserr�r��getattr�baseLocation)r
r�r�r��parsers     rrzXPathQuery.__init__s0�� ��
�R��/��9�:��4�G�F�G�4�6��rc�6�|jj�Sr)r��__hash__rGs rr�zXPathQuery.__hash__s���}�}�%�%�'�'rc�8�|jj|�Sr)r�r`r	s  rr`zXPathQuery.matches"s��� � �(�(��.�.rc�n�t�}|jj||�|j�Sr)rr�rc�getvalue�r
r�results   rrczXPathQuery.queryForString%s,��������(�(��v�6���� � rc�`�g}|jj||�t|�dk(ry|S�Nr)r�rg�lenr�s   rrgzXPathQuery.queryForNodes*s1�������'�'��f�5��v�;�!����Mrc�`�g}|jj||�t|�dk(ry|Sr�)r�rlr�r�s   rrlzXPathQuery.queryForStringList2s1�������,�,�T�6�:��v�;�!����MrN)	rrrrr�r`rcrgrlrrrr�r�s ��7�(�/�!�
�rr�c�H�|tvrt|�t|<t|Sr)�__internedQueriesr�)�queryStrings r�internQueryr�>s&���+�+�)3�K�)@��+�&��[�)�)rc�6�t|�j|�Sr)r�r`��xpathstrrs  rr`r`Ds���x� �(�(��.�.rc�6�t|�j|�Sr)r�rlr�s  rrlrlHs���x� �3�3�D�9�9rc�6�t|�j|�Sr)r�rcr�s  rrcrcLs���x� �/�/��5�5rc�6�t|�j|�Sr)r�rgr�s  rrgrgPs���x� �.�.�t�4�4rN)r;�iorrOrrrr&r4rArCrLrQror�r�r�r`rlrcrgrrr�<module>r�s������3��
)�)�
�
� 
<�
<� !<�!<�H
�.�.���;)�;)�|V3�V3�r"�"�J��*�/�:�6�5r