[Python-checkins] r74375 - in python/branches/release31-maint: Doc/tutorial/inputoutput.rst Lib/inspect.py Lib/webbrowser.py Misc/build.sh Objects/dictobject.c Python/import.c

georg.brandl python-checkins at python.org
Thu Aug 13 10:37:59 CEST 2009


Author: georg.brandl
Date: Thu Aug 13 10:37:59 2009
New Revision: 74375

Log:
Merged revisions 74264 via svnmerge from 
svn+ssh://svn.python.org/python/branches/py3k

................
  r74264 | alexandre.vassalotti | 2009-07-29 22:12:15 +0200 (Mi, 29 Jul 2009) | 32 lines
  
  Merged revisions 74075,74187,74197,74201,74216,74225 via svnmerge from 
  svn+ssh://pythondev@svn.python.org/python/trunk
  
  ........
    r74075 | georg.brandl | 2009-07-18 05:06:31 -0400 (Sat, 18 Jul 2009) | 1 line
    
    #6505: fix typos.
  ........
    r74187 | benjamin.peterson | 2009-07-23 10:19:08 -0400 (Thu, 23 Jul 2009) | 1 line
    
    use bools for autoraise
  ........
    r74197 | benjamin.peterson | 2009-07-24 22:03:48 -0400 (Fri, 24 Jul 2009) | 1 line
    
    clarify
  ........
    r74201 | amaury.forgeotdarc | 2009-07-25 12:22:06 -0400 (Sat, 25 Jul 2009) | 2 lines
    
    Better name a variable: 'buf' seems to imply a mutable buffer.
  ........
    r74216 | michael.foord | 2009-07-26 17:12:14 -0400 (Sun, 26 Jul 2009) | 1 line
    
    Issue 6581. Michael Foord
  ........
    r74225 | kurt.kaiser | 2009-07-27 12:09:28 -0400 (Mon, 27 Jul 2009) | 5 lines
    
    1. Clean workspace more thoughly before build.
    2. Add url of branch we are building to 'results' webpage.
       (url is now available in $repo_path, could be added to failure email.)
    3. Adjust permissions to improve upload reliability.
  ........
................


Modified:
   python/branches/release31-maint/   (props changed)
   python/branches/release31-maint/Doc/tutorial/inputoutput.rst
   python/branches/release31-maint/Lib/inspect.py
   python/branches/release31-maint/Lib/webbrowser.py
   python/branches/release31-maint/Misc/build.sh
   python/branches/release31-maint/Objects/dictobject.c
   python/branches/release31-maint/Python/import.c

Modified: python/branches/release31-maint/Doc/tutorial/inputoutput.rst
==============================================================================
--- python/branches/release31-maint/Doc/tutorial/inputoutput.rst	(original)
+++ python/branches/release31-maint/Doc/tutorial/inputoutput.rst	Thu Aug 13 10:37:59 2009
@@ -152,9 +152,9 @@
                                                           other='Georg'))
    The story of Bill, Manfred, and Georg.
 
-An optional ``':'`` and format specifier can follow the field name. This also
+An optional ``':'`` and format specifier can follow the field name. This allows
 greater control over how the value is formatted.  The following example
-truncates the Pi to three places after the decimal.
+truncates Pi to three places after the decimal.
 
    >>> import math
    >>> print('The value of PI is approximately {0:.3f}.'.format(math.pi))
@@ -208,8 +208,8 @@
    The value of PI is approximately 3.142.
 
 Since :meth:`str.format` is quite new, a lot of Python code still uses the ``%``
-operator. However, because this old style of formatting will eventually removed
-from the language :meth:`str.format` should generally be used.
+operator. However, because this old style of formatting will eventually be
+removed from the language, :meth:`str.format` should generally be used.
 
 More information can be found in the :ref:`old-string-formatting` section.
 

Modified: python/branches/release31-maint/Lib/inspect.py
==============================================================================
--- python/branches/release31-maint/Lib/inspect.py	(original)
+++ python/branches/release31-maint/Lib/inspect.py	Thu Aug 13 10:37:59 2009
@@ -990,7 +990,10 @@
         tb = tb.tb_next
     return framelist
 
-currentframe = sys._getframe
+if hasattr(sys, '_getframe'):
+    currentframe = sys._getframe
+else:
+    currentframe = lambda _=None: None
 
 def stack(context=1):
     """Return a list of records for the stack above the caller's frame."""

Modified: python/branches/release31-maint/Lib/webbrowser.py
==============================================================================
--- python/branches/release31-maint/Lib/webbrowser.py	(original)
+++ python/branches/release31-maint/Lib/webbrowser.py	Thu Aug 13 10:37:59 2009
@@ -56,7 +56,7 @@
 # It is recommended one does "import webbrowser" and uses webbrowser.open(url)
 # instead of "from webbrowser import *".
 
