diff --git a/CHANGES.rst b/CHANGES.rst index c02803e5..8272cd78 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -1,3 +1,8 @@ +v2.3.0 +====== + +#7: Add support for a ``calc()`` within a ``calc()``. + v2.2.0 ====== diff --git a/cssutils/css/csspagerule.py b/cssutils/css/csspagerule.py index adffa922..0985340a 100644 --- a/cssutils/css/csspagerule.py +++ b/cssutils/css/csspagerule.py @@ -203,7 +203,7 @@ def S(expected, seq, token, tokenizer=None): return expected def IDENT(expected, seq, token, tokenizer=None): - "" + """ """ val = self._tokenvalue(token) if 'page' == expected: if self._normalize(val) == 'auto': diff --git a/cssutils/css/value.py b/cssutils/css/value.py index ec2895ba..08dfcd1a 100644 --- a/cssutils/css/value.py +++ b/cssutils/css/value.py @@ -820,7 +820,9 @@ def _setCssText(self, cssText): ), ) - _operant = lambda: Choice(_DimensionProd(self), _CSSVariableProd(self)) # noqa + _operant = lambda: Choice( # noqa:E731 + _DimensionProd(self), _CalcValueProd(self), _CSSVariableProd(self) + ) prods = Sequence( Prod( diff --git a/cssutils/tests/test_value.py b/cssutils/tests/test_value.py index 340d1910..776b9872 100644 --- a/cssutils/tests/test_value.py +++ b/cssutils/tests/test_value.py @@ -74,6 +74,16 @@ def test_cssText(self): 'calc(1 / 1px )': ('calc(1 / 1px)', 1, 'calc(1 / 1px)'), 'calc( 1*1px )': ('calc(1 * 1px)', 1, 'calc(1 * 1px)'), 'calc( 1 / 1px )': ('calc(1 / 1px)', 1, 'calc(1 / 1px)'), + 'calc(calc(1px + 5px) * 4)': ( + 'calc(calc(1px + 5px) * 4)', + 1, + 'calc(calc(1px + 5px) * 4)', + ), + 'calc( calc(1px + 5px)*4 )': ( + 'calc(calc(1px + 5px) * 4)', + 1, + 'calc(calc(1px + 5px) * 4)', + ), 'calc(var(X))': (None, 1, None), 'calc(2 * var(X))': (None, 1, None), 'calc(2px + var(X))': (None, 1, None),