This is thedailywtf material:
To write an xml file in tag order, autoxml implementation reads the .py source files, parses them, puts the source code order to a list by looking at the written line orders of the members. This perfect implementation blows reload logic. Seen when a new class (class Obsolete) added.
This commit is contained in:
+12
-6
@@ -268,16 +268,22 @@ class autoxml(oo.autosuper, oo.autoprop):
|
|||||||
errorss = []
|
errorss = []
|
||||||
formatters = []
|
formatters = []
|
||||||
|
|
||||||
|
# FIXME: What is this? Remove this crap and try to fix autoxml, if can not be fixed then
|
||||||
|
# really throw whole autoxml to junk. But not this.
|
||||||
|
|
||||||
# read declaration order from source
|
# read declaration order from source
|
||||||
# code contributed by bahadir kandemir
|
# code contributed by bahadir kandemir
|
||||||
from inspect import getsourcelines
|
try:
|
||||||
from itertools import ifilter
|
from inspect import getsourcelines
|
||||||
import re
|
from itertools import ifilter
|
||||||
|
import re
|
||||||
|
|
||||||
fn = re.compile('\s*([tas]_[a-zA-Z]+).*').findall
|
fn = re.compile('\s*([tas]_[a-zA-Z]+).*').findall
|
||||||
|
|
||||||
lines = filter(fn, getsourcelines(cls)[0])
|
lines = filter(fn, getsourcelines(cls)[0])
|
||||||
decl_order = map(lambda x:x.split()[0], lines)
|
decl_order = map(lambda x:x.split()[0], lines)
|
||||||
|
except IOError:
|
||||||
|
decl_order = dict.keys()
|
||||||
|
|
||||||
# there should be at most one str member, and it should be
|
# there should be at most one str member, and it should be
|
||||||
# the first to process
|
# the first to process
|
||||||
|
|||||||
Reference in New Issue
Block a user