unmarshalling code is actually rather naive and can easily be
caused to crash by feeding it invalid data. This should be fixed in
the marshal module, but I don't have the time to fix it now :-(
Here's a "keyword" module which, in the spirit of "token.py", updates
the list of keywords automatically from a source file (in this case,
"graminit.c" seemed like a reasonable choice, easier than "Grammar/Grammar").
You get "kwlist", a sorted list of keywords; "kwdict", a dictionary
mapping each keyword to 1; and "iskeyword", a function which tells
you if a given string happens to be a keyword.
of day, day of week, and season.
Fix the weekday predictions -- these seemed to be all bogus. The new
predictions seem to correspond with strftime() on Solaris and IRIX, so
I believe they are correct.
Get rid of the test for non-standard format %C returning "the same as
date(1)". This is hard to do reliably without opening a pipe to date,
and moreover, on IRIX 6.2, %C yields the Century. So we use that
instead. (We don't complain about this in non-verbose mode anyway.)
not exist. All 8 uses of tkinter are replaced with _tkinter. Still
create a variable tkinter though, because that is used by other
modules importing Tkinter (e.g. tkinter.createfilehandler()).
Also added a comment to the 'import _tkinter' line saying that if this
fails, Python is not configured correctly.
I'll clean that up later. Also corrected a mistake introduced by the
previous reformatting: an 'else' belonging to a 'for' was accidentally
reindented to belong to the 'if' inside the 'for'. Note that the
module uses inconsistent indentation -- most code is indented with 8
spaces, but some of the reformatted code uses 4 spaces. I'll fix this
later in the promised cleanup pass.
dis() still disassembles the last frame of the lats stack trace.
dis(x) disassembles x, which may be a code object, function, or method.
disassemble(co, [lasti]) disassembles a code object; the lasti
argument is now optional.
disco(...) is an alias for disassemble(...), for backward compatibility.
big-endian machines. This is done by directing the struct module's pack
and unpack methods to treat the data always in bin endian format.
This has been tested on irix (big endian) and solaris x86 (little endian)
but not yet on the mac.