Skip to content

Commit d0d8ece

Browse files
committed
Upgrade libsass to 3.5.0.beta1
1 parent 5bcefdd commit d0d8ece

File tree

4 files changed

+40
-13
lines changed

4 files changed

+40
-13
lines changed

pysass.cpp

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,8 @@ static PyObject* _to_py_value(const union Sass_Value* value) {
7777
size_t i = 0;
7878
PyObject* items = PyTuple_New(sass_list_get_length(value));
7979
PyObject* separator = sass_comma;
80+
int is_bracketed = sass_list_get_is_bracketed(value);
81+
PyObject* bracketed = PyBool_FromLong(is_bracketed);
8082
switch (sass_list_get_separator(value)) {
8183
case SASS_COMMA:
8284
separator = sass_comma;
@@ -96,7 +98,7 @@ static PyObject* _to_py_value(const union Sass_Value* value) {
9698
);
9799
}
98100
retv = PyObject_CallMethod(
99-
types_mod, "SassList", "OO", items, separator
101+
types_mod, "SassList", "OOO", items, separator, bracketed
100102
);
101103
break;
102104
}
@@ -160,6 +162,7 @@ static union Sass_Value* _list_to_sass_value(PyObject* value) {
160162
Py_ssize_t i = 0;
161163
PyObject* items = PyObject_GetAttrString(value, "items");
162164
PyObject* separator = PyObject_GetAttrString(value, "separator");
165+
PyObject* bracketed = PyObject_GetAttrString(value, "bracketed");
163166
Sass_Separator sep = SASS_COMMA;
164167
if (separator == sass_comma) {
165168
sep = SASS_COMMA;
@@ -168,7 +171,8 @@ static union Sass_Value* _list_to_sass_value(PyObject* value) {
168171
} else {
169172
assert(0);
170173
}
171-
retv = sass_make_list(PyTuple_Size(items), sep);
174+
int is_bracketed = bracketed == Py_True;
175+
retv = sass_make_list(PyTuple_Size(items), sep, is_bracketed);
172176
for (i = 0; i < PyTuple_Size(items); i += 1) {
173177
sass_list_set_value(
174178
retv, i, _to_sass_value(PyTuple_GET_ITEM(items, i))
@@ -179,6 +183,7 @@ static union Sass_Value* _list_to_sass_value(PyObject* value) {
179183
Py_DECREF(sass_space);
180184
Py_DECREF(items);
181185
Py_DECREF(separator);
186+
Py_DECREF(bracketed);
182187
return retv;
183188
}
184189

sass.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -694,12 +694,15 @@ def __new__(cls, r, g, b, a):
694694
SEPARATORS = frozenset((SASS_SEPARATOR_COMMA, SASS_SEPARATOR_SPACE))
695695

696696

697-
class SassList(collections.namedtuple('SassList', ('items', 'separator'))):
697+
class SassList(collections.namedtuple(
698+
'SassList', ('items', 'separator', 'bracketed'),
699+
)):
698700

699-
def __new__(cls, items, separator):
701+
def __new__(cls, items, separator, bracketed=False):
700702
items = tuple(items)
701-
assert separator in SEPARATORS
702-
return super(SassList, cls).__new__(cls, items, separator)
703+
assert separator in SEPARATORS, separator
704+
assert isinstance(bracketed, bool), bracketed
705+
return super(SassList, cls).__new__(cls, items, separator, bracketed)
703706

704707

705708
class SassError(collections.namedtuple('SassError', ('msg',))):

sasstests.py

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -942,16 +942,12 @@ def test_color_conversion(self):
942942
assert type(color.a) is float, type(color.a)
943943

944944
def test_sass_list_no_conversion(self):
945-
lst = sass.SassList(
946-
('foo', 'bar'), sass.SASS_SEPARATOR_COMMA,
947-
)
945+
lst = sass.SassList(('foo', 'bar'), sass.SASS_SEPARATOR_COMMA)
948946
assert type(lst.items) is tuple, type(lst.items)
949947
assert lst.separator is sass.SASS_SEPARATOR_COMMA, lst.separator
950948

951949
def test_sass_list_conversion(self):
952-
lst = sass.SassList(
953-
['foo', 'bar'], sass.SASS_SEPARATOR_SPACE,
954-
)
950+
lst = sass.SassList(['foo', 'bar'], sass.SASS_SEPARATOR_SPACE)
955951
assert type(lst.items) is tuple, type(lst.items)
956952
assert lst.separator is sass.SASS_SEPARATOR_SPACE, lst.separator
957953

@@ -1025,6 +1021,12 @@ def returns_space_list():
10251021
return sass.SassList(('medium', 'none'), sass.SASS_SEPARATOR_SPACE)
10261022

10271023

1024+
def returns_bracketed_list():
1025+
return sass.SassList(
1026+
('hello', 'ohai'), sass.SASS_SEPARATOR_SPACE, bracketed=True,
1027+
)
1028+
1029+
10281030
def returns_py_dict():
10291031
return {'foo': 'bar'}
10301032

@@ -1056,6 +1058,7 @@ def identity(x):
10561058
sass.SassFunction('returns_color', (), returns_color),
10571059
sass.SassFunction('returns_comma_list', (), returns_comma_list),
10581060
sass.SassFunction('returns_space_list', (), returns_space_list),
1061+
sass.SassFunction('returns_bracketed_list', (), returns_bracketed_list),
10591062
sass.SassFunction('returns_py_dict', (), returns_py_dict),
10601063
sass.SassFunction('returns_map', (), returns_map),
10611064
sass.SassFunction('identity', ('$x',), identity),
@@ -1075,6 +1078,7 @@ def identity(x):
10751078
'returns_color': returns_color,
10761079
'returns_comma_list': returns_comma_list,
10771080
'returns_space_list': returns_space_list,
1081+
'returns_bracketed_list': returns_bracketed_list,
10781082
'returns_py_dict': returns_py_dict,
10791083
'returns_map': returns_map,
10801084
'identity': identity,
@@ -1094,6 +1098,7 @@ def identity(x):
10941098
returns_color,
10951099
returns_comma_list,
10961100
returns_space_list,
1101+
returns_bracketed_list,
10971102
returns_py_dict,
10981103
returns_map,
10991104
identity,
@@ -1258,6 +1263,12 @@ def test_space_list(self):
12581263
'a{border-right:medium none}\n',
12591264
)
12601265

1266+
def test_bracketed_list(self):
1267+
self.assertEqual(
1268+
compile_with_func('a { content: returns_bracketed_list(); }'),
1269+
'a{content:[hello ohai]}\n'
1270+
)
1271+
12611272
def test_py_dict(self):
12621273
self.assertEqual(
12631274
compile_with_func(
@@ -1328,6 +1339,14 @@ def test_identity_space_list(self):
13281339
'a{border-right:medium none}\n',
13291340
)
13301341

1342+
def test_identity_bracketed_list(self):
1343+
self.assertEqual(
1344+
compile_with_func(
1345+
'a { content: identity(returns_bracketed_list()); }',
1346+
),
1347+
'a{content:[hello ohai]}\n',
1348+
)
1349+
13311350
def test_identity_py_dict(self):
13321351
self.assertEqual(
13331352
compile_with_func(

0 commit comments

Comments
 (0)