Current File : //lib/python3.6/site-packages/cssselect/__pycache__/parser.cpython-36.pyc |
3
ǁaW�\ � @ s> d Z ddlZddlZddlZejd dk r4eZeZne Ze
Zdd� ZG dd� de�Z
G dd � d e
e�ZG d
d� de�ZG dd
� d
e�ZG dd� de�ZG dd� de�ZG dd� de�ZG dd� de�ZG dd� de�ZG dd� de�ZG dd� de�ZG dd� de�Zejd�Zejd�Zejd �Zd!d"� Zd#d$� Z d%d&� Z!dNd(d)�Z"d*d+� Z#d,d-� Z$d.d/� Z%G d0d1� d1e&�Z'G d2d3� d3e'�Z(G d4d5� d5�Z)d6d7� Z*e*d8�Z+e*d9�Z,e*d:�Z-e*d;�Z.e*d<�e*d=�d>�Z/ejd?�j0Z1eje)j2ej3�j0Z4ejd@�j0Z5e6edA��r
ej7dBdC�Z8ndDdE� Z8dFdG� Z9dHdI� Z:dJdK� Z;G dLdM� dMe�Z<dS )Oa
cssselect.parser
================
Tokenizer, parser and parsed objects for CSS selectors.
:copyright: (c) 2007-2012 Ian Bicking and contributors.
See AUTHORS for more details.
:license: BSD, see LICENSE for more details.
� N� c C s | j d�j� jd�S )z(Lower-case, but only in the ASCII range.�utf8)�encode�lower�decode)�string� r �/usr/lib/python3.6/parser.py�ascii_lower s r
c @ s e Zd ZdZdS )�
SelectorErrorz�Common parent for :class:`SelectorSyntaxError` and
:class:`ExpressionError`.
You can just use ``except SelectorError:`` when calling
:meth:`~GenericTranslator.css_to_xpath` and handle both exceptions types.
N)�__name__�
__module__�__qualname__�__doc__r r r r r ! s r c @ s e Zd ZdZdS )�SelectorSyntaxErrorz3Parsing a selector that does not match the grammar.N)r r
r r r r r r r * s r c @ s* e Zd ZdZd dd�Zdd� Zdd� ZdS )
�Selectoru"
Represents a parsed selector.
:meth:`~GenericTranslator.selector_to_xpath` accepts this object,
but ignores :attr:`pseudo_element`. It is the user’s responsibility
to account for pseudo-elements and reject selectors with unknown
or unsupported pseudo-elements.
Nc C s, || _ |d k r"t|t� r"t|�}|| _d S )N)�parsed_tree�
isinstance�FunctionalPseudoElementr
�pseudo_element)�selfZtreer r r r �__init__: s
zSelector.__init__c C sB t | jt�rt| j�}n| jr*d| j }nd}d| jj| j|f S )Nz::%s� z%s[%r%s])r r r �repr� __class__r r )r r r r r �__repr__U s zSelector.__repr__c C s( | j j� \}}}| jr|d7 }|||fS )z�Return the specificity_ of this selector as a tuple of 3 integers.
.. _specificity: http://www.w3.org/TR/selectors/#specificity
� )r �specificityr )r �a�b�cr r r r _ s zSelector.specificity)N)r r
r r r r r r r r r r 0 s
r c @ s( e Zd ZdZdd� Zdd� Zdd� ZdS ) �Classz(
Represents selector.class_name
c C s || _ || _d S )N)�selector�
class_name)r r"