summaryrefslogtreecommitdiffstats
path: root/Lib/dos-8x3/py_compi.py
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>1996-07-22 15:23:25 (GMT)
committerGuido van Rossum <guido@python.org>1996-07-22 15:23:25 (GMT)
commit5c971677a5433aff7c1150e39bde222c24c26f39 (patch)
tree64d0b425bebe8c8a74d6ce51bc4a61817ef388f9 /Lib/dos-8x3/py_compi.py
parentad8b3baa919f5ab1201fca0e608905851f24e967 (diff)
downloadcpython-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-xLib/dos-8x3/py_compi.py31
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')