Changeset 2539:7205ad5bb69d in livinglogic.python.xist
- Timestamp:
- 06/01/06 13:34:44 (14 years ago)
- Author:
- Walter Doerwald <walter@…>
- Branch:
- default
- Message:
-
Move indent from xml2py to the module, so it can be overwritten in
derived modules.
- Files:
-
Legend:
- Unmodified
- Added
- Removed
-
r2538
|
r2539
|
|
208 | 208 | |
209 | 209 | |
| 210 | # Used for indenting Python source code |
| 211 | indent = "\t" |
| 212 | |
| 213 | |
210 | 214 | @classmethod |
211 | 215 | def xml2py(cls, source): |
212 | 216 | stack = [] |
213 | | indent = "\t" |
214 | 217 | lines = [ |
215 | 218 | "# generated by %s %s on %s UTC" % (__file__, __version__, datetime.datetime.utcnow()), |
… |
… |
|
229 | 232 | if t is unicode: |
230 | 233 | if any(issubclass(item[0], def_) for item in stack): |
231 | | lines.append("%syield %r" % (len(stack)*indent, s)) |
| 234 | lines.append("%syield %r" % (len(stack)*cls.indent, s)) |
232 | 235 | # ignore output outside of functions |
233 | 236 | elif issubclass(t, expr): |
234 | 237 | if any(issubclass(item[0], def_) for item in stack): |
235 | | lines.append("%syield %s" % (len(stack)*indent, s)) |
| 238 | lines.append("%syield %s" % (len(stack)*cls.indent, s)) |
236 | 239 | # ignore output outside of functions |
237 | 240 | elif issubclass(t, textexpr): |
238 | 241 | if any(issubclass(item[0], def_) for item in stack): |
239 | | lines.append("%syield __venom_escapetext__(%s)" % (len(stack)*indent, s)) |
| 242 | lines.append("%syield __venom_escapetext__(%s)" % (len(stack)*cls.indent, s)) |
240 | 243 | # ignore output outside of functions |
241 | 244 | elif issubclass(t, attrexpr): |
242 | 245 | if any(issubclass(item[0], def_) for item in stack): |
243 | | lines.append("%syield __venom_escapeattr__(%s)" % (len(stack)*indent, s)) |
| 246 | lines.append("%syield __venom_escapeattr__(%s)" % (len(stack)*cls.indent, s)) |
244 | 247 | # ignore output outside of functions |
245 | 248 | elif issubclass(t, code): |
246 | | lines.append("%s%s" % (len(stack)*indent, s)) |
| 249 | lines.append("%s%s" % (len(stack)*cls.indent, s)) |
247 | 250 | elif issubclass(t, def_): |
248 | | lines.append("%sdef %s:" % (len(stack)*indent, s)) |
| 251 | lines.append("%sdef %s:" % (len(stack)*cls.indent, s)) |
249 | 252 | stack.append((t, s)) |
250 | 253 | elif issubclass(t, enddef): |
251 | 254 | endscope(def_) |
252 | 255 | elif issubclass(t, class_): |
253 | | lines.append("%sclass %s:" % (len(stack)*indent, s)) |
| 256 | lines.append("%sclass %s:" % (len(stack)*cls.indent, s)) |
254 | 257 | stack.append((t, s)) |
255 | 258 | elif issubclass(t, endclass): |
256 | 259 | endscope(class_) |
257 | 260 | elif issubclass(t, for_): |
258 | | lines.append("%sfor %s:" % (len(stack)*indent, s)) |
| 261 | lines.append("%sfor %s:" % (len(stack)*cls.indent, s)) |
259 | 262 | stack.append((t, s)) |
260 | 263 | elif issubclass(t, endfor): |
261 | 264 | endscope(for_) |
262 | 265 | elif issubclass(t, if_): |
263 | | lines.append("%sif %s:" % (len(stack)*indent, s)) |
| 266 | lines.append("%sif %s:" % (len(stack)*cls.indent, s)) |
264 | 267 | stack.append((t, s)) |
265 | 268 | elif issubclass(t, else_): |
266 | | lines.append("%selse:" % ((len(stack)-1)*indent)) |
| 269 | lines.append("%selse:" % ((len(stack)-1)*cls.indent)) |
267 | 270 | elif issubclass(t, elif_): |
268 | | lines.append("%selif %s:" % ((len(stack)-1)*indent, s)) |
| 271 | lines.append("%selif %s:" % ((len(stack)-1)*cls.indent, s)) |
269 | 272 | elif issubclass(t, endif): |
270 | 273 | endscope(if_) |