[Python-3000-checkins] r55919 - in python/branches/py3k-struni: Objects/fileobject.c Python/ast.c Tools/freeze/bkfile.py Tools/freeze/freeze.py Tools/freeze/makefreeze.py Tools/freeze/makemakefile.py Tools/freeze/parsesetup.py runtests.sh

guido.van.rossum python-3000-checkins at python.org
Tue Jun 12 02:28:39 CEST 2007


Author: guido.van.rossum
Date: Tue Jun 12 02:28:30 2007
New Revision: 55919

Modified:
   python/branches/py3k-struni/Objects/fileobject.c
   python/branches/py3k-struni/Python/ast.c
   python/branches/py3k-struni/Tools/freeze/bkfile.py
   python/branches/py3k-struni/Tools/freeze/freeze.py
   python/branches/py3k-struni/Tools/freeze/makefreeze.py
   python/branches/py3k-struni/Tools/freeze/makemakefile.py
   python/branches/py3k-struni/Tools/freeze/parsesetup.py
   python/branches/py3k-struni/runtests.sh
Log:
Minimal changes to make the "freeze" tool work again.
There are other issues left, but these were basics (e.g. keys().sort()).


Modified: python/branches/py3k-struni/Objects/fileobject.c
==============================================================================
--- python/branches/py3k-struni/Objects/fileobject.c	(original)
+++ python/branches/py3k-struni/Objects/fileobject.c	Tue Jun 12 02:28:30 2007
@@ -265,24 +265,19 @@
 PyObject *
 PyFile_FromFile(FILE *fp, char *name, char *mode, int (*close)(FILE *))
 {
-	PyErr_SetString(PyExc_SystemError,
-			"attempt to create old file from FILE *");
-	return NULL;
-#if 0
-	PyFileObject *f = (PyFileObject *)PyFile_Type.tp_new(&PyFile_Type,
-							     NULL, NULL);
-	if (f != NULL) {
-		PyObject *o_name = PyString_FromString(name);
-		if (o_name == NULL)
-			return NULL;
-		if (fill_file_fields(f, fp, o_name, mode, close) == NULL) {
-			Py_DECREF(f);
-			f = NULL;
-		}
-                Py_DECREF(o_name);
+	PyObject *io = NULL, *stream = NULL;
+
+	io = PyImport_ImportModule("io");
+	if (io == NULL)
+		return NULL;
+	stream = PyObject_CallMethod(io, "open", "ss", name, mode);
+	if (stream == NULL) {
+		Py_XDECREF(io);
+		return NULL;
 	}
-	return (PyObject *) f;
-#endif
+	if (close != NULL)
+		close(fp);
+	return stream;
 }
 
 PyObject *

Modified: python/branches/py3k-struni/Python/ast.c
==============================================================================
--- python/branches/py3k-struni/Python/ast.c	(original)
+++ python/branches/py3k-struni/Python/ast.c	Tue Jun 12 02:28:30 2007
@@ -193,8 +193,11 @@
     if (flags && flags->cf_flags & PyCF_SOURCE_IS_UTF8) {
         c.c_encoding = "utf-8";
         if (TYPE(n) == encoding_decl) {
+#if 0
             ast_error(n, "encoding declaration in Unicode string");
             goto error;
+#endif
+            n = CHILD(n, 0);
         }
     } else if (TYPE(n) == encoding_decl) {
         c.c_encoding = STR(n);

Modified: python/branches/py3k-struni/Tools/freeze/bkfile.py
==============================================================================
--- python/branches/py3k-struni/Tools/freeze/bkfile.py	(original)
+++ python/branches/py3k-struni/Tools/freeze/bkfile.py	Tue Jun 12 02:28:30 2007
@@ -21,7 +21,10 @@
         self.mode = self.__file.mode
         self.name = self.__file.name
         self.read = self.__file.read
-        self.readinto = self.__file.readinto
+        try:
+            self.readinto = self.__file.readinto
+        except AttributeError:
+            pass
         self.readline = self.__file.readline
         self.readlines = self.__file.readlines
         self.seek = self.__file.seek

Modified: python/branches/py3k-struni/Tools/freeze/freeze.py
==============================================================================
--- python/branches/py3k-struni/Tools/freeze/freeze.py	(original)
+++ python/branches/py3k-struni/Tools/freeze/freeze.py	Tue Jun 12 02:28:30 2007
@@ -386,8 +386,7 @@
     # look for unfrozen modules (builtin and of unknown origin)
     builtins = []
     unknown = []
-    mods = dict.keys()
-    mods.sort()
+    mods = sorted(dict.keys())
     for mod in mods:
         if dict[mod].__code__:
             continue

Modified: python/branches/py3k-struni/Tools/freeze/makefreeze.py
==============================================================================
--- python/branches/py3k-struni/Tools/freeze/makefreeze.py	(original)
+++ python/branches/py3k-struni/Tools/freeze/makefreeze.py	Tue Jun 12 02:28:30 2007
@@ -33,8 +33,7 @@
     if entry_point is None: entry_point = default_entry_point
     done = []
     files = []
-    mods = dict.keys()
-    mods.sort()
+    mods = sorted(dict.keys())
     for mod in mods:
         m = dict[mod]
         mangled = "__".join(mod.split("."))
@@ -81,8 +80,8 @@
     outfp.write('unsigned char M_%s[] = {' % mod)
     for i in range(0, len(str), 16):
         outfp.write('\n\t')
-        for c in str[i:i+16]:
-            outfp.write('%d,' % ord(c))
+        for c in bytes(str[i:i+16]):
+            outfp.write('%d,' % c)
     outfp.write('\n};\n')
 
 ## def writecode(outfp, mod, str):

Modified: python/branches/py3k-struni/Tools/freeze/makemakefile.py
==============================================================================
--- python/branches/py3k-struni/Tools/freeze/makemakefile.py	(original)
+++ python/branches/py3k-struni/Tools/freeze/makemakefile.py	Tue Jun 12 02:28:30 2007
@@ -5,8 +5,7 @@
 def makemakefile(outfp, makevars, files, target):
     outfp.write("# Makefile generated by freeze.py script\n\n")
 
-    keys = makevars.keys()
-    keys.sort()
+    keys = sorted(makevars.keys())
     for key in keys:
         outfp.write("%s=%s\n" % (key, makevars[key]))
     outfp.write("\nall: %s\n\n" % target)

Modified: python/branches/py3k-struni/Tools/freeze/parsesetup.py
==============================================================================
--- python/branches/py3k-struni/Tools/freeze/parsesetup.py	(original)
+++ python/branches/py3k-struni/Tools/freeze/parsesetup.py	Tue Jun 12 02:28:30 2007
@@ -102,8 +102,7 @@
             print('(name must begin with "Makefile" or "Setup")')
 
 def prdict(d):
-    keys = d.keys()
-    keys.sort()
+    keys = sorted(d.keys())
     for key in keys:
         value = d[key]
         print("%-15s" % key, str(value))

Modified: python/branches/py3k-struni/runtests.sh
==============================================================================
--- python/branches/py3k-struni/runtests.sh	(original)
+++ python/branches/py3k-struni/runtests.sh	Tue Jun 12 02:28:30 2007
@@ -24,6 +24,9 @@
 >BAD
 >SKIPPED
 
+# The -uall flag (edit this file to change).
+UALL="-uall"
+
 # Compute the list of tests to run.
 case $# in
 0) 
@@ -38,7 +41,7 @@
 for T in $TESTS
 do
     echo -n $T
-    if $PYTHON Lib/test/regrtest.py -uall $T >OUT/$T.out 2>&1
+    if $PYTHON Lib/test/regrtest.py $UALL $T >OUT/$T.out 2>&1
     then
 	if grep -q "1 test skipped:" OUT/$T.out
 	then
@@ -51,5 +54,7 @@
     else
 	echo " BAD"
         echo $T >>BAD
+	echo "---------- Re-running test in verbose mode ----------" >>OUT/$T
+	$PYTHON Lib/test/regrtest.py -v $UALL $T >>OUT/$T.out 2>&1
     fi
 done


More information about the Python-3000-checkins mailing list