-def open(url, new=0, autoraise=1):
+def open(url, new=0, autoraise=True):
     for name in _tryorder:
         browser = get(name)
         if browser.open(url, new, autoraise):
@@ -145,7 +145,7 @@
         self.name = name
         self.basename = name
 
-    def open(self, url, new=0, autoraise=1):
+    def open(self, url, new=0, autoraise=True):
         raise NotImplementedError
 
     def open_new(self, url):
@@ -169,7 +169,7 @@
             self.args = name[1:]
         self.basename = os.path.basename(self.name)
 
-    def open(self, url, new=0, autoraise=1):
+    def open(self, url, new=0, autoraise=True):
         cmdline = [self.name] + [arg.replace("%s", url)
                                  for arg in self.args]
         try:
@@ -186,7 +186,7 @@
     """Class for all browsers which are to be started in the
        background."""
 
-    def open(self, url, new=0, autoraise=1):
+    def open(self, url, new=0, autoraise=True):
         cmdline = [self.name] + [arg.replace("%s", url)
                                  for arg in self.args]
         try:
@@ -217,7 +217,7 @@
         raise_opt = []
         if remote and self.raise_opts:
             # use autoraise argument only for remote invocation
-            autoraise = int(bool(autoraise))
+            autoraise = int(autoraise)
             opt = self.raise_opts[autoraise]
             if opt: raise_opt = [opt]
 
@@ -257,7 +257,7 @@
         else:
             return not p.wait()
 
-    def open(self, url, new=0, autoraise=1):
+    def open(self, url, new=0, autoraise=True):
         if new == 0:
             action = self.remote_action
         elif new == 1:
