Skip to content
This repository was archived by the owner on Nov 15, 2023. It is now read-only.

Commit faa3a53

Browse files
author
ijoshua
committed
*** empty log message ***
git-svn-id: http://css-py.googlecode.com/svn/trunk@11 255e942d-184c-0410-a885-59fc1719c42d
1 parent 19da2cf commit faa3a53

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

css/serialize.py

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,38 @@ def serialize(obj, printer=str):
4747
return serialize_Import(obj, printer)
4848
elif isinstance(obj, css.Stylesheet):
4949
return serialize_Stylesheet(obj, printer)
50+
elif isinstance(obj, selector.SimpleSelector):
51+
return serialize_SimpleSelector(obj, printer)
52+
elif isinstance(obj, selector.SelectorGroup):
53+
return serialize_SelectorGroup(obj, printer)
5054
else:
5155
return printer(obj)
5256

57+
def serialize_SelectorGroup(obj, printer):
58+
return printer(',').join([printer(x) for x in obj.selectors])
59+
60+
def serialize_SimpleSelector(obj, printer):
61+
nil = printer('')
62+
s = nil
63+
if printer(obj.element_name) == printer('*'):
64+
if not (obj.ids or obj.classes or obj.attribs or obj.pseudo):
65+
s += printer('*')
66+
else:
67+
s += printer(obj.element_name)
68+
if obj.ids:
69+
hash = printer('#')
70+
s += nil.join((hash+printer(x) for x in obj.ids))
71+
if obj.classes:
72+
dot = printer('.')
73+
s += nil.join((dot+printer(x) for x in obj.classes))
74+
if obj.attribs:
75+
lbrace, rbrace = printer('['), printer(']')
76+
s += nil.join((lbrace+printer(x)+rbrace for x in obj.attribs))
77+
if obj.pseudo:
78+
colon = printer(':')
79+
s += nil.join((colon+printer(x) for x in obj.pseudo))
80+
return s
81+
5382
def serialize_Hexcolor(obj, printer):
5483
return printer('#') + printer(obj.value)
5584

0 commit comments

Comments
 (0)