scripts

The provided scripts are available as a standalone script which is installed in the default PYTHONHOME/scripts directory. Additionally an API for the functionality of the scripts is provided for use in programs.

CSSParse

Script version of cssutils.parseString(), cssutils.parseFile() and cssutils.parseUrl().

Usage: cssparse-script.py [options] filename1.css [filename2.css …]

[>filename_combined.css] [2>parserinfo.log]

Options:
-h, --help

show this help message and exit

-s, --string

parse given string

-u URL, --url=URL

parse given url

-e ENCODING, --encoding=ENCODING

encoding of the file or override encoding found

-m, --minify

minify parsed CSS

-d, --debug

activate debugging output

CSSCapture

CSSCapture downloads all referenced CSS stylesheets of a given URL and saves them to a given target directory.

programmatic use

example:

>>> url = 'http://cthedot.de'
>>> from cssutils.script import CSSCapture
>>> capturer = CSSCapture(ua=None, log=None, defaultloglevel=logging.INFO)
>>> stylesheetlist = capturer.capture(url)
>>> print stylesheetlist
[cssutils.css.CSSStyleSheet(href=u'http://cthedot.de/css/default.css', media=None, title=None),
 cssutils.css.CSSStyleSheet(href=u'http://cthedot.de/static/alternate1.css', media=None, title=u'red'),
 cssutils.css.CSSStyleSheet(href=u'http://cthedot.de/static/alternate2.css', media=None, title=u'blue')]

script use

Usage: csscapture-script.py [options] URL

Options:
-h, --help

show this help message and exit

-d, --debug

show debug messages during capturing

-m, --minified

saves minified version of captured files

-n, --notsave

if given files are NOT saved, only log is written

-s SAVETO, --saveto=SAVETO

saving retrieved files to “saveto”, defaults to “_CSSCapture_SAVED”

-u UA, --useragent=UA

useragent to use for request of URL, default is urllib2s default

The following example outputs a list of stylesheets found with title and href of the found stylesheet. (PYTHONHOME/Scripts should be on your PATH. Additional log output is not shown.):

> csscapture http://cthedot.de/static/cssutils/examples/capturefrom.html -n

1.
    encoding: 'utf-8'
    title: u'html 1: link1'
    href: u'http://cthedot.de/css/default.css'
2.
    encoding: 'utf-8'
    title: u'html 2: style1'
    href: None
3.
    encoding: 'utf-8'
    title: u'HTML 2.1: @import'
    href: u'http://cthedot.de/static/cssutils/examples/inlineimport1.css'
4.
    encoding: 'utf-8'
    title: u'html 3: link2'
    href: u'http://cthedot.de/static/cssutils/examples/link1.css'
5.
    encoding: 'utf-8'
    title: u'link1: s1'
    href: u'http://cthedot.de/static/cssutils/examples/linkimport1.css'
6.
    encoding: 'utf-8'
    title: None
    href: u'http://cthedot.de/static/cssutils/examples/css/linkimportimport1.css'
7.
    encoding: 'utf-8'
    title: None
    href: u'http://cthedot.de/static/cssutils/examples/css/linkimportimport2.css'
8.
    encoding: 'iso-8859-1'
    title: u'link1: s2'
    href: u'http://cthedot.de/static/cssutils/examples/linkimport2.css'
9.
    encoding: 'utf-8'
    title: u'html 4: style2'
    href: None
10.
    encoding: 'utf-8'
    title: None
    href: u'http://cthedot.de/static/cssutils/examples/css/inlineimport2.css'
11.
    encoding: 'utf-8'
    title: None
    href: u'http://cthedot.de/static/cssutils/examples/css/inlineimportimport1.css'

CSSCombine

csscombine may be used to combine several sheets loaded from a main sheet via @import rules. Nested @import rules are resolved from cssutils 0.9.6a1.

The resulting combined sheet (optionally minified) is send to stdout, info and error messages are handled by the normal cssutils log.

csscombine may also be used to change the encoding of the stylesheet if a target encoding is given.

programmatic use

example:

>>> from cssutils.script import csscombine
>>> proxypath = 'sheets/import.css'
>>> print csscombine(path=proxypath, sourceencoding=None, targetencoding='utf-8', minify=False)
INFO    Combining files from None
INFO    Processing @import u'import/import2.css'
INFO    Processing @import u'../import3.css'
INFO    @import: Adjusting paths for u'../import3.css'
INFO    Processing @import u'import-impossible.css'
INFO    @import: Adjusting paths for u'import-impossible.css'
WARNING Cannot combine imported sheet with given media as other rules then comments or stylerules found cssutils.css.CSSNamespaceRule(namespaceURI=u'y', prefix=u''), keeping u'@import "import-impossible.css" print;'
INFO    @import: Adjusting paths for u'import/import2.css'
INFO    Using target encoding: 'utf-8'
@charset "utf-8";
/* START @import "import/import2.css" */
@import "import-impossible.css" print;
/* START @import "../import3.css" */
/* import3 */
.import3 {
    /* from ./import/../import3.css */
    background: url(images/example3.gif);
    background: url(images/example3.gif);
    background: url(import/images2/example2.gif);
    background: url(import/images2/example2.gif);
    background: url(images/example3.gif)
    }
/* START @import "import-impossible.css" */
.import2 {
    /* sheets/import2.css */
    background: url(http://example.com/images/example.gif);
    background: url(//example.com/images/example.gif);
    background: url(/images/example.gif);
    background: url(import/images2/example.gif);
    background: url(import/images2/example.gif);
    background: url(images/example.gif);
    background: url(images/example.gif)
    }
.import {
    /* ./import.css */
    background-image: url(images/example.gif)
    }

script use

Usage: csscombine-script.py [options] [path]

Options:
-h, --help

show this help message and exit

-u URL, --url=URL

URL to parse (path is ignored if URL given)

-s SOURCEENCODING, --sourceencoding=SOURCEENCODING

encoding of input, defaulting to “css”. If given overwrites other encoding information like @charset declarations

-t TARGETENCODING, --targetencoding=TARGETENCODING

encoding of output, defaulting to “UTF-8”

-m, --minify

saves minified version of combined files, defaults to False