Changeset 2554:f239e1e6299e in livinglogic.python.xist

Show
Ignore:
Timestamp:
06/23/06 19:05:45 (14 years ago)
Author:
Walter Doerwald <walter@…>
Branch:
default
Message:

Factor out common attribute value formatting code.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • src/ll/xist/presenters.py

    r2553 r2554  
    736736                yield astyle.style_default(self._indent(), name, "()") 
    737737 
     738    def _formatattrvalue(self, attrvalue): 
     739        attrtext = astyle.Text() 
     740        if len(attrvalue)==1: # optimize away the tuple () 
     741            for part in attrvalue[0].present(self): 
     742                if attrtext: 
     743                    attrtext.append(" ") 
     744                attrtext.append(part) 
     745        else: 
     746            for part in attrvalue.present(self): 
     747                if attrtext: 
     748                    attrtext.append(" ") 
     749                else: 
     750                    attrtext.append("(") 
     751                attrtext.append(part) 
     752            attrtext.append(")") 
     753        return attrtext 
     754 
    738755    def presentAttrs(self, node): 
    739756        name = s4attrs(s4ns(node.__class__.__module__), ".", s4attrsname(node.__fullname__())) 
     
    752769                yield "%s{" % self._indent() 
    753770                for (i, (attrname, attrvalue)) in enumerate(globalattrs.iteritems()): 
    754                     attrname = "(%s, %r)" % (attrname[0].__module__, attrname[1]) 
     771                    attrname = astyle.style_default("(", s4ns(attrname[0].__module__), ", ", s4attrname(attrname[1]), ")") 
    755772                    self._inattr += 1 
    756                     if len(attrvalue)==1: # optimize away the tuple () 
    757                         attrvalue = " ".join(attrvalue[0].present(self)) 
    758                     else: 
    759                         attrvalue = "(%s)" % " ".join(attrvalue.present(self)) 
     773                    attrvalue = self._formatattrvalue(attrvalue) 
    760774                    self._inattr -= 1 
    761775                    self._level += 1 
    762                     line = "%s%s: %s" % (self._indent(), attrname, attrvalue) 
     776                    line = astyle.style_default(self._indent(), s4attrname(attrname), ": ", s4attrvalue(attrvalue)) 
    763777                    if i != len(globalattrs) or not localattrs: 
    764778                        line += "," 
    765779                    yield line 
    766780                    self._level -= 1 
    767                 line = "%s}" % self._indent() 
     781                line = astyle.style_default(self._indent(), "}") 
    768782                if localattrs: 
    769783                    line += "," 
     
    771785            for (i, (attrname, attrvalue)) in enumerate(localattrs.iteritems()): 
    772786                self._inattr += 1 
    773                 if len(attrvalue)==1: # optimize away the tuple () 
    774                     attrvalue = " ".join(attrvalue[0].present(self)) 
    775                 else: 
    776                     attrvalue = "(%s)" % " ".join(attrvalue.present(self)) 
     787                attrvalue = self._formatattrvalue(attrvalue) 
    777788                self._inattr -= 1 
    778                 line = "%s%s=%s" % (self._indent(), attrname, attrvalue) 
     789                line = astyle.style_default(self._indent(), s4attrname(attrname), "=", s4attrvalue(attrvalue)) 
    779790                if i != len(localattrs)-1: 
    780791                    line += "," 
     
    814825                    attrname = astyle.style_default("(", s4ns(attrname[0].__module__), ", ", s4attrname(attrname[1]), ")") 
    815826                    self._inattr += 1 
    816                     attrtext = astyle.Text() 
    817                     if len(attrvalue)==1: # optimize away the tuple () 
    818                         for part in attrvalue[0].present(self): 
    819                             if attrtext: 
    820                                 attrtext.append(" ") 
    821                             attrtext.append(part) 
    822                     else: 
    823                         for part in attrvalue.present(self): 
    824                             if attrtext: 
    825                                 attrtext.append(" ") 
    826                             else: 
    827                                 attrtext.append("(") 
    828                             attrtext.append(part) 
    829                         attrtext.append(")") 
     827                    attrvalue = self._formatattrvalue(attrvalue) 
    830828                    self._inattr -= 1 
    831829                    self._level += 1 
    832                     line = astyle.style_default(self._indent(), s4attrname(attrname), ": ", s4attrvalue(attrtext)) 
     830                    line = astyle.style_default(self._indent(), s4attrname(attrname), ": ", s4attrvalue(attrvalue)) 
    833831                    if i != len(globalattrs) or not localattrs: 
    834832                        line += "," 
     
    841839            for (i, (attrname, attrvalue)) in enumerate(localattrs.iteritems()): 
    842840                self._inattr += 1 
    843                 attrtext = astyle.Text() 
    844                 if len(attrvalue)==1: # optimize away the tuple () 
    845                     for part in attrvalue[0].present(self): 
    846                         if attrtext: 
    847                             attrtext.append(" ") 
    848                         attrtext.append(part) 
    849                 else: 
    850                     for part in attrvalue.present(self): 
    851                         if attrtext: 
    852                             attrtext.append(" ") 
    853                         else: 
    854                             attrtext.append("(") 
    855                         attrtext.append(part) 
    856                     attrtext.append(")") 
     841                attrvalue = self._formatattrvalue(attrvalue) 
    857842                self._inattr -= 1 
    858                 line = astyle.style_default(self._indent(), s4attrname(attrname), "=", s4attrvalue(attrtext)) 
     843                line = astyle.style_default(self._indent(), s4attrname(attrname), "=", s4attrvalue(attrvalue)) 
    859844                if i != len(localattrs)-1: 
    860845                    line += ","