From 8c4ea60e227e94bcf1873ef007e81ef0f725473f Mon Sep 17 00:00:00 2001 From: nathanhazz Date: Mon, 26 Apr 2021 10:57:05 -0300 Subject: [PATCH 1/4] Add support for `calc()` within a calc. --- cssutils/css/value.py | 2 +- cssutils/tests/test_value.py | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/cssutils/css/value.py b/cssutils/css/value.py index ec2895ba..c5a224e4 100644 --- a/cssutils/css/value.py +++ b/cssutils/css/value.py @@ -820,7 +820,7 @@ def _setCssText(self, cssText): ), ) - _operant = lambda: Choice(_DimensionProd(self), _CSSVariableProd(self)) # noqa + _operant = lambda: Choice(_DimensionProd(self), _CalcValueProd(self), _CSSVariableProd(self)) # noqa prods = Sequence( Prod( diff --git a/cssutils/tests/test_value.py b/cssutils/tests/test_value.py index 340d1910..c84e31a8 100644 --- a/cssutils/tests/test_value.py +++ b/cssutils/tests/test_value.py @@ -74,6 +74,8 @@ 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), From 2489eb083d227778061afb7c1ba5d8f2b15f2397 Mon Sep 17 00:00:00 2001 From: "Jason R. Coombs" Date: Sun, 23 May 2021 22:11:32 -0400 Subject: [PATCH 2/4] =?UTF-8?q?=E2=9A=AB=20Fade=20to=20black.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cssutils/css/csspagerule.py | 2 +- cssutils/css/value.py | 4 +++- cssutils/tests/test_value.py | 12 ++++++++++-- 3 files changed, 14 insertions(+), 4 deletions(-) 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 c5a224e4..db64df8f 100644 --- a/cssutils/css/value.py +++ b/cssutils/css/value.py @@ -820,7 +820,9 @@ def _setCssText(self, cssText): ), ) - _operant = lambda: Choice(_DimensionProd(self), _CalcValueProd(self), _CSSVariableProd(self)) # noqa + _operant = lambda: Choice( + _DimensionProd(self), _CalcValueProd(self), _CSSVariableProd(self) + ) # noqa prods = Sequence( Prod( diff --git a/cssutils/tests/test_value.py b/cssutils/tests/test_value.py index c84e31a8..776b9872 100644 --- a/cssutils/tests/test_value.py +++ b/cssutils/tests/test_value.py @@ -74,8 +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(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), From 7a953f39daa839721598254018879d75d9841db3 Mon Sep 17 00:00:00 2001 From: "Jason R. Coombs" Date: Sun, 23 May 2021 22:28:42 -0400 Subject: [PATCH 3/4] =?UTF-8?q?=F0=9F=91=B9=20Feed=20the=20hobgoblins=20(d?= =?UTF-8?q?elint).?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cssutils/css/value.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cssutils/css/value.py b/cssutils/css/value.py index db64df8f..08dfcd1a 100644 --- a/cssutils/css/value.py +++ b/cssutils/css/value.py @@ -820,9 +820,9 @@ def _setCssText(self, cssText): ), ) - _operant = lambda: Choice( + _operant = lambda: Choice( # noqa:E731 _DimensionProd(self), _CalcValueProd(self), _CSSVariableProd(self) - ) # noqa + ) prods = Sequence( Prod( From 64ac80fc7f421128ee6aa9e8512f218e9537f536 Mon Sep 17 00:00:00 2001 From: "Jason R. Coombs" Date: Sun, 23 May 2021 22:32:55 -0400 Subject: [PATCH 4/4] Update changelog. --- CHANGES.rst | 5 +++++ 1 file changed, 5 insertions(+) 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 ======