+ **FEATURE**: ``xml.dom.DOMException``\ s raised do now contain infos about the position where the exception occured. An exception might for example have been raised as::
raise xml.dom.SyntaxErr('the message', 10, 5)
(where 10 is the line and 5 the column of the offending text).
Therefor you may **not** simply use ``str(e)`` to get the exception message but you have to use ``msg, line, col = e.args[0], e.args[1], e.args[2]``. Additionally exceptions raised have attributes ``e.line`` and ``e.col``.
+ **FEATURE**: page rule accepts named page selector now, e.g. ``page intro`` or ``page main:left``.
+ **FEATURE**: Script ``cssparse`` has new option ``-u URL`` which parses the given URL.
+ **FEATURE**: Started implementation of CSS profiles...
- moved ``cssutils.css.cssproperties.cssvalues`` to ``cssutils.profiles.css2``
- added CSS Color Module Level 3 with properties ``color`` and ``opacity``. Not implemented are SVG color names.
- unknown properties raise a WARNING instead of INFO now
- refactored CSSValue and subclasses therefore there may be some minor changes in serializing or value reporting
+ ``getStringValue()`` returns a string without quotes or for URIs a value without surrounding ``url(...)`` now
+ FEATURE **experimental**: Added class ``CSSColor`` which is used for RGB, RGBA, HSL, HSLA and HEX color values of ``CSSValue`` respective ``CSSPrimitiveValue``.
+ FEATURE (strange): IE only CSS expressions *should* be parsed and serialized now an an ``Expression`` value. I have not tested this deeply and there may be problems but for some common cases this should work, e.g. for hacking maxwidth for IE you may define the following::
width: expression(document.body.clientWidth > 1000 ? "1000px": "100%")
Usage of CSS expressions is strongly discouraged as they do not validate AND may slow down the rendering and browser quite a lot!
+ BUGFIX/IMPROVEMENT: rewrite of CSSValue and related classes
- BUGFIX: Parsing of a CSSValue like ``red /**/`` (value, Space, comment) fixed.
- BUGFIX: Parsing values with ``+`` operator fixed.
- BUGFIX: ``CSSValueList.__str__`` added (missing last underscore rendered it useless)
- IMPROVEMENT: Serializing e.g. ``rgb(0,0,0)`` now defaults to ``rgb(0, 0, 0)``
- IMPROVEMENT: HEX values are minified if possible, e.g. ``Bitbucket 112233`` results in ``Bitbucket 123``
- IMPROVEMENT: Improved handling of zero lengths like ``-0, 0.0, .0mm`` etc all should come out simply as ``0`` now
- IMPROVEMENT: number values are normalized now, e.g. ``010.0px`` results in ``10px`` etc
- IMPROVEMENT: DIMENSIONs are normalized now, e.g. ``1pX`` results in ``1px``
- IMPROVEMENT: for CSSValueList values like e.g. ``margin: 0 1px`` there are no more false WARNINGs emitted
- IMPROVEMENT: Comments should be parsed much better now
- IMPROVEMENT: ``CSSValue.getFloattype(unitType=None)``, parameter is now optional in which case the current dimension is used.
- fixed lots of other minor bugs related to CSSValue
- **BUGFIX**: Fixed tokenizing/parsing of rather strange STRING and URI values like:
- Valid::
"somestring followed by escaped NL\
and continuing here."
and now results in::
"somestring followed by escaped NL and continuing here."
- ``url())`` => not allowed and must be written as ``url(")")``
- **BUGFIX**: Setting ``CSSPageRule.selectorText`` does actually work now.
- BUGFIX: Other priority values than ``!important`` are parsed now. Nevertheless they log an ERROR or raise a SyntaxErr.
- BUGFIX: Fixed Issue Bitbucket 14, added ``CSSStyleDeclaration().borderLeftWidth``. But prefer to use ``CSSStyleDeclaration()['border-left.width']``.
+ **API CLEANUP**:
- moved validating of a property from ``CSSValue`` to ``Property``
- removed ``CSSValue.valid`` as it does not make sense anymore
- removed private init parameter ``CSSValue_propertyName``
- private attribute ``CSSValue._value`` contains ``(value, type)`` now. Do not use as it may change again
- removed ``Property.normalname`` (DEPRECATED from 0.9.5 ), use ``Property.name`` instead
- removed long deprecated ``CSSStyleSheet.replaceUrls``, use ``cssutils.replaceUrls()`` instead
- ``cssutils.utils.Base`` and ``cssutils.utils.Base2`` have been changed and will be removed in favor of new ``cssutils.utils._NewBase``. These are all internal helper classes and should not be used in client code anyway but ye be warned...
+ IMPROVEMENT:
- minor changes due to deprecation in Py3k. cssutils is NOT Py3k compliant yet though and it will probably take a while until it will be...