pkgsrc changes:
- Use REPLACE_PYTHON instead of REPLACE_INTERPRETER (no functional changes
intended)
- Use ALTERNATIVE and instruct PLIST and Makefile post-install target
accordingly to permit coexistence of multi-pkgs py-cssutils
Changes:
1.0.2 170304
------------
- FIXED issue #61: Nesting of `@media` rules
- FIXED issue #51 and #56: Slow font-family regex
- FIXED issue #68: failing tests on Python 3
- FIXED issue #69: our DOM implementation now delegates unsupported methods
- FIXED issue #72: importing now faster since regexes are no longer pre-cached on import time
1.0.1 151008
------------
- Fixed Python 3.5 compatibility
Problems found locating distfiles:
Package cabocha: missing distfile cabocha-0.68.tar.bz2
Package convertlit: missing distfile clit18src.zip
Package php-enchant: missing distfile php-enchant/enchant-1.1.0.tgz
Otherwise, existing SHA1 digests verified and found to be the same on
the machine holding the existing distfiles (morden). All existing
SHA1 digests retained for now as an audit trail.
cssutils.googlecode.com is gone, keep pypi.
0.9.10 130331
* BUGFIX: False HASH color values like #xyz were not being handled
properly (thanks to Teruaki Koizumi)
* Fixed issue #23: Tests do work properly in newer Python (>2.7.1?)
version now, old versions will report error. Before this was the
other way round but this makes more sense probably
* Fixed issue #24: rgba color values did not validate properly
* (Jason R. Coombs) Fixed issue #25: Cssutils installs “tests” package
* Fixed issue #27: Small magnitude float values serialized incorrectly
* Fixed issue #28: Standalone semicolons in CSSStyleDeclaration is
now simply stripped and does not remove directly following property
too
0.9.10b1 120428
* REGRESSION: Valid profiles reported by validation may not be right
but as these hardly say anything in the real world anyway the
advancements in the following bugfixes are probably worth this.
Profiles.validateWithProfile currently not working but should be
hardly used anyway. As a workaround remove all profiles and add
just the ones you want to use for your application
* BUGFIX: Profiles have been updated. Multiple profiles can be added
via addProfiles and this is preferred to adding separate profiles
with addProfile. Profiles do check for updated macros now so that
e.g. CSS3 Colors defined in a different profile are valid for all
properties defined before. This may lead to a reset of all properties
and so may be an extremely expensive operation.
* BUGFIX: font-family names in profile CSS3_FONTS seem to have been
defined wrongly. Family names containing spaces are valid now, even
without quotes.
* BUGFIX: for Python 2.5 compatibility (thanks @Jason)
* IMPROVEMENT: Added all X11 color names and corresponding RGBA values
Pkgsrc changes:
---------------
Deal with /usr/bin/env python
Upstream changes:
-----------------
0.9.9 final 120131
- FEATURE: Implemented API for ``MarginRule`` objects inside ``CSSPageRule``, see http://www.w3.org/TR/css3-page/. You can also use e.g. ``CSSPageRule['@top-left']`` to retrieve the MarginRule it it is set etc. All dict like methods should be there. If a margin is set twice or more all properties are merged into a single margin rule. Double set properties are all kept though (see below).
- FEATURE: ``parseStyle()`` has optional parameter ``validate=False`` now too to disable validation (default is always ``True``).
- FEATURE: ``CSSStyleDeclaration.setProperty`` has new option ``replace=True``. if True (DEFAULT) the given property will replace a present property. If False a new property will be added always. The difference to `normalize` is that two or more properties with the same name may be set, useful for e.g. stuff like::
background: red;
background: rgba(255, 0, 0, 0.5);
which defines the same property but only capable UAs use the last property value, older ones use the first value.
+ CHANGE: @rules attribute ``atkeyword`` value is now normalized. The actual keyword (example ``@IMPorT``) is kept and is optionally reserialized but in the example ``atkeyword == '@import'``
- BUGFIX: 'auto' is now an invalid CSSPageRule pagename.
- BUGFIX: Fixed issue for GoogleAppEngine (GAE) which somehow handles codecs differently. ``parseUrl`` should work now.
0.9.8
-----
0.9.8 final 111210
- FEATURE: Feature Request (#4) to be able to disable validation of a stylesheet has been implemented. Add Parameter ``validate=False`` for parsing.
+ BUGFIX: Fixed#5 Unicode escaping inside strings. Thanks to Simon Sapin
+ BUGFIX: The integer is optional in counter-reset and counter-increment, and not only on the first counter. Thanks to Simon Sapin
+ BUGFIX: Fix for unicode replacements by Denis Bilenko, thanks! https://bitbucket.org/cthedot/cssutils/pull-request/1/fix-a-bug-in-regex-which-accidentally
- IMPROVEMENT: ``parseStyle`` moved to CSSParser, thanks to Simon Sapin
0.9.8a3 110727
+ BUGFIX: Fixed validation of ``size`` property (thanks to Simon Sapin)
+ BUGFIX: Fixed Issue #55 (thanks to Simon Sapin): `outline-color` property was missing from validation.
+ BUGFIX: Fixed resolution of encoding detection of a stylesheet which did not use @charset in certain circumstances (mainly when imported sheets use different encoding than importing one which should be quite rare actually).
- FEATURE: Added ``URIValue.absoluteUri`` (thanks to Simon Sapin)
- FEATURE: Issue #53 feature request: Added new Preference option ``cssutils.ser.prefs.indentClosingBrace``. Defines if closing brace of block is indented to match indentation of the block (default) oder match indentation of selector.
- FEATURE: Feature request: Added new Preference option ``cssutils.ser.prefs.omitLeadingZero``. Defines if values between -1 and 1 should omit the 0, like ``.5px``. Minified settings do this, else 0 is kept by default.
+ CHANGE (minor): Some error messages have slightly changed due to a simpler compatibility to Python 3. Problem are any ``u'...'`` texts inside error messages which now are simplified, some without and quotes. Changed are e.g. error messages by ``Property``.
- **IMPROVEMENT**: Python 3 support. At least the unittests run in Python 2.5, 2.6, 2.7, 3.2 and Jython 2.5.1 now. Both encutils (with support by Fredrik Hedman, thanks!) and cssutils (thanks to Jaraco) and the CSS codec (thanks to Walter Dörwald) seem to work with Python 3 (tested on Python 3.2.1 Win64). Tests use Mock instead of MiniMock now as former is available for Python 2.x and 3.x.
- **IMPROVEMENT**: Parsing of longer (and probably invalid) ``font`` or ``font-family`` values was *extremely* slow due to a very complex regex. This has been changed and parsing of specific stylesheets using these values should be much faster now. (``macros[Profiles.CSS_LEVEL_2]['font-family']`` is gone so if you used this in your own validation modules you need to check the source in `profiles.py`.)
- IMPROVEMENT: Fixed Issue #54 (thanks to Simon Sapin): Short hand like `#f80` color value object have correct red, green and blue property values now. Also ``hsl()`` and ``hsla()`` colors report (almost) correct values (due to rounding problems).
- **Source control has moved to bitbucket https://bitbucket.org/cthedot/cssutils**. Older Issues are currently still at Google Code, newer at Bitbucket. Please do not use Google Code for new issue reports anymore!
0.9.8a2 110611
- BUGFIX: Fixed Issue #59 which showed a rather strange problem with longer space separated lists of font-family values being so slow to actually stop parsing.
- BUGFIX/IMPROVEMENT: Fixed Issue #48. ``CSSParser.parseUrl()`` uses the defined fetcher of this parser *for the initial stylesheet* at url too and not just the imported sheets *from* this sheet.
- BUGFIX: Fixed Issue #50 which prevented cssutils parsing the acid2.css file correctly. Problem were selectors starting directly with ``[class]`` (an attribute selector).
+ **API CHANGE (major)**
(Known) named colors are parsed as ColorValue objects now. These are the 16 simple colors (black, white, etc) and `transparent` but not all Extended color keywords yet. Also changed ``ColorValue.type`` to ``Value.COLOR_VALUE``. ColorValue has additional properties ``red, green, blue, alpha`` and ``colorType`` which is one of IDENT, HASH or FUNCTION for now.
+ API CHANGE (minor)
Removed already DEPRECATED ``cssutils.parse`` and ``CSSParser.parse``. Use the more specific functions/methods ``parseFile parseString parseUrl`` instead.
Removed already DEPRECATED ``cssutils.log.setlog`` and ``.setloglevel``. Use ``.setLog`` and ``.setLevel`` instead.
Removed already DEPRECATED ``cssutils.ser.keepUnkownAtRules`` (note the typo). Use ``.keepUnknownAtRules`` instead.
- IMPROVEMENT: Added validation profiles for some properties from `CSS Backgrounds and Borders Module Level 3 <http://www.w3.org/TR/css3-background/>`__, `CSS3 Basic User Interface Module <http://www.w3.org/TR/css3-ui/#resize>`__, `CSS Text Level 3 <http://www.w3.org/TR/css3-text/>`__
mainly `cursor`, `outline`, `resize`, `box-shadow`, `text-shadow`
0.9.8a1 101212
+ **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 issue #41, #42, #45, #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 ;)
Remove devel/py-ctypes (only needed by and supporting python24).
Remove PYTHON_VERSIONS_ACCEPTED and PYTHON_VERSIONS_INCOMPATIBLE
lines that just mirror defaults now.
Miscellaneous cleanup while editing all these files.
Based on PR#44867 by Olaf 'Rhialto' Seibert.
A Python package to parse and build CSS Cascading Style Sheets.
Querying a parsed stylesheet on a given document or element is planned for a
future release, for now see the example examples/style.py.