This module contains functions related to the handling of CSS.
def _isstyle(path):
def replaceurls(stylesheet, replacer):
Replace all URLs appearing in the CSSStyleSheet stylesheet.
For each URL the function replacer will be called and the URL will
be replaced with the result.
def geturls(stylesheet):
Return a list of all URLs appearing in the CSSStyleSheet
stylesheet.
def _getmedia(stylesheet):
def _doimport(wantmedia, parentsheet, base):
def iterrules(node, base=None, media=None, title=None):
Return an iterator for all CSS rules defined in the HTML tree node.
This will parse the CSS defined in any html.style or
html.link element (and recursively in those stylesheets imported
via the @import rule). The rules will be returned as
CSSStyleRule objects from the cssutils package (so this
requires cssutils).
The base argument will be used as the base URL for parsing the
stylesheet references in the tree (so None means the URLs will be
used exactly as they appear in the tree). All URLs in the style properties
will be resolved.
If media is given, only rules that apply to this media type will
be produced.
title can be used to specify which stylesheet group should be used.
If title is None only the persistent and preferred
stylesheets will be used. If title is a string only the persistent
stylesheets and alternate stylesheets with that style name will be used.
For a description of "persistent", "preferred" and "alternate" stylesheets see <http://www.w3.org/TR/2002/WD-xhtml2-20020805/mod-styleSheet.html#sec_20.1.2.>
def applystylesheets(node, base=None, media=None, title=None):
applystylesheets modifies the XIST tree node by removing all
CSS (from html.link and html.style elements and their
@imported stylesheets) and puts the resulting style properties into
the style attribute of every affected element instead.
For the meaning of base, media and title see
iterrules.
def _is_nth_node(iterator, node, index):
def _is_nth_last_node(iterator, node, index):
def _children_of_type(node, type):
class CSSWeightedSelector(ll.xist.xfind.Selector):
Base class for all CSS pseudo-class selectors.
class CSSHasAttributeSelector(CSSWeightedSelector):
A CSSHasAttributeSelector selector selects all element nodes
that have an attribute with the specified XML name.
def __init__(self, attributename):
selfdef matchpath(self, path):
selfdef __str__(self):
selfclass CSSAttributeListSelector(CSSWeightedSelector):
A CSSAttributeListSelector selector selects all element nodes
where an attribute with the specified XML name has the specified word
among the white space-separated list of words in the attribute value.
def __init__(self, attributename, attributevalue):
selfdef matchpath(self, path):
selfdef __str__(self):
selfclass CSSAttributeLangSelector(CSSWeightedSelector):
A CSSAttributeLangSelector selector selects all element nodes
where an attribute with the specified XML name either is exactly the
specified value or starts with the specified value followed by "-".
def __init__(self, attributename, attributevalue):
selfdef matchpath(self, path):
selfdef __str__(self):
selfclass CSSFirstChildSelector(CSSWeightedSelector):
A CSSFirstChildSelector selector selects all element nodes
that are the first child of its parent.
def matchpath(self, path):
selfdef __str__(self):
selfclass CSSLastChildSelector(CSSWeightedSelector):
A CSSLastChildSelector selector selects all element nodes
that are the last child of its parent.
def matchpath(self, path):
selfdef __str__(self):
selfclass CSSFirstOfTypeSelector(CSSWeightedSelector):
A CSSLastChildSelector selector selects all element nodes
that are the first of its type among their siblings.
def matchpath(self, path):
selfdef __str__(self):
selfclass CSSLastOfTypeSelector(CSSWeightedSelector):
A CSSLastChildSelector selector selects all element nodes
that are the last of its type among their siblings.
def matchpath(self, path):
selfdef __str__(self):
selfclass CSSOnlyChildSelector(CSSWeightedSelector):
A CSSOnlyChildSelector selector selects all element nodes that are
the only element among its siblings.
def matchpath(self, path):
selfdef __str__(self):
selfclass CSSOnlyOfTypeSelector(CSSWeightedSelector):
A CSSOnlyOfTypeSelector selector selects all element nodes that are
the only element of its type among its siblings.
def matchpath(self, path):
selfdef __str__(self):
selfclass CSSEmptySelector(CSSWeightedSelector):
A CSSEmptySelector selector selects all element nodes that are
empty (i.e. they contain no elements or non-whitespace text).
def matchpath(self, path):
selfdef __str__(self):
selfclass CSSRootSelector(CSSWeightedSelector):
A CSSRootSelector selector selects the root element.
def matchpath(self, path):
selfdef __str__(self):
selfclass CSSLinkSelector(CSSWeightedSelector):
A CSSLinkSelector selector selects all HTML links.
def matchpath(self, path):
selfdef __str__(self):
selfclass CSSInvalidPseudoSelector(CSSWeightedSelector):
def matchpath(self, path):
selfdef __str__(self):
selfclass CSSHoverSelector(CSSInvalidPseudoSelector):
class CSSActiveSelector(CSSInvalidPseudoSelector):
class CSSVisitedSelector(CSSInvalidPseudoSelector):
class CSSFocusSelector(CSSInvalidPseudoSelector):
class CSSAfterSelector(CSSInvalidPseudoSelector):
class CSSBeforeSelector(CSSInvalidPseudoSelector):
class CSSFunctionSelector(CSSWeightedSelector):
Base class of all CSS selectors that require an argument.
def __init__(self, value=None):
selfdef __str__(self):
selfclass CSSNthChildSelector(CSSFunctionSelector):
A CSSNthChildSelector selector selects all element node that are
the n-th element among their siblings.
def matchpath(self, path):
selfclass CSSNthLastChildSelector(CSSFunctionSelector):
A CSSNthLastChildSelector selector selects all element node that are
the n-th last element among their siblings.
def matchpath(self, path):
selfclass CSSNthOfTypeSelector(CSSFunctionSelector):
A CSSNthOfTypeSelector selector selects all element nodes that are
the n-th of its type among their siblings.
def matchpath(self, path):
selfclass CSSNthLastOfTypeSelector(CSSFunctionSelector):
A CSSNthOfTypeSelector selector selects all element nodes that are
the n-th last of its type among their siblings.
def matchpath(self, path):
selfclass CSSTypeSelector(ll.xist.xfind.Selector):
def __init__(self, type=None, xmlns=None, *selectors):
selfdef matchpath(self, path):
selfdef __str__(self):
selfclass CSSAdjacentSiblingCombinator(ll.xist.xfind.BinaryCombinator):
A CSSAdjacentSiblingCombinator works similar to an
AdjacentSiblingCombinator except that only preceding elements
are considered.
def matchpath(self, path):
selfdef __str__(self):
selfclass CSSGeneralSiblingCombinator(ll.xist.xfind.BinaryCombinator):
A CSSGeneralSiblingCombinator works similar to an
GeneralSiblingCombinator except that only preceding elements
are considered.
def matchpath(self, path):
selfdef __str__(self):
selfdef selector(selectors, prefixes=None):
Create a walk filter that will yield all nodes that match the specified
CSS expression. selectors can be a string or a
cssutils.css.selector.Selector object. prefixes
may be a mapping mapping namespace prefixes to namespace names.
def parsestring(data, base=None, encoding=None):
Parse the string data into a cssutils stylesheet. base
is the base URL for the parsing process, encoding can be used to force
the parser to use the specified encoding.
def parsestream(stream, base=None, encoding=None):
Parse a cssutils stylesheet from the stream stream. base
is the base URL for the parsing process, encoding can be used to force
the parser to use the specified encoding.
def parsefile(filename, base=None, encoding=None):
Parse a cssutils stylesheet from the file named filename.
base is the base URL for the parsing process (defaulting to the
filename itself), encoding can be used to force the parser to use the
specified encoding.
def parseurl(name, base=None, encoding=None, *args, **kwargs):
Parse a cssutils stylesheet from the URL name. base is
the base URL for the parsing process (defaulting to the final URL of the
response, i.e. including redirects), encoding can be used to force
the parser to use the specified encoding. arg and kwargs are
passed on to URL.openread, so you can pass POST data and request
headers.