From 2c54c5ce58f4415b042dcdc6eb3ad518e6d5f7bf Mon Sep 17 00:00:00 2001 From: Anthony Sottile Date: Sat, 10 Feb 2018 11:01:49 -0800 Subject: [PATCH 1/5] Revert "Revert "Merge pull request #184 from dahlia/3_5_beta1"" This reverts commit e3f54a201838988088c032006b29a6dc1cb54621. --- libsass | 2 +- pysass.cpp | 9 +++++++-- sass.py | 11 +++++++---- sasstests.py | 31 +++++++++++++++++++++++++------ 4 files changed, 40 insertions(+), 13 deletions(-) diff --git a/libsass b/libsass index 6de5050d..82c49d88 160000 --- a/libsass +++ b/libsass @@ -1 +1 @@ -Subproject commit 6de5050d11a1789d9922eb24e2925047ecbb499b +Subproject commit 82c49d88a57c29d579b69ea99451c9b1d20fcfd5 diff --git a/pysass.cpp b/pysass.cpp index e4f284f1..5cbf6fc7 100644 --- a/pysass.cpp +++ b/pysass.cpp @@ -68,6 +68,8 @@ static PyObject* _to_py_value(const union Sass_Value* value) { size_t i = 0; PyObject* items = PyTuple_New(sass_list_get_length(value)); PyObject* separator = sass_comma; + int is_bracketed = sass_list_get_is_bracketed(value); + PyObject* bracketed = PyBool_FromLong(is_bracketed); switch (sass_list_get_separator(value)) { case SASS_COMMA: separator = sass_comma; @@ -87,7 +89,7 @@ static PyObject* _to_py_value(const union Sass_Value* value) { ); } retv = PyObject_CallMethod( - types_mod, "SassList", "OO", items, separator + types_mod, "SassList", "OOO", items, separator, bracketed ); break; } @@ -151,6 +153,7 @@ static union Sass_Value* _list_to_sass_value(PyObject* value) { Py_ssize_t i = 0; PyObject* items = PyObject_GetAttrString(value, "items"); PyObject* separator = PyObject_GetAttrString(value, "separator"); + PyObject* bracketed = PyObject_GetAttrString(value, "bracketed"); Sass_Separator sep = SASS_COMMA; if (separator == sass_comma) { sep = SASS_COMMA; @@ -159,7 +162,8 @@ static union Sass_Value* _list_to_sass_value(PyObject* value) { } else { assert(0); } - retv = sass_make_list(PyTuple_Size(items), sep); + int is_bracketed = bracketed == Py_True; + retv = sass_make_list(PyTuple_Size(items), sep, is_bracketed); for (i = 0; i < PyTuple_Size(items); i += 1) { sass_list_set_value( retv, i, _to_sass_value(PyTuple_GET_ITEM(items, i)) @@ -170,6 +174,7 @@ static union Sass_Value* _list_to_sass_value(PyObject* value) { Py_DECREF(sass_space); Py_DECREF(items); Py_DECREF(separator); + Py_DECREF(bracketed); return retv; } diff --git a/sass.py b/sass.py index cce296cc..54047ee9 100644 --- a/sass.py +++ b/sass.py @@ -702,12 +702,15 @@ def __new__(cls, r, g, b, a): SEPARATORS = frozenset((SASS_SEPARATOR_COMMA, SASS_SEPARATOR_SPACE)) -class SassList(collections.namedtuple('SassList', ('items', 'separator'))): +class SassList(collections.namedtuple( + 'SassList', ('items', 'separator', 'bracketed'), +)): - def __new__(cls, items, separator): + def __new__(cls, items, separator, bracketed=False): items = tuple(items) - assert separator in SEPARATORS - return super(SassList, cls).__new__(cls, items, separator) + assert separator in SEPARATORS, separator + assert isinstance(bracketed, bool), bracketed + return super(SassList, cls).__new__(cls, items, separator, bracketed) class SassError(collections.namedtuple('SassError', ('msg',))): diff --git a/sasstests.py b/sasstests.py index 7ff2b17e..c2c807a8 100644 --- a/sasstests.py +++ b/sasstests.py @@ -921,16 +921,12 @@ def test_color_conversion(self): assert type(color.a) is float, type(color.a) def test_sass_list_no_conversion(self): - lst = sass.SassList( - ('foo', 'bar'), sass.SASS_SEPARATOR_COMMA, - ) + lst = sass.SassList(('foo', 'bar'), sass.SASS_SEPARATOR_COMMA) assert type(lst.items) is tuple, type(lst.items) assert lst.separator is sass.SASS_SEPARATOR_COMMA, lst.separator def test_sass_list_conversion(self): - lst = sass.SassList( - ['foo', 'bar'], sass.SASS_SEPARATOR_SPACE, - ) + lst = sass.SassList(['foo', 'bar'], sass.SASS_SEPARATOR_SPACE) assert type(lst.items) is tuple, type(lst.items) assert lst.separator is sass.SASS_SEPARATOR_SPACE, lst.separator @@ -1004,6 +1000,12 @@ def returns_space_list(): return sass.SassList(('medium', 'none'), sass.SASS_SEPARATOR_SPACE) +def returns_bracketed_list(): + return sass.SassList( + ('hello', 'ohai'), sass.SASS_SEPARATOR_SPACE, bracketed=True, + ) + + def returns_py_dict(): return {'foo': 'bar'} @@ -1035,6 +1037,7 @@ def identity(x): sass.SassFunction('returns_color', (), returns_color), sass.SassFunction('returns_comma_list', (), returns_comma_list), sass.SassFunction('returns_space_list', (), returns_space_list), + sass.SassFunction('returns_bracketed_list', (), returns_bracketed_list), sass.SassFunction('returns_py_dict', (), returns_py_dict), sass.SassFunction('returns_map', (), returns_map), sass.SassFunction('identity', ('$x',), identity), @@ -1054,6 +1057,7 @@ def identity(x): 'returns_color': returns_color, 'returns_comma_list': returns_comma_list, 'returns_space_list': returns_space_list, + 'returns_bracketed_list': returns_bracketed_list, 'returns_py_dict': returns_py_dict, 'returns_map': returns_map, 'identity': identity, @@ -1073,6 +1077,7 @@ def identity(x): returns_color, returns_comma_list, returns_space_list, + returns_bracketed_list, returns_py_dict, returns_map, identity, @@ -1237,6 +1242,12 @@ def test_space_list(self): 'a{border-right:medium none}\n', ) + def test_bracketed_list(self): + self.assertEqual( + compile_with_func('a { content: returns_bracketed_list(); }'), + 'a{content:[hello ohai]}\n' + ) + def test_py_dict(self): self.assertEqual( compile_with_func( @@ -1307,6 +1318,14 @@ def test_identity_space_list(self): 'a{border-right:medium none}\n', ) + def test_identity_bracketed_list(self): + self.assertEqual( + compile_with_func( + 'a { content: identity(returns_bracketed_list()); }', + ), + 'a{content:[hello ohai]}\n', + ) + def test_identity_py_dict(self): self.assertEqual( compile_with_func( From 05af7f84de66db1e87ca238d4f616ddec4520635 Mon Sep 17 00:00:00 2001 From: Anthony Sottile Date: Sat, 10 Feb 2018 11:01:54 -0800 Subject: [PATCH 2/5] Revert "Revert "Merge pull request #185 from dahlia/3_5_beta2"" This reverts commit bffeb2d62aa309c3afc0d2d2e534dbf2409365f1. --- libsass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libsass b/libsass index 82c49d88..10085f66 160000 --- a/libsass +++ b/libsass @@ -1 +1 @@ -Subproject commit 82c49d88a57c29d579b69ea99451c9b1d20fcfd5 +Subproject commit 10085f663195a84981368b5fd865b0aa854e2d0e From 9676bc52bfa4f9f0cbd666ed4b6b1055d99b9906 Mon Sep 17 00:00:00 2001 From: Anthony Sottile Date: Sat, 10 Feb 2018 11:01:55 -0800 Subject: [PATCH 3/5] Revert "Revert "Merge pull request #187 from dahlia/3_5_beta3"" This reverts commit 0f6db8d75803e9f5c968c5a19575c205a9e58d0b. --- libsass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libsass b/libsass index 10085f66..4454eb65 160000 --- a/libsass +++ b/libsass @@ -1 +1 @@ -Subproject commit 10085f663195a84981368b5fd865b0aa854e2d0e +Subproject commit 4454eb65f738b3391095bfa2e669939ba9bb9d0f From 7a16ee5497c6cfb5b133d77d1d39d362e3515e0c Mon Sep 17 00:00:00 2001 From: Anthony Sottile Date: Sat, 10 Feb 2018 11:18:48 -0800 Subject: [PATCH 4/5] Update submodule to master --- libsass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libsass b/libsass index 4454eb65..813b8ea2 160000 --- a/libsass +++ b/libsass @@ -1 +1 @@ -Subproject commit 4454eb65f738b3391095bfa2e669939ba9bb9d0f +Subproject commit 813b8ea2bc9b479fabc47d7e4d569fe6a5711675 From 2957d0589a464329546d2e5283663c90dba91a49 Mon Sep 17 00:00:00 2001 From: Anthony Sottile Date: Tue, 6 Mar 2018 09:59:02 -0800 Subject: [PATCH 5/5] Update to 3.5.0 release! --- libsass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libsass b/libsass index 813b8ea2..60f83915 160000 --- a/libsass +++ b/libsass @@ -1 +1 @@ -Subproject commit 813b8ea2bc9b479fabc47d7e4d569fe6a5711675 +Subproject commit 60f839158eff1f1bb84cb44f0f0c4bce3ed86a6d pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy