+ **API CHANGE (major)**
replace CSSValue with PropertyValue, Value and other classes.
NEW CLASSES:
:class:`cssutils.css.PropertyValue`
replaces CSSValue and CSSValueList
- is iterable (iterates over all single Value objects which in soruce CSS might be separated by "," "/" or " "
- a comma separated list of IDENT values is no longer handled as a single String (e.g. ``Arial, sans-serif``)
:class:`cssutils.css.Value`
replaces CSSPrimitiveValue with separate ``value`` and ``type`` info (value is typed, so e.g. string for e.g. STRING, IDENT or URI values, int or float) and is base class for more specific values like:
:class:`cssutils.css.URIValue`
replaces CSSPrimitiveValue, additional attribute ``uri``
:class:`cssutils.css.DimensionValue`
replaces CSSPrimitiveValue, additional attribute ``dimension``
:class:`cssutils.css.ColorValue`
replaces CSSPrimitiveValue, additional attribute ``red``, ``green``, ``blue`` and ``alpha``
**TODO: Not yet complete, only rgb, rgba, hsl, hsla and has values use this object and color and alpha information no done yet!**
:class:`cssutils.css.CSSFunction`
replaces CSSPrimitiveValue function, not complete yet
also renamed ``ExpressionValue`` to :class:`cssutils.css.MSValue` with new API
- IMPROVEMENT/CHANGE: Validation of color values is tighter now. Values like ``hsl(1, 2, 3)`` do not validate as it must be ``hsl(1, 2%, 3%)``. This mostly effects HSL/A and RGB/A notation.
- **IMPROVEMENT**: New Value parsing and API accelerate parsing of style declarations which take about 20-30% less time now. Of course this depends on the complexity of your styles.
+ BUGFIX: fixes Bitbucket 41, Bitbucket 42, Bitbucket 45, Bitbucket 46
PropertyValue.value returns value without any comments now, else use PropertyValue.cssText
- FEATURE: ``cssutils.replaceUrls()`` accepts as first argument a `cssutils.css.CSSStyleSheet` but now also a
:class:`cssutils.css.CSSStyleDeclaration` object, so may be used like the following which is useful when you work with HTML style attributes::
>>> style = cssutils.parseStyle("background-image: url(1.png), url('2.png')")
>>> cssutils.replaceUrls(style, lambda url: 'prefix/'+url)
>>> print style.cssText
background-image: url(prefix/1.png), url(prefix/2.png)
(I omitted the validation error message as more than one background-image is not yet defined in the cssutils validator but does parse through without problems)
+ CHANGE: explicit `+` of any dimension, percentage of number value is kept now instead of being stripped as if put explicitly in the author SHOULD have meant something ;)