def disassemble_string(code, lasti=-1, varnames=None, names=None,
constants=None):
- labels = findlabels(code)
- n = len(code)
- i = 0
- while i < n:
- c = code[i]
- op = ord(c)
- if op == opmap['SET_LINENO'] and i > 0:
- print # Extra blank line
- if i == lasti: print '-->',
- else: print ' ',
- if i in labels: print '>>',
- else: print ' ',
- print `i`.rjust(4),
- print opname[op].ljust(15),
- i = i+1
- if op >= HAVE_ARGUMENT:
- oparg = ord(code[i]) + ord(code[i+1])*256
- i = i+2
- print `oparg`.rjust(5),
- if op in hasconst:
- if constants:
- print '(' + `constants[oparg]` + ')',
- else:
- print '(%d)'%oparg,
- elif op in hasname:
- if names is not None:
- print '(' + names[oparg] + ')',
- else:
- print '(%d)'%oparg,
- elif op in hasjrel:
- print '(to ' + `i + oparg` + ')',
- elif op in haslocal:
- if varnames:
- print '(' + varnames[oparg] + ')',
- else:
- print '(%d)' % oparg,
- elif op in hascompare:
- print '(' + cmp_op[oparg] + ')',
- print
+ labels = findlabels(code)
+ n = len(code)
+ i = 0
+ while i < n:
+ c = code[i]
+ op = ord(c)
+ if op == opmap['SET_LINENO'] and i > 0:
+ print # Extra blank line
+ if i == lasti: print '-->',
+ else: print ' ',
+ if i in labels: print '>>',
+ else: print ' ',
+ print `i`.rjust(4),
+ print opname[op].ljust(15),
+ i = i+1
+ if op >= HAVE_ARGUMENT:
+ oparg = ord(code[i]) + ord(code[i+1])*256
+ i = i+2
+ print `oparg`.rjust(5),
+ if op in hasconst:
+ if constants:
+ print '(' + `constants[oparg]` + ')',
+ else:
+ print '(%d)'%oparg,
+ elif op in hasname:
+ if names is not None:
+ print '(' + names[oparg] + ')',
+ else:
+ print '(%d)'%oparg,
+ elif op in hasjrel:
+ print '(to ' + `i + oparg` + ')',
+ elif op in haslocal:
+ if varnames:
+ print '(' + varnames[oparg] + ')',
+ else:
+ print '(%d)' % oparg,
+ elif op in hascompare:
+ print '(' + cmp_op[oparg] + ')',
+ print
disco = disassemble # XXX For backwards compatibility
else:
pl['aDate'] = plistlib.Date(time.mktime(time.gmtime()))
return pl
-
+
def test_create(self):
pl = self._create()
self.assertEqual(pl["aString"], "Doodah")
pl = self._create()
pl.write(test_support.TESTFN)
pl2 = plistlib.Plist.fromFile(test_support.TESTFN)
- self.assertEqual(dict(pl), dict(pl2))
+ self.assertEqual(dict(pl), dict(pl2))
def checkletter(self, name, code):
# Helper that put all \N escapes inside eval'd raw strings,
- # to make sure this script runs even if the compiler
+ # to make sure this script runs even if the compiler
# chokes on \N escapes
res = eval(ur'u"\N{%s}"' % name)
self.assertEqual(res, code)