diff options
author | Guido van Rossum <guido@python.org> | 1996-07-22 15:23:25 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 1996-07-22 15:23:25 (GMT) |
commit | 5c971677a5433aff7c1150e39bde222c24c26f39 (patch) | |
tree | 64d0b425bebe8c8a74d6ce51bc4a61817ef388f9 /Lib/dos-8x3/py_compi.py | |
parent | ad8b3baa919f5ab1201fca0e608905851f24e967 (diff) | |
download | cpython-5c971677a5433aff7c1150e39bde222c24c26f39.zip cpython-5c971677a5433aff7c1150e39bde222c24c26f39.tar.gz cpython-5c971677a5433aff7c1150e39bde222c24c26f39.tar.bz2 |
Fuck. For PC support, this must be in the distribution.
Diffstat (limited to 'Lib/dos-8x3/py_compi.py')
-rwxr-xr-x | Lib/dos-8x3/py_compi.py | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/Lib/dos-8x3/py_compi.py b/Lib/dos-8x3/py_compi.py new file mode 100755 index 0000000..2e68ba8 --- /dev/null +++ b/Lib/dos-8x3/py_compi.py @@ -0,0 +1,31 @@ +# Routine to "compile" a .py file to a .pyc file. +# This has intimate knowledge of how Python/import.c does it. +# By Sjoerd Mullender (I forced him to write it :-). + +import imp +MAGIC = imp.get_magic() + +def wr_long(f, x): + f.write(chr( x & 0xff)) + f.write(chr((x >> 8) & 0xff)) + f.write(chr((x >> 16) & 0xff)) + f.write(chr((x >> 24) & 0xff)) + +def compile(file, cfile = None): + import os, marshal, __builtin__ + f = open(file) + codestring = f.read() + f.close() + timestamp = os.stat(file)[8] + codeobject = __builtin__.compile(codestring, file, 'exec') + if not cfile: + cfile = file + 'c' + fc = open(cfile, 'wb') + fc.write(MAGIC) + wr_long(fc, timestamp) + marshal.dump(codeobject, fc) + fc.close() + if os.name == 'mac': + import macfs + macfs.FSSpec(cfile).SetCreatorType('Pyth', 'PYC ') + macfs.FSSpec(file).SetCreatorType('Pyth', 'TEXT') |