@@ -341,7 +341,7 @@
     for more information on the Konqueror remote-control interface.
     """
 
-    def open(self, url, new=0, autoraise=1):
+    def open(self, url, new=0, autoraise=True):
         # XXX Currently I know no way to prevent KFM from opening a new win.
         if new == 2:
             action = "newTab"
@@ -429,7 +429,7 @@
         s.close()
         return 1
 
-    def open(self, url, new=0, autoraise=1):
+    def open(self, url, new=0, autoraise=True):
         if new:
             ok = self._remote("LOADNEW " + url)
         else:
@@ -512,7 +512,7 @@
 
 if sys.platform[:3] == "win":
     class WindowsDefault(BaseBrowser):
-        def open(self, url, new=0, autoraise=1):
+        def open(self, url, new=0, autoraise=True):
             try:
                 os.startfile(url)
             except WindowsError:
@@ -546,7 +546,7 @@
     pass
 else:
     class InternetConfig(BaseBrowser):
-        def open(self, url, new=0, autoraise=1):
+        def open(self, url, new=0, autoraise=True):
             ic.launchurl(url)
             return True # Any way to get status?
 
@@ -567,7 +567,7 @@
         def __init__(self, name):
             self.name = name
 
-        def open(self, url, new=0, autoraise=1):
+        def open(self, url, new=0, autoraise=True):
             assert "'" not in url
             # hack for local urls
             if not ':' in url:

Modified: python/branches/release31-maint/Misc/build.sh
==============================================================================
--- python/branches/release31-maint/Misc/build.sh	(original)
+++ python/branches/release31-maint/Misc/build.sh	Thu Aug 13 10:37:59 2009
@@ -4,9 +4,11 @@
 ## does this:
 ##   svn up ; ./configure ; make ; make test ; make install ; cd Doc ; make
 ##
-## Logs are kept and rsync'ed to the host.  If there are test failure(s),
+## Logs are kept and rsync'ed to the webhost.  If there are test failure(s),
 ## information about the failure(s) is mailed.
 ##
+## The user must be a member of the webmaster group locally and on webhost.
+##
 ## This script is run on the PSF's machine as user neal via crontab.
 ##
 ## Yes, this script would probably be easier in python, but then
@@ -76,7 +78,8 @@
 # Skip these tests altogether when looking for leaks.  These tests
 # do not need to be stored above in LEAKY_TESTS too.
 # test_logging causes hangs, skip it.
-LEAKY_SKIPS="-x test_logging $_ALWAYS_SKIP"
+# KBK 21Apr09: test_httpservers causes hangs, skip for now.
+LEAKY_SKIPS="-x test_compiler test_logging test_httpservers"
 
 # Change this flag to "yes" for old releases to only update/build the docs.
 BUILD_DISABLED="no"
@@ -133,9 +136,14 @@
 
 ## setup
 cd $DIR
+make clobber /dev/null 2>&1
+cp -p Modules/Setup.dist Modules/Setup
+# But maybe there was no Makefile - we are only building docs. Clear build:
+rm -rf build/
 mkdir -p build
-rm -f $RESULT_FILE build/*.out
 rm -rf $INSTALL_DIR
+## get the path we are building
+repo_path=$(grep "url=" .svn/entries | sed -e s/\\W*url=// -e s/\"//g)
 
 ## create results file
 TITLE="Automated Python Build Results"
@@ -153,6 +161,8 @@
 echo "    <td>Hostname:</td><td>`uname -n`</td>" >> $RESULT_FILE
 echo "  </tr><tr>" >> $RESULT_FILE
 echo "    <td>Platform:</td><td>`uname -srmpo`</td>" >> $RESULT_FILE
+echo "  </tr><tr>" >> $RESULT_FILE
+echo "    <td>URL:</td><td>$repo_path</td>" >> $RESULT_FILE
 echo "  </tr>" >> $RESULT_FILE
 echo "</table>" >> $RESULT_FILE
 echo "<ul>" >> $RESULT_FILE
@@ -223,7 +233,7 @@
             start=`current_time`
             ## ensure that the reflog exists so the grep doesn't fail
             touch $REFLOG
-            $PYTHON $REGRTEST_ARGS -R 4:3:$REFLOG -u network,urlfetch $LEAKY_SKIPS >& build/$F
+            $PYTHON $REGRTEST_ARGS -R 4:3:$REFLOG -u network $LEAKY_SKIPS >& build/$F
             LEAK_PAT="($LEAKY_TESTS|sum=0)"
             NUM_FAILURES=`egrep -vc "$LEAK_PAT" $REFLOG`
             place_summary_first build/$F
@@ -259,13 +269,13 @@
 # which will definitely fail with a conflict. 
 #CONFLICTED_FILE=commontex/boilerplate.tex
 #conflict_count=`grep -c "<<<" $CONFLICTED_FILE`
-make clean
 conflict_count=0
 if [ $conflict_count != 0 ]; then
     echo "Conflict detected in $CONFLICTED_FILE.  Doc build skipped." > ../build/$F
     err=1
 else
-    make checkout update html >& ../build/$F
+    make clean > ../build/$F 2>&1
+    make checkout update html >> ../build/$F 2>&1
     err=$?
 fi
 update_status "Making doc" "$F" $start
@@ -279,6 +289,8 @@
 echo "</html>" >> $RESULT_FILE
 
 ## copy results
+chgrp -R webmaster build/html
+chmod -R g+w build/html
 rsync $RSYNC_OPTS build/html/* $REMOTE_SYSTEM:$REMOTE_DIR
 cd ../build
 rsync $RSYNC_OPTS index.html *.out $REMOTE_SYSTEM:$REMOTE_DIR/results/

Modified: python/branches/release31-maint/Objects/dictobject.c
==============================================================================
--- python/branches/release31-maint/Objects/dictobject.c	(original)
+++ python/branches/release31-maint/Objects/dictobject.c	Thu Aug 13 10:37:59 2009
@@ -718,7 +718,7 @@
 	   running "python -Wi" for an example related to string interning.
 	   Let's just hope that no exception occurs then...  This must be
 	   _PyThreadState_Current and not PyThreadState_GET() because in debug
-	   mode, it complains if tstate is NULL. */
+	   mode, the latter complains if tstate is NULL. */
 	tstate = _PyThreadState_Current;
 	if (tstate != NULL && tstate->curexc_type != NULL) {
 		/* preserve the existing exception */

Modified: python/branches/release31-maint/Python/import.c
==============================================================================
--- python/branches/release31-maint/Python/import.c	(original)
+++ python/branches/release31-maint/Python/import.c	Thu Aug 13 10:37:59 2009
@@ -1782,7 +1782,7 @@
    its module object WITH INCREMENTED REFERENCE COUNT */
 
 static PyObject *
-load_module(char *name, FILE *fp, char *buf, int type, PyObject *loader)
+load_module(char *name, FILE *fp, char *pathname, int type, PyObject *loader)
 {
 	PyObject *modules;
 	PyObject *m;
@@ -1803,27 +1803,27 @@
 	switch (type) {
 
 	case PY_SOURCE:
-		m = load_source_module(name, buf, fp);
+		m = load_source_module(name, pathname, fp);
 		break;
 
 	case PY_COMPILED:
-		m = load_compiled_module(name, buf, fp);
+		m = load_compiled_module(name, pathname, fp);
 		break;
 
 #ifdef HAVE_DYNAMIC_LOADING
 	case C_EXTENSION:
-		m = _PyImport_LoadDynamicModule(name, buf, fp);
+		m = _PyImport_LoadDynamicModule(name, pathname, fp);
 		break;
 #endif
 
 	case PKG_DIRECTORY:
-		m = load_package(name, buf);
+		m = load_package(name, pathname);
 		break;
 
 	case C_BUILTIN:
 	case PY_FROZEN:
-		if (buf != NULL && buf[0] != '\0')
-			name = buf;
+		if (pathname != NULL && pathname[0] != '\0')
+			name = pathname;
 		if (type == C_BUILTIN)
 			err = init_builtin(name);
 		else


More information about the Python-checkins mailing list