| Server IP : 202.61.199.114 / Your IP : 216.73.217.139 Web Server : nginx/1.22.1 System : Linux de.arni-solutions.de 6.1.0-49-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.174-1 (2026-05-26) x86_64 User : web20 ( 1018) PHP Version : 8.4.23 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /tmp/calpy/cssselect2/__pycache__/ |
Upload File : |
�
ϥ=j� � �\ � d Z ddlmZ ddlmZ ddlmZ ddlmZ dxZ Z
G d� d � � Zd
S )z�CSS4 selectors for Python.
cssselect2 is a straightforward implementation of CSS4 Selectors for markup
documents (HTML, XML, etc.) that can be read by ElementTree-like parsers
(including cElementTree, lxml, html5lib, etc.)
� )�ascii_lower� )�compile_selector_list)�
SelectorError)�ElementWrapperz0.9.0c �: � e Zd ZdZd� Zd� Zd� Zed� � � ZdS )�Matcherz=A CSS selectors storage that can match against HTML elements.c �h � i | _ i | _ i | _ i | _ g | _ g | _ d| _ d S )Nr )�id_selectors�class_selectors�lower_local_name_selectors�namespace_selectors�lang_attr_selectors�other_selectors�order)�selfs �F/tmp/claude-1015/pip-target-jmvfl800/lib/python/cssselect2/__init__.py�__init__zMatcher.__init__ s= � ����!���*,��'�#%�� �#%�� �!�����
�
�
� c �� � | xj dz
c_ |j rdS |j |j | j |j |f}|j �5| j � |j g � � � |� � dS |j �5| j
� |j g � � � |� � dS |j �5| j � |j
g � � � |� � dS |j �5| j � |j g � � � |� � dS |j r| j � |� � dS | j � |� � dS )a� Add a selector and its payload to the matcher.
:param selector:
A :class:`compiler.CompiledSelector` object.
:param payload:
Some data associated to the selector,
such as :class:`declarations <tinycss2.ast.Declaration>`
parsed from the :attr:`tinycss2.ast.QualifiedRule.content`
of a style rule.
It can be any Python object,
and will be returned as-is by :meth:`match`.
r N)r �
never_matches�test�specificity�pseudo_element�idr �
setdefault�append�
class_namer �
local_namer
�lower_local_name� namespacer �requires_lang_attrr r )r �selector�payload�entrys r �add_selectorzMatcher.add_selector sj � �
�
�
�a��
�
��!� ��F�
�M�8�/���X�=T���� �;�"���(�(���b�9�9�@�@��G�G�G�G�G�
�
�
,�� �+�+�H�,?��D�D�K�K�E�R�R�R�R�R�
�
�
,��+�6�6��)�2�
/�
/�/5�v�e�}�}�}�}�}�
�
�
+��$�/�/��0B�B�G�G�N�N�u�U�U�U�U�U�
�
(� /��$�+�+�E�2�2�2�2�2�� �'�'��.�.�.�.�.r c � � g }|j �5|j | j v r'| � || j |j |� � |j D ]-}|| j v r"| � || j | |� � �.t |j � � }|| j v r"| � || j | |� � |j | j v r'| � || j |j |� � d|j
j v r| � || j |� � | � || j
|� � |� � � |S )a� Match selectors against the given element.
:param element:
An :class:`ElementWrapper`.
:returns:
A list of the payload objects associated to selectors that match
element, in order of lowest to highest
:attr:`compiler.CompiledSelector` specificity and in order of
addition with :meth:`add_selector` among selectors of equal
specificity.
N�lang)r r �add_relevant_selectors�classesr r r r
�
namespace_urlr �
etree_element�attribr r �sort)r �element�relevant_selectorsr �
lower_names r �matchz
Matcher.matchB s� � � ���:�!�g�j�D�4E�&E�&E��'�'���*�7�:�6�8J�
L�
L�
L� "�/� S� S�J��T�1�1�1��+�+��T�1�*�=�?Q�S� S� S�� !��!3�4�4�
���8�8�8��'�'���8��D�"�
$�
$�
$� � �D�$<�<�<��'�'���1�'�2G�H�"�
$�
$�
$� �W�*�1�1�1��'�'���1�3E�
G�
G�
G�
�#�#�G�T�-A�CU�V�V�V����!�!�!�!�!r c �d � |D ],\ }}}}} || � � r|� ||||f� � �-d S )N)r )r/ � selectorsr0 r r r �pseudor$ s r r) zMatcher.add_relevant_selectorsm sY � �9B� Q� Q�5�D�+�u�f�g��t�G�}�}�
Q�"�)�)�;��v�w�*O�P�P�P�� Q� Qr N) �__name__�
__module__�__qualname__�__doc__r r&