From 7d5ca7ec7d607ad20cf22aa382557a05a18ba655 Mon Sep 17 00:00:00 2001 From: Elias Dorneles Date: Mon, 24 Aug 2015 11:40:38 -0300 Subject: [PATCH 1/2] adding docstrings for csstranslator --- parsel/csstranslator.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/parsel/csstranslator.py b/parsel/csstranslator.py index b44463fa..0611f34d 100644 --- a/parsel/csstranslator.py +++ b/parsel/csstranslator.py @@ -42,12 +42,19 @@ def join(self, combiner, other): class TranslatorMixin(object): + """This mixin adds support to CSS pseudo elements via dynamic dispatch. + + Currently supported pseudo-elements are ``::text`` and ``::attr(ATTR_NAME)``. + """ def xpath_element(self, selector): xpath = super(TranslatorMixin, self).xpath_element(selector) return XPathExpr.from_xpath(xpath) def xpath_pseudo_element(self, xpath, pseudo_element): + """ + Dispatch method that transform XPath to support pseudo-element + """ if isinstance(pseudo_element, FunctionalPseudoElement): method = 'xpath_%s_functional_pseudo_element' % ( pseudo_element.name.replace('-', '_')) @@ -55,7 +62,7 @@ def xpath_pseudo_element(self, xpath, pseudo_element): if not method: raise ExpressionError( "The functional pseudo-element ::%s() is unknown" - % pseudo_element.name) + % pseudo_element.name) xpath = method(xpath, pseudo_element) else: method = 'xpath_%s_simple_pseudo_element' % ( @@ -69,12 +76,14 @@ def xpath_pseudo_element(self, xpath, pseudo_element): return xpath def xpath_attr_functional_pseudo_element(self, xpath, function): + """Support selecting attribute values using ::attr() pseudo-element + """ if function.argument_types() not in (['STRING'], ['IDENT']): raise ExpressionError( "Expected a single string or ident for ::attr(), got %r" % function.arguments) return XPathExpr.from_xpath(xpath, - attribute=function.arguments[0].value) + attribute=function.arguments[0].value) def xpath_text_simple_pseudo_element(self, xpath): """Support selecting text nodes using ::text pseudo-element""" @@ -87,4 +96,3 @@ class GenericTranslator(TranslatorMixin, OriginalGenericTranslator): class HTMLTranslator(TranslatorMixin, OriginalHTMLTranslator): pass - From cc9e59133829438adb9caebe04676bd4999bb28e Mon Sep 17 00:00:00 2001 From: Elias Dorneles Date: Mon, 24 Aug 2015 12:04:18 -0300 Subject: [PATCH 2/2] grammar fix --- parsel/csstranslator.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/parsel/csstranslator.py b/parsel/csstranslator.py index 0611f34d..e49a2e8c 100644 --- a/parsel/csstranslator.py +++ b/parsel/csstranslator.py @@ -53,7 +53,7 @@ def xpath_element(self, selector): def xpath_pseudo_element(self, xpath, pseudo_element): """ - Dispatch method that transform XPath to support pseudo-element + Dispatch method that transforms XPath to support pseudo-element """ if isinstance(pseudo_element, FunctionalPseudoElement): method = 'xpath_%s_functional_pseudo_element' % (