From mhammond@users.sourceforge.net Tue Jul 1 01:13:30 2003 From: mhammond@users.sourceforge.net (mhammond@users.sourceforge.net) Date: Mon, 30 Jun 2003 17:13:30 -0700 Subject: [Python-checkins] python/dist/src/Objects unicodeobject.c,2.189,2.190 Message-ID: Update of /cvsroot/python/python/dist/src/Objects In directory sc8-pr-cvs1:/tmp/cvs-serv6793 Modified Files: unicodeobject.c Log Message: Support 'mbcs' as a 'built-in' encoding, so the C API can use it without defering to the encodings package. As described in [ 763111 ] mbcs encoding should skip encodings package Index: unicodeobject.c =================================================================== RCS file: /cvsroot/python/python/dist/src/Objects/unicodeobject.c,v retrieving revision 2.189 retrieving revision 2.190 diff -C2 -d -r2.189 -r2.190 *** unicodeobject.c 28 Jun 2003 20:04:25 -0000 2.189 --- unicodeobject.c 1 Jul 2003 00:13:27 -0000 2.190 *************** *** 532,535 **** --- 532,539 ---- else if (strcmp(encoding, "latin-1") == 0) return PyUnicode_DecodeLatin1(s, size, errors); + #if defined(MS_WINDOWS) && defined(HAVE_USABLE_WCHAR_T) + else if (strcmp(encoding, "mbcs") == 0) + return PyUnicode_DecodeMBCS(s, size, errors); + #endif else if (strcmp(encoding, "ascii") == 0) return PyUnicode_DecodeASCII(s, size, errors); *************** *** 592,595 **** --- 596,603 ---- else if (strcmp(encoding, "latin-1") == 0) return PyUnicode_AsLatin1String(unicode); + #if defined(MS_WINDOWS) && defined(HAVE_USABLE_WCHAR_T) + else if (strcmp(encoding, "mbcs") == 0) + return PyUnicode_AsMBCSString(unicode); + #endif else if (strcmp(encoding, "ascii") == 0) return PyUnicode_AsASCIIString(unicode); *************** *** 2620,2623 **** --- 2628,2642 ---- } return repr; + } + + PyObject *PyUnicode_AsMBCSString(PyObject *unicode) + { + if (!PyUnicode_Check(unicode)) { + PyErr_BadArgument(); + return NULL; + } + return PyUnicode_EncodeMBCS(PyUnicode_AS_UNICODE(unicode), + PyUnicode_GET_SIZE(unicode), + NULL); } From nnorwitz@users.sourceforge.net Tue Jul 1 04:33:33 2003 From: nnorwitz@users.sourceforge.net (nnorwitz@users.sourceforge.net) Date: Mon, 30 Jun 2003 20:33:33 -0700 Subject: [Python-checkins] python/dist/src/Lib/test test_posixpath.py,1.8,1.9 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/test In directory sc8-pr-cvs1:/tmp/cvs-serv32139/Lib/test Modified Files: test_posixpath.py Log Message: Fix SF #763362, test_posixpath failed Don't check expanduser('~') if the home directory == the root directory (ie, we are running as root). Index: test_posixpath.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/test/test_posixpath.py,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** test_posixpath.py 29 Jun 2003 05:46:54 -0000 1.8 --- test_posixpath.py 1 Jul 2003 03:33:31 -0000 1.9 *************** *** 339,346 **** else: self.assert_(isinstance(posixpath.expanduser("~/"), basestring)) ! self.assertEqual( ! posixpath.expanduser("~") + "/", ! posixpath.expanduser("~/") ! ) self.assert_(isinstance(posixpath.expanduser("~root/"), basestring)) self.assert_(isinstance(posixpath.expanduser("~foo/"), basestring)) --- 339,348 ---- else: self.assert_(isinstance(posixpath.expanduser("~/"), basestring)) ! # if home directory == root directory, this test makes no sense ! if posixpath.expanduser("~") != '/': ! self.assertEqual( ! posixpath.expanduser("~") + "/", ! posixpath.expanduser("~/") ! ) self.assert_(isinstance(posixpath.expanduser("~root/"), basestring)) self.assert_(isinstance(posixpath.expanduser("~foo/"), basestring)) From nnorwitz@users.sourceforge.net Tue Jul 1 05:14:30 2003 From: nnorwitz@users.sourceforge.net (nnorwitz@users.sourceforge.net) Date: Mon, 30 Jun 2003 21:14:30 -0700 Subject: [Python-checkins] python/dist/src/Misc NEWS,1.802,1.803 Message-ID: Update of /cvsroot/python/python/dist/src/Misc In directory sc8-pr-cvs1:/tmp/cvs-serv6030/Misc Modified Files: NEWS Log Message: SF bug 753592, websucker bug Pass the proper variable when the user supplies a directory. Will backport. Index: NEWS =================================================================== RCS file: /cvsroot/python/python/dist/src/Misc/NEWS,v retrieving revision 1.802 retrieving revision 1.803 diff -C2 -d -r1.802 -r1.803 *** NEWS 30 Jun 2003 04:18:47 -0000 1.802 --- NEWS 1 Jul 2003 04:14:27 -0000 1.803 *************** *** 25,28 **** --- 25,30 ---- ----------- + - SF bug 753592: webchecker/wsgui now handles user supplied directories. + Build ----- From nnorwitz@users.sourceforge.net Tue Jul 1 05:14:30 2003 From: nnorwitz@users.sourceforge.net (nnorwitz@users.sourceforge.net) Date: Mon, 30 Jun 2003 21:14:30 -0700 Subject: [Python-checkins] python/dist/src/Tools/webchecker wsgui.py,1.6,1.7 Message-ID: Update of /cvsroot/python/python/dist/src/Tools/webchecker In directory sc8-pr-cvs1:/tmp/cvs-serv6030/Tools/webchecker Modified Files: wsgui.py Log Message: SF bug 753592, websucker bug Pass the proper variable when the user supplies a directory. Will backport. Index: wsgui.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Tools/webchecker/wsgui.py,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** wsgui.py 11 Sep 2002 20:36:02 -0000 1.6 --- wsgui.py 1 Jul 2003 04:14:28 -0000 1.7 *************** *** 162,166 **** self.sucker.savedir = dir self.sucker.rootdir = os.path.dirname( ! websucker.Sucker.savefilename(self, url)) self.go_button.configure(state=DISABLED) self.auto_button.configure(state=DISABLED) --- 162,166 ---- self.sucker.savedir = dir self.sucker.rootdir = os.path.dirname( ! websucker.Sucker.savefilename(self.sucker, url)) self.go_button.configure(state=DISABLED) self.auto_button.configure(state=DISABLED) From nnorwitz@users.sourceforge.net Tue Jul 1 05:17:27 2003 From: nnorwitz@users.sourceforge.net (nnorwitz@users.sourceforge.net) Date: Mon, 30 Jun 2003 21:17:27 -0700 Subject: [Python-checkins] python/dist/src/Tools/webchecker wsgui.py,1.5,1.5.18.1 Message-ID: Update of /cvsroot/python/python/dist/src/Tools/webchecker In directory sc8-pr-cvs1:/tmp/cvs-serv6464/Tools/webchecker Modified Files: Tag: release22-maint wsgui.py Log Message: Backport: SF bug 753592, websucker Pass the proper variable when the user supplies a directory. Index: wsgui.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Tools/webchecker/wsgui.py,v retrieving revision 1.5 retrieving revision 1.5.18.1 diff -C2 -d -r1.5 -r1.5.18.1 *** wsgui.py 11 May 2001 19:40:10 -0000 1.5 --- wsgui.py 1 Jul 2003 04:17:25 -0000 1.5.18.1 *************** *** 163,167 **** self.sucker.savedir = dir self.sucker.rootdir = os.path.dirname( ! websucker.Sucker.savefilename(self, url)) self.go_button.configure(state=DISABLED) self.auto_button.configure(state=DISABLED) --- 163,167 ---- self.sucker.savedir = dir self.sucker.rootdir = os.path.dirname( ! websucker.Sucker.savefilename(self.sucker, url)) self.go_button.configure(state=DISABLED) self.auto_button.configure(state=DISABLED) From nnorwitz@users.sourceforge.net Tue Jul 1 05:17:27 2003 From: nnorwitz@users.sourceforge.net (nnorwitz@users.sourceforge.net) Date: Mon, 30 Jun 2003 21:17:27 -0700 Subject: [Python-checkins] python/dist/src/Misc NEWS,1.337.2.4.2.88,1.337.2.4.2.89 Message-ID: Update of /cvsroot/python/python/dist/src/Misc In directory sc8-pr-cvs1:/tmp/cvs-serv6464/Misc Modified Files: Tag: release22-maint NEWS Log Message: Backport: SF bug 753592, websucker Pass the proper variable when the user supplies a directory. Index: NEWS =================================================================== RCS file: /cvsroot/python/python/dist/src/Misc/NEWS,v retrieving revision 1.337.2.4.2.88 retrieving revision 1.337.2.4.2.89 diff -C2 -d -r1.337.2.4.2.88 -r1.337.2.4.2.89 *** NEWS 14 Jun 2003 07:20:04 -0000 1.337.2.4.2.88 --- NEWS 1 Jul 2003 04:17:24 -0000 1.337.2.4.2.89 *************** *** 4,7 **** --- 4,9 ---- Classes are now also deepcopyable. + - SF #753592: webchecker/wsgui now handles user supplied directories. + What's New in Python 2.2.3 (final) ? Release date: 30-May-2003 From bcannon@users.sourceforge.net Tue Jul 1 06:16:10 2003 From: bcannon@users.sourceforge.net (bcannon@users.sourceforge.net) Date: Mon, 30 Jun 2003 22:16:10 -0700 Subject: [Python-checkins] python/dist/src/Misc NEWS,1.803,1.804 Message-ID: Update of /cvsroot/python/python/dist/src/Misc In directory sc8-pr-cvs1:/tmp/cvs-serv13084/Misc Modified Files: NEWS Log Message: Make temporary change of using _strptime for time.strptime permanent. Flesh out docs to better explain time.strptime (closes bug #697990). Index: NEWS =================================================================== RCS file: /cvsroot/python/python/dist/src/Misc/NEWS,v retrieving revision 1.803 retrieving revision 1.804 diff -C2 -d -r1.803 -r1.804 *** NEWS 1 Jul 2003 04:14:27 -0000 1.803 --- NEWS 1 Jul 2003 05:16:07 -0000 1.804 *************** *** 19,22 **** --- 19,25 ---- - SSL no longer crashes the interpreter when the remote side disconnects. + - time.strptime now exclusively uses the Python implementation + contained within the _strptime module. + Library ------- From bcannon@users.sourceforge.net Tue Jul 1 06:16:10 2003 From: bcannon@users.sourceforge.net (bcannon@users.sourceforge.net) Date: Mon, 30 Jun 2003 22:16:10 -0700 Subject: [Python-checkins] python/dist/src/Modules timemodule.c,2.137,2.138 Message-ID: Update of /cvsroot/python/python/dist/src/Modules In directory sc8-pr-cvs1:/tmp/cvs-serv13084/Modules Modified Files: timemodule.c Log Message: Make temporary change of using _strptime for time.strptime permanent. Flesh out docs to better explain time.strptime (closes bug #697990). Index: timemodule.c =================================================================== RCS file: /cvsroot/python/python/dist/src/Modules/timemodule.c,v retrieving revision 2.137 retrieving revision 2.138 diff -C2 -d -r2.137 -r2.138 *** timemodule.c 10 May 2003 07:36:55 -0000 2.137 --- timemodule.c 1 Jul 2003 05:16:08 -0000 2.138 *************** *** 417,458 **** #endif /* HAVE_STRFTIME */ - #undef HAVE_STRPTIME - #ifdef HAVE_STRPTIME - - #if 0 - /* Enable this if it's not declared in */ - extern char *strptime(const char *, const char *, struct tm *); - #endif - - static PyObject * - time_strptime(PyObject *self, PyObject *args) - { - struct tm tm; - char *fmt = "%a %b %d %H:%M:%S %Y"; - char *buf; - char *s; - - if (!PyArg_ParseTuple(args, "s|s:strptime", &buf, &fmt)) - return NULL; - memset((void *) &tm, '\0', sizeof(tm)); - s = strptime(buf, fmt, &tm); - if (s == NULL) { - PyErr_SetString(PyExc_ValueError, "format mismatch"); - return NULL; - } - while (*s && isspace(Py_CHARMASK(*s))) - s++; - if (*s) { - PyErr_Format(PyExc_ValueError, - "unconverted data remains: '%.400s'", s); - return NULL; - } - return tmtotuple(&tm); - } - - #endif /* HAVE_STRPTIME */ - - #ifndef HAVE_STRPTIME - static PyObject * time_strptime(PyObject *self, PyObject *args) --- 417,420 ---- *************** *** 468,475 **** } - #endif /* !HAVE_STRPTIME */ - PyDoc_STRVAR(strptime_doc, ! "strptime(string, format) -> tuple\n\ \n\ Parse a string to a time tuple according to a format specification.\n\ --- 430,435 ---- } PyDoc_STRVAR(strptime_doc, ! "strptime(string, format) -> struct_time\n\ \n\ Parse a string to a time tuple according to a format specification.\n\ From bcannon@users.sourceforge.net Tue Jul 1 06:16:10 2003 From: bcannon@users.sourceforge.net (bcannon@users.sourceforge.net) Date: Mon, 30 Jun 2003 22:16:10 -0700 Subject: [Python-checkins] python/dist/src/Doc/lib libtime.tex,1.57,1.58 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/lib In directory sc8-pr-cvs1:/tmp/cvs-serv13084/Doc/lib Modified Files: libtime.tex Log Message: Make temporary change of using _strptime for time.strptime permanent. Flesh out docs to better explain time.strptime (closes bug #697990). Index: libtime.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/libtime.tex,v retrieving revision 1.57 retrieving revision 1.58 diff -C2 -d -r1.57 -r1.58 *** libtime.tex 8 Jun 2003 13:57:19 -0000 1.57 --- libtime.tex 1 Jul 2003 05:16:08 -0000 1.58 *************** *** 289,300 **** directives as those used by \function{strftime()}; it defaults to \code{"\%a \%b \%d \%H:\%M:\%S \%Y"} which matches the formatting ! returned by \function{ctime()}. The same platform caveats apply; see ! the local \UNIX{} documentation for restrictions or additional ! supported directives. If \var{string} cannot be parsed according to ! \var{format}, \exception{ValueError} is raised. Values which are not ! provided as part of the input string are filled in with default ! values; the specific values are platform-dependent as the XPG standard ! does not provide sufficient information to constrain the result. ! \end{funcdesc} \begin{datadesc}{struct_time} --- 289,303 ---- directives as those used by \function{strftime()}; it defaults to \code{"\%a \%b \%d \%H:\%M:\%S \%Y"} which matches the formatting ! returned by \function{ctime()}. If \var{string} cannot be parsed ! according to \var{format}, \exception{ValueError} is raised. If the ! string to be parsed has excess data after parsing, ! \exception{ValueError} is raised. The default values used to fill in ! any missing data is \code{(1900, 1, 1, 0, 0, 0, 0, 1, -1)} . ! ! Support for the \code{\%Z} directive is based on the values contained in ! \code{tzname} and whether \code{daylight} is true. Because of this ! it is platform-specifc sans recognition for UTC and GMT which are ! always known (and are considered to be non-daylight savings ! timezones). \begin{datadesc}{struct_time} From bcannon@users.sourceforge.net Tue Jul 1 06:25:00 2003 From: bcannon@users.sourceforge.net (bcannon@users.sourceforge.net) Date: Mon, 30 Jun 2003 22:25:00 -0700 Subject: [Python-checkins] python/dist/src/Python ast.c,1.1.2.27,1.1.2.28 Message-ID: Update of /cvsroot/python/python/dist/src/Python In directory sc8-pr-cvs1:/tmp/cvs-serv14164/Python Modified Files: Tag: ast-branch ast.c Log Message: Very minor doc and syntax changes. Index: ast.c =================================================================== RCS file: /cvsroot/python/python/dist/src/Python/Attic/ast.c,v retrieving revision 1.1.2.27 retrieving revision 1.1.2.28 diff -C2 -d -r1.1.2.27 -r1.1.2.28 *** ast.c 28 Apr 2003 12:11:22 -0000 1.1.2.27 --- ast.c 1 Jul 2003 05:24:58 -0000 1.1.2.28 *************** *** 12,16 **** /* XXX TO DO re-indent this file ! internal error checking syntax errors */ --- 12,16 ---- /* XXX TO DO re-indent this file ! internal error checking (such as function return values, etc.) syntax errors */ *************** *** 23,27 **** static expr_ty ast_for_testlist(const node *); ! /* Note different signature for call */ static expr_ty ast_for_call(const node *, expr_ty); --- 23,27 ---- static expr_ty ast_for_testlist(const node *); ! /* Note different signature for ast_for_call */ static expr_ty ast_for_call(const node *, expr_ty); *************** *** 379,386 **** n_defaults++; } ! args = n_args ? asdl_seq_new(n_args) : NULL; if (!args && n_args) return NULL; ! defaults = n_defaults? asdl_seq_new(n_defaults) : NULL; if (!defaults && n_defaults) { if (args) asdl_seq_free(args); --- 379,386 ---- n_defaults++; } ! args = (n_args ? asdl_seq_new(n_args) : NULL); if (!args && n_args) return NULL; ! defaults = (n_defaults ? asdl_seq_new(n_defaults) : NULL); if (!defaults && n_defaults) { if (args) asdl_seq_free(args); From bcannon@users.sourceforge.net Tue Jul 1 06:32:39 2003 From: bcannon@users.sourceforge.net (bcannon@users.sourceforge.net) Date: Mon, 30 Jun 2003 22:32:39 -0700 Subject: [Python-checkins] python/dist/src/Python ast.c,1.1.2.28,1.1.2.29 Message-ID: Update of /cvsroot/python/python/dist/src/Python In directory sc8-pr-cvs1:/tmp/cvs-serv14755/Python Modified Files: Tag: ast-branch ast.c Log Message: Catch when function arguments are out of order in terms of kinds of arguments (default args, *NAME, etc.). Needs better error reporting, though. Currently causes a bus error (at least under OS X) because calls to the affected function do not currently check the return value for possible NULL arguments to flag a failure. Index: ast.c =================================================================== RCS file: /cvsroot/python/python/dist/src/Python/Attic/ast.c,v retrieving revision 1.1.2.28 retrieving revision 1.1.2.29 diff -C2 -d -r1.1.2.28 -r1.1.2.29 *** ast.c 1 Jul 2003 05:24:58 -0000 1.1.2.28 --- ast.c 1 Jul 2003 05:32:37 -0000 1.1.2.29 *************** *** 92,96 **** } ! mod_ty PyAST_FromNode(const node *n) { int i, j, num, total; --- 92,100 ---- } ! /* Generate AST from concrete syntax tree ! */ ! ! mod_ty ! PyAST_FromNode(const node *n) { int i, j, num, total; *************** *** 352,355 **** --- 356,361 ---- /* XXX TO DO check for invalid argument lists like normal after default + DONE; causes bus error since calls to this function do not check + for possible NULL result to signal an error. handle nested tuple arguments */ *************** *** 363,366 **** --- 369,377 ---- identifier vararg = NULL, kwarg = NULL; node *ch; + /* Used to make sure that different kinds of arguments come in the proper + order */ + enum parameter_kinds + {fpdef_kind=1, defaults_kind=2, vararg_kind=3, kwarg_kind=4} + parameter_kind = fpdef_kind; if (TYPE(n) == parameters) { *************** *** 404,412 **** return NULL; } ! if (TYPE(CHILD(ch, 0)) == NAME) ! asdl_seq_APPEND(args, Name(NEW_IDENTIFIER(CHILD(ch, 0)), ! Param)); if (i + 1 < NCH(n) && TYPE(CHILD(n, i + 1)) == EQUAL) { asdl_seq_APPEND(defaults, ast_for_expr(CHILD(n, i + 2))); i += 2; } --- 415,437 ---- return NULL; } ! if (TYPE(CHILD(ch, 0)) == NAME) { ! if (parameter_kind > fpdef_kind) { ! fprintf(stderr, "Error in order of arg kinds\n"); ! PyErr_Occurred(); ! return NULL; ! } ! asdl_seq_APPEND(args, Name(NEW_IDENTIFIER(CHILD(ch, 0)), ! Param)); ! /* Don't need to set parameter_kind since that is the ! default */ ! } if (i + 1 < NCH(n) && TYPE(CHILD(n, i + 1)) == EQUAL) { + if (parameter_kind > defaults_kind) { + fprintf(stderr, "Error in order of arg kinds\n"); + PyErr_Occurred(); + return NULL; + } asdl_seq_APPEND(defaults, ast_for_expr(CHILD(n, i + 2))); + parameter_kind = defaults_kind; i += 2; } *************** *** 414,422 **** --- 439,459 ---- break; case STAR: + if (parameter_kind > vararg_kind) { + fprintf(stderr, "Error in order of arg kinds\n"); + PyErr_Occurred(); + return NULL; + } vararg = NEW_IDENTIFIER(CHILD(n, i+1)); + parameter_kind = vararg_kind; i += 3; break; case DOUBLESTAR: + if (parameter_kind > kwarg_kind) { + fprintf(stderr, "Error in order of arg kinds\n"); + PyErr_Occurred(); + return NULL; + } kwarg = NEW_IDENTIFIER(CHILD(n, i+1)); + parameter_kind = kwarg_kind; i += 3; break; From bcannon@users.sourceforge.net Tue Jul 1 06:34:29 2003 From: bcannon@users.sourceforge.net (bcannon@users.sourceforge.net) Date: Mon, 30 Jun 2003 22:34:29 -0700 Subject: [Python-checkins] python/dist/src/Lib Queue.py,1.18,1.19 Message-ID: Update of /cvsroot/python/python/dist/src/Lib In directory sc8-pr-cvs1:/tmp/cvs-serv15225a/Lib Modified Files: Queue.py Log Message: Add __all__ . Index: Queue.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/Queue.py,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** Queue.py 30 Dec 2002 22:36:09 -0000 1.18 --- Queue.py 1 Jul 2003 05:34:27 -0000 1.19 *************** *** 3,6 **** --- 3,8 ---- from time import time as _time, sleep as _sleep + __all__ = ['Empty', 'Full', 'Queue'] + class Empty(Exception): "Exception raised by Queue.get(block=0)/get_nowait()." From rhettinger@users.sourceforge.net Tue Jul 1 06:49:04 2003 From: rhettinger@users.sourceforge.net (rhettinger@users.sourceforge.net) Date: Mon, 30 Jun 2003 22:49:04 -0700 Subject: [Python-checkins] python/dist/src/Lib/test test___all__.py,1.33,1.34 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/test In directory sc8-pr-cvs1:/tmp/cvs-serv16660 Modified Files: test___all__.py Log Message: Test Brett's addition of __all__ to Queue. Index: test___all__.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/test/test___all__.py,v retrieving revision 1.33 retrieving revision 1.34 diff -C2 -d -r1.33 -r1.34 *** test___all__.py 10 May 2003 05:37:13 -0000 1.33 --- test___all__.py 1 Jul 2003 05:49:02 -0000 1.34 *************** *** 60,63 **** --- 60,64 ---- self.check_all("Cookie") self.check_all("MimeWriter") + self.check_all("Queue") self.check_all("SimpleHTTPServer") self.check_all("SocketServer") From rhettinger@users.sourceforge.net Tue Jul 1 07:19:36 2003 From: rhettinger@users.sourceforge.net (rhettinger@users.sourceforge.net) Date: Mon, 30 Jun 2003 23:19:36 -0700 Subject: [Python-checkins] python/dist/src/Doc/tut tut.tex,1.191,1.192 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/tut In directory sc8-pr-cvs1:/tmp/cvs-serv19998 Modified Files: tut.tex Log Message: SF #751062: Tutorial: remove string exceptions, add parnassus, #posts (Contributed by Gerritt Holl) * Remove the last mentions of string exceptions * Reference a third-party repository of programs * Minor clarification of comp.lang.py posting volumes Index: tut.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/tut/tut.tex,v retrieving revision 1.191 retrieving revision 1.192 diff -C2 -d -r1.191 -r1.192 *** tut.tex 30 Jun 2003 04:27:31 -0000 1.191 --- tut.tex 1 Jul 2003 06:19:34 -0000 1.192 *************** *** 4118,4126 **** function object corresponding to the method. ! \subsection{Exceptions Can Be Classes \label{exceptionClasses}} ! User-defined exceptions are no longer limited to being string objects ! --- they can be identified by classes as well. Using this mechanism it ! is possible to create extensible hierarchies of exceptions. There are two new valid (semantic) forms for the raise statement: --- 4118,4125 ---- function object corresponding to the method. ! \subsection{Exceptions Are Classes Too\label{exceptionClasses}} ! User-defined exceptions are identified by classes as well. Using this ! mechanism it is possible to create extensible hierarchies of exceptions. There are two new valid (semantic) forms for the raise statement: *************** *** 4140,4145 **** \end{verbatim} ! An except clause may list classes as well as string objects. A class ! in an except clause is compatible with an exception if it is the same class or a base class thereof (but not the other way around --- an except clause listing a derived class is not compatible with a base --- 4139,4143 ---- \end{verbatim} ! A class in an except clause is compatible with an exception if it is the same class or a base class thereof (but not the other way around --- an except clause listing a derived class is not compatible with a base *************** *** 4200,4204 **** informal site is \url{http://starship.python.net/}, which contains a bunch of Python-related personal home pages; many people have ! downloadable software there. For Python-related questions and problem reports, you can post to the --- 4198,4204 ---- informal site is \url{http://starship.python.net/}, which contains a bunch of Python-related personal home pages; many people have ! downloadable software there. Many more user-created Python modules ! can be found in a third-party repository at ! \url{http://www.vex.net/parnassus}. For Python-related questions and problem reports, you can post to the *************** *** 4206,4210 **** list at \email{python-list@python.org}. The newsgroup and mailing list are gatewayed, so messages posted to one will automatically be ! forwarded to the other. There are around 120 postings a day, % Postings figure based on average of last six months activity as % reported by www.egroups.com; Jan. 2000 - June 2000: 21272 msgs / 182 --- 4206,4211 ---- list at \email{python-list@python.org}. The newsgroup and mailing list are gatewayed, so messages posted to one will automatically be ! forwarded to the other. There are around 120 postings a day (with peaks ! up to several hundred), % Postings figure based on average of last six months activity as % reported by www.egroups.com; Jan. 2000 - June 2000: 21272 msgs / 182 From rhettinger@users.sourceforge.net Tue Jul 1 07:29:20 2003 From: rhettinger@users.sourceforge.net (rhettinger@users.sourceforge.net) Date: Mon, 30 Jun 2003 23:29:20 -0700 Subject: [Python-checkins] python/dist/src/Doc/lib libtime.tex,1.58,1.59 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/lib In directory sc8-pr-cvs1:/tmp/cvs-serv21096a Modified Files: libtime.tex Log Message: Fix spelling, grammar, usage, and markup. Index: libtime.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/libtime.tex,v retrieving revision 1.58 retrieving revision 1.59 diff -C2 -d -r1.58 -r1.59 *** libtime.tex 1 Jul 2003 05:16:08 -0000 1.58 --- libtime.tex 1 Jul 2003 06:29:18 -0000 1.59 *************** *** 296,303 **** Support for the \code{\%Z} directive is based on the values contained in ! \code{tzname} and whether \code{daylight} is true. Because of this ! it is platform-specifc sans recognition for UTC and GMT which are always known (and are considered to be non-daylight savings timezones). \begin{datadesc}{struct_time} --- 296,304 ---- Support for the \code{\%Z} directive is based on the values contained in ! \code{tzname} and whether \code{daylight} is true. Because of this, ! it is platform-specific without recognition for UTC and GMT which are always known (and are considered to be non-daylight savings timezones). + \end{funcdesc} \begin{datadesc}{struct_time} From rhettinger@users.sourceforge.net Tue Jul 1 08:19:19 2003 From: rhettinger@users.sourceforge.net (rhettinger@users.sourceforge.net) Date: Tue, 01 Jul 2003 00:19:19 -0700 Subject: [Python-checkins] python/dist/src/Doc/lib libtime.tex,1.59,1.60 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/lib In directory sc8-pr-cvs1:/tmp/cvs-serv26257 Modified Files: libtime.tex Log Message: Improve the wording a bit Index: libtime.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/libtime.tex,v retrieving revision 1.59 retrieving revision 1.60 diff -C2 -d -r1.59 -r1.60 *** libtime.tex 1 Jul 2003 06:29:18 -0000 1.59 --- libtime.tex 1 Jul 2003 07:19:17 -0000 1.60 *************** *** 297,301 **** Support for the \code{\%Z} directive is based on the values contained in \code{tzname} and whether \code{daylight} is true. Because of this, ! it is platform-specific without recognition for UTC and GMT which are always known (and are considered to be non-daylight savings timezones). --- 297,301 ---- Support for the \code{\%Z} directive is based on the values contained in \code{tzname} and whether \code{daylight} is true. Because of this, ! it is platform-specific except for recognizing UTC and GMT which are always known (and are considered to be non-daylight savings timezones). From nnorwitz@users.sourceforge.net Tue Jul 1 14:44:31 2003 From: nnorwitz@users.sourceforge.net (nnorwitz@users.sourceforge.net) Date: Tue, 01 Jul 2003 06:44:31 -0700 Subject: [Python-checkins] python/dist/src/Lib/test test_socket_ssl.py,1.7,1.8 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/test In directory sc8-pr-cvs1:/tmp/cvs-serv10938/Lib/test Modified Files: test_socket_ssl.py Log Message: Fix SF bug #763770, test_socket_ssl crash Don't run any tests if there is no ssl support. Index: test_socket_ssl.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/test/test_socket_ssl.py,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** test_socket_ssl.py 30 Jun 2003 03:25:20 -0000 1.7 --- test_socket_ssl.py 1 Jul 2003 13:44:28 -0000 1.8 *************** *** 12,17 **** def test_basic(): test_support.requires('network') - if not hasattr(socket, "ssl"): - raise test_support.TestSkipped("socket module has no ssl support") import urllib --- 12,15 ---- *************** *** 62,65 **** --- 60,65 ---- def test_main(): + if not hasattr(socket, "ssl"): + raise test_support.TestSkipped("socket module has no ssl support") test_rude_shutdown() test_basic() From tim_one@users.sourceforge.net Tue Jul 1 15:38:02 2003 From: tim_one@users.sourceforge.net (tim_one@users.sourceforge.net) Date: Tue, 01 Jul 2003 07:38:02 -0700 Subject: [Python-checkins] python/dist/src/Doc/lib libwarnings.tex,1.11,1.12 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/lib In directory sc8-pr-cvs1:/tmp/cvs-serv20597/python/Doc/lib Modified Files: libwarnings.tex Log Message: showwarning() calls formatwarning(), not showwarning(). Bugfix candidate. Index: libwarnings.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/libwarnings.tex,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** libwarnings.tex 6 Feb 2003 14:38:45 -0000 1.11 --- libwarnings.tex 1 Jul 2003 14:37:59 -0000 1.12 *************** *** 185,189 **** lineno\optional{, file}} Write a warning to a file. The default implementation calls ! \code{showwarning(\var{message}, \var{category}, \var{filename}, \var{lineno})} and writes the resulting string to \var{file}, which defaults to \code{sys.stderr}. You may replace this function with an --- 185,189 ---- lineno\optional{, file}} Write a warning to a file. The default implementation calls ! \code{formatwarning(\var{message}, \var{category}, \var{filename}, \var{lineno})} and writes the resulting string to \var{file}, which defaults to \code{sys.stderr}. You may replace this function with an From tim_one@users.sourceforge.net Tue Jul 1 15:49:34 2003 From: tim_one@users.sourceforge.net (tim_one@users.sourceforge.net) Date: Tue, 01 Jul 2003 07:49:34 -0700 Subject: [Python-checkins] python/dist/src/Lib/test test_socket_ssl.py,1.8,1.9 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/test In directory sc8-pr-cvs1:/tmp/cvs-serv23530/Lib/test Modified Files: test_socket_ssl.py Log Message: connector(): You can't use an empty string as an argument to connect() on Windows. Index: test_socket_ssl.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/test/test_socket_ssl.py,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** test_socket_ssl.py 1 Jul 2003 13:44:28 -0000 1.8 --- test_socket_ssl.py 1 Jul 2003 14:49:32 -0000 1.9 *************** *** 46,50 **** def connector(): s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) ! s.connect(('', PORT)) try: ssl_sock = socket.ssl(s) --- 46,50 ---- def connector(): s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) ! s.connect(('localhost', PORT)) try: ssl_sock = socket.ssl(s) From nnorwitz@users.sourceforge.net Tue Jul 1 15:57:10 2003 From: nnorwitz@users.sourceforge.net (nnorwitz@users.sourceforge.net) Date: Tue, 01 Jul 2003 07:57:10 -0700 Subject: [Python-checkins] python/dist/src/Lib difflib.py,1.14,1.15 Message-ID: Update of /cvsroot/python/python/dist/src/Lib In directory sc8-pr-cvs1:/tmp/cvs-serv25889/Lib Modified Files: difflib.py Log Message: Fix SF bug #763023, difflib.py: ratio() zero division not caught Backport candidate Index: difflib.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/difflib.py,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** difflib.py 17 Jun 2003 16:53:25 -0000 1.14 --- difflib.py 1 Jul 2003 14:57:08 -0000 1.15 *************** *** 30,33 **** --- 30,38 ---- 'unified_diff'] + def _calculate_ratio(matches, length): + if length: + return 2.0 * matches / length + return 1.0 + class SequenceMatcher: *************** *** 612,616 **** matches = reduce(lambda sum, triple: sum + triple[-1], self.get_matching_blocks(), 0) ! return 2.0 * matches / (len(self.a) + len(self.b)) def quick_ratio(self): --- 617,621 ---- matches = reduce(lambda sum, triple: sum + triple[-1], self.get_matching_blocks(), 0) ! return _calculate_ratio(matches, len(self.a) + len(self.b)) def quick_ratio(self): *************** *** 641,645 **** if numb > 0: matches = matches + 1 ! return 2.0 * matches / (len(self.a) + len(self.b)) def real_quick_ratio(self): --- 646,650 ---- if numb > 0: matches = matches + 1 ! return _calculate_ratio(matches, len(self.a) + len(self.b)) def real_quick_ratio(self): *************** *** 653,657 **** # can't have more matches than the number of elements in the # shorter sequence ! return 2.0 * min(la, lb) / (la + lb) def get_close_matches(word, possibilities, n=3, cutoff=0.6): --- 658,662 ---- # can't have more matches than the number of elements in the # shorter sequence ! return _calculate_ratio(min(la, lb), la + lb) def get_close_matches(word, possibilities, n=3, cutoff=0.6): From nnorwitz@users.sourceforge.net Tue Jul 1 15:57:10 2003 From: nnorwitz@users.sourceforge.net (nnorwitz@users.sourceforge.net) Date: Tue, 01 Jul 2003 07:57:10 -0700 Subject: [Python-checkins] python/dist/src/Lib/test test_difflib.py,1.5,1.6 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/test In directory sc8-pr-cvs1:/tmp/cvs-serv25889/Lib/test Modified Files: test_difflib.py Log Message: Fix SF bug #763023, difflib.py: ratio() zero division not caught Backport candidate Index: test_difflib.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/test/test_difflib.py,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** test_difflib.py 23 Jul 2002 19:03:48 -0000 1.5 --- test_difflib.py 1 Jul 2003 14:57:08 -0000 1.6 *************** *** 1,3 **** ! import difflib ! from test import test_support ! test_support.run_doctest(difflib) --- 1,15 ---- ! import difflib ! from test import test_support ! import unittest ! ! class TestSFbugs(unittest.TestCase): ! ! def test_ratio_for_null_seqn(self): ! # Check clearing of SF bug 763023 ! s = difflib.SequenceMatcher(None, [], []) ! self.assertEqual(s.ratio(), 1) ! self.assertEqual(s.quick_ratio(), 1) ! self.assertEqual(s.real_quick_ratio(), 1) ! ! test_support.run_unittest(TestSFbugs) ! test_support.run_doctest(difflib) From nnorwitz@users.sourceforge.net Tue Jul 1 15:59:49 2003 From: nnorwitz@users.sourceforge.net (nnorwitz@users.sourceforge.net) Date: Tue, 01 Jul 2003 07:59:49 -0700 Subject: [Python-checkins] python/dist/src/Misc NEWS,1.804,1.805 Message-ID: Update of /cvsroot/python/python/dist/src/Misc In directory sc8-pr-cvs1:/tmp/cvs-serv26606/Misc Modified Files: NEWS Log Message: Fix SF bug #763023, difflib.py: ratio() zero division not caught Backport candidate Index: NEWS =================================================================== RCS file: /cvsroot/python/python/dist/src/Misc/NEWS,v retrieving revision 1.804 retrieving revision 1.805 diff -C2 -d -r1.804 -r1.805 *** NEWS 1 Jul 2003 05:16:07 -0000 1.804 --- NEWS 1 Jul 2003 14:59:46 -0000 1.805 *************** *** 25,28 **** --- 25,31 ---- ------- + - SF bug 763023: fix uncaught ZeroDivisionError in difflib ratio methods + when there are no lines. + Tools/Demos ----------- From nnorwitz@users.sourceforge.net Tue Jul 1 16:03:51 2003 From: nnorwitz@users.sourceforge.net (nnorwitz@users.sourceforge.net) Date: Tue, 01 Jul 2003 08:03:51 -0700 Subject: [Python-checkins] python/dist/src/Lib/test test_difflib.py,1.6,1.7 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/test In directory sc8-pr-cvs1:/tmp/cvs-serv27585/Lib/test Modified Files: test_difflib.py Log Message: Remove carriage returns Index: test_difflib.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/test/test_difflib.py,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** test_difflib.py 1 Jul 2003 14:57:08 -0000 1.6 --- test_difflib.py 1 Jul 2003 15:03:49 -0000 1.7 *************** *** 1,15 **** ! import difflib ! from test import test_support ! import unittest ! ! class TestSFbugs(unittest.TestCase): ! ! def test_ratio_for_null_seqn(self): ! # Check clearing of SF bug 763023 ! s = difflib.SequenceMatcher(None, [], []) ! self.assertEqual(s.ratio(), 1) ! self.assertEqual(s.quick_ratio(), 1) ! self.assertEqual(s.real_quick_ratio(), 1) ! ! test_support.run_unittest(TestSFbugs) ! test_support.run_doctest(difflib) --- 1,15 ---- ! import difflib ! from test import test_support ! import unittest ! ! class TestSFbugs(unittest.TestCase): ! ! def test_ratio_for_null_seqn(self): ! # Check clearing of SF bug 763023 ! s = difflib.SequenceMatcher(None, [], []) ! self.assertEqual(s.ratio(), 1) ! self.assertEqual(s.quick_ratio(), 1) ! self.assertEqual(s.real_quick_ratio(), 1) ! ! test_support.run_unittest(TestSFbugs) ! test_support.run_doctest(difflib) From nnorwitz@users.sourceforge.net Tue Jul 1 16:12:35 2003 From: nnorwitz@users.sourceforge.net (nnorwitz@users.sourceforge.net) Date: Tue, 01 Jul 2003 08:12:35 -0700 Subject: [Python-checkins] python/dist/src/Lib difflib.py,1.6.10.1,1.6.10.2 Message-ID: Update of /cvsroot/python/python/dist/src/Lib In directory sc8-pr-cvs1:/tmp/cvs-serv31467/Lib Modified Files: Tag: release22-maint difflib.py Log Message: Fix SF bug #763023, difflib.py: ratio() zero division not caught Index: difflib.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/difflib.py,v retrieving revision 1.6.10.1 retrieving revision 1.6.10.2 diff -C2 -d -r1.6.10.1 -r1.6.10.2 *** difflib.py 30 Oct 2002 06:33:33 -0000 1.6.10.1 --- difflib.py 1 Jul 2003 15:12:33 -0000 1.6.10.2 *************** *** 25,28 **** --- 25,33 ---- 'Differ', 'IS_CHARACTER_JUNK', 'IS_LINE_JUNK'] + def _calculate_ratio(matches, length): + if length: + return 2.0 * matches / length + return 1.0 + class SequenceMatcher: *************** *** 526,530 **** matches = reduce(lambda sum, triple: sum + triple[-1], self.get_matching_blocks(), 0) ! return 2.0 * matches / (len(self.a) + len(self.b)) def quick_ratio(self): --- 531,535 ---- matches = reduce(lambda sum, triple: sum + triple[-1], self.get_matching_blocks(), 0) ! return _calculate_ratio(matches, len(self.a) + len(self.b)) def quick_ratio(self): *************** *** 555,559 **** if numb > 0: matches = matches + 1 ! return 2.0 * matches / (len(self.a) + len(self.b)) def real_quick_ratio(self): --- 560,564 ---- if numb > 0: matches = matches + 1 ! return _calculate_ratio(matches, len(self.a) + len(self.b)) def real_quick_ratio(self): *************** *** 567,571 **** # can't have more matches than the number of elements in the # shorter sequence ! return 2.0 * min(la, lb) / (la + lb) def get_close_matches(word, possibilities, n=3, cutoff=0.6): --- 572,576 ---- # can't have more matches than the number of elements in the # shorter sequence ! return _calculate_ratio(min(la, lb), la + lb) def get_close_matches(word, possibilities, n=3, cutoff=0.6): From nnorwitz@users.sourceforge.net Tue Jul 1 16:12:36 2003 From: nnorwitz@users.sourceforge.net (nnorwitz@users.sourceforge.net) Date: Tue, 01 Jul 2003 08:12:36 -0700 Subject: [Python-checkins] python/dist/src/Misc NEWS,1.337.2.4.2.89,1.337.2.4.2.90 Message-ID: Update of /cvsroot/python/python/dist/src/Misc In directory sc8-pr-cvs1:/tmp/cvs-serv31467/Misc Modified Files: Tag: release22-maint NEWS Log Message: Fix SF bug #763023, difflib.py: ratio() zero division not caught Index: NEWS =================================================================== RCS file: /cvsroot/python/python/dist/src/Misc/NEWS,v retrieving revision 1.337.2.4.2.89 retrieving revision 1.337.2.4.2.90 diff -C2 -d -r1.337.2.4.2.89 -r1.337.2.4.2.90 *** NEWS 1 Jul 2003 04:17:24 -0000 1.337.2.4.2.89 --- NEWS 1 Jul 2003 15:12:33 -0000 1.337.2.4.2.90 *************** *** 6,9 **** --- 6,12 ---- - SF #753592: webchecker/wsgui now handles user supplied directories. + - SF bug 763023: fix uncaught ZeroDivisionError in difflib ratio methods + when there are no lines. + What's New in Python 2.2.3 (final) ? Release date: 30-May-2003 From fdrake@users.sourceforge.net Tue Jul 1 17:17:52 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Tue, 01 Jul 2003 09:17:52 -0700 Subject: [Python-checkins] python/dist/src/Doc/ext newtypes.tex,1.30,1.31 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/ext In directory sc8-pr-cvs1:/tmp/cvs-serv11977 Modified Files: newtypes.tex Log Message: normalize markup for consistency Index: newtypes.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/ext/newtypes.tex,v retrieving revision 1.30 retrieving revision 1.31 diff -C2 -d -r1.30 -r1.31 *** newtypes.tex 28 Jun 2003 15:22:16 -0000 1.30 --- newtypes.tex 1 Jul 2003 16:17:50 -0000 1.31 *************** *** 159,163 **** This is so that Python knows how much memory to allocate when you call ! \cfunction{PyObject_New}. \begin{verbatim} --- 159,163 ---- This is so that Python knows how much memory to allocate when you call ! \cfunction{PyObject_New()}. \begin{verbatim} *************** *** 193,197 **** \member{tp_new} implementation. In this case, we can just use the default implementation provided by the API function ! \cfunction{PyType_GenericNew}. We'd like to just assign this to the \member{tp_new} slot, but we can't, for portability sake, On some platforms or compilers, we can't statically initialize a structure --- 193,197 ---- \member{tp_new} implementation. In this case, we can just use the default implementation provided by the API function ! \cfunction{PyType_GenericNew()}. We'd like to just assign this to the \member{tp_new} slot, but we can't, for portability sake, On some platforms or compilers, we can't statically initialize a structure *************** *** 210,214 **** Everything else in the file should be familiar, except for some code ! in \cfunction{initnoddy}: \begin{verbatim} --- 210,214 ---- Everything else in the file should be familiar, except for some code ! in \cfunction{initnoddy()}: \begin{verbatim} *************** *** 316,320 **** This method decrements the reference counts of the two Python ! attributes. We use \cfunction{Py_XDECREF} here because the \member{first} and \member{last} members could be \NULL. It then calls the \member{tp_free} member of the object's type to free the --- 316,320 ---- This method decrements the reference counts of the two Python ! attributes. We use \cfunction{Py_XDECREF()} here because the \member{first} and \member{last} members could be \NULL. It then calls the \member{tp_free} member of the object's type to free the *************** *** 363,374 **** The new member is responsible for creating (as opposed to initializing) objects of the type. It is exposed in Python as the ! \method{__new__} method. See the paper titled ``Unifying types and ! classes in Python'' for a detailed discussion of the \method{__new__} method. One reason to implement a new method is to assure the initial values of instance variables. In this case, we use the new method to make sure that the initial values of the members \member{first} and \member{last} are not \NULL. If we didn't care whether the initial ! values were \NULL, we could have used \cfunction{PyType_GenericNew} as ! our new method, as we did before. \cfunction{PyType_GenericNew} initializes all of the instance variable members to NULLs. --- 363,374 ---- The new member is responsible for creating (as opposed to initializing) objects of the type. It is exposed in Python as the ! \method{__new__()} method. See the paper titled ``Unifying types and ! classes in Python'' for a detailed discussion of the \method{__new__()} method. One reason to implement a new method is to assure the initial values of instance variables. In this case, we use the new method to make sure that the initial values of the members \member{first} and \member{last} are not \NULL. If we didn't care whether the initial ! values were \NULL, we could have used \cfunction{PyType_GenericNew()} as ! our new method, as we did before. \cfunction{PyType_GenericNew()} initializes all of the instance variable members to NULLs. *************** *** 423,427 **** The \member{tp_init} slot is exposed in Python as the ! \method{__init__} method. It is used to initialize an object after it's created. Unlike the new method, we can't guarantee that the initializer is called. The initializer isn't called when unpickling --- 423,427 ---- The \member{tp_init} slot is exposed in Python as the ! \method{__init__()} method. It is used to initialize an object after it's created. Unlike the new method, we can't guarantee that the initializer is called. The initializer isn't called when unpickling *************** *** 551,556 **** \end{verbatim} ! We rename \cfunction{initnoddy} to \cfunction{initnoddy2} ! and update the module name passed to \cfunction{Py_InitModule3}. Finally, we update our \file{setup.py} file to build the new module: --- 551,556 ---- \end{verbatim} ! We rename \cfunction{initnoddy()} to \cfunction{initnoddy2()} ! and update the module name passed to \cfunction{Py_InitModule3()}. Finally, we update our \file{setup.py} file to build the new module: *************** *** 662,666 **** \member{last} members are never NULL so we can remove checks for \NULL values in almost all cases. This means that most of the ! \cfunction{Py_XDECREF} calls can be converted to \cfunction{Py_DECREF} calls. The only place we can't change these calls is in the deallocator, where there is the possibility that the initialization of --- 662,666 ---- \member{last} members are never NULL so we can remove checks for \NULL values in almost all cases. This means that most of the ! \cfunction{Py_XDECREF()} calls can be converted to \cfunction{Py_DECREF()} calls. The only place we can't change these calls is in the deallocator, where there is the possibility that the initialization of *************** *** 724,729 **** For each subobject that can participate in cycles, we need to call the ! \cfunction{visit} function, which is passed to the traversal method. ! The \cfunction{visit} function takes as arguments the subobject and the extra argument \var{arg} passed to the traversal method. --- 724,729 ---- For each subobject that can participate in cycles, we need to call the ! \cfunction{visit()} function, which is passed to the traversal method. ! The \cfunction{visit()} function takes as arguments the subobject and the extra argument \var{arg} passed to the traversal method. *************** *** 752,756 **** \end{verbatim} ! Finally, we add the \constant{Py_TPFLAGS_HAVE_GC} flag to the class flags: \begin{verbatim} --- 752,757 ---- \end{verbatim} ! Finally, we add the \constant{Py_TPFLAGS_HAVE_GC} flag to the class ! flags: \begin{verbatim} From fdrake@users.sourceforge.net Tue Jul 1 17:31:34 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Tue, 01 Jul 2003 09:31:34 -0700 Subject: [Python-checkins] python/dist/src/Doc/lib libfuncs.tex,1.139,1.140 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/lib In directory sc8-pr-cvs1:/tmp/cvs-serv14160 Modified Files: libfuncs.tex Log Message: - note that super() only applies to new-style classes; closes SF bug #764003 - fix markup for consistency Index: libfuncs.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/libfuncs.tex,v retrieving revision 1.139 retrieving revision 1.140 diff -C2 -d -r1.139 -r1.140 *** libfuncs.tex 26 Jun 2003 03:11:57 -0000 1.139 --- libfuncs.tex 1 Jul 2003 16:31:26 -0000 1.140 *************** *** 936,941 **** Return the superclass of \var{type}. If the second argument is omitted the super object returned is unbound. If the second argument is an ! object, isinstance(obj, type) must be true. If the second argument is a ! type, issubclass(type2, type) must be true. A typical use for calling a cooperative superclass method is: --- 936,943 ---- Return the superclass of \var{type}. If the second argument is omitted the super object returned is unbound. If the second argument is an ! object, \code{isinstance(\var{obj}, \var{type})} must be true. If ! the second argument is a type, \code{issubclass(\var{type2}, ! \var{type})} must be true. ! \function{super()} only works for new-style classes. A typical use for calling a cooperative superclass method is: From tim_one@users.sourceforge.net Tue Jul 1 20:28:46 2003 From: tim_one@users.sourceforge.net (tim_one@users.sourceforge.net) Date: Tue, 01 Jul 2003 12:28:46 -0700 Subject: [Python-checkins] python/dist/src/Lib threading.py,1.36,1.37 Message-ID: Update of /cvsroot/python/python/dist/src/Lib In directory sc8-pr-cvs1:/tmp/cvs-serv12035/Lib Modified Files: threading.py Log Message: Resolved minor XXX question in the obvious way. Index: threading.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/threading.py,v retrieving revision 1.36 retrieving revision 1.37 diff -C2 -d -r1.36 -r1.37 *** threading.py 29 Jun 2003 17:24:17 -0000 1.36 --- threading.py 1 Jul 2003 19:28:44 -0000 1.37 *************** *** 27,31 **** # Debug support (adapted from ihooks.py) ! _VERBOSE = 0 # XXX Bool or int? if __debug__: --- 27,31 ---- # Debug support (adapted from ihooks.py) ! _VERBOSE = False if __debug__: From tim_one@users.sourceforge.net Tue Jul 1 21:01:57 2003 From: tim_one@users.sourceforge.net (tim_one@users.sourceforge.net) Date: Tue, 01 Jul 2003 13:01:57 -0700 Subject: [Python-checkins] python/dist/src/Misc NEWS,1.805,1.806 Message-ID: Update of /cvsroot/python/python/dist/src/Misc In directory sc8-pr-cvs1:/tmp/cvs-serv19112/Misc Modified Files: NEWS Log Message: Make the classes exposed by threading.py new-style classes. This is mostly for convenience and to aid debugging. Index: NEWS =================================================================== RCS file: /cvsroot/python/python/dist/src/Misc/NEWS,v retrieving revision 1.805 retrieving revision 1.806 diff -C2 -d -r1.805 -r1.806 *** NEWS 1 Jul 2003 14:59:46 -0000 1.805 --- NEWS 1 Jul 2003 20:01:55 -0000 1.806 *************** *** 25,28 **** --- 25,31 ---- ------- + - The classes in threading.py are now new-style classes. That they + weren't before was an oversight. + - SF bug 763023: fix uncaught ZeroDivisionError in difflib ratio methods when there are no lines. From tim_one@users.sourceforge.net Tue Jul 1 21:01:57 2003 From: tim_one@users.sourceforge.net (tim_one@users.sourceforge.net) Date: Tue, 01 Jul 2003 13:01:57 -0700 Subject: [Python-checkins] python/dist/src/Lib threading.py,1.37,1.38 Message-ID: Update of /cvsroot/python/python/dist/src/Lib In directory sc8-pr-cvs1:/tmp/cvs-serv19112/Lib Modified Files: threading.py Log Message: Make the classes exposed by threading.py new-style classes. This is mostly for convenience and to aid debugging. Index: threading.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/threading.py,v retrieving revision 1.37 retrieving revision 1.38 diff -C2 -d -r1.37 -r1.38 *** threading.py 1 Jul 2003 19:28:44 -0000 1.37 --- threading.py 1 Jul 2003 20:01:55 -0000 1.38 *************** *** 25,29 **** ! # Debug support (adapted from ihooks.py) _VERBOSE = False --- 25,33 ---- ! # Debug support (adapted from ihooks.py). ! # All the major classes here derive from _Verbose. We force that to ! # be a new-style class so that all the major classes here are new-style. ! # This helps debugging (type(instance) is more revealing for instances ! # of new-style classes). _VERBOSE = False *************** *** 31,35 **** if __debug__: ! class _Verbose: def __init__(self, verbose=None): --- 35,39 ---- if __debug__: ! class _Verbose(object): def __init__(self, verbose=None): *************** *** 47,51 **** else: # Disable this when using "python -O" ! class _Verbose: def __init__(self, verbose=None): pass --- 51,55 ---- else: # Disable this when using "python -O" ! class _Verbose(object): def __init__(self, verbose=None): pass From nnorwitz@users.sourceforge.net Tue Jul 1 21:15:23 2003 From: nnorwitz@users.sourceforge.net (nnorwitz@users.sourceforge.net) Date: Tue, 01 Jul 2003 13:15:23 -0700 Subject: [Python-checkins] python/dist/src/Modules bz2module.c,1.19,1.20 readline.c,2.62,2.63 Message-ID: Update of /cvsroot/python/python/dist/src/Modules In directory sc8-pr-cvs1:/tmp/cvs-serv22688/Modules Modified Files: bz2module.c readline.c Log Message: Use appropriate macros not the deprecated DL_IMPORT/DL_EXPORT macros Index: bz2module.c =================================================================== RCS file: /cvsroot/python/python/dist/src/Modules/bz2module.c,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** bz2module.c 3 May 2003 09:14:53 -0000 1.19 --- bz2module.c 1 Jul 2003 20:15:21 -0000 1.20 *************** *** 2168,2172 **** "); ! DL_EXPORT(void) initbz2(void) { --- 2168,2172 ---- "); ! PyMODINIT_FUNC initbz2(void) { Index: readline.c =================================================================== RCS file: /cvsroot/python/python/dist/src/Modules/readline.c,v retrieving revision 2.62 retrieving revision 2.63 diff -C2 -d -r2.62 -r2.63 *** readline.c 1 Mar 2003 15:19:41 -0000 2.62 --- readline.c 1 Jul 2003 20:15:21 -0000 2.63 *************** *** 33,38 **** /* Pointers needed from outside (but not declared in a header file). */ ! extern DL_IMPORT(int) (*PyOS_InputHook)(void); ! extern DL_IMPORT(char) *(*PyOS_ReadlineFunctionPointer)(FILE *, FILE *,char *); --- 33,38 ---- /* Pointers needed from outside (but not declared in a header file). */ ! PyAPI_FUNC(int) (*PyOS_InputHook)(void); ! PyAPI_FUNC(char) *(*PyOS_ReadlineFunctionPointer)(FILE *, FILE *,char *); From nnorwitz@users.sourceforge.net Tue Jul 1 21:15:23 2003 From: nnorwitz@users.sourceforge.net (nnorwitz@users.sourceforge.net) Date: Tue, 01 Jul 2003 13:15:23 -0700 Subject: [Python-checkins] python/dist/src/Include pyerrors.h,2.64,2.65 stringobject.h,2.38,2.39 Message-ID: Update of /cvsroot/python/python/dist/src/Include In directory sc8-pr-cvs1:/tmp/cvs-serv22688/Include Modified Files: pyerrors.h stringobject.h Log Message: Use appropriate macros not the deprecated DL_IMPORT/DL_EXPORT macros Index: pyerrors.h =================================================================== RCS file: /cvsroot/python/python/dist/src/Include/pyerrors.h,v retrieving revision 2.64 retrieving revision 2.65 diff -C2 -d -r2.64 -r2.65 *** pyerrors.h 11 Dec 2002 14:04:57 -0000 2.64 --- pyerrors.h 1 Jul 2003 20:15:21 -0000 2.65 *************** *** 64,68 **** #endif #ifdef __VMS ! extern DL_IMPORT(PyObject *) PyExc_VMSError; #endif --- 64,68 ---- #endif #ifdef __VMS ! PyAPI_DATA(PyObject *) PyExc_VMSError; #endif Index: stringobject.h =================================================================== RCS file: /cvsroot/python/python/dist/src/Include/stringobject.h,v retrieving revision 2.38 retrieving revision 2.39 diff -C2 -d -r2.38 -r2.39 *** stringobject.h 15 Sep 2002 14:09:46 -0000 2.38 --- stringobject.h 1 Jul 2003 20:15:21 -0000 2.39 *************** *** 66,70 **** PyAPI_FUNC(PyObject *) _PyString_FormatLong(PyObject*, int, int, int, char**, int*); ! extern DL_IMPORT(PyObject *) PyString_DecodeEscape(const char *, int, const char *, int, const char *); --- 66,70 ---- PyAPI_FUNC(PyObject *) _PyString_FormatLong(PyObject*, int, int, int, char**, int*); ! PyAPI_FUNC(PyObject *) PyString_DecodeEscape(const char *, int, const char *, int, const char *); From jvr@users.sourceforge.net Tue Jul 1 21:15:40 2003 From: jvr@users.sourceforge.net (jvr@users.sourceforge.net) Date: Tue, 01 Jul 2003 13:15:40 -0700 Subject: [Python-checkins] python/dist/src/Lib/plat-mac plistlib.py,1.2,1.3 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/plat-mac In directory sc8-pr-cvs1:/tmp/cvs-serv22839 Modified Files: plistlib.py Log Message: - replaced a couple of asserts with proper exceptions - use isinstance instead of flaky file-detection code Index: plistlib.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/plat-mac/plistlib.py,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** plistlib.py 9 Apr 2003 13:25:43 -0000 1.2 --- plistlib.py 1 Jul 2003 20:15:38 -0000 1.3 *************** *** 143,147 **** self.writeArray(value) else: ! assert 0, "unsuported type: %s" % type(value) def writeData(self, data): --- 143,147 ---- self.writeArray(value) else: ! raise TypeError("unsuported type: %s" % type(value)) def writeData(self, data): *************** *** 157,161 **** items.sort() for key, value in items: ! assert isinstance(key, (str, unicode)), "keys must be strings" self.simpleElement("key", key) self.writeValue(value) --- 157,162 ---- items.sort() for key, value in items: ! if not isinstance(key, (str, unicode)): ! raise TypeError("keys must be strings") self.simpleElement("key", key) self.writeValue(value) *************** *** 205,209 **** def fromFile(cls, pathOrFile): didOpen = 0 ! if not hasattr(pathOrFile, "write"): pathOrFile = open(pathOrFile) didOpen = 1 --- 206,210 ---- def fromFile(cls, pathOrFile): didOpen = 0 ! if isinstance(pathOrFile, (str, unicode)): pathOrFile = open(pathOrFile) didOpen = 1 *************** *** 216,220 **** def write(self, pathOrFile): ! if not hasattr(pathOrFile, "write"): pathOrFile = open(pathOrFile, "w") didOpen = 1 --- 217,221 ---- def write(self, pathOrFile): ! if isinstance(pathOrFile, (str, unicode)): pathOrFile = open(pathOrFile, "w") didOpen = 1 From jvr@users.sourceforge.net Tue Jul 1 21:22:32 2003 From: jvr@users.sourceforge.net (jvr@users.sourceforge.net) Date: Tue, 01 Jul 2003 13:22:32 -0700 Subject: [Python-checkins] python/dist/src/Lib/test test_plistlib.py,1.2,1.3 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/test In directory sc8-pr-cvs1:/tmp/cvs-serv24114 Modified Files: test_plistlib.py Log Message: - added (c)StringIO tests; cStringIO usage failed in the previous version of plistlib.py (r1.2) Index: test_plistlib.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/test/test_plistlib.py,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** test_plistlib.py 7 Mar 2003 17:30:47 -0000 1.2 --- test_plistlib.py 1 Jul 2003 20:22:30 -0000 1.3 *************** *** 50,53 **** --- 50,69 ---- self.assertEqual(dict(pl), dict(pl2)) + def test_stringio(self): + from StringIO import StringIO + f = StringIO() + pl = self._create() + pl.write(f) + pl2 = plistlib.Plist.fromFile(StringIO(f.getvalue())) + self.assertEqual(dict(pl), dict(pl2)) + + def test_cstringio(self): + from cStringIO import StringIO + f = StringIO() + pl = self._create() + pl.write(f) + pl2 = plistlib.Plist.fromFile(StringIO(f.getvalue())) + self.assertEqual(dict(pl), dict(pl2)) + From nnorwitz@users.sourceforge.net Tue Jul 1 22:12:49 2003 From: nnorwitz@users.sourceforge.net (nnorwitz@users.sourceforge.net) Date: Tue, 01 Jul 2003 14:12:49 -0700 Subject: [Python-checkins] python/dist/src/Lib/lib-tk Tkinter.py,1.176,1.177 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/lib-tk In directory sc8-pr-cvs1:/tmp/cvs-serv4006/Lib/lib-tk Modified Files: Tkinter.py Log Message: Fix SF bug #763637, 2.3b2 unpack tuple of wrong size in after_cancel Tk 8.4 may return different values than 8.3. This fix should handle either version. Index: Tkinter.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/lib-tk/Tkinter.py,v retrieving revision 1.176 retrieving revision 1.177 diff -C2 -d -r1.176 -r1.177 *** Tkinter.py 7 Jun 2003 19:52:38 -0000 1.176 --- Tkinter.py 1 Jul 2003 21:12:47 -0000 1.177 *************** *** 476,481 **** given as first parameter.""" try: ! (script, type) = self.tk.splitlist( ! self.tk.call('after', 'info', id)) self.deletecommand(script) except TclError: --- 476,483 ---- given as first parameter.""" try: ! data = self.tk.call('after', 'info', id) ! # In Tk 8.3, splitlist returns: (script, type) ! # In Tk 8.4, splitlist may return (script, type) or (script,) ! script = self.tk.splitlist(data)[0] self.deletecommand(script) except TclError: From nnorwitz@users.sourceforge.net Tue Jul 1 22:12:49 2003 From: nnorwitz@users.sourceforge.net (nnorwitz@users.sourceforge.net) Date: Tue, 01 Jul 2003 14:12:49 -0700 Subject: [Python-checkins] python/dist/src/Misc NEWS,1.806,1.807 Message-ID: Update of /cvsroot/python/python/dist/src/Misc In directory sc8-pr-cvs1:/tmp/cvs-serv4006/Misc Modified Files: NEWS Log Message: Fix SF bug #763637, 2.3b2 unpack tuple of wrong size in after_cancel Tk 8.4 may return different values than 8.3. This fix should handle either version. Index: NEWS =================================================================== RCS file: /cvsroot/python/python/dist/src/Misc/NEWS,v retrieving revision 1.806 retrieving revision 1.807 diff -C2 -d -r1.806 -r1.807 *** NEWS 1 Jul 2003 20:01:55 -0000 1.806 --- NEWS 1 Jul 2003 21:12:47 -0000 1.807 *************** *** 31,34 **** --- 31,37 ---- when there are no lines. + - SF bug 763637: fix exception in Tkinter with after_cancel + which could occur with Tk 8.4 + Tools/Demos ----------- From nnorwitz@users.sourceforge.net Tue Jul 1 22:37:40 2003 From: nnorwitz@users.sourceforge.net (nnorwitz@users.sourceforge.net) Date: Tue, 01 Jul 2003 14:37:40 -0700 Subject: [Python-checkins] python/dist/src/Doc/dist dist.tex,1.36.16.3,1.36.16.4 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/dist In directory sc8-pr-cvs1:/tmp/cvs-serv9604/Doc/dist Modified Files: Tag: release22-maint dist.tex Log Message: Backport theller's checkin: Document the DISTUTILS_DEBUG variable. Closes sf #761401. Index: dist.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/dist/dist.tex,v retrieving revision 1.36.16.3 retrieving revision 1.36.16.4 diff -C2 -d -r1.36.16.3 -r1.36.16.4 *** dist.tex 31 Mar 2003 16:45:22 -0000 1.36.16.3 --- dist.tex 1 Jul 2003 21:37:38 -0000 1.36.16.4 *************** *** 664,667 **** --- 664,688 ---- + \subsection{Debugging the setup script} + \label{meta-data} + + Sometimes things go wrong, and the setup script doesn't do what the + developer wants. + + Distutils catches any exceptions when running the setup script, and + print a simple error message before the script is terminated. The + motivation for this behaviour is to not confuse administrators who + don't know much about Python and are trying to install a package. If + they get a big long traceback from deep inside the guts of Distutils, + they may think the package or the Python installation is broken + because they don't read all the way down to the bottom and see that + it's a permission problem. + + On the other hand, this doesn't help the developer to find the cause + of the failure. For this purpose, the DISTUTILS_DEBUG environment + variable can be set to anything except an empty string, and distutils + will now print detailed information what it is doing, and prints the + full traceback in case an exception occurrs. + \section{Writing the Setup Configuration File} \label{setup-config} From nnorwitz@users.sourceforge.net Tue Jul 1 22:49:00 2003 From: nnorwitz@users.sourceforge.net (nnorwitz@users.sourceforge.net) Date: Tue, 01 Jul 2003 14:49:00 -0700 Subject: [Python-checkins] python/dist/src/Doc/lib libwarnings.tex,1.6.16.1,1.6.16.2 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/lib In directory sc8-pr-cvs1:/tmp/cvs-serv12520/Doc/lib Modified Files: Tag: release22-maint libwarnings.tex Log Message: Backport tim_one's checkin: showwarning() calls formatwarning(), not showwarning(). Index: libwarnings.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/libwarnings.tex,v retrieving revision 1.6.16.1 retrieving revision 1.6.16.2 diff -C2 -d -r1.6.16.1 -r1.6.16.2 *** libwarnings.tex 12 Mar 2002 19:51:16 -0000 1.6.16.1 --- libwarnings.tex 1 Jul 2003 21:48:57 -0000 1.6.16.2 *************** *** 175,179 **** lineno\optional{, file}} Write a warning to a file. The default implementation calls ! \code{showwarning(\var{message}, \var{category}, \var{filename}, \var{lineno})} and writes the resulting string to \var{file}, which defaults to \code{sys.stderr}. You may replace this function with an --- 175,179 ---- lineno\optional{, file}} Write a warning to a file. The default implementation calls ! \code{formatwarning(\var{message}, \var{category}, \var{filename}, \var{lineno})} and writes the resulting string to \var{file}, which defaults to \code{sys.stderr}. You may replace this function with an From nnorwitz@users.sourceforge.net Wed Jul 2 03:49:36 2003 From: nnorwitz@users.sourceforge.net (nnorwitz@users.sourceforge.net) Date: Tue, 01 Jul 2003 19:49:36 -0700 Subject: [Python-checkins] python/dist/src/Lib os.py,1.71,1.72 Message-ID: Update of /cvsroot/python/python/dist/src/Lib In directory sc8-pr-cvs1:/tmp/cvs-serv13681/Lib Modified Files: os.py Log Message: SF #764121, docstring for spawnlp incorrect Index: os.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/os.py,v retrieving revision 1.71 retrieving revision 1.72 diff -C2 -d -r1.71 -r1.72 *** os.py 13 May 2003 17:57:23 -0000 1.71 --- os.py 2 Jul 2003 02:49:33 -0000 1.72 *************** *** 581,585 **** # so it won't have spawnlp[e] either. def spawnlp(mode, file, *args): ! """spawnlp(mode, file, *args, env) -> integer Execute file (which is looked for along $PATH) with arguments from --- 581,585 ---- # so it won't have spawnlp[e] either. def spawnlp(mode, file, *args): ! """spawnlp(mode, file, *args) -> integer Execute file (which is looked for along $PATH) with arguments from From nnorwitz@users.sourceforge.net Wed Jul 2 03:51:18 2003 From: nnorwitz@users.sourceforge.net (nnorwitz@users.sourceforge.net) Date: Tue, 01 Jul 2003 19:51:18 -0700 Subject: [Python-checkins] python/dist/src/Lib os.py,1.50.8.7,1.50.8.8 Message-ID: Update of /cvsroot/python/python/dist/src/Lib In directory sc8-pr-cvs1:/tmp/cvs-serv13821/Lib Modified Files: Tag: release22-maint os.py Log Message: SF #764121, docstring for spawnlp incorrect Index: os.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/os.py,v retrieving revision 1.50.8.7 retrieving revision 1.50.8.8 diff -C2 -d -r1.50.8.7 -r1.50.8.8 *** os.py 28 Mar 2003 22:31:41 -0000 1.50.8.7 --- os.py 2 Jul 2003 02:51:15 -0000 1.50.8.8 *************** *** 538,542 **** # so it won't have spawnlp[e] either. def spawnlp(mode, file, *args): ! """spawnlp(mode, file, *args, env) -> integer Execute file (which is looked for along $PATH) with arguments from --- 538,542 ---- # so it won't have spawnlp[e] either. def spawnlp(mode, file, *args): ! """spawnlp(mode, file, *args) -> integer Execute file (which is looked for along $PATH) with arguments from From jackjansen@users.sourceforge.net Wed Jul 2 10:02:29 2003 From: jackjansen@users.sourceforge.net (jackjansen@users.sourceforge.net) Date: Wed, 02 Jul 2003 02:02:29 -0700 Subject: [Python-checkins] python/dist/src/Mac/OSXResources/app/Resources/English.lproj/Documentation/ide - New directory Message-ID: Update of /cvsroot/python/python/dist/src/Mac/OSXResources/app/Resources/English.lproj/Documentation/ide In directory sc8-pr-cvs1:/tmp/cvs-serv21648/ide Log Message: Directory /cvsroot/python/python/dist/src/Mac/OSXResources/app/Resources/English.lproj/Documentation/ide added to the repository From jackjansen@users.sourceforge.net Wed Jul 2 10:20:09 2003 From: jackjansen@users.sourceforge.net (jackjansen@users.sourceforge.net) Date: Wed, 02 Jul 2003 02:20:09 -0700 Subject: [Python-checkins] python/dist/src/Mac/OSXResources/app/Resources/English.lproj/Documentation/ide IDE.gif,NONE,1.1 entering_in_new_window.gif,NONE,1.1 hello_world.gif,NONE,1.1 index.html,NONE,1.1 loading_ide.gif,NONE,1.1 making_new_window.gif,NONE,1.1 new_ide_window.gif,NONE,1.1 new_window_made.gif,NONE,1.1 output_window.gif,NONE,1.1 saving_edited_file.gif,NONE,1.1 simple_commands.gif,NONE,1.1 syntax_error.gif,NONE,1.1 Message-ID: Update of /cvsroot/python/python/dist/src/Mac/OSXResources/app/Resources/English.lproj/Documentation/ide In directory sc8-pr-cvs1:/tmp/cvs-serv23935/OSXResources/app/Resources/English.lproj/Documentation/ide Added Files: IDE.gif entering_in_new_window.gif hello_world.gif index.html loading_ide.gif making_new_window.gif new_ide_window.gif new_window_made.gif output_window.gif saving_edited_file.gif simple_commands.gif syntax_error.gif Log Message: Moved the IDE tutorial to a directory with a shorter name. The long name was giving problems with some tar implementations. --- NEW FILE: IDE.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: entering_in_new_window.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: hello_world.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: index.html --- One Day of MacPython IDE Toying

One Day of MacPython IDE Toying

This document gives a very basic introduction to the MacPython Integrated Development Environment (IDE) on Mac OS. It was written specifically for MacPython 2.3 on Mac OS X, but most of it is applicable to MacPython-OS9 too. It is based on "One Day of IDLE Toying" by Danny Yoo, which you should read if you want to use the cross-platform IDLE Python development environment.



Ok, let's assume that we've already installed Python. (If not, we can visit: http://www.cwi.nl/~jack/macpython.html or http://python.org and download the most recent Python interpreter. Get the Mac OSX binary installer.) The first thing we'd like to do is actually start running it! We can do this by opening up the IDE, which should be in Applications under the newly-created MacPython program folder:

image of IDE icon



The IDE starts up and shows an interactive window:

image of new window

If the window does not show up (because you have run the IDE before and closed it: it remembers that between runs) open it with the Windows->Python Interactive menu entry.

This is the interactive window to the IDE, it allows us to enter commands directly into Python, and as soon as we enter a command, Python will execute it and spit its result back to us. We'll be using this interactive window a lot when we're exploring Python: it's very nice because we get back our results immediately. If it helps, we can think of it as a very powerful calculator.



Let's try something now! As per tradition, let's get Python to say the immortal words, "Hello World". image of hello world program

Those '>>>' signs act as a prompt for us: Python is ready to read in a new command by giving us that visual cue. Also, we notice that as we enter commands, Python will give us its output immediately.



Ok, this seems pretty simple enough. Let's try a few more commands. If we look below:

image of command window

we'll see the result of running a few more commands. Don't worry too much about knowing the exact rules for making programs yet: the idea is that we can experiment with Python by typing in commands. If things don't work, then we can correct the mistake, and try it again.

If you got to this point, you now know enough to start playing around with Python! Crack open one of the tutorials from the Python For Beginners web page, and start exploring with the interpreter. No time limit here. *grin*



Now that we've paddled long enough, we might be asking: ok, this is neat, but if we close down Python and start it up again, how do we get the computer to remember what we typed?

The solution is a little subtle: we can't directly save what's in the interpreter window, because it will include both our commands and the system's responses. What we'd like is to make a prepared file, with just our own commands, and to be able to save that file as a document. When we're in the mood, we can later open that file and "run" Python over it, saving us the time of retyping the whole thing over again.

Let's try this. First, let's start with a clean slate by opening up a new window.

image of making new window

Here's the result of that menu command:

image of new window

We notice that there's nothing in this new window. What this means is that this file is purely for our commands: Python won't interject with its own responses as we enter the program, that is, not until we tell it to. This is called an edit window, and it is very similar to edit windows in other editors such as TextEdit or BBEdit.



What we wanted to do before was save some of the stuff we had tried out on the interpreter window. Let's do that by typing (or copy/pasting) those commands into our edit window.

image of entering commands

Ok, we're done with copying and pasting. One big thing to notice is that we're careful to get rid of the ">>>" prompts because they're not really part of our program. The interpreter uses them just to tell us that we're in the interpreter, but now that we're editing in a separate file, we can remove the artifacts that the interpreter introduces. I have added an extra empty print statement so our output ends with a newline.



Let's save the file now. The Save command is located under the File menu:

image of saving file



Now that we've saved the program, how do we run the program? Use the Run All button at the top of the editing window, or the equivalent menu command Python->Run Window. The output will appear in a new window called Output Window.

By the way, one thing to notice is that I made a typo: I didn't quite copy exactly what I had entered in the interpreter window before. Does this affect things?

image of syntax error

Ooops. Here is an example of what Python calls a "syntax error". Python sees that we made a typo, and warns us to take a much closer look at our program. The designers of Python feel that having the system point out the error is better than trying to guess at what the programmer meant. Press the Edit button and you will be brought to the trouble spot.

Python is often perceptive enough to direct us toward the problem, and in this case, it's telling us that we forgot to put something at the end of this line. In this case, we need to add a quotation mark at the end. Let's add that in now.

Other errors, which usually occur later, when your program has already done something, result in a different dialog that allows you to look at variables and such in addition to showing you where the error occurred.



Ok, let's say that we fixed that silly typo. Let's try to run the program again. This gives us a new window, the Output window, showing the output of our program:

image of output window



As we play with Python, we'll find ourselves "switching modes" between the Interpreter window and the edit window. However, if we try anything more complicated than two or three lines it is often a good idea to work in an edit window. Align your edit and output window such that you can see them at the same time.

This is pretty much all we need to know about the MacPython IDE to actually do interesting things. There is a lot more to the IDE, here is a quick breakdown of things to see and explore:

  • All sorts of edit commands such as find and replace can be used in the editor windows. See the Edit menu.
  • The bottom of the edit window has the scrollbar, but at the left are two navigation devices: a line number box that you can type numbers into to quickly go to a specific place, and a popup menu that lists all classes, functions and methods in your file.
  • Above the vertical scrollbar you find another popup menu, this influences how the Run command works. You should try the debugger some time! If you do, and you wonder what the new small column on the left of your script is: you can click in it to make Python stop when it reaches this line so you can inspect things. The profiler is also nifty: it shows you where your program is spending its time.
  • The module browser (Python->Module Browser) shows you all Python modules currently loaded. You can look at the contents of the module with Browse... and (for modules written in Python) at the source with Source...
  • The Package Manager (under the File menu, also available as a separate application) allows you to easily install Python extension packages for all sorts of things: scientific computation, image processing, building user interfaces and more.
  • The Help menu gives you quick access to both the Python documentation, if you have installed it with the Package Manager, and the Apple Developer documentation.
  • The File->Save as Applet menu command saves your script as a MacOSX application. This allows you to create a script that you can drop files on, and much more. The IDE itself is such an applet, completely written in Python.
--- NEW FILE: loading_ide.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: making_new_window.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: new_ide_window.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: new_window_made.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: output_window.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: saving_edited_file.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: simple_commands.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: syntax_error.gif --- (This appears to be a binary file; contents omitted.) From jackjansen@users.sourceforge.net Wed Jul 2 10:20:11 2003 From: jackjansen@users.sourceforge.net (jackjansen@users.sourceforge.net) Date: Wed, 02 Jul 2003 02:20:11 -0700 Subject: [Python-checkins] python/dist/src/Mac/OSX Makefile,1.45,1.46 Message-ID: Update of /cvsroot/python/python/dist/src/Mac/OSX In directory sc8-pr-cvs1:/tmp/cvs-serv23935/OSX Modified Files: Makefile Log Message: Moved the IDE tutorial to a directory with a shorter name. The long name was giving problems with some tar implementations. Index: Makefile =================================================================== RCS file: /cvsroot/python/python/dist/src/Mac/OSX/Makefile,v retrieving revision 1.45 retrieving revision 1.46 diff -C2 -d -r1.45 -r1.46 *** Makefile 21 Jun 2003 22:07:16 -0000 1.45 --- Makefile 2 Jul 2003 09:20:09 -0000 1.46 *************** *** 47,51 **** Resources/English.lproj/Documentation \ Resources/English.lproj/Documentation/doc \ ! Resources/English.lproj/Documentation/macpython_ide_tutorial DOCDIR=$(srcdir)/Mac/OSXResources/app/Resources/English.lproj/Documentation DOCINDEX=$(DOCDIR)/"Documentation idx" --- 47,51 ---- Resources/English.lproj/Documentation \ Resources/English.lproj/Documentation/doc \ ! Resources/English.lproj/Documentation/ide DOCDIR=$(srcdir)/Mac/OSXResources/app/Resources/English.lproj/Documentation DOCINDEX=$(DOCDIR)/"Documentation idx" From jackjansen@users.sourceforge.net Wed Jul 2 10:20:11 2003 From: jackjansen@users.sourceforge.net (jackjansen@users.sourceforge.net) Date: Wed, 02 Jul 2003 02:20:11 -0700 Subject: [Python-checkins] python/dist/src/Mac/OSXResources/app/Resources/English.lproj/Documentation/macpython_ide_tutorial IDE.gif,1.1,NONE entering_in_new_window.gif,1.1,NONE hello_world.gif,1.1,NONE index.html,1.3,NONE loading_ide.gif,1.1,NONE making_new_window.gif,1.1,NONE new_ide_window.gif,1.1,NONE new_window_made.gif,1.1,NONE output_window.gif,1.1,NONE saving_edited_file.gif,1.1,NONE simple_commands.gif,1.1,NONE syntax_error.gif,1.1,NONE Message-ID: Update of /cvsroot/python/python/dist/src/Mac/OSXResources/app/Resources/English.lproj/Documentation/macpython_ide_tutorial In directory sc8-pr-cvs1:/tmp/cvs-serv23935/OSXResources/app/Resources/English.lproj/Documentation/macpython_ide_tutorial Removed Files: IDE.gif entering_in_new_window.gif hello_world.gif index.html loading_ide.gif making_new_window.gif new_ide_window.gif new_window_made.gif output_window.gif saving_edited_file.gif simple_commands.gif syntax_error.gif Log Message: Moved the IDE tutorial to a directory with a shorter name. The long name was giving problems with some tar implementations. --- IDE.gif DELETED --- --- entering_in_new_window.gif DELETED --- --- hello_world.gif DELETED --- --- index.html DELETED --- --- loading_ide.gif DELETED --- --- making_new_window.gif DELETED --- --- new_ide_window.gif DELETED --- --- new_window_made.gif DELETED --- --- output_window.gif DELETED --- --- saving_edited_file.gif DELETED --- --- simple_commands.gif DELETED --- --- syntax_error.gif DELETED --- From jackjansen@users.sourceforge.net Wed Jul 2 10:20:39 2003 From: jackjansen@users.sourceforge.net (jackjansen@users.sourceforge.net) Date: Wed, 02 Jul 2003 02:20:39 -0700 Subject: [Python-checkins] python/dist/src/Mac/OSXResources/app/Resources/English.lproj/Documentation index.html,1.4,1.5 intro.html,1.2,1.3 Message-ID: Update of /cvsroot/python/python/dist/src/Mac/OSXResources/app/Resources/English.lproj/Documentation In directory sc8-pr-cvs1:/tmp/cvs-serv23935/OSXResources/app/Resources/English.lproj/Documentation Modified Files: index.html intro.html Log Message: Moved the IDE tutorial to a directory with a shorter name. The long name was giving problems with some tar implementations. Index: index.html =================================================================== RCS file: /cvsroot/python/python/dist/src/Mac/OSXResources/app/Resources/English.lproj/Documentation/index.html,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** index.html 18 Jun 2003 22:10:27 -0000 1.4 --- index.html 2 Jul 2003 09:20:07 -0000 1.5 *************** *** 23,27 ****
  • What is MacPython?
  • !
  • MacPython Integrated Development Environment Introduction
  • --- 23,27 ----
  • What is MacPython?
  • !
  • MacPython Integrated Development Environment Introduction
  • Index: intro.html =================================================================== RCS file: /cvsroot/python/python/dist/src/Mac/OSXResources/app/Resources/English.lproj/Documentation/intro.html,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** intro.html 18 Jun 2003 22:10:27 -0000 1.2 --- intro.html 2 Jul 2003 09:20:07 -0000 1.3 *************** *** 46,50 ****

    The MacPython Integrated Development Environment (IDE) allows easy editing, running and debugging of scripts. Read the ! Introduction to the IDE to whet your appetite.

    --- 46,50 ----

    The MacPython Integrated Development Environment (IDE) allows easy editing, running and debugging of scripts. Read the ! Introduction to the IDE to whet your appetite.

    From fdrake@users.sourceforge.net Wed Jul 2 13:27:45 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Wed, 02 Jul 2003 05:27:45 -0700 Subject: [Python-checkins] python/dist/src/Doc/inst inst.tex,1.47,1.48 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/inst In directory sc8-pr-cvs1:/tmp/cvs-serv13911/inst Modified Files: inst.tex Log Message: Fix a variety of small markup nits. Index: inst.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/inst/inst.tex,v retrieving revision 1.47 retrieving revision 1.48 diff -C2 -d -r1.47 -r1.48 *** inst.tex 4 Mar 2003 19:36:11 -0000 1.47 --- inst.tex 2 Jul 2003 12:27:43 -0000 1.48 *************** *** 700,704 **** '/usr/local/lib/python2.3/site-packages'] >>> ! \end{verbatim} The null string in \code{sys.path} represents the current working --- 700,704 ---- '/usr/local/lib/python2.3/site-packages'] >>> ! \end{verbatim} % $ <-- bow to font-lock The null string in \code{sys.path} represents the current working *************** *** 1003,1007 **** \sectionauthor{Rene Liebscher}{R.Liebscher@gmx.de} ! \subsubsection{Borland C++} This subsection describes the necessary steps to use Distutils with the --- 1003,1007 ---- \sectionauthor{Rene Liebscher}{R.Liebscher@gmx.de} ! \subsubsection{Borland \Cpp} This subsection describes the necessary steps to use Distutils with the *************** *** 1057,1061 **** \seetitle[http://www.cyberus.ca/\~{}g_will/pyExtenDL.shtml] {Creating Python Extensions Using Borland's Free Compiler} ! {Document describing how to use Borland's free command-line C++ compiler to build Python.} \end{seealso} --- 1057,1061 ---- \seetitle[http://www.cyberus.ca/\~{}g_will/pyExtenDL.shtml] {Creating Python Extensions Using Borland's Free Compiler} ! {Document describing how to use Borland's free command-line \Cpp compiler to build Python.} \end{seealso} From fdrake@users.sourceforge.net Wed Jul 2 13:27:45 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Wed, 02 Jul 2003 05:27:45 -0700 Subject: [Python-checkins] python/dist/src/Doc/lib libfuncs.tex,1.140,1.141 libgettext.tex,1.18,1.19 libmsvcrt.tex,1.4,1.5 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/lib In directory sc8-pr-cvs1:/tmp/cvs-serv13911/lib Modified Files: libfuncs.tex libgettext.tex libmsvcrt.tex Log Message: Fix a variety of small markup nits. Index: libfuncs.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/libfuncs.tex,v retrieving revision 1.140 retrieving revision 1.141 diff -C2 -d -r1.140 -r1.141 *** libfuncs.tex 1 Jul 2003 16:31:26 -0000 1.140 --- libfuncs.tex 2 Jul 2003 12:27:43 -0000 1.141 *************** *** 142,146 **** object is passed as the implied first argument. ! Class methods are different than C++ or Java static methods. If you want those, see \function{staticmethod()} in this section. \versionadded{2.2} --- 142,146 ---- object is passed as the implied first argument. ! Class methods are different than \Cpp{} or Java static methods. If you want those, see \function{staticmethod()} in this section. \versionadded{2.2} *************** *** 447,454 **** (zero or empty) are removed. ! Note that \code{filter(function, list)} equals ! \code{[item for item in list if function(item)]} if function is not ! \code{None} and \code{[item for item in list if item]} if function is ! None. \end{funcdesc} --- 447,454 ---- (zero or empty) are removed. ! Note that \code{filter(function, \var{list})} is equivalent to ! \code{[item for item in \var{list} if function(item)]} if function is ! not \code{None} and \code{[item for item in \var{list} if item]} if ! function is \code{None}. \end{funcdesc} *************** *** 891,895 **** Return a slice object representing the set of indices specified by \code{range(\var{start}, \var{stop}, \var{step})}. The \var{start} ! and \var{step} arguments default to None. Slice objects have read-only data attributes \member{start}, \member{stop} and \member{step} which merely return the argument values (or their --- 891,895 ---- Return a slice object representing the set of indices specified by \code{range(\var{start}, \var{stop}, \var{step})}. The \var{start} ! and \var{step} arguments default to \code{None}. Slice objects have read-only data attributes \member{start}, \member{stop} and \member{step} which merely return the argument values (or their *************** *** 929,933 **** to be strings. The fast, correct way to concatenate sequence of strings is by calling \code{''.join(\var{sequence})}. ! Note that \code{sum(range(n), m)} equals \code{reduce(operator.add, range(n), m)} \versionadded{2.3} \end{funcdesc} --- 929,934 ---- to be strings. The fast, correct way to concatenate sequence of strings is by calling \code{''.join(\var{sequence})}. ! Note that \code{sum(range(\var{n}), \var{m})} is equivalent to ! \code{reduce(operator.add, range(\var{n}), \var{m})} \versionadded{2.3} \end{funcdesc} Index: libgettext.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/libgettext.tex,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** libgettext.tex 24 Apr 2003 18:14:49 -0000 1.18 --- libgettext.tex 2 Jul 2003 12:27:43 -0000 1.19 *************** *** 447,451 **** previously marked as translatable. It is similar to the GNU \program{gettext} program except that it understands all the ! intricacies of Python source code, but knows nothing about C or C++ source code. You don't need GNU \code{gettext} unless you're also going to be translating C code (such as C extension modules). --- 447,451 ---- previously marked as translatable. It is similar to the GNU \program{gettext} program except that it understands all the ! intricacies of Python source code, but knows nothing about C or \Cpp source code. You don't need GNU \code{gettext} unless you're also going to be translating C code (such as C extension modules). Index: libmsvcrt.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/libmsvcrt.tex,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** libmsvcrt.tex 14 Dec 2000 03:11:24 -0000 1.4 --- libmsvcrt.tex 2 Jul 2003 12:27:43 -0000 1.5 *************** *** 1,8 **** \section{\module{msvcrt} -- ! Useful routines from the MS VC++ runtime} \declaremodule{builtin}{msvcrt} \platform{Windows} ! \modulesynopsis{Miscellaneous useful routines from the MS VC++ runtime.} \sectionauthor{Fred L. Drake, Jr.}{fdrake@acm.org} --- 1,8 ---- \section{\module{msvcrt} -- ! Useful routines from the MS V\Cpp{} runtime} \declaremodule{builtin}{msvcrt} \platform{Windows} ! \modulesynopsis{Miscellaneous useful routines from the MS V\Cpp{} runtime.} \sectionauthor{Fred L. Drake, Jr.}{fdrake@acm.org} From fdrake@users.sourceforge.net Wed Jul 2 13:27:46 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Wed, 02 Jul 2003 05:27:46 -0700 Subject: [Python-checkins] python/dist/src/Doc/whatsnew whatsnew20.tex,1.47,1.48 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/whatsnew In directory sc8-pr-cvs1:/tmp/cvs-serv13911/whatsnew Modified Files: whatsnew20.tex Log Message: Fix a variety of small markup nits. Index: whatsnew20.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/whatsnew/whatsnew20.tex,v retrieving revision 1.47 retrieving revision 1.48 diff -C2 -d -r1.47 -r1.48 *** whatsnew20.tex 27 Nov 2002 18:53:38 -0000 1.47 --- whatsnew20.tex 2 Jul 2003 12:27:43 -0000 1.48 *************** *** 422,426 **** Augmented assignment operators were first introduced in the C programming language, and most C-derived languages, such as ! \program{awk}, C++, Java, Perl, and PHP also support them. The augmented assignment patch was implemented by Thomas Wouters. --- 422,426 ---- Augmented assignment operators were first introduced in the C programming language, and most C-derived languages, such as ! \program{awk}, \Cpp, Java, Perl, and PHP also support them. The augmented assignment patch was implemented by Thomas Wouters. *************** *** 634,638 **** processor, mostly by Trent Mick of ActiveState. (Confusingly, \code{sys.platform} is still \code{'win32'} on Win64 because it seems ! that for ease of porting, MS Visual C++ treats code as 32 bit on Itanium.) PythonWin also supports Windows CE; see the Python CE page at \url{http://starship.python.net/crew/mhammond/ce/} for more --- 634,638 ---- processor, mostly by Trent Mick of ActiveState. (Confusingly, \code{sys.platform} is still \code{'win32'} on Win64 because it seems ! that for ease of porting, MS Visual \Cpp{} treats code as 32 bit on Itanium.) PythonWin also supports Windows CE; see the Python CE page at \url{http://starship.python.net/crew/mhammond/ce/} for more From fdrake@users.sourceforge.net Wed Jul 2 13:27:45 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Wed, 02 Jul 2003 05:27:45 -0700 Subject: [Python-checkins] python/dist/src/Doc/dist dist.tex,1.55,1.56 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/dist In directory sc8-pr-cvs1:/tmp/cvs-serv13911/dist Modified Files: dist.tex Log Message: Fix a variety of small markup nits. Index: dist.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/dist/dist.tex,v retrieving revision 1.55 retrieving revision 1.56 diff -C2 -d -r1.55 -r1.56 *** dist.tex 30 Jun 2003 19:33:29 -0000 1.55 --- dist.tex 2 Jul 2003 12:27:43 -0000 1.56 *************** *** 191,200 **** \item[extension module] a module written in the low-level language of ! the Python implementation: C/C++ for Python, Java for Jython. Typically contained in a single dynamically loadable pre-compiled file, e.g. a shared object (\file{.so}) file for Python extensions on \UNIX, a DLL (given the \file{.pyd} extension) for Python extensions on Windows, or a Java class file for Jython extensions. (Note that ! currently, the Distutils only handles C/C++ extensions for Python.) \item[package] a module that contains other modules; typically contained --- 191,200 ---- \item[extension module] a module written in the low-level language of ! the Python implementation: C/\Cpp{} for Python, Java for Jython. Typically contained in a single dynamically loadable pre-compiled file, e.g. a shared object (\file{.so}) file for Python extensions on \UNIX, a DLL (given the \file{.pyd} extension) for Python extensions on Windows, or a Java class file for Jython extensions. (Note that ! currently, the Distutils only handles C/\Cpp{} extensions for Python.) \item[package] a module that contains other modules; typically contained *************** *** 472,479 **** list; the \command{build\_ext} command knows how to deal with SWIG extensions: it will run SWIG on the interface file and compile the ! resulting C/C++ file into your extension. \XXX{SWIG support is rough around the edges and largely untested; ! especially SWIG support of C++ extensions! Explain in more detail here when the interface firms up.} --- 472,479 ---- list; the \command{build\_ext} command knows how to deal with SWIG extensions: it will run SWIG on the interface file and compile the ! resulting C/\Cpp{} file into your extension. \XXX{SWIG support is rough around the edges and largely untested; ! especially SWIG support for \Cpp{} extensions! Explain in more detail here when the interface firms up.} *************** *** 481,485 **** by the compiler and included in your extension. Currently, this just means Windows message text (\file{.mc}) files and resource definition ! (\file{.rc}) files for Visual C++. These will be compiled to binary resource (\file{.res}) files and linked into the executable. --- 481,485 ---- by the compiler and included in your extension. Currently, this just means Windows message text (\file{.mc}) files and resource definition ! (\file{.rc}) files for Visual \Cpp. These will be compiled to binary resource (\file{.res}) files and linked into the executable. From fdrake@users.sourceforge.net Wed Jul 2 14:42:53 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Wed, 02 Jul 2003 06:42:53 -0700 Subject: [Python-checkins] python/dist/src/Doc/lib libdatetime.tex,1.45,1.46 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/lib In directory sc8-pr-cvs1:/tmp/cvs-serv23936 Modified Files: libdatetime.tex Log Message: The datetime C API really isn't usable outside the datetime module implementation, so remove this decoy (it break formatting of the GNU info version of the docs). Index: libdatetime.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/libdatetime.tex,v retrieving revision 1.45 retrieving revision 1.46 diff -C2 -d -r1.45 -r1.46 *** libdatetime.tex 10 May 2003 04:21:08 -0000 1.45 --- libdatetime.tex 2 Jul 2003 13:42:51 -0000 1.46 *************** *** 1399,1454 **** varies across platforms. Regardless of platform, years before 1900 cannot be used. - - - \begin{comment} - - \subsection{C API} - - Struct typedefs: - - PyDateTime_Date - PyDateTime_DateTime - PyDateTime_Time - PyDateTime_Delta - PyDateTime_TZInfo - - Type-check macros: - - PyDate_Check(op) - PyDate_CheckExact(op) - - PyDateTime_Check(op) - PyDateTime_CheckExact(op) - - PyTime_Check(op) - PyTime_CheckExact(op) - - PyDelta_Check(op) - PyDelta_CheckExact(op) - - PyTZInfo_Check(op) - PyTZInfo_CheckExact(op) - - Accessor macros: - - All objects are immutable, so accessors are read-only. All macros - return ints: - - For \class{date} and \class{datetime} instances: - PyDateTime_GET_YEAR(o) - PyDateTime_GET_MONTH(o) - PyDateTime_GET_DAY(o) - - For \class{datetime} instances: - PyDateTime_DATE_GET_HOUR(o) - PyDateTime_DATE_GET_MINUTE(o) - PyDateTime_DATE_GET_SECOND(o) - PyDateTime_DATE_GET_MICROSECOND(o) - - For \class{time} instances: - PyDateTime_TIME_GET_HOUR(o) - PyDateTime_TIME_GET_MINUTE(o) - PyDateTime_TIME_GET_SECOND(o) - PyDateTime_TIME_GET_MICROSECOND(o) - - \end{comment} --- 1399,1400 ---- From aimacintyre@users.sourceforge.net Wed Jul 2 14:53:27 2003 From: aimacintyre@users.sourceforge.net (aimacintyre@users.sourceforge.net) Date: Wed, 02 Jul 2003 06:53:27 -0700 Subject: [Python-checkins] python/dist/src configure.in,1.419,1.420 configure,1.408,1.409 pyconfig.h.in,1.81,1.82 Message-ID: Update of /cvsroot/python/python/dist/src In directory sc8-pr-cvs1:/tmp/cvs-serv25386 Modified Files: configure.in configure pyconfig.h.in Log Message: FreeBSD 5.x has moved some library routines and typedefs outside the scope of the _XOPEN_SOURCE and _POSIX_C_SOURCE symbols, including: - getloadavg() - typedefs for u_int, u_long, u_char, u_short, ushort & uint These are now all defined under the control of a __BSD_VISIBLE symbol. The lack of the typedefs causes several extension modules to build incorrectly or not at all, and is the cause of failures reported for test_socket and test_tempfile on this platform (see python-dev: 29/6/03, pieterb@gewis.nl, "Running tests on freebsd5") This change does not appear to be needed in the 2.2 branch. Index: configure.in =================================================================== RCS file: /cvsroot/python/python/dist/src/configure.in,v retrieving revision 1.419 retrieving revision 1.420 diff -C2 -d -r1.419 -r1.420 *** configure.in 28 Jun 2003 07:46:38 -0000 1.419 --- configure.in 2 Jul 2003 13:53:23 -0000 1.420 *************** *** 46,49 **** --- 46,54 ---- AC_DEFINE(_NETBSD_SOURCE, 1, [Define on NetBSD to activate all library features]) + # The later defininition of _XOPEN_SOURCE and _POSIX_C_SOURCE disables + # certain features on FreeBSD, so we need __BSD_VISIBLE to re-enable + # them. + AC_DEFINE(__BSD_VISIBLE, 1, [Define on FreeBSD to activate all library features]) + define_xopen_source=yes Index: configure =================================================================== RCS file: /cvsroot/python/python/dist/src/configure,v retrieving revision 1.408 retrieving revision 1.409 diff -C2 -d -r1.408 -r1.409 *** configure 28 Jun 2003 07:46:31 -0000 1.408 --- configure 2 Jul 2003 13:53:23 -0000 1.409 *************** *** 1,4 **** #! /bin/sh ! # From configure.in Revision: 1.418 . # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.53 for python 2.3. --- 1,4 ---- #! /bin/sh ! # From configure.in Revision: 1.419 . # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.53 for python 2.3. *************** *** 909,913 **** # absolute. ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` ! ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd` ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` --- 909,913 ---- # absolute. ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` ! ac_abs_top_builddir=`cd "$ac_dir" && cd $ac_top_builddir && pwd` ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` *************** *** 1266,1269 **** --- 1266,1278 ---- + # The later defininition of _XOPEN_SOURCE and _POSIX_C_SOURCE disables + # certain features on FreeBSD, so we need __BSD_VISIBLE to re-enable + # them. + + cat >>confdefs.h <<\_ACEOF + #define __BSD_VISIBLE 1 + _ACEOF + + define_xopen_source=yes *************** *** 18442,18446 **** # absolute. ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` ! ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd` ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` --- 18451,18455 ---- # absolute. ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` ! ac_abs_top_builddir=`cd "$ac_dir" && cd $ac_top_builddir && pwd` ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` Index: pyconfig.h.in =================================================================== RCS file: /cvsroot/python/python/dist/src/pyconfig.h.in,v retrieving revision 1.81 retrieving revision 1.82 diff -C2 -d -r1.81 -r1.82 *** pyconfig.h.in 14 Jun 2003 21:03:05 -0000 1.81 --- pyconfig.h.in 2 Jul 2003 13:53:25 -0000 1.82 *************** *** 830,833 **** --- 830,836 ---- #undef _NETBSD_SOURCE + /* Define on FreeBSD to activate all library features */ + #undef __BSD_VISIBLE + /* Define _OSF_SOURCE to get the makedev macro. */ #undef _OSF_SOURCE From aimacintyre@users.sourceforge.net Wed Jul 2 15:05:10 2003 From: aimacintyre@users.sourceforge.net (aimacintyre@users.sourceforge.net) Date: Wed, 02 Jul 2003 07:05:10 -0700 Subject: [Python-checkins] python/dist/src/Lib/test test_ossaudiodev.py,1.7,1.8 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/test In directory sc8-pr-cvs1:/tmp/cvs-serv27154 Modified Files: test_ossaudiodev.py Log Message: On those systems lacking the AFMT_S16_NE symbol, the test was failing because it was still looking in the ossaudiodev module namespace for this symbol. As the symbol has already been rebound as a global, use that instead. Index: test_ossaudiodev.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/test/test_ossaudiodev.py,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** test_ossaudiodev.py 3 Jun 2003 00:32:44 -0000 1.7 --- test_ossaudiodev.py 2 Jul 2003 14:05:08 -0000 1.8 *************** *** 76,80 **** # most ancient and crufty hardware config1 = (ossaudiodev.AFMT_U8, 1, 8000) ! config2 = (ossaudiodev.AFMT_S16_NE, 2, 44100) for config in [config1, config2]: --- 76,80 ---- # most ancient and crufty hardware config1 = (ossaudiodev.AFMT_U8, 1, 8000) ! config2 = (AFMT_S16_NE, 2, 44100) for config in [config1, config2]: From fdrake@users.sourceforge.net Wed Jul 2 15:22:50 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Wed, 02 Jul 2003 07:22:50 -0700 Subject: [Python-checkins] python/dist/src/Doc/tools py2texi.el,1.3,1.4 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/tools In directory sc8-pr-cvs1:/tmp/cvs-serv30942 Modified Files: py2texi.el Log Message: Fill out the set of macros and environments supported somewhat. Some of this is still pretty iffy. Index: py2texi.el =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/tools/py2texi.el,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** py2texi.el 13 Nov 2002 19:31:04 -0000 1.3 --- py2texi.el 2 Jul 2003 14:22:48 -0000 1.4 *************** *** 120,123 **** --- 120,126 ---- "@bye\n")) ("enumerate" 0 "@enumerate" "@end enumerate") + ("envdesc" 2 (concat "\n@table @code" + "\n@item @backslash{}begin@{\\1@}\\2") + "@end table\n") ("excdesc" 1 (progn (setq obindex t) *************** *** 145,148 **** --- 148,154 ---- "@item ------- @tab ------ @tab ------\n") "@end multitable\n") + ("macrodesc" 2 (concat "\n@table @code" + "\n@item \\1@{\\2@}") + "@end table\n") ("memberdesc" 1 (progn (setq findex t) *************** *** 232,235 **** --- 238,242 ---- ("e" 0 "@backslash{}") ("else" 0 (concat "@end ifinfo\n@" (setq last-if "iftex"))) + ("env" 1 "@code{\\1}") ("EOF" 0 "@code{EOF}") ("email" 1 "@email{\\1}") *************** *** 240,243 **** --- 247,251 ---- ("fi" 0 (concat "@end " last-if)) ("file" 1 "@file{\\1}") + ("filenq" 1 "@file{\\1}") ("filevar" 1 "@file{@var{\\1}}") ("footnote" 1 "@footnote{\\1}") *************** *** 271,274 **** --- 279,283 ---- ("localmoduletable" 0 "") ("longprogramopt" 1 "@option{--\\1}") + ("macro" 1 "@code{@backslash{}\\1}") ("mailheader" 1 "@code{\\1}") ("makeindex" 0 "") *************** *** 360,363 **** --- 369,373 ---- ("tableofcontents" 0 "") ("term" 1 "@item \\1") + ("TeX" 0 "@TeX{}") ("textasciitilde" 0 "~") ("textasciicircum" 0 "^") From fdrake@users.sourceforge.net Wed Jul 2 15:25:06 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Wed, 02 Jul 2003 07:25:06 -0700 Subject: [Python-checkins] python/dist/src/Doc/info Makefile,1.9,1.10 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/info In directory sc8-pr-cvs1:/tmp/cvs-serv31458 Modified Files: Makefile Log Message: The Macintosh Modules Reference now formats to GNU info without errors (which is not to say it's right), so re-enable it. Documenting Python and Installing Python Modules still have problems when converting to GNU info, so we'll continue to leave them out for now. Index: Makefile =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/info/Makefile,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** Makefile 13 Nov 2002 19:31:03 -0000 1.9 --- Makefile 2 Jul 2003 14:25:04 -0000 1.10 *************** *** 19,26 **** python$(VERSION)-api.info python$(VERSION)-ext.info \ python$(VERSION)-lib.info python$(VERSION)-ref.info \ ! python$(VERSION)-tut.info python$(VERSION)-dist.info # python$(VERSION)-doc.info python$(VERSION)-inst.info - # python$(VERSION)-mac.info check-emacs-version: --- 19,26 ---- python$(VERSION)-api.info python$(VERSION)-ext.info \ python$(VERSION)-lib.info python$(VERSION)-ref.info \ ! python$(VERSION)-tut.info python$(VERSION)-dist.info \ ! python$(VERSION)-mac.info # python$(VERSION)-doc.info python$(VERSION)-inst.info check-emacs-version: From fdrake@users.sourceforge.net Wed Jul 2 15:33:13 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Wed, 02 Jul 2003 07:33:13 -0700 Subject: [Python-checkins] python/dist/src/Doc/inst inst.tex,1.48,1.49 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/inst In directory sc8-pr-cvs1:/tmp/cvs-serv32650 Modified Files: inst.tex Log Message: Make the "install schema" tables follow the same table style we use elsewhere (lines between columns). Index: inst.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/inst/inst.tex,v retrieving revision 1.48 retrieving revision 1.49 diff -C2 -d -r1.48 -r1.49 *** inst.tex 2 Jul 2003 12:27:43 -0000 1.48 --- inst.tex 2 Jul 2003 14:33:11 -0000 1.49 *************** *** 340,344 **** \newcommand{\installscheme}[8] ! {\begin{tableiii}{lll}{textrm} {Type of file} {Installation Directory} --- 340,344 ---- \newcommand{\installscheme}[8] ! {\begin{tableiii}{l|l|l}{textrm} {Type of file} {Installation Directory} From fdrake@users.sourceforge.net Wed Jul 2 15:44:10 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Wed, 02 Jul 2003 07:44:10 -0700 Subject: [Python-checkins] python/dist/src/Doc/tools py2texi.el,1.4,1.5 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/tools In directory sc8-pr-cvs1:/tmp/cvs-serv1936 Modified Files: py2texi.el Log Message: There's a better way to deal with the "comment" environment; I found this in SF patch #732174. Index: py2texi.el =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/tools/py2texi.el,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** py2texi.el 2 Jul 2003 14:22:48 -0000 1.4 --- py2texi.el 2 Jul 2003 14:44:08 -0000 1.5 *************** *** 86,89 **** --- 86,90 ---- "\n@table @code\n@item \\1\n@obindex \\1\n") "@end table\n") + ("comment" 0 "\n@ignore\n" "\n@end ignore\n") ("csimplemacrodesc" 1 (progn (setq cindex t) From fdrake@users.sourceforge.net Wed Jul 2 15:44:58 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Wed, 02 Jul 2003 07:44:58 -0700 Subject: [Python-checkins] python/dist/src/Doc/lib libdatetime.tex,1.46,1.47 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/lib In directory sc8-pr-cvs1:/tmp/cvs-serv2027 Modified Files: libdatetime.tex Log Message: Revert the previous change; this is now dealt with in a better way. Index: libdatetime.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/libdatetime.tex,v retrieving revision 1.46 retrieving revision 1.47 diff -C2 -d -r1.46 -r1.47 *** libdatetime.tex 2 Jul 2003 13:42:51 -0000 1.46 --- libdatetime.tex 2 Jul 2003 14:44:55 -0000 1.47 *************** *** 1399,1400 **** --- 1399,1454 ---- varies across platforms. Regardless of platform, years before 1900 cannot be used. + + + \begin{comment} + + \subsection{C API} + + Struct typedefs: + + PyDateTime_Date + PyDateTime_DateTime + PyDateTime_Time + PyDateTime_Delta + PyDateTime_TZInfo + + Type-check macros: + + PyDate_Check(op) + PyDate_CheckExact(op) + + PyDateTime_Check(op) + PyDateTime_CheckExact(op) + + PyTime_Check(op) + PyTime_CheckExact(op) + + PyDelta_Check(op) + PyDelta_CheckExact(op) + + PyTZInfo_Check(op) + PyTZInfo_CheckExact(op) + + Accessor macros: + + All objects are immutable, so accessors are read-only. All macros + return ints: + + For \class{date} and \class{datetime} instances: + PyDateTime_GET_YEAR(o) + PyDateTime_GET_MONTH(o) + PyDateTime_GET_DAY(o) + + For \class{datetime} instances: + PyDateTime_DATE_GET_HOUR(o) + PyDateTime_DATE_GET_MINUTE(o) + PyDateTime_DATE_GET_SECOND(o) + PyDateTime_DATE_GET_MICROSECOND(o) + + For \class{time} instances: + PyDateTime_TIME_GET_HOUR(o) + PyDateTime_TIME_GET_MINUTE(o) + PyDateTime_TIME_GET_SECOND(o) + PyDateTime_TIME_GET_MICROSECOND(o) + + \end{comment} From jvr@users.sourceforge.net Wed Jul 2 15:37:01 2003 From: jvr@users.sourceforge.net (jvr@users.sourceforge.net) Date: Wed, 02 Jul 2003 07:37:01 -0700 Subject: [Python-checkins] python/dist/src/Lib/test test_re.py,1.43,1.44 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/test In directory sc8-pr-cvs1:/tmp/cvs-serv789/test Modified Files: test_re.py Log Message: fixed typo in comment Index: test_re.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/test/test_re.py,v retrieving revision 1.43 retrieving revision 1.44 diff -C2 -d -r1.43 -r1.44 *** test_re.py 20 Jun 2003 00:25:14 -0000 1.43 --- test_re.py 2 Jul 2003 14:36:59 -0000 1.44 *************** *** 9,13 **** # Misc tests from Tim Peters' re.doc ! # WARNING: Don't change deteails in these tests if you don't know # what you're doing. Some of these tests were carefuly modeled to # cover most of the code. --- 9,13 ---- # Misc tests from Tim Peters' re.doc ! # WARNING: Don't change details in these tests if you don't know # what you're doing. Some of these tests were carefuly modeled to # cover most of the code. From rhettinger@users.sourceforge.net Wed Jul 2 16:10:40 2003 From: rhettinger@users.sourceforge.net (rhettinger@users.sourceforge.net) Date: Wed, 02 Jul 2003 08:10:40 -0700 Subject: [Python-checkins] python/dist/src/Doc/lib libweakref.tex,1.18,1.19 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/lib In directory sc8-pr-cvs1:/tmp/cvs-serv6232 Modified Files: libweakref.tex Log Message: Grammar nit. SF bug #757822 Index: libweakref.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/libweakref.tex,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** libweakref.tex 7 Aug 2002 16:18:54 -0000 1.18 --- libweakref.tex 2 Jul 2003 15:10:38 -0000 1.19 *************** *** 20,24 **** XXX --- need to say more here! ! Not all objects can be weakly referenced; those objects which do include class instances, functions written in Python (but not in C), and methods (both bound and unbound). Extension types can easily --- 20,24 ---- XXX --- need to say more here! ! Not all objects can be weakly referenced; those objects which can include class instances, functions written in Python (but not in C), and methods (both bound and unbound). Extension types can easily From rhettinger@users.sourceforge.net Wed Jul 2 16:31:57 2003 From: rhettinger@users.sourceforge.net (rhettinger@users.sourceforge.net) Date: Wed, 02 Jul 2003 08:31:57 -0700 Subject: [Python-checkins] python/dist/src/Doc/lib libfuncs.tex,1.141,1.142 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/lib In directory sc8-pr-cvs1:/tmp/cvs-serv10551 Modified Files: libfuncs.tex Log Message: SF bug #764616: execfile(filename,...) not execfile(file,...) Clarify parameter name. Index: libfuncs.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/libfuncs.tex,v retrieving revision 1.141 retrieving revision 1.142 diff -C2 -d -r1.141 -r1.142 *** libfuncs.tex 2 Jul 2003 12:27:43 -0000 1.141 --- libfuncs.tex 2 Jul 2003 15:31:54 -0000 1.142 *************** *** 355,359 **** \end{funcdesc} ! \begin{funcdesc}{execfile}{file\optional{, globals\optional{, locals}}} This function is similar to the \keyword{exec} statement, but parses a file instead of a string. It --- 355,359 ---- \end{funcdesc} ! \begin{funcdesc}{execfile}{filename\optional{, globals\optional{, locals}}} This function is similar to the \keyword{exec} statement, but parses a file instead of a string. It From montanaro@users.sourceforge.net Wed Jul 2 16:32:50 2003 From: montanaro@users.sourceforge.net (montanaro@users.sourceforge.net) Date: Wed, 02 Jul 2003 08:32:50 -0700 Subject: [Python-checkins] python/dist/src/Doc/lib libcsv.tex,1.6,1.7 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/lib In directory sc8-pr-cvs1:/tmp/cvs-serv10761 Modified Files: libcsv.tex Log Message: Note that csv files (when they are actual files) must be opened in 'b'inary mode. Note that the only restriction on the csvfile passed to writer objects is that it have a write method. Index: libcsv.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/libcsv.tex,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** libcsv.tex 4 Jun 2003 15:30:13 -0000 1.6 --- libcsv.tex 2 Jul 2003 15:32:48 -0000 1.7 *************** *** 55,59 **** {}\var{csvfile}. \var{csvfile} can be any object which supports the iterator protocol and returns a string each time its \method{next} ! method is called. An optional \var{dialect} parameter can be given which is used to define a set of parameters specific to a particular CSV dialect. It may be an instance of a subclass of the \class{Dialect} --- 55,61 ---- {}\var{csvfile}. \var{csvfile} can be any object which supports the iterator protocol and returns a string each time its \method{next} ! method is called. If \var{csvfile} is a file object, it must be opened with ! the 'b' flag on platforms where that makes a difference. An optional ! {}\var{dialect} parameter can be given which is used to define a set of parameters specific to a particular CSV dialect. It may be an instance of a subclass of the \class{Dialect} *************** *** 72,76 **** dialect=\code{'excel'}\optional{, fmtparam}}} Return a writer object responsible for converting the user's data into ! delimited strings on the given file-like object. An optional {}\var{dialect} parameter can be given which is used to define a set of parameters specific to a particular CSV dialect. It may be an instance --- 74,81 ---- dialect=\code{'excel'}\optional{, fmtparam}}} Return a writer object responsible for converting the user's data into ! delimited strings on the given file-like object. \var{csvfile} can be any ! object with a \function{write} method. If \var{csvfile} is a file object, ! it must be opened with the 'b' flag on platforms where that makes a ! difference. An optional {}\var{dialect} parameter can be given which is used to define a set of parameters specific to a particular CSV dialect. It may be an instance *************** *** 126,130 **** has fewer fields than the fieldnames sequence, the remaining keys take the value of the optiona \var{restval} parameter. All other parameters are ! interpreted as for regular readers. \end{classdesc} --- 131,135 ---- has fewer fields than the fieldnames sequence, the remaining keys take the value of the optiona \var{restval} parameter. All other parameters are ! interpreted as for \class{reader} objects. \end{classdesc} *************** *** 144,148 **** to \code{'raise'} a \exception{ValueError} is raised. If it is set to \code{'ignore'}, extra values in the dictionary are ignored. All other ! parameters are interpreted as for regular writers. \end{classdesc} --- 149,153 ---- to \code{'raise'} a \exception{ValueError} is raised. If it is set to \code{'ignore'}, extra values in the dictionary are ignored. All other ! parameters are interpreted as for \class{writer} objects. \end{classdesc} From jvr@users.sourceforge.net Wed Jul 2 21:03:06 2003 From: jvr@users.sourceforge.net (jvr@users.sourceforge.net) Date: Wed, 02 Jul 2003 13:03:06 -0700 Subject: [Python-checkins] python/dist/src/Lib/test test_re.py,1.44,1.45 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/test In directory sc8-pr-cvs1:/tmp/cvs-serv23477/Lib/test Modified Files: test_re.py Log Message: Fix and test for bug #764548: Use isinstance() instead of comparing types directly, to enable subclasses of str and unicode to be used as patterns. Blessed by /F. Index: test_re.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/test/test_re.py,v retrieving revision 1.44 retrieving revision 1.45 diff -C2 -d -r1.44 -r1.45 *** test_re.py 2 Jul 2003 14:36:59 -0000 1.44 --- test_re.py 2 Jul 2003 20:03:04 -0000 1.45 *************** *** 475,478 **** --- 475,488 ---- ('a', None, None)) + def test_bug_764548(self): + # bug 764548, re.compile() barfs on str/unicode subclasses + try: + unicode + except NameError: + return # no problem if we have no unicode + class my_unicode(unicode): pass + pat = re.compile(my_unicode("abc")) + self.assertEqual(pat.match("xyz"), None) + def test_finditer(self): iter = re.finditer(r":+", "a:b::c:::d") From jvr@users.sourceforge.net Wed Jul 2 21:03:06 2003 From: jvr@users.sourceforge.net (jvr@users.sourceforge.net) Date: Wed, 02 Jul 2003 13:03:06 -0700 Subject: [Python-checkins] python/dist/src/Lib sre.py,1.45,1.46 sre_compile.py,1.47,1.48 Message-ID: Update of /cvsroot/python/python/dist/src/Lib In directory sc8-pr-cvs1:/tmp/cvs-serv23477/Lib Modified Files: sre.py sre_compile.py Log Message: Fix and test for bug #764548: Use isinstance() instead of comparing types directly, to enable subclasses of str and unicode to be used as patterns. Blessed by /F. Index: sre.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/sre.py,v retrieving revision 1.45 retrieving revision 1.46 diff -C2 -d -r1.45 -r1.46 *** sre.py 14 Oct 2002 12:22:17 -0000 1.45 --- sre.py 2 Jul 2003 20:03:04 -0000 1.46 *************** *** 220,226 **** return p pattern, flags = key ! if type(pattern) is _pattern_type: return pattern ! if type(pattern) not in sre_compile.STRING_TYPES: raise TypeError, "first argument must be string or compiled pattern" try: --- 220,226 ---- return p pattern, flags = key ! if isinstance(pattern, _pattern_type): return pattern ! if not isinstance(pattern, sre_compile.STRING_TYPES): raise TypeError, "first argument must be string or compiled pattern" try: Index: sre_compile.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/sre_compile.py,v retrieving revision 1.47 retrieving revision 1.48 diff -C2 -d -r1.47 -r1.48 *** sre_compile.py 19 Apr 2003 12:56:07 -0000 1.47 --- sre_compile.py 2 Jul 2003 20:03:04 -0000 1.48 *************** *** 429,438 **** code[skip] = len(code) - skip - STRING_TYPES = [type("")] - try: ! STRING_TYPES.append(type(unicode(""))) except NameError: ! pass def _code(p, flags): --- 429,438 ---- code[skip] = len(code) - skip try: ! unicode except NameError: ! STRING_TYPES = type("") ! else: ! STRING_TYPES = (type(""), type(unicode(""))) def _code(p, flags): *************** *** 454,458 **** # internal: convert pattern list to internal format ! if type(p) in STRING_TYPES: import sre_parse pattern = p --- 454,458 ---- # internal: convert pattern list to internal format ! if isinstance(p, STRING_TYPES): import sre_parse pattern = p From walter@livinglogic.de Wed Jul 2 21:10:14 2003 From: walter@livinglogic.de (=?ISO-8859-15?Q?Walter_D=F6rwald?=) Date: Wed, 02 Jul 2003 22:10:14 +0200 Subject: [Python-checkins] python/dist/src/Lib sre.py,1.45,1.46 sre_compile.py,1.47,1.48 In-Reply-To: References: Message-ID: <3F033C26.50702@livinglogic.de> jvr@users.sourceforge.net wrote: > ! STRING_TYPES = (type(""), type(unicode(""))) Is there a reason why this isn't: STRING_TYPES = (str, unicode) Bye, Walter Dörwald From just@letterror.com Wed Jul 2 21:14:54 2003 From: just@letterror.com (Just van Rossum) Date: Wed, 2 Jul 2003 22:14:54 +0200 Subject: [Python-checkins] python/dist/src/Lib sre.py,1.45,1.46 sre_compile.py,1.47,1.48 In-Reply-To: <3F033C26.50702@livinglogic.de> Message-ID: Walter D=F6rwald wrote: > > ! STRING_TYPES =3D (type(""), type(unicode(""))) > > Is there a reason why this isn't: >=20 > STRING_TYPES =3D (str, unicode) 2.1 compatibility. Just From barry@python.org Wed Jul 2 21:24:50 2003 From: barry@python.org (Barry Warsaw) Date: 02 Jul 2003 16:24:50 -0400 Subject: [Python-checkins] python/dist/src/Lib sre.py,1.45,1.46 sre_compile.py,1.47,1.48 In-Reply-To: References: Message-ID: <1057177489.12060.136.camel@yyz> On Wed, 2003-07-02 at 16:14, Just van Rossum wrote: > Walter D=F6rwald wrote: >=20 > > > ! STRING_TYPES =3D (type(""), type(unicode(""))) > > > > Is there a reason why this isn't: > >=20 > > STRING_TYPES =3D (str, unicode) >=20 > 2.1 compatibility. Still wouldn't this be clearer: from types import StringType, UnicodeType STRING_TYPES =3D (StringType, UnicodeType) ? -B From just@letterror.com Wed Jul 2 21:30:27 2003 From: just@letterror.com (Just van Rossum) Date: Wed, 2 Jul 2003 22:30:27 +0200 Subject: [Python-checkins] python/dist/src/Lib sre.py,1.45,1.46 sre_compile.py,1.47,1.48 In-Reply-To: <1057177489.12060.136.camel@yyz> Message-ID: Barry Warsaw wrote: > Still wouldn't this be clearer: > > from types import StringType, UnicodeType > > STRING_TYPES = (StringType, UnicodeType) Sure, but I was just moving the code around a bit. It was a bug fix after all... Just From barry@python.org Wed Jul 2 21:37:50 2003 From: barry@python.org (Barry Warsaw) Date: 02 Jul 2003 16:37:50 -0400 Subject: [Python-checkins] python/dist/src/Lib sre.py,1.45,1.46 sre_compile.py,1.47,1.48 In-Reply-To: References: Message-ID: <1057178269.12060.140.camel@yyz> On Wed, 2003-07-02 at 16:30, Just van Rossum wrote: > Sure, but I was just moving the code around a bit. It was a bug fix > after all... Ah. :) -B From jvr@users.sourceforge.net Wed Jul 2 22:07:44 2003 From: jvr@users.sourceforge.net (jvr@users.sourceforge.net) Date: Wed, 02 Jul 2003 14:07:44 -0700 Subject: [Python-checkins] python/nondist/peps pep-0291.txt,1.4,1.5 Message-ID: Update of /cvsroot/python/python/nondist/peps In directory sc8-pr-cvs1:/tmp/cvs-serv3728 Modified Files: pep-0291.txt Log Message: Bumped sre's "baseline" to 2.1, per /F's recommendation in bug #764548 Index: pep-0291.txt =================================================================== RCS file: /cvsroot/python/python/nondist/peps/pep-0291.txt,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** pep-0291.txt 10 Jan 2003 19:13:46 -0000 1.4 --- pep-0291.txt 2 Jul 2003 21:07:42 -0000 1.5 *************** *** 74,78 **** email Barry Warsaw 2.1 logging Vinay Sajip 1.5.2 ! sre Fredrik Lundh 1.5.2 xml (PyXML) Martin v. Loewis 2.0 xmlrpclib Fredrik Lundh 1.5.2 --- 74,78 ---- email Barry Warsaw 2.1 logging Vinay Sajip 1.5.2 ! sre Fredrik Lundh 2.1 xml (PyXML) Martin v. Loewis 2.0 xmlrpclib Fredrik Lundh 1.5.2 From nas-python@python.ca Wed Jul 2 22:24:34 2003 From: nas-python@python.ca (Neil Schemenauer) Date: Wed, 2 Jul 2003 14:24:34 -0700 Subject: [Python-checkins] python/dist/src/Lib sre.py,1.45,1.46 sre_compile.py,1.47,1.48 In-Reply-To: References: <3F033C26.50702@livinglogic.de> Message-ID: <20030702212434.GA22641@glacier.arctrix.com> Just van Rossum wrote: > Walter D?rwald wrote: > > > > ! STRING_TYPES = (type(""), type(unicode(""))) > > > > Is there a reason why this isn't: > > > > STRING_TYPES = (str, unicode) > > 2.1 compatibility. 2.1 isinstance does not accepts a tuple for the second argument. Neil From just@letterror.com Wed Jul 2 22:26:40 2003 From: just@letterror.com (Just van Rossum) Date: Wed, 2 Jul 2003 23:26:40 +0200 Subject: [Python-checkins] python/dist/src/Lib sre.py,1.45,1.46 sre_compile.py,1.47,1.48 In-Reply-To: <20030702212434.GA22641@glacier.arctrix.com> Message-ID: Neil Schemenauer wrote: > > > > ! STRING_TYPES = (type(""), type(unicode(""))) > > > > > > Is there a reason why this isn't: > > > > > > STRING_TYPES = (str, unicode) > > > > 2.1 compatibility. > > 2.1 isinstance does not accepts a tuple for the second argument. *Gulp*, you're right. I was hoping to be able to go to bed now :-/ Just From jvr@users.sourceforge.net Wed Jul 2 22:37:18 2003 From: jvr@users.sourceforge.net (jvr@users.sourceforge.net) Date: Wed, 02 Jul 2003 14:37:18 -0700 Subject: [Python-checkins] python/dist/src/Lib sre.py,1.46,1.47 sre_compile.py,1.48,1.49 Message-ID: Update of /cvsroot/python/python/dist/src/Lib In directory sc8-pr-cvs1:/tmp/cvs-serv10352/Lib Modified Files: sre.py sre_compile.py Log Message: Addendum to #764548: restore 2.1 compatibility. Index: sre.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/sre.py,v retrieving revision 1.46 retrieving revision 1.47 diff -C2 -d -r1.46 -r1.47 *** sre.py 2 Jul 2003 20:03:04 -0000 1.46 --- sre.py 2 Jul 2003 21:37:16 -0000 1.47 *************** *** 222,226 **** if isinstance(pattern, _pattern_type): return pattern ! if not isinstance(pattern, sre_compile.STRING_TYPES): raise TypeError, "first argument must be string or compiled pattern" try: --- 222,226 ---- if isinstance(pattern, _pattern_type): return pattern ! if not sre_compile.isstring(pattern): raise TypeError, "first argument must be string or compiled pattern" try: Index: sre_compile.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/sre_compile.py,v retrieving revision 1.48 retrieving revision 1.49 diff -C2 -d -r1.48 -r1.49 *** sre_compile.py 2 Jul 2003 20:03:04 -0000 1.48 --- sre_compile.py 2 Jul 2003 21:37:16 -0000 1.49 *************** *** 432,439 **** unicode except NameError: ! STRING_TYPES = type("") else: STRING_TYPES = (type(""), type(unicode(""))) def _code(p, flags): --- 432,445 ---- unicode except NameError: ! STRING_TYPES = (type(""),) else: STRING_TYPES = (type(""), type(unicode(""))) + def isstring(obj): + for tp in STRING_TYPES: + if isinstance(obj, tp): + return 1 + return 0 + def _code(p, flags): *************** *** 454,458 **** # internal: convert pattern list to internal format ! if isinstance(p, STRING_TYPES): import sre_parse pattern = p --- 460,464 ---- # internal: convert pattern list to internal format ! if isstring(p): import sre_parse pattern = p From montanaro@users.sourceforge.net Wed Jul 2 22:38:36 2003 From: montanaro@users.sourceforge.net (montanaro@users.sourceforge.net) Date: Wed, 02 Jul 2003 14:38:36 -0700 Subject: [Python-checkins] python/dist/src/Misc cheatsheet,1.5,1.6 Message-ID: Update of /cvsroot/python/python/dist/src/Misc In directory sc8-pr-cvs1:/tmp/cvs-serv10524/Misc Modified Files: cheatsheet Log Message: Correct documentation of check interval - it's 100 by default, not 10 any longer. Pointed out by Alex Martelli. Index: cheatsheet =================================================================== RCS file: /cvsroot/python/python/dist/src/Misc/cheatsheet,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** cheatsheet 26 Jan 2003 03:29:15 -0000 1.5 --- cheatsheet 2 Jul 2003 21:38:34 -0000 1.6 *************** *** 1362,1366 **** reference. setcheckinterval( Sets the interpreter's thread switching interval (in number ! interval) of virtual code instructions, default:10). settrace(func) Sets a trace function: called before each line ofcode is exited. --- 1362,1366 ---- reference. setcheckinterval( Sets the interpreter's thread switching interval (in number ! interval) of virtual code instructions, default:100). settrace(func) Sets a trace function: called before each line ofcode is exited. From montanaro@users.sourceforge.net Wed Jul 2 22:38:36 2003 From: montanaro@users.sourceforge.net (montanaro@users.sourceforge.net) Date: Wed, 02 Jul 2003 14:38:36 -0700 Subject: [Python-checkins] python/dist/src/Doc/lib libsys.tex,1.64,1.65 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/lib In directory sc8-pr-cvs1:/tmp/cvs-serv10524/Doc/lib Modified Files: libsys.tex Log Message: Correct documentation of check interval - it's 100 by default, not 10 any longer. Pointed out by Alex Martelli. Index: libsys.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/libsys.tex,v retrieving revision 1.64 retrieving revision 1.65 diff -C2 -d -r1.64 -r1.65 *** libsys.tex 29 May 2003 02:17:23 -0000 1.64 --- libsys.tex 2 Jul 2003 21:38:34 -0000 1.65 *************** *** 395,400 **** Set the interpreter's ``check interval''. This integer value determines how often the interpreter checks for periodic things such ! as thread switches and signal handlers. The default is \code{10}, ! meaning the check is performed every 10 Python virtual instructions. Setting it to a larger value may increase performance for programs using threads. Setting it to a value \code{<=} 0 checks every --- 395,400 ---- Set the interpreter's ``check interval''. This integer value determines how often the interpreter checks for periodic things such ! as thread switches and signal handlers. The default is \code{100}, ! meaning the check is performed every 100 Python virtual instructions. Setting it to a larger value may increase performance for programs using threads. Setting it to a value \code{<=} 0 checks every From montanaro@users.sourceforge.net Wed Jul 2 22:38:36 2003 From: montanaro@users.sourceforge.net (montanaro@users.sourceforge.net) Date: Wed, 02 Jul 2003 14:38:36 -0700 Subject: [Python-checkins] python/dist/src/Doc/api init.tex,1.9,1.10 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/api In directory sc8-pr-cvs1:/tmp/cvs-serv10524/Doc/api Modified Files: init.tex Log Message: Correct documentation of check interval - it's 100 by default, not 10 any longer. Pointed out by Alex Martelli. Index: init.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/api/init.tex,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** init.tex 29 Jun 2003 02:14:31 -0000 1.9 --- init.tex 2 Jul 2003 21:38:34 -0000 1.10 *************** *** 349,353 **** API functions. In order to support multi-threaded Python programs, the interpreter regularly releases and reacquires the lock --- by ! default, every ten bytecode instructions (this can be changed with \withsubitem{(in module sys)}{\ttindex{setcheckinterval()}} \function{sys.setcheckinterval()}). The lock is also released and --- 349,353 ---- API functions. In order to support multi-threaded Python programs, the interpreter regularly releases and reacquires the lock --- by ! default, every 100 bytecode instructions (this can be changed with \withsubitem{(in module sys)}{\ttindex{setcheckinterval()}} \function{sys.setcheckinterval()}). The lock is also released and From jackjansen@users.sourceforge.net Wed Jul 2 23:09:32 2003 From: jackjansen@users.sourceforge.net (jackjansen@users.sourceforge.net) Date: Wed, 02 Jul 2003 15:09:32 -0700 Subject: [Python-checkins] python/dist/src/Mac/OSX Extras.ReadMe.txt,1.2,1.3 Message-ID: Update of /cvsroot/python/python/dist/src/Mac/OSX In directory sc8-pr-cvs1:/tmp/cvs-serv17545 Modified Files: Extras.ReadMe.txt Log Message: Skip noticed that the document talks about "setting PythonLauncher as the default application" but doesn't give a clue on how to do this. Refer to Apple Help. Index: Extras.ReadMe.txt =================================================================== RCS file: /cvsroot/python/python/dist/src/Mac/OSX/Extras.ReadMe.txt,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** Extras.ReadMe.txt 29 Jun 2003 00:24:12 -0000 1.2 --- Extras.ReadMe.txt 2 Jul 2003 22:09:30 -0000 1.3 *************** *** 8,12 **** that you start them from the command line or with PythonLauncher. In the latter case, you can supply any needed command line arguments by holding ! the "alt" key while dragging the script to PythonLauncher (or while ! double-clicking the script, if PythonLauncher is set as the default application ! to open Python scripts with). --- 8,14 ---- that you start them from the command line or with PythonLauncher. In the latter case, you can supply any needed command line arguments by holding ! the "alt" key while dragging the script to PythonLauncher, or while ! double-clicking the script if PythonLauncher is set as the default application ! to open Python scripts with. See "Changing the application that opens a file" ! in Mac Help for information on making PythonLauncher the default application. ! From jackjansen@users.sourceforge.net Wed Jul 2 23:08:30 2003 From: jackjansen@users.sourceforge.net (jackjansen@users.sourceforge.net) Date: Wed, 02 Jul 2003 15:08:30 -0700 Subject: [Python-checkins] python/dist/src/Mac/OSX/PythonLauncher/English.lproj/MyDocument.nib objects.nib,1.3,1.4 Message-ID: Update of /cvsroot/python/python/dist/src/Mac/OSX/PythonLauncher/English.lproj/MyDocument.nib In directory sc8-pr-cvs1:/tmp/cvs-serv17246/English.lproj/MyDocument.nib Modified Files: objects.nib Log Message: Tooltip for tab/space consistency check was the wrong way around. Spotted by Skip. Index: objects.nib =================================================================== RCS file: /cvsroot/python/python/dist/src/Mac/OSX/PythonLauncher/English.lproj/MyDocument.nib/objects.nib,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 Binary files /tmp/cvsWp6znV and /tmp/cvsUJ5PuG differ From jackjansen@users.sourceforge.net Wed Jul 2 23:08:30 2003 From: jackjansen@users.sourceforge.net (jackjansen@users.sourceforge.net) Date: Wed, 02 Jul 2003 15:08:30 -0700 Subject: [Python-checkins] python/dist/src/Mac/OSX/PythonLauncher/PreferenceWindow.nib info.nib,1.3,1.4 objects.nib,1.3,1.4 Message-ID: Update of /cvsroot/python/python/dist/src/Mac/OSX/PythonLauncher/PreferenceWindow.nib In directory sc8-pr-cvs1:/tmp/cvs-serv17246/PreferenceWindow.nib Modified Files: info.nib objects.nib Log Message: Tooltip for tab/space consistency check was the wrong way around. Spotted by Skip. Index: info.nib =================================================================== RCS file: /cvsroot/python/python/dist/src/Mac/OSX/PythonLauncher/PreferenceWindow.nib/info.nib,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** info.nib 17 Feb 2003 15:40:00 -0000 1.3 --- info.nib 2 Jul 2003 22:08:28 -0000 1.4 *************** *** 6,16 **** 660 84 519 534 0 0 1280 1002 IBFramework Version ! 286.0 ! IBOpenObjects ! ! 5 ! IBSystem Version ! 6I32 --- 6,12 ---- 660 84 519 534 0 0 1280 1002 IBFramework Version ! 291.0 IBSystem Version ! 6L60 Index: objects.nib =================================================================== RCS file: /cvsroot/python/python/dist/src/Mac/OSX/PythonLauncher/PreferenceWindow.nib/objects.nib,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 Binary files /tmp/cvslQYYv5 and /tmp/cvsWJt1J0 differ From eprice@users.sourceforge.net Thu Jul 3 00:48:24 2003 From: eprice@users.sourceforge.net (eprice@users.sourceforge.net) Date: Wed, 02 Jul 2003 16:48:24 -0700 Subject: [Python-checkins] python/nondist/sandbox/decimal Decimal.py,1.9,1.10 Message-ID: Update of /cvsroot/python/python/nondist/sandbox/decimal In directory sc8-pr-cvs1:/tmp/cvs-serv814 Modified Files: Decimal.py Log Message: Bugfixes, removed context indirection. Index: Decimal.py =================================================================== RCS file: /cvsroot/python/python/nondist/sandbox/decimal/Decimal.py,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** Decimal.py 13 Jun 2003 22:47:18 -0000 1.9 --- Decimal.py 2 Jul 2003 23:48:22 -0000 1.10 *************** *** 489,496 **** --- 489,501 ---- 2 if sNaN """ + #print repr(self), repr(self._exp) + #print 'here', self._exp if self._exp == 'n': + #print 'Gone' return 1 elif self._exp == 'N': + #print 'Gone' return 2 + #print 'Gone' return 0 *************** *** 557,560 **** --- 562,618 ---- def __cmp__(self, other, context=None): + if context is None: + context = getcontext() + if not isinstance(other, Decimal): + other = Decimal(other) + + ans = self._check_nans(other, context) + + if ans: + return 1 + + if not self and not other: + return 0 #If both 0, sign comparison isn't certain. + + #If different signs, neg one is less + if other._sign < self._sign: + return -1 + if self._sign < other._sign: + return 1 + + # INF = INF + if self._isinfinity() and other._isinfinity(): + return 0 + if self._isinfinity(): + return (-1)**self._sign + if other._isinfinity(): + return -((-1)**other._sign) + + if self.adjusted() == other.adjusted() and \ + self._int + (0,)*(self._exp - other._exp) == \ + other._int + (0,)*(other._exp - self._exp): + return 0 #equal, except in precision. ([0]*(-x) = []) + elif self.adjusted() > other.adjusted() and self._int[0] != 0: + return (-1)**self._sign + elif self.adjusted < other.adjusted() and other._int[0] != 0: + return -((-1)**self._sign) + + context = copy.copy(context) + rounding = context.set_rounding(ROUND_UP) #round away from 0 + + flags = context.ignore_all_flags() + res = self.__sub__(other, context=context) + + context.regard_flags(*flags) + + context.rounding = rounding + + if not res: + return 0 + elif res._sign: + return -1 + return 1 + + def DecimalCmp(self, other, context=None): """Compares one to another. *************** *** 562,577 **** 0 => a = b 1 => a > b Returns Decimal instances, though. """ if context is None: context = getcontext() - if not isinstance(other, Decimal): other = Decimal(other) ans = self._check_nans(other, context) #compare(NaN, NaN) = NaN if ans: return ans if not self and not other: --- 620,639 ---- 0 => a = b 1 => a > b + NaN => one is NaN Returns Decimal instances, though. """ if context is None: context = getcontext() if not isinstance(other, Decimal): other = Decimal(other) + #print repr(self), repr(other) ans = self._check_nans(other, context) #compare(NaN, NaN) = NaN + #print 'Here' if ans: + #print 'Yay', self, other, ans return ans + #print self, other if not self and not other: *************** *** 605,609 **** flags = context.ignore_all_flags() ! res = context.subtract(self, other) context.regard_flags(*flags) --- 667,671 ---- flags = context.ignore_all_flags() ! res = self.__sub__(other, context=context) context.regard_flags(*flags) *************** *** 768,774 **** if self._sign: ! ans = context.minus(self) else: ! ans = context.plus(self) return ans --- 830,836 ---- if self._sign: ! ans = self.__neg__(context=context) else: ! ans = self.__pos__(context=context) return ans *************** *** 894,898 **** tmp._sign = 1-tmp._sign ! return context.add(self, tmp) def __rsub__(self, other, context=None): --- 956,960 ---- tmp._sign = 1-tmp._sign ! return self.__add__(tmp, context=context) def __rsub__(self, other, context=None): *************** *** 903,907 **** tmp = Decimal(self) tmp._sign = 1 - tmp._sign ! return context.add(other, tmp) def increment(self, round=1, context=None): --- 965,969 ---- tmp = Decimal(self) tmp._sign = 1 - tmp._sign ! return other.__add__(tmp, context=context) def increment(self, round=1, context=None): *************** *** 1252,1256 **** flags = context.ignore_flags(Rounded, Inexact) #keep DivisionImpossible flags ! (side, r) = context.divmod(self, other) if r._isnan(): --- 1314,1318 ---- flags = context.ignore_flags(Rounded, Inexact) #keep DivisionImpossible flags ! (side, r) = self.__divmod__(other, context=context) if r._isnan(): *************** *** 1262,1268 **** if other._sign: ! comparison = context.divide(other, Decimal(-2)) else: ! comparison = context.divide(other, Decimal(2)) context.set_rounding_decision(rounding) --- 1324,1330 ---- if other._sign: ! comparison = other.__div__(Decimal(-2), context=context) else: ! comparison = other.__div__(Decimal(2), context=context) context.set_rounding_decision(rounding) *************** *** 1275,1279 **** r._sign, comparison._sign = s1, s2 #Get flags now ! context.divmod(self, other) return r.fix(context=context) r._sign, comparison._sign = s1, s2 --- 1337,1341 ---- r._sign, comparison._sign = s1, s2 #Get flags now ! self.__divmod__(other, context=context) return r.fix(context=context) r._sign, comparison._sign = s1, s2 *************** *** 1281,1285 **** rounding = context.set_rounding_decision(NEVER_ROUND) ! (side, r) = context.divmod(self, other) context.set_rounding_decision(rounding) if r._isnan(): --- 1343,1347 ---- rounding = context.set_rounding_decision(NEVER_ROUND) ! (side, r) = self.__divmod__(other, context=context) context.set_rounding_decision(rounding) if r._isnan(): *************** *** 1288,1292 **** decrease = not side._iseven() rounding = context.set_rounding_decision(NEVER_ROUND) ! side = context.abs(side) context.set_rounding_decision(rounding) --- 1350,1354 ---- decrease = not side._iseven() rounding = context.set_rounding_decision(NEVER_ROUND) ! side = side.__abs__(context=context) context.set_rounding_decision(rounding) *************** *** 1296,1307 **** r._sign, comparison._sign = s1, s2 context.prec += 1 ! if len((context.add(side,Decimal(1))._int)) >= context.prec: context.prec -= 1 return context.raise_error(DivisionImpossible)[1] context.prec -= 1 if self._sign == other._sign: ! r = context.subtract(r, other) else: ! r = context.add(r, other) else: r._sign, comparison._sign = s1, s2 --- 1358,1369 ---- r._sign, comparison._sign = s1, s2 context.prec += 1 ! if len(side.__add__(Decimal(1), context=context)._int) >= context.prec: context.prec -= 1 return context.raise_error(DivisionImpossible)[1] context.prec -= 1 if self._sign == other._sign: ! r = r.__sub__(other, context=context) else: ! r = r.__add__(other, context=context) else: r._sign, comparison._sign = s1, s2 *************** *** 1319,1322 **** --- 1381,1393 ---- def __long__(self): """Converts self to a long, truncating if necessary.""" + if self._isnan(): + + print "mmoo" + raise "ACK" + #raise "AIIII" + context = getcontext() + return context.raise_error(InvalidContext) + elif self._isinfinity(): + raise OverflowError, "Cannot convert infinity to long" if not self: return 0L *************** *** 1340,1343 **** --- 1411,1416 ---- Equivalent to int(long(self)) """ + #print 'M', repr(self), repr(self._exp) + print self._exp == 'n' return int(self.__long__()) *************** *** 1680,1684 **** #n is a long now, not Decimal instance n = -n ! mul = context.divide(Decimal(1), mul) shouldround = context.rounding_decision in (ALWAYS_ROUND,) --- 1753,1757 ---- #n is a long now, not Decimal instance n = -n ! mul = Decimal(1).__div__(mul, context=context) shouldround = context.rounding_decision in (ALWAYS_ROUND,) *************** *** 1691,1702 **** #Spot is the highest power of 2 less than n while spot: ! val = context.multiply(val, val) if val._isinfinity(): val = Infsign[sign] break if spot & n: ! val = context.multiply(val, mul) if modulo is not None: ! val = context.remainder(val, modulo) spot >>= 1 context.prec = firstprec --- 1764,1775 ---- #Spot is the highest power of 2 less than n while spot: ! val = val.__mul__(val, context=context) if val._isinfinity(): val = Infsign[sign] break if spot & n: ! val = val.__mul__(mul, context=context) if modulo is not None: ! val = val.__mod__(modulo, context=context) spot >>= 1 context.prec = firstprec *************** *** 1730,1740 **** def quantize(self, exp, rounding = None, context=None, watchexp = 1): """ ! """ ans = self._check_nans(exp, context) if ans: return ans - if exp._isinfinity(): - return context.raise_error(InvalidOperation, 'quantize with an INF') return self.rescale(exp._exp, rounding, context, watchexp) --- 1803,1817 ---- def quantize(self, exp, rounding = None, context=None, watchexp = 1): + """Quantize self so its exponent is the same as that of exp. + + Similar to self.rescale(exp._exp) but with error checking. """ ! if context is None: ! context = getcontext() ! if exp._isinfinity() or self._isinfinity(): ! return context.raise_error(InvalidOperation, 'quantize with an INF') ans = self._check_nans(exp, context) if ans: return ans return self.rescale(exp._exp, rounding, context, watchexp) *************** *** 1803,1807 **** def sqrt(self, context=None): ! """Return the sqrt of self. Uses a converging algorithm (Xn+1 = 0.5*(Xn + self / Xn)) --- 1880,1884 ---- def sqrt(self, context=None): ! """Return the square root of self. Uses a converging algorithm (Xn+1 = 0.5*(Xn + self / Xn)) *************** *** 1848,1858 **** if tmp.adjusted() % 2 == 0: ans = Decimal( (0, (8,1,9), tmp.adjusted() - 2) ) ! ans = context.add(ans, context.multiply(Decimal((0, (2,5,9), -2)), ! tmp)) ans._exp -= 1 + tmp.adjusted()/2 else: ans = Decimal( (0, (2,5,9), tmp._exp + len(tmp._int)- 3) ) ! ans = context.add(ans, context.multiply(Decimal((0, (8,1,9), -3)), ! tmp)) ans._exp -= 1 + tmp.adjusted()/2 --- 1925,1935 ---- if tmp.adjusted() % 2 == 0: ans = Decimal( (0, (8,1,9), tmp.adjusted() - 2) ) ! ans = ans.__add__(tmp.__mul__(Decimal((0, (2,5,9), -2)), ! context=context), context=context) ans._exp -= 1 + tmp.adjusted()/2 else: ans = Decimal( (0, (2,5,9), tmp._exp + len(tmp._int)- 3) ) ! ans = ans.__add__(tmp.__mul__(Decimal((0, (8,1,9), -3)), ! context=context), context=context) ans._exp -= 1 + tmp.adjusted()/2 *************** *** 1869,1874 **** while 1: context.prec = min(2*context.prec - 2, maxp) ! ans = context.multiply(half, context.add(ans, \ ! context.divide(tmp, ans))) if context.prec == maxp: break --- 1946,1951 ---- while 1: context.prec = min(2*context.prec - 2, maxp) ! ans = half.__mul__(ans.__add__(tmp.__div__(ans, context=context), ! context=context), context=context) if context.prec == maxp: break *************** *** 1877,1881 **** context.prec = firstprec prevexp = ans.adjusted() ! ans = context.round(ans) #Now, check if the other last digits are better. --- 1954,1958 ---- context.prec = firstprec prevexp = ans.adjusted() ! ans = ans.round(context=context) #Now, check if the other last digits are better. *************** *** 1886,1898 **** ans._exp -= 1 ! lower = context.subtract(ans, Decimal((0, (5,), ans._exp-1) )) context.set_rounding(ROUND_UP) ! if (context.multiply(lower, lower))> (tmp): ! ans = context.subtract(ans, Decimal( (0, (1,), ans._exp) )) else: ! upper = context.add(ans, Decimal((0, (5,), ans._exp-1) )) context.set_rounding(ROUND_DOWN) ! if context.multiply(upper, upper) < tmp: ! ans = context.add(ans, Decimal( (0, (1,), ans._exp) )) ans._exp += expadd --- 1963,1977 ---- ans._exp -= 1 ! ! lower = ans.__sub__(Decimal((0, (5,), ans._exp-1)), context=context) context.set_rounding(ROUND_UP) ! if lower.__mul__(lower, context=context) > (tmp): ! ans = ans.__sub__(Decimal((0, (1,), ans._exp)), context=context) ! else: ! upper = ans.__add__(Decimal((0, (5,), ans._exp-1)),context=context) context.set_rounding(ROUND_DOWN) ! if upper.__mul__(upper, context=context) < tmp: ! ans = ans.__add__(Decimal((0, (1,), ans._exp)),context=context) ans._exp += expadd *************** *** 1903,1907 **** rounding = context.set_rounding_decision(NEVER_ROUND) ! if not context.multiply(ans, ans) == self: # Only rounded/inexact if here. context.regard_flags(flags) --- 1982,1986 ---- rounding = context.set_rounding_decision(NEVER_ROUND) ! if not ans.__mul__(ans, context=context) == self: # Only rounded/inexact if here. context.regard_flags(flags) *************** *** 2140,2144 **** # if an error occurs in the middle. rounding = context.set_rounding(ROUND_UP) ! val = context.subtract(self, other) context.set_rounding(rounding) --- 2219,2223 ---- # if an error occurs in the middle. rounding = context.set_rounding(ROUND_UP) ! val = self.__sub__(other, context=context) context.set_rounding(rounding) *************** *** 2157,2161 **** return str(a.fix(context=self)) def compare(self, a, b): ! return a.__cmp__(b, context=self) def lt(self, a, b): return Decimal(int(self.compare(a, b)) == -1) --- 2236,2240 ---- return str(a.fix(context=self)) def compare(self, a, b): ! return a.DecimalCmp(b, context=self) def lt(self, a, b): return Decimal(int(self.compare(a, b)) == -1) *************** *** 2197,2201 **** return a.remainder_near(b, context=self) def quantize(self, a, b): ! return a.rescale(b, context=self) def rescale(self, a, b): return a.rescale(b, context=self) --- 2276,2280 ---- return a.remainder_near(b, context=self) def quantize(self, a, b): ! return a.quantize(b, context=self) def rescale(self, a, b): return a.rescale(b, context=self) *************** *** 2647,2694 **** return "%s%se%d" % (sign, str(top), e) - #Map the test cases' error names to the actual errors - ErrorNames = {'clamped' : Clamped, - 'conversion_syntax' : ConversionSyntax, - 'division_by_zero' : DivisionByZero, - 'division_impossible' : DivisionImpossible, - 'division_undefined' : DivisionUndefined, - 'inexact' : Inexact, - 'insufficient_storage' : InsufficientStorage, - 'invalid_context' : InvalidContext, - 'invalid_operation' : InvalidOperation, - 'lost_digits' : LostDigits, - 'overflow' : Overflow, - 'rounded' : Rounded, - 'subnormal' : Subnormal, - 'underflow' : Underflow} - - def change_precision(precision): - """Changes the precision of DefaultContext (used by new threads).""" - global DEFAULT_PRECISION - DEFAULT_PRECISION = precision - SetDefaultContext() - - def change_max_exponent(exp): - """changes Emax used by new threads.""" - global DEFAULT_MAX_EXPONENT - DEFAULT_MAX_EXPONENT = exp - SetDefaultContext() - - def change_min_exponent(exp): - """changes Emin used by new threads""" - global DEFAULT_MIN_EXPONENT - DEFAULT_MIN_EXPONENT = exp - SetDefaultContext() - - def change_rounding_method(rounding): - """changes the rounding method used by new threads.""" - global DEFAULT_ROUNDING - DEFAULT_ROUNDING = rounding - SetDefaultContext() - - def change_rounding_decision(decision): - """changes the decision of when to round used by new threads.""" - global DEFAULT_ROUNDING_DECISION - DEFAULT_ROUNDING_DECISION = decision - SetDefaultContext() --- 2726,2728 ---- From eprice@users.sourceforge.net Thu Jul 3 00:50:03 2003 From: eprice@users.sourceforge.net (eprice@users.sourceforge.net) Date: Wed, 02 Jul 2003 16:50:03 -0700 Subject: [Python-checkins] python/nondist/sandbox/decimal test_Decimal.py,1.1,1.2 Message-ID: Update of /cvsroot/python/python/nondist/sandbox/decimal In directory sc8-pr-cvs1:/tmp/cvs-serv994 Modified Files: test_Decimal.py Log Message: Changed rescale test cases to the new quantize one. Moved in a list that had been in the main class. Index: test_Decimal.py =================================================================== RCS file: /cvsroot/python/python/nondist/sandbox/decimal/test_Decimal.py,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** test_Decimal.py 21 May 2003 16:20:24 -0000 1.1 --- test_Decimal.py 2 Jul 2003 23:50:01 -0000 1.2 *************** *** 12,15 **** --- 12,35 ---- skip_expected = not os.path.isdir(dir) + + #Map the test cases' error names to the actual errors + + ErrorNames = {'clamped' : Clamped, + 'conversion_syntax' : ConversionSyntax, + 'division_by_zero' : DivisionByZero, + 'division_impossible' : DivisionImpossible, + 'division_undefined' : DivisionUndefined, + 'inexact' : Inexact, + 'insufficient_storage' : InsufficientStorage, + 'invalid_context' : InvalidContext, + 'invalid_operation' : InvalidOperation, + 'lost_digits' : LostDigits, + 'overflow' : Overflow, + 'rounded' : Rounded, + 'subnormal' : Subnormal, + 'underflow' : Underflow} + + + def Nonfunction(*args): """Doesn't do anything.""" *************** *** 102,106 **** id = L[0] #print id, ! funct = L[1] valstemp = L[2:] L = Sides[1].strip().split() --- 122,126 ---- id = L[0] #print id, ! funct = L[1].lower() valstemp = L[2:] L = Sides[1].strip().split() *************** *** 116,119 **** --- 136,141 ---- fname = funct funct = getattr(self.context, funct) + if fname == 'rescale': + return vals = [] conglomerate = '' *************** *** 125,129 **** for exception in theirexceptions: self.context.trap_enablers[exception] = 0 ! for val in valstemp: if val.count("'") % 2 == 1: quote = 1 - quote --- 147,151 ---- for exception in theirexceptions: self.context.trap_enablers[exception] = 0 ! for i, val in enumerate(valstemp): if val.count("'") % 2 == 1: quote = 1 - quote *************** *** 135,140 **** conglomerate = '' v = FixQuotes(val) ! if fname in ('toSci', 'toEng'): v = self.context.new(v) else: v = Decimal(v) --- 157,167 ---- conglomerate = '' v = FixQuotes(val) ! if fname in ('tosci', 'toeng'): v = self.context.new(v) + #elif fname == 'rescale' and i == 1: + # try: + # v = int(Decimal(v)) + # except ValueError: + # v = float(v) else: v = Decimal(v) *************** *** 145,150 **** try: result = str(funct(*vals)) except: #Catch any error long enough to state the test case. ! #print "ERROR:", s raise --- 172,179 ---- try: result = str(funct(*vals)) + except ExceptionList, error: + self.fail("Raised %s in %s" % (error, s)) except: #Catch any error long enough to state the test case. ! print "ERROR:", s raise *************** *** 295,298 **** --- 324,334 ---- self.eval_file(dir + 'power' + '.decTest') + def test_quantize(self): + """Tests the Decimal class on Cowlishaw's quantize tests. + + See www2.hursley.ibm.com/decimal/decTest.zip to download the suite. + """ + self.eval_file(dir + 'quantize' + '.decTest') + def test_randomBound32(self): """Tests the Decimal class on Cowlishaw's randomBound32 tests. *************** *** 322,332 **** """ self.eval_file(dir + 'remainderNear' + '.decTest') - - def test_rescale(self): - """Tests the Decimal class on Cowlishaw's rescale tests. - - See www2.hursley.ibm.com/decimal/decTest.zip to download the suite. - """ - self.eval_file(dir + 'rescale' + '.decTest') def test_rounding(self): --- 358,361 ---- From eprice@users.sourceforge.net Thu Jul 3 00:51:19 2003 From: eprice@users.sourceforge.net (eprice@users.sourceforge.net) Date: Wed, 02 Jul 2003 16:51:19 -0700 Subject: [Python-checkins] python/nondist/sandbox/decimal/tests quantize.decTest,NONE,1.1 abs.decTest,1.2,1.3 add.decTest,1.2,1.3 base.decTest,1.2,1.3 clamp.decTest,1.2,1.3 compare.decTest,1.2,1.3 decimal64.decTest,1.2,1.3 divide.decTest,1.2,1.3 divideint.decTest,1.2,1.3 inexact.decTest,1.2,1.3 integer.decTest,1.2,1.3 max.decTest,1.2,1.3 min.decTest,1.2,1.3 minus.decTest,1.2,1.3 multiply.decTest,1.2,1.3 normalize.decTest,1.2,1.3 plus.decTest,1.2,1.3 power.decTest,1.2,1.3 randomBound32.decTest,1.2,1.3 randoms.decTest,1.2,1.3 remainder.decTest,1.2,1.3 remainderNear.decTest,1.2,1.3 rescale.decTest,1.2,1.3 rounding.decTest,1.2,1.3 squareroot.decTest,1.2,1.3 subtract.decTest,1.2,1.3 testall.decTest,1.2,1.3 trim.decTest,1.2,1.3 Message-ID: Update of /cvsroot/python/python/nondist/sandbox/decimal/tests In directory sc8-pr-cvs1:/tmp/cvs-serv1247 Modified Files: abs.decTest add.decTest base.decTest clamp.decTest compare.decTest decimal64.decTest divide.decTest divideint.decTest inexact.decTest integer.decTest max.decTest min.decTest minus.decTest multiply.decTest normalize.decTest plus.decTest power.decTest randomBound32.decTest randoms.decTest remainder.decTest remainderNear.decTest rescale.decTest rounding.decTest squareroot.decTest subtract.decTest testall.decTest trim.decTest Added Files: quantize.decTest Log Message: Newest version of the test cases, including quantize. --- NEW FILE: quantize.decTest --- ------------------------------------------------------------------------ -- quantize.decTest -- decimal quantize operation -- -- Copyright (c) IBM Corporation, 1981, 2003. All rights reserved. -- ------------------------------------------------------------------------ -- Please see the document "General Decimal Arithmetic Testcases" -- -- at http://www2.hursley.ibm.com/decimal for the description of -- -- these testcases. -- -- -- -- These testcases are experimental ('beta' versions), and they -- -- may contain errors. They are offered on an as-is basis. In -- -- particular, achieving the same results as the tests here is not -- -- a guarantee that an implementation complies with any Standard -- -- or specification. The tests are not exhaustive. -- -- -- -- Please send comments, suggestions, and corrections to the author: -- -- Mike Cowlishaw, IBM Fellow -- -- IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK -- -- mfc@uk.ibm.com -- ------------------------------------------------------------------------ version: 2.26 -- Most of the tests here assume a "regular pattern", where the -- sign and coefficient are +1. extended: 1 precision: 9 rounding: half_up maxExponent: 999 minexponent: -999 -- sanity checks quax001 quantize 0 1e0 -> 0 quax002 quantize 1 1e0 -> 1 quax003 quantize 0.1 1e+2 -> 0E+2 Inexact Rounded quax005 quantize 0.1 1e+1 -> 0E+1 Inexact Rounded quax006 quantize 0.1 1e0 -> 0 Inexact Rounded quax007 quantize 0.1 1e-1 -> 0.1 quax008 quantize 0.1 1e-2 -> 0.10 quax009 quantize 0.1 1e-3 -> 0.100 quax010 quantize 0.9 1e+2 -> 0E+2 Inexact Rounded quax011 quantize 0.9 1e+1 -> 0E+1 Inexact Rounded quax012 quantize 0.9 1e+0 -> 1 Inexact Rounded quax013 quantize 0.9 1e-1 -> 0.9 quax014 quantize 0.9 1e-2 -> 0.90 quax015 quantize 0.9 1e-3 -> 0.900 -- negatives quax021 quantize -0 1e0 -> -0 quax022 quantize -1 1e0 -> -1 quax023 quantize -0.1 1e+2 -> -0E+2 Inexact Rounded quax025 quantize -0.1 1e+1 -> -0E+1 Inexact Rounded quax026 quantize -0.1 1e0 -> -0 Inexact Rounded quax027 quantize -0.1 1e-1 -> -0.1 quax028 quantize -0.1 1e-2 -> -0.10 quax029 quantize -0.1 1e-3 -> -0.100 quax030 quantize -0.9 1e+2 -> -0E+2 Inexact Rounded quax031 quantize -0.9 1e+1 -> -0E+1 Inexact Rounded quax032 quantize -0.9 1e+0 -> -1 Inexact Rounded quax033 quantize -0.9 1e-1 -> -0.9 quax034 quantize -0.9 1e-2 -> -0.90 quax035 quantize -0.9 1e-3 -> -0.900 quax036 quantize -0.5 1e+2 -> -0E+2 Inexact Rounded quax037 quantize -0.5 1e+1 -> -0E+1 Inexact Rounded quax038 quantize -0.5 1e+0 -> -1 Inexact Rounded quax039 quantize -0.5 1e-1 -> -0.5 quax040 quantize -0.5 1e-2 -> -0.50 quax041 quantize -0.5 1e-3 -> -0.500 quax042 quantize -0.9 1e+2 -> -0E+2 Inexact Rounded quax043 quantize -0.9 1e+1 -> -0E+1 Inexact Rounded quax044 quantize -0.9 1e+0 -> -1 Inexact Rounded quax045 quantize -0.9 1e-1 -> -0.9 quax046 quantize -0.9 1e-2 -> -0.90 quax047 quantize -0.9 1e-3 -> -0.900 -- examples from Specification quax060 quantize 2.17 0.001 -> 2.170 quax061 quantize 2.17 0.01 -> 2.17 quax062 quantize 2.17 0.1 -> 2.2 Inexact Rounded quax063 quantize 2.17 1e+0 -> 2 Inexact Rounded quax064 quantize 2.17 1e+1 -> 0E+1 Inexact Rounded quax065 quantize 2 Inf -> NaN Invalid_operation quax066 quantize -0.1 1 -> -0 Inexact Rounded quax067 quantize -0 1e+5 -> -0E+5 quax068 quantize +35236450.6 1e-2 -> NaN Invalid_operation quax069 quantize -35236450.6 1e-2 -> NaN Invalid_operation quax070 quantize 217 1e-1 -> 217.0 quax071 quantize 217 1e+0 -> 217 quax072 quantize 217 1e+1 -> 2.2E+2 Inexact Rounded quax073 quantize 217 1e+2 -> 2E+2 Inexact Rounded -- general tests .. quax089 quantize 12 1e+4 -> 0E+4 Inexact Rounded quax090 quantize 12 1e+3 -> 0E+3 Inexact Rounded quax091 quantize 12 1e+2 -> 0E+2 Inexact Rounded quax092 quantize 12 1e+1 -> 1E+1 Inexact Rounded quax093 quantize 1.2345 1e-2 -> 1.23 Inexact Rounded quax094 quantize 1.2355 1e-2 -> 1.24 Inexact Rounded quax095 quantize 1.2345 1e-6 -> 1.234500 quax096 quantize 9.9999 1e-2 -> 10.00 Inexact Rounded quax097 quantize 0.0001 1e-2 -> 0.00 Inexact Rounded quax098 quantize 0.001 1e-2 -> 0.00 Inexact Rounded quax099 quantize 0.009 1e-2 -> 0.01 Inexact Rounded quax100 quantize 92 1e+2 -> 1E+2 Inexact Rounded quax101 quantize -1 1e0 -> -1 quax102 quantize -1 1e-1 -> -1.0 quax103 quantize -1 1e-2 -> -1.00 quax104 quantize 0 1e0 -> 0 quax105 quantize 0 1e-1 -> 0.0 quax106 quantize 0 1e-2 -> 0.00 quax107 quantize 0.00 1e0 -> 0 quax108 quantize 0 1e+1 -> 0E+1 quax109 quantize 0 1e+2 -> 0E+2 quax110 quantize +1 1e0 -> 1 quax111 quantize +1 1e-1 -> 1.0 quax112 quantize +1 1e-2 -> 1.00 quax120 quantize 1.04 1e-3 -> 1.040 quax121 quantize 1.04 1e-2 -> 1.04 quax122 quantize 1.04 1e-1 -> 1.0 Inexact Rounded quax123 quantize 1.04 1e0 -> 1 Inexact Rounded quax124 quantize 1.05 1e-3 -> 1.050 quax125 quantize 1.05 1e-2 -> 1.05 quax126 quantize 1.05 1e-1 -> 1.1 Inexact Rounded quax127 quantize 1.05 1e0 -> 1 Inexact Rounded quax128 quantize 1.05 1e-3 -> 1.050 quax129 quantize 1.05 1e-2 -> 1.05 quax130 quantize 1.05 1e-1 -> 1.1 Inexact Rounded quax131 quantize 1.05 1e0 -> 1 Inexact Rounded quax132 quantize 1.06 1e-3 -> 1.060 quax133 quantize 1.06 1e-2 -> 1.06 quax134 quantize 1.06 1e-1 -> 1.1 Inexact Rounded quax135 quantize 1.06 1e0 -> 1 Inexact Rounded quax140 quantize -10 1e-2 -> -10.00 quax141 quantize +1 1e-2 -> 1.00 quax142 quantize +10 1e-2 -> 10.00 quax143 quantize 1E+10 1e-2 -> NaN Invalid_operation quax144 quantize 1E-10 1e-2 -> 0.00 Inexact Rounded quax145 quantize 1E-3 1e-2 -> 0.00 Inexact Rounded quax146 quantize 1E-2 1e-2 -> 0.01 quax147 quantize 1E-1 1e-2 -> 0.10 quax148 quantize 0E-10 1e-2 -> 0.00 quax150 quantize 1.0600 1e-5 -> 1.06000 quax151 quantize 1.0600 1e-4 -> 1.0600 quax152 quantize 1.0600 1e-3 -> 1.060 Rounded quax153 quantize 1.0600 1e-2 -> 1.06 Rounded quax154 quantize 1.0600 1e-1 -> 1.1 Inexact Rounded quax155 quantize 1.0600 1e0 -> 1 Inexact Rounded -- base tests with non-1 coefficients quax161 quantize 0 -9e0 -> 0 quax162 quantize 1 -7e0 -> 1 quax163 quantize 0.1 -1e+2 -> 0E+2 Inexact Rounded quax165 quantize 0.1 0e+1 -> 0E+1 Inexact Rounded quax166 quantize 0.1 2e0 -> 0 Inexact Rounded quax167 quantize 0.1 3e-1 -> 0.1 quax168 quantize 0.1 44e-2 -> 0.10 quax169 quantize 0.1 555e-3 -> 0.100 quax170 quantize 0.9 6666e+2 -> 0E+2 Inexact Rounded quax171 quantize 0.9 -777e+1 -> 0E+1 Inexact Rounded quax172 quantize 0.9 -88e+0 -> 1 Inexact Rounded quax173 quantize 0.9 -9e-1 -> 0.9 quax174 quantize 0.9 0e-2 -> 0.90 quax175 quantize 0.9 1.1e-3 -> 0.9000 -- negatives quax181 quantize -0 1.1e0 -> -0.0 quax182 quantize -1 -1e0 -> -1 quax183 quantize -0.1 11e+2 -> -0E+2 Inexact Rounded quax185 quantize -0.1 111e+1 -> -0E+1 Inexact Rounded quax186 quantize -0.1 71e0 -> -0 Inexact Rounded quax187 quantize -0.1 -91e-1 -> -0.1 quax188 quantize -0.1 -.1e-2 -> -0.100 quax189 quantize -0.1 -1e-3 -> -0.100 quax190 quantize -0.9 0e+2 -> -0E+2 Inexact Rounded quax191 quantize -0.9 -0e+1 -> -0E+1 Inexact Rounded quax192 quantize -0.9 -10e+0 -> -1 Inexact Rounded quax193 quantize -0.9 100e-1 -> -0.9 quax194 quantize -0.9 999e-2 -> -0.90 -- +ve exponents .. quax201 quantize -1 1e+0 -> -1 quax202 quantize -1 1e+1 -> -0E+1 Inexact Rounded quax203 quantize -1 1e+2 -> -0E+2 Inexact Rounded quax204 quantize 0 1e+0 -> 0 quax205 quantize 0 1e+1 -> 0E+1 quax206 quantize 0 1e+2 -> 0E+2 quax207 quantize +1 1e+0 -> 1 quax208 quantize +1 1e+1 -> 0E+1 Inexact Rounded quax209 quantize +1 1e+2 -> 0E+2 Inexact Rounded quax220 quantize 1.04 1e+3 -> 0E+3 Inexact Rounded quax221 quantize 1.04 1e+2 -> 0E+2 Inexact Rounded quax222 quantize 1.04 1e+1 -> 0E+1 Inexact Rounded quax223 quantize 1.04 1e+0 -> 1 Inexact Rounded quax224 quantize 1.05 1e+3 -> 0E+3 Inexact Rounded quax225 quantize 1.05 1e+2 -> 0E+2 Inexact Rounded quax226 quantize 1.05 1e+1 -> 0E+1 Inexact Rounded quax227 quantize 1.05 1e+0 -> 1 Inexact Rounded quax228 quantize 1.05 1e+3 -> 0E+3 Inexact Rounded quax229 quantize 1.05 1e+2 -> 0E+2 Inexact Rounded quax230 quantize 1.05 1e+1 -> 0E+1 Inexact Rounded quax231 quantize 1.05 1e+0 -> 1 Inexact Rounded quax232 quantize 1.06 1e+3 -> 0E+3 Inexact Rounded quax233 quantize 1.06 1e+2 -> 0E+2 Inexact Rounded quax234 quantize 1.06 1e+1 -> 0E+1 Inexact Rounded quax235 quantize 1.06 1e+0 -> 1 Inexact Rounded quax240 quantize -10 1e+1 -> -1E+1 Rounded quax241 quantize +1 1e+1 -> 0E+1 Inexact Rounded quax242 quantize +10 1e+1 -> 1E+1 Rounded quax243 quantize 1E+1 1e+1 -> 1E+1 -- underneath this is E+1 quax244 quantize 1E+2 1e+1 -> 1.0E+2 -- underneath this is E+1 quax245 quantize 1E+3 1e+1 -> 1.00E+3 -- underneath this is E+1 quax246 quantize 1E+4 1e+1 -> 1.000E+4 -- underneath this is E+1 quax247 quantize 1E+5 1e+1 -> 1.0000E+5 -- underneath this is E+1 quax248 quantize 1E+6 1e+1 -> 1.00000E+6 -- underneath this is E+1 quax249 quantize 1E+7 1e+1 -> 1.000000E+7 -- underneath this is E+1 quax250 quantize 1E+8 1e+1 -> 1.0000000E+8 -- underneath this is E+1 quax251 quantize 1E+9 1e+1 -> 1.00000000E+9 -- underneath this is E+1 -- next one tries to add 9 zeros quax252 quantize 1E+10 1e+1 -> NaN Invalid_operation quax253 quantize 1E-10 1e+1 -> 0E+1 Inexact Rounded quax254 quantize 1E-2 1e+1 -> 0E+1 Inexact Rounded quax255 quantize 0E-10 1e+1 -> 0E+1 quax256 quantize -0E-10 1e+1 -> -0E+1 quax257 quantize -0E-1 1e+1 -> -0E+1 quax258 quantize -0 1e+1 -> -0E+1 quax259 quantize -0E+1 1e+1 -> -0E+1 quax260 quantize -10 1e+2 -> -0E+2 Inexact Rounded quax261 quantize +1 1e+2 -> 0E+2 Inexact Rounded quax262 quantize +10 1e+2 -> 0E+2 Inexact Rounded quax263 quantize 1E+1 1e+2 -> 0E+2 Inexact Rounded quax264 quantize 1E+2 1e+2 -> 1E+2 quax265 quantize 1E+3 1e+2 -> 1.0E+3 quax266 quantize 1E+4 1e+2 -> 1.00E+4 quax267 quantize 1E+5 1e+2 -> 1.000E+5 quax268 quantize 1E+6 1e+2 -> 1.0000E+6 quax269 quantize 1E+7 1e+2 -> 1.00000E+7 quax270 quantize 1E+8 1e+2 -> 1.000000E+8 quax271 quantize 1E+9 1e+2 -> 1.0000000E+9 quax272 quantize 1E+10 1e+2 -> 1.00000000E+10 quax273 quantize 1E-10 1e+2 -> 0E+2 Inexact Rounded quax274 quantize 1E-2 1e+2 -> 0E+2 Inexact Rounded quax275 quantize 0E-10 1e+2 -> 0E+2 quax280 quantize -10 1e+3 -> -0E+3 Inexact Rounded quax281 quantize +1 1e+3 -> 0E+3 Inexact Rounded quax282 quantize +10 1e+3 -> 0E+3 Inexact Rounded quax283 quantize 1E+1 1e+3 -> 0E+3 Inexact Rounded quax284 quantize 1E+2 1e+3 -> 0E+3 Inexact Rounded quax285 quantize 1E+3 1e+3 -> 1E+3 quax286 quantize 1E+4 1e+3 -> 1.0E+4 quax287 quantize 1E+5 1e+3 -> 1.00E+5 quax288 quantize 1E+6 1e+3 -> 1.000E+6 quax289 quantize 1E+7 1e+3 -> 1.0000E+7 quax290 quantize 1E+8 1e+3 -> 1.00000E+8 quax291 quantize 1E+9 1e+3 -> 1.000000E+9 quax292 quantize 1E+10 1e+3 -> 1.0000000E+10 quax293 quantize 1E-10 1e+3 -> 0E+3 Inexact Rounded quax294 quantize 1E-2 1e+3 -> 0E+3 Inexact Rounded quax295 quantize 0E-10 1e+3 -> 0E+3 -- round up from below [sign wrong in JIT compiler once] quax300 quantize 0.0078 1e-5 -> 0.00780 quax301 quantize 0.0078 1e-4 -> 0.0078 quax302 quantize 0.0078 1e-3 -> 0.008 Inexact Rounded quax303 quantize 0.0078 1e-2 -> 0.01 Inexact Rounded quax304 quantize 0.0078 1e-1 -> 0.0 Inexact Rounded quax305 quantize 0.0078 1e0 -> 0 Inexact Rounded quax306 quantize 0.0078 1e+1 -> 0E+1 Inexact Rounded quax307 quantize 0.0078 1e+2 -> 0E+2 Inexact Rounded quax310 quantize -0.0078 1e-5 -> -0.00780 quax311 quantize -0.0078 1e-4 -> -0.0078 quax312 quantize -0.0078 1e-3 -> -0.008 Inexact Rounded quax313 quantize -0.0078 1e-2 -> -0.01 Inexact Rounded quax314 quantize -0.0078 1e-1 -> -0.0 Inexact Rounded quax315 quantize -0.0078 1e0 -> -0 Inexact Rounded quax316 quantize -0.0078 1e+1 -> -0E+1 Inexact Rounded quax317 quantize -0.0078 1e+2 -> -0E+2 Inexact Rounded quax320 quantize 0.078 1e-5 -> 0.07800 quax321 quantize 0.078 1e-4 -> 0.0780 quax322 quantize 0.078 1e-3 -> 0.078 quax323 quantize 0.078 1e-2 -> 0.08 Inexact Rounded quax324 quantize 0.078 1e-1 -> 0.1 Inexact Rounded quax325 quantize 0.078 1e0 -> 0 Inexact Rounded quax326 quantize 0.078 1e+1 -> 0E+1 Inexact Rounded quax327 quantize 0.078 1e+2 -> 0E+2 Inexact Rounded quax330 quantize -0.078 1e-5 -> -0.07800 quax331 quantize -0.078 1e-4 -> -0.0780 quax332 quantize -0.078 1e-3 -> -0.078 quax333 quantize -0.078 1e-2 -> -0.08 Inexact Rounded quax334 quantize -0.078 1e-1 -> -0.1 Inexact Rounded quax335 quantize -0.078 1e0 -> -0 Inexact Rounded quax336 quantize -0.078 1e+1 -> -0E+1 Inexact Rounded quax337 quantize -0.078 1e+2 -> -0E+2 Inexact Rounded quax340 quantize 0.78 1e-5 -> 0.78000 quax341 quantize 0.78 1e-4 -> 0.7800 quax342 quantize 0.78 1e-3 -> 0.780 quax343 quantize 0.78 1e-2 -> 0.78 quax344 quantize 0.78 1e-1 -> 0.8 Inexact Rounded quax345 quantize 0.78 1e0 -> 1 Inexact Rounded quax346 quantize 0.78 1e+1 -> 0E+1 Inexact Rounded quax347 quantize 0.78 1e+2 -> 0E+2 Inexact Rounded quax350 quantize -0.78 1e-5 -> -0.78000 quax351 quantize -0.78 1e-4 -> -0.7800 quax352 quantize -0.78 1e-3 -> -0.780 quax353 quantize -0.78 1e-2 -> -0.78 quax354 quantize -0.78 1e-1 -> -0.8 Inexact Rounded quax355 quantize -0.78 1e0 -> -1 Inexact Rounded quax356 quantize -0.78 1e+1 -> -0E+1 Inexact Rounded quax357 quantize -0.78 1e+2 -> -0E+2 Inexact Rounded quax360 quantize 7.8 1e-5 -> 7.80000 quax361 quantize 7.8 1e-4 -> 7.8000 quax362 quantize 7.8 1e-3 -> 7.800 quax363 quantize 7.8 1e-2 -> 7.80 quax364 quantize 7.8 1e-1 -> 7.8 quax365 quantize 7.8 1e0 -> 8 Inexact Rounded quax366 quantize 7.8 1e+1 -> 1E+1 Inexact Rounded quax367 quantize 7.8 1e+2 -> 0E+2 Inexact Rounded quax368 quantize 7.8 1e+3 -> 0E+3 Inexact Rounded quax370 quantize -7.8 1e-5 -> -7.80000 quax371 quantize -7.8 1e-4 -> -7.8000 quax372 quantize -7.8 1e-3 -> -7.800 quax373 quantize -7.8 1e-2 -> -7.80 quax374 quantize -7.8 1e-1 -> -7.8 quax375 quantize -7.8 1e0 -> -8 Inexact Rounded quax376 quantize -7.8 1e+1 -> -1E+1 Inexact Rounded quax377 quantize -7.8 1e+2 -> -0E+2 Inexact Rounded quax378 quantize -7.8 1e+3 -> -0E+3 Inexact Rounded -- some individuals precision: 9 quax380 quantize 352364.506 1e-2 -> 352364.51 Inexact Rounded quax381 quantize 3523645.06 1e-2 -> 3523645.06 quax382 quantize 35236450.6 1e-2 -> NaN Invalid_operation quax383 quantize 352364506 1e-2 -> NaN Invalid_operation quax384 quantize -352364.506 1e-2 -> -352364.51 Inexact Rounded quax385 quantize -3523645.06 1e-2 -> -3523645.06 quax386 quantize -35236450.6 1e-2 -> NaN Invalid_operation quax387 quantize -352364506 1e-2 -> NaN Invalid_operation rounding: down quax389 quantize 35236450.6 1e-2 -> NaN Invalid_operation -- ? should that one instead have been: -- quax389 quantize 35236450.6 1e-2 -> NaN Invalid_operation rounding: half_up -- and a few more from e-mail discussions precision: 7 quax391 quantize 12.34567 1e-3 -> 12.346 Inexact Rounded quax392 quantize 123.4567 1e-3 -> 123.457 Inexact Rounded quax393 quantize 1234.567 1e-3 -> 1234.567 quax394 quantize 12345.67 1e-3 -> NaN Invalid_operation quax395 quantize 123456.7 1e-3 -> NaN Invalid_operation quax396 quantize 1234567. 1e-3 -> NaN Invalid_operation -- some 9999 round-up cases precision: 9 quax400 quantize 9.999 1e-5 -> 9.99900 quax401 quantize 9.999 1e-4 -> 9.9990 quax402 quantize 9.999 1e-3 -> 9.999 quax403 quantize 9.999 1e-2 -> 10.00 Inexact Rounded quax404 quantize 9.999 1e-1 -> 10.0 Inexact Rounded quax405 quantize 9.999 1e0 -> 10 Inexact Rounded quax406 quantize 9.999 1e1 -> 1E+1 Inexact Rounded quax407 quantize 9.999 1e2 -> 0E+2 Inexact Rounded quax410 quantize 0.999 1e-5 -> 0.99900 quax411 quantize 0.999 1e-4 -> 0.9990 quax412 quantize 0.999 1e-3 -> 0.999 quax413 quantize 0.999 1e-2 -> 1.00 Inexact Rounded quax414 quantize 0.999 1e-1 -> 1.0 Inexact Rounded quax415 quantize 0.999 1e0 -> 1 Inexact Rounded quax416 quantize 0.999 1e1 -> 0E+1 Inexact Rounded quax420 quantize 0.0999 1e-5 -> 0.09990 quax421 quantize 0.0999 1e-4 -> 0.0999 quax422 quantize 0.0999 1e-3 -> 0.100 Inexact Rounded quax423 quantize 0.0999 1e-2 -> 0.10 Inexact Rounded quax424 quantize 0.0999 1e-1 -> 0.1 Inexact Rounded quax425 quantize 0.0999 1e0 -> 0 Inexact Rounded quax426 quantize 0.0999 1e1 -> 0E+1 Inexact Rounded quax430 quantize 0.00999 1e-5 -> 0.00999 quax431 quantize 0.00999 1e-4 -> 0.0100 Inexact Rounded quax432 quantize 0.00999 1e-3 -> 0.010 Inexact Rounded quax433 quantize 0.00999 1e-2 -> 0.01 Inexact Rounded quax434 quantize 0.00999 1e-1 -> 0.0 Inexact Rounded quax435 quantize 0.00999 1e0 -> 0 Inexact Rounded quax436 quantize 0.00999 1e1 -> 0E+1 Inexact Rounded quax440 quantize 0.000999 1e-5 -> 0.00100 Inexact Rounded quax441 quantize 0.000999 1e-4 -> 0.0010 Inexact Rounded quax442 quantize 0.000999 1e-3 -> 0.001 Inexact Rounded quax443 quantize 0.000999 1e-2 -> 0.00 Inexact Rounded quax444 quantize 0.000999 1e-1 -> 0.0 Inexact Rounded quax445 quantize 0.000999 1e0 -> 0 Inexact Rounded quax446 quantize 0.000999 1e1 -> 0E+1 Inexact Rounded precision: 8 quax449 quantize 9.999E-15 1e-23 -> NaN Invalid_operation quax450 quantize 9.999E-15 1e-22 -> 9.9990000E-15 quax451 quantize 9.999E-15 1e-21 -> 9.999000E-15 quax452 quantize 9.999E-15 1e-20 -> 9.99900E-15 quax453 quantize 9.999E-15 1e-19 -> 9.9990E-15 quax454 quantize 9.999E-15 1e-18 -> 9.999E-15 quax455 quantize 9.999E-15 1e-17 -> 1.000E-14 Inexact Rounded quax456 quantize 9.999E-15 1e-16 -> 1.00E-14 Inexact Rounded quax457 quantize 9.999E-15 1e-15 -> 1.0E-14 Inexact Rounded quax458 quantize 9.999E-15 1e-14 -> 1E-14 Inexact Rounded quax459 quantize 9.999E-15 1e-13 -> 0E-13 Inexact Rounded quax460 quantize 9.999E-15 1e-12 -> 0E-12 Inexact Rounded quax461 quantize 9.999E-15 1e-11 -> 0E-11 Inexact Rounded quax462 quantize 9.999E-15 1e-10 -> 0E-10 Inexact Rounded quax463 quantize 9.999E-15 1e-9 -> 0E-9 Inexact Rounded quax464 quantize 9.999E-15 1e-8 -> 0E-8 Inexact Rounded quax465 quantize 9.999E-15 1e-7 -> 0E-7 Inexact Rounded quax466 quantize 9.999E-15 1e-6 -> 0.000000 Inexact Rounded quax467 quantize 9.999E-15 1e-5 -> 0.00000 Inexact Rounded quax468 quantize 9.999E-15 1e-4 -> 0.0000 Inexact Rounded quax469 quantize 9.999E-15 1e-3 -> 0.000 Inexact Rounded quax470 quantize 9.999E-15 1e-2 -> 0.00 Inexact Rounded quax471 quantize 9.999E-15 1e-1 -> 0.0 Inexact Rounded quax472 quantize 9.999E-15 1e0 -> 0 Inexact Rounded quax473 quantize 9.999E-15 1e1 -> 0E+1 Inexact Rounded -- long operand checks [rhs checks removed] maxexponent: 999 minexponent: -999 precision: 9 quax481 quantize 12345678000 1e+3 -> 1.2345678E+10 Rounded quax482 quantize 1234567800 1e+1 -> 1.23456780E+9 Rounded quax483 quantize 1234567890 1e+1 -> 1.23456789E+9 Rounded quax484 quantize 1234567891 1e+1 -> 1.23456789E+9 Inexact Rounded quax485 quantize 12345678901 1e+2 -> 1.23456789E+10 Inexact Rounded quax486 quantize 1234567896 1e+1 -> 1.23456790E+9 Inexact Rounded -- a potential double-round quax487 quantize 1234.987643 1e-4 -> 1234.9876 Inexact Rounded quax488 quantize 1234.987647 1e-4 -> 1234.9876 Inexact Rounded precision: 15 quax491 quantize 12345678000 1e+3 -> 1.2345678E+10 Rounded quax492 quantize 1234567800 1e+1 -> 1.23456780E+9 Rounded quax493 quantize 1234567890 1e+1 -> 1.23456789E+9 Rounded quax494 quantize 1234567891 1e+1 -> 1.23456789E+9 Inexact Rounded quax495 quantize 12345678901 1e+2 -> 1.23456789E+10 Inexact Rounded quax496 quantize 1234567896 1e+1 -> 1.23456790E+9 Inexact Rounded quax497 quantize 1234.987643 1e-4 -> 1234.9876 Inexact Rounded quax498 quantize 1234.987647 1e-4 -> 1234.9876 Inexact Rounded -- Zeros quax500 quantize 0 1e1 -> 0E+1 quax501 quantize 0 1e0 -> 0 quax502 quantize 0 1e-1 -> 0.0 quax503 quantize 0.0 1e-1 -> 0.0 quax504 quantize 0.0 1e0 -> 0 quax505 quantize 0.0 1e+1 -> 0E+1 quax506 quantize 0E+1 1e-1 -> 0.0 quax507 quantize 0E+1 1e0 -> 0 quax508 quantize 0E+1 1e+1 -> 0E+1 quax509 quantize -0 1e1 -> -0E+1 quax510 quantize -0 1e0 -> -0 quax511 quantize -0 1e-1 -> -0.0 quax512 quantize -0.0 1e-1 -> -0.0 quax513 quantize -0.0 1e0 -> -0 quax514 quantize -0.0 1e+1 -> -0E+1 quax515 quantize -0E+1 1e-1 -> -0.0 quax516 quantize -0E+1 1e0 -> -0 quax517 quantize -0E+1 1e+1 -> -0E+1 -- Suspicious RHS values maxexponent: 999999999 minexponent: -999999999 precision: 15 quax520 quantize 1.234 1e999999000 -> 0E+999999000 Inexact Rounded quax521 quantize 123.456 1e999999000 -> 0E+999999000 Inexact Rounded quax522 quantize 1.234 1e999999999 -> 0E+999999999 Inexact Rounded quax523 quantize 123.456 1e999999999 -> 0E+999999999 Inexact Rounded quax524 quantize 123.456 1e1000000000 -> NaN Invalid_operation quax525 quantize 123.456 1e12345678903 -> NaN Invalid_operation -- next four are "won't fit" overflows quax526 quantize 1.234 1e-999999000 -> NaN Invalid_operation quax527 quantize 123.456 1e-999999000 -> NaN Invalid_operation quax528 quantize 1.234 1e-999999999 -> NaN Invalid_operation quax529 quantize 123.456 1e-999999999 -> NaN Invalid_operation quax530 quantize 123.456 1e-1000000014 -> NaN Invalid_operation quax531 quantize 123.456 1e-12345678903 -> NaN Invalid_operation maxexponent: 999 minexponent: -999 precision: 15 quax532 quantize 1.234E+999 1e999 -> 1E+999 Inexact Rounded quax533 quantize 1.234E+998 1e999 -> 0E+999 Inexact Rounded quax534 quantize 1.234 1e999 -> 0E+999 Inexact Rounded quax535 quantize 1.234 1e1000 -> NaN Invalid_operation quax536 quantize 1.234 1e5000 -> NaN Invalid_operation quax537 quantize 0 1e-999 -> 0E-999 -- next two are "won't fit" overflows quax538 quantize 1.234 1e-999 -> NaN Invalid_operation quax539 quantize 1.234 1e-1000 -> NaN Invalid_operation quax540 quantize 1.234 1e-5000 -> NaN Invalid_operation -- [more below] -- check bounds (lhs maybe out of range for destination, etc.) precision: 7 quax541 quantize 1E+999 1e+999 -> 1E+999 quax542 quantize 1E+1000 1e+999 -> NaN Invalid_operation quax543 quantize 1E+999 1e+1000 -> NaN Invalid_operation quax544 quantize 1E-999 1e-999 -> 1E-999 quax545 quantize 1E-1000 1e-999 -> 0E-999 Inexact Rounded quax546 quantize 1E-999 1e-1000 -> 1.0E-999 quax547 quantize 1E-1005 1e-999 -> 0E-999 Inexact Rounded quax548 quantize 1E-1006 1e-999 -> 0E-999 Inexact Rounded quax549 quantize 1E-1007 1e-999 -> 0E-999 Inexact Rounded quax550 quantize 1E-998 1e-1005 -> NaN Invalid_operation -- won't fit quax551 quantize 1E-999 1e-1005 -> 1.000000E-999 quax552 quantize 1E-1000 1e-1005 -> 1.00000E-1000 Subnormal quax553 quantize 1E-999 1e-1006 -> NaN Invalid_operation quax554 quantize 1E-999 1e-1007 -> NaN Invalid_operation -- related subnormal rounding quax555 quantize 1.666666E-999 1e-1005 -> 1.666666E-999 quax556 quantize 1.666666E-1000 1e-1005 -> 1.66667E-1000 Underflow Subnormal Inexact Rounded quax557 quantize 1.666666E-1001 1e-1005 -> 1.6667E-1001 Underflow Subnormal Inexact Rounded quax558 quantize 1.666666E-1002 1e-1005 -> 1.667E-1002 Underflow Subnormal Inexact Rounded quax559 quantize 1.666666E-1003 1e-1005 -> 1.67E-1003 Underflow Subnormal Inexact Rounded quax560 quantize 1.666666E-1004 1e-1005 -> 1.7E-1004 Underflow Subnormal Inexact Rounded quax561 quantize 1.666666E-1005 1e-1005 -> 2E-1005 Underflow Subnormal Inexact Rounded quax562 quantize 1.666666E-1006 1e-1005 -> 0E-1005 Inexact Rounded quax563 quantize 1.666666E-1007 1e-1005 -> 0E-1005 Inexact Rounded -- Specials quax580 quantize Inf -Inf -> NaN Invalid_operation quax581 quantize Inf 1e-1000 -> NaN Invalid_operation quax582 quantize Inf 1e-1 -> NaN Invalid_operation quax583 quantize Inf 1e0 -> NaN Invalid_operation quax584 quantize Inf 1e1 -> NaN Invalid_operation quax585 quantize Inf 1e1000 -> NaN Invalid_operation quax586 quantize Inf Inf -> NaN Invalid_operation quax587 quantize -1000 Inf -> NaN Invalid_operation quax588 quantize -Inf Inf -> NaN Invalid_operation quax589 quantize -1 Inf -> NaN Invalid_operation quax590 quantize 0 Inf -> NaN Invalid_operation quax591 quantize 1 Inf -> NaN Invalid_operation quax592 quantize 1000 Inf -> NaN Invalid_operation quax593 quantize Inf Inf -> NaN Invalid_operation quax594 quantize Inf 1e-0 -> NaN Invalid_operation quax595 quantize -0 Inf -> NaN Invalid_operation quax600 quantize -Inf -Inf -> NaN Invalid_operation quax601 quantize -Inf 1e-1000 -> NaN Invalid_operation quax602 quantize -Inf 1e-1 -> NaN Invalid_operation quax603 quantize -Inf 1e0 -> NaN Invalid_operation quax604 quantize -Inf 1e1 -> NaN Invalid_operation quax605 quantize -Inf 1e1000 -> NaN Invalid_operation quax606 quantize -Inf Inf -> NaN Invalid_operation quax607 quantize -1000 Inf -> NaN Invalid_operation quax608 quantize -Inf -Inf -> NaN Invalid_operation quax609 quantize -1 -Inf -> NaN Invalid_operation quax610 quantize 0 -Inf -> NaN Invalid_operation quax611 quantize 1 -Inf -> NaN Invalid_operation quax612 quantize 1000 -Inf -> NaN Invalid_operation quax613 quantize Inf -Inf -> NaN Invalid_operation quax614 quantize -Inf 1e-0 -> NaN Invalid_operation quax615 quantize -0 -Inf -> NaN Invalid_operation quax621 quantize NaN -Inf -> NaN Invalid_operation quax622 quantize NaN 1e-1000 -> NaN quax623 quantize NaN 1e-1 -> NaN quax624 quantize NaN 1e0 -> NaN quax625 quantize NaN 1e1 -> NaN quax626 quantize NaN 1e1000 -> NaN quax627 quantize NaN Inf -> NaN Invalid_operation quax628 quantize NaN NaN -> NaN quax629 quantize -Inf NaN -> NaN Invalid_operation quax630 quantize -1000 NaN -> NaN quax631 quantize -1 NaN -> NaN quax632 quantize 0 NaN -> NaN quax633 quantize 1 NaN -> NaN quax634 quantize 1000 NaN -> NaN quax635 quantize Inf NaN -> NaN Invalid_operation quax636 quantize NaN 1e-0 -> NaN quax637 quantize -0 NaN -> NaN quax641 quantize sNaN -Inf -> NaN Invalid_operation quax642 quantize sNaN 1e-1000 -> NaN Invalid_operation quax643 quantize sNaN 1e-1 -> NaN Invalid_operation quax644 quantize sNaN 1e0 -> NaN Invalid_operation quax645 quantize sNaN 1e1 -> NaN Invalid_operation quax646 quantize sNaN 1e1000 -> NaN Invalid_operation quax647 quantize sNaN NaN -> NaN Invalid_operation quax648 quantize sNaN sNaN -> NaN Invalid_operation quax649 quantize NaN sNaN -> NaN Invalid_operation quax650 quantize -Inf sNaN -> NaN Invalid_operation quax651 quantize -1000 sNaN -> NaN Invalid_operation quax652 quantize -1 sNaN -> NaN Invalid_operation quax653 quantize 0 sNaN -> NaN Invalid_operation quax654 quantize 1 sNaN -> NaN Invalid_operation quax655 quantize 1000 sNaN -> NaN Invalid_operation quax656 quantize Inf sNaN -> NaN Invalid_operation quax657 quantize NaN sNaN -> NaN Invalid_operation quax658 quantize sNaN 1e-0 -> NaN Invalid_operation quax659 quantize -0 sNaN -> NaN Invalid_operation -- subnormals and underflow precision: 4 maxexponent: 999 minexponent: -999 quax710 quantize 1.00E-999 1e-999 -> 1E-999 Rounded quax711 quantize 0.1E-999 2e-1000 -> 1E-1000 Subnormal quax712 quantize 0.10E-999 3e-1000 -> 1E-1000 Subnormal Rounded quax713 quantize 0.100E-999 4e-1000 -> 1E-1000 Subnormal Rounded quax714 quantize 0.01E-999 5e-1001 -> 1E-1001 Subnormal -- next is rounded to Emin quax715 quantize 0.999E-999 1e-999 -> 1E-999 Inexact Rounded quax716 quantize 0.099E-999 10e-1000 -> 1E-1000 Inexact Rounded Subnormal Underflow quax717 quantize 0.009E-999 1e-1001 -> 1E-1001 Inexact Rounded Subnormal Underflow quax718 quantize 0.001E-999 1e-1001 -> 0E-1001 Inexact Rounded quax719 quantize 0.0009E-999 1e-1001 -> 0E-1001 Inexact Rounded quax720 quantize 0.0001E-999 1e-1001 -> 0E-1001 Inexact Rounded quax730 quantize -1.00E-999 1e-999 -> -1E-999 Rounded quax731 quantize -0.1E-999 1e-999 -> -0E-999 Rounded Inexact quax732 quantize -0.10E-999 1e-999 -> -0E-999 Rounded Inexact quax733 quantize -0.100E-999 1e-999 -> -0E-999 Rounded Inexact quax734 quantize -0.01E-999 1e-999 -> -0E-999 Inexact Rounded -- next is rounded to Emin quax735 quantize -0.999E-999 90e-999 -> -1E-999 Inexact Rounded quax736 quantize -0.099E-999 -1e-999 -> -0E-999 Inexact Rounded quax737 quantize -0.009E-999 -1e-999 -> -0E-999 Inexact Rounded quax738 quantize -0.001E-999 -0e-999 -> -0E-999 Inexact Rounded quax739 quantize -0.0001E-999 0e-999 -> -0E-999 Inexact Rounded quax740 quantize -1.00E-999 1e-1000 -> -1.0E-999 Rounded quax741 quantize -0.1E-999 1e-1000 -> -1E-1000 Subnormal quax742 quantize -0.10E-999 1e-1000 -> -1E-1000 Subnormal Rounded quax743 quantize -0.100E-999 1e-1000 -> -1E-1000 Subnormal Rounded quax744 quantize -0.01E-999 1e-1000 -> -0E-1000 Inexact Rounded -- next is rounded to Emin quax745 quantize -0.999E-999 1e-1000 -> -1.0E-999 Inexact Rounded quax746 quantize -0.099E-999 1e-1000 -> -1E-1000 Inexact Rounded Subnormal Underflow quax747 quantize -0.009E-999 1e-1000 -> -0E-1000 Inexact Rounded quax748 quantize -0.001E-999 1e-1000 -> -0E-1000 Inexact Rounded quax749 quantize -0.0001E-999 1e-1000 -> -0E-1000 Inexact Rounded quax750 quantize -1.00E-999 1e-1001 -> -1.00E-999 quax751 quantize -0.1E-999 1e-1001 -> -1.0E-1000 Subnormal quax752 quantize -0.10E-999 1e-1001 -> -1.0E-1000 Subnormal quax753 quantize -0.100E-999 1e-1001 -> -1.0E-1000 Subnormal Rounded quax754 quantize -0.01E-999 1e-1001 -> -1E-1001 Subnormal -- next is rounded to Emin quax755 quantize -0.999E-999 1e-1001 -> -1.00E-999 Inexact Rounded quax756 quantize -0.099E-999 1e-1001 -> -1.0E-1000 Inexact Rounded Subnormal Underflow quax757 quantize -0.009E-999 1e-1001 -> -1E-1001 Inexact Rounded Subnormal Underflow quax758 quantize -0.001E-999 1e-1001 -> -0E-1001 Inexact Rounded quax759 quantize -0.0001E-999 1e-1001 -> -0E-1001 Inexact Rounded quax760 quantize -1.00E-999 1e-1002 -> -1.000E-999 quax761 quantize -0.1E-999 1e-1002 -> -1.00E-1000 Subnormal quax762 quantize -0.10E-999 1e-1002 -> -1.00E-1000 Subnormal quax763 quantize -0.100E-999 1e-1002 -> -1.00E-1000 Subnormal quax764 quantize -0.01E-999 1e-1002 -> -1.0E-1001 Subnormal quax765 quantize -0.999E-999 1e-1002 -> -9.99E-1000 Subnormal quax766 quantize -0.099E-999 1e-1002 -> -9.9E-1001 Subnormal quax767 quantize -0.009E-999 1e-1002 -> -9E-1002 Subnormal quax768 quantize -0.001E-999 1e-1002 -> -1E-1002 Subnormal quax769 quantize -0.0001E-999 1e-1002 -> -0E-1002 Inexact Rounded -- rhs must be no less than Etiny quax770 quantize -1.00E-999 1e-1003 -> NaN Invalid_operation quax771 quantize -0.1E-999 1e-1003 -> NaN Invalid_operation quax772 quantize -0.10E-999 1e-1003 -> NaN Invalid_operation quax773 quantize -0.100E-999 1e-1003 -> NaN Invalid_operation quax774 quantize -0.01E-999 1e-1003 -> NaN Invalid_operation quax775 quantize -0.999E-999 1e-1003 -> NaN Invalid_operation quax776 quantize -0.099E-999 1e-1003 -> NaN Invalid_operation quax777 quantize -0.009E-999 1e-1003 -> NaN Invalid_operation quax778 quantize -0.001E-999 1e-1003 -> NaN Invalid_operation quax779 quantize -0.0001E-999 1e-1003 -> NaN Invalid_operation quax780 quantize -0.0001E-999 1e-1004 -> NaN Invalid_operation precision: 9 maxExponent: 999999999 minexponent: -999999999 -- some extremes derived from Rescale testcases quax801 quantize 0 1e1000000000 -> NaN Invalid_operation quax802 quantize 0 1e-1000000000 -> 0E-1000000000 quax803 quantize 0 1e2000000000 -> NaN Invalid_operation quax804 quantize 0 1e-2000000000 -> NaN Invalid_operation quax805 quantize 0 1e3000000000 -> NaN Invalid_operation quax806 quantize 0 1e-3000000000 -> NaN Invalid_operation quax807 quantize 0 1e4000000000 -> NaN Invalid_operation quax808 quantize 0 1e-4000000000 -> NaN Invalid_operation quax809 quantize 0 1e5000000000 -> NaN Invalid_operation quax810 quantize 0 1e-5000000000 -> NaN Invalid_operation quax811 quantize 0 1e6000000000 -> NaN Invalid_operation quax812 quantize 0 1e-6000000000 -> NaN Invalid_operation quax813 quantize 0 1e7000000000 -> NaN Invalid_operation quax814 quantize 0 1e-7000000000 -> NaN Invalid_operation quax815 quantize 0 1e8000000000 -> NaN Invalid_operation quax816 quantize 0 1e-8000000000 -> NaN Invalid_operation quax817 quantize 0 1e9000000000 -> NaN Invalid_operation quax818 quantize 0 1e-9000000000 -> NaN Invalid_operation quax819 quantize 0 1e9999999999 -> NaN Invalid_operation quax820 quantize 0 1e-9999999999 -> NaN Invalid_operation quax821 quantize 0 1e10000000000 -> NaN Invalid_operation quax822 quantize 0 1e-10000000000 -> NaN Invalid_operation quax843 quantize 0 1e999999999 -> 0E+999999999 quax844 quantize 0 1e1000000000 -> NaN Invalid_operation quax845 quantize 0 1e-999999999 -> 0E-999999999 quax846 quantize 0 1e-1000000000 -> 0E-1000000000 quax847 quantize 0 1e-1000000001 -> 0E-1000000001 quax848 quantize 0 1e-1000000002 -> 0E-1000000002 quax849 quantize 0 1e-1000000003 -> 0E-1000000003 quax850 quantize 0 1e-1000000004 -> 0E-1000000004 quax851 quantize 0 1e-1000000005 -> 0E-1000000005 quax852 quantize 0 1e-1000000006 -> 0E-1000000006 quax853 quantize 0 1e-1000000007 -> 0E-1000000007 quax854 quantize 0 1e-1000000008 -> NaN Invalid_operation quax861 quantize 1 1e+2147483649 -> NaN Invalid_operation quax862 quantize 1 1e+2147483648 -> NaN Invalid_operation quax863 quantize 1 1e+2147483647 -> NaN Invalid_operation quax864 quantize 1 1e-2147483647 -> NaN Invalid_operation quax865 quantize 1 1e-2147483648 -> NaN Invalid_operation quax866 quantize 1 1e-2147483649 -> NaN Invalid_operation -- Null tests quax900 quantize 10 # -> NaN Invalid_operation quax901 quantize # 1e10 -> NaN Invalid_operation Index: abs.decTest =================================================================== RCS file: /cvsroot/python/python/nondist/sandbox/decimal/tests/abs.decTest,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** abs.decTest 27 May 2003 22:46:40 -0000 1.2 --- abs.decTest 2 Jul 2003 23:51:16 -0000 1.3 *************** *** 18,22 **** -- mfc@uk.ibm.com -- ------------------------------------------------------------------------ ! version: 2.23 -- This set of tests primarily tests the existence of the operator. --- 18,22 ---- -- mfc@uk.ibm.com -- ------------------------------------------------------------------------ ! version: 2.26 -- This set of tests primarily tests the existence of the operator. Index: add.decTest =================================================================== RCS file: /cvsroot/python/python/nondist/sandbox/decimal/tests/add.decTest,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** add.decTest 27 May 2003 22:46:40 -0000 1.2 --- add.decTest 2 Jul 2003 23:51:16 -0000 1.3 *************** *** 18,22 **** -- mfc@uk.ibm.com -- ------------------------------------------------------------------------ ! version: 2.23 precision: 9 --- 18,22 ---- -- mfc@uk.ibm.com -- ------------------------------------------------------------------------ ! version: 2.26 precision: 9 Index: base.decTest =================================================================== RCS file: /cvsroot/python/python/nondist/sandbox/decimal/tests/base.decTest,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** base.decTest 27 May 2003 22:46:40 -0000 1.2 --- base.decTest 2 Jul 2003 23:51:16 -0000 1.3 *************** *** 18,22 **** -- mfc@uk.ibm.com -- ------------------------------------------------------------------------ ! version: 2.23 -- This file tests base conversions from string to a decimal number --- 18,22 ---- -- mfc@uk.ibm.com -- ------------------------------------------------------------------------ ! version: 2.26 -- This file tests base conversions from string to a decimal number *************** *** 1204,1212 **** basx1012 toSci 1e-000000000001000000007 -> 1E-1000000007 Subnormal -- check for double-rounded subnormals precision: 5 maxexponent: 79 minexponent: -79 ! basx1021 toSci 1.52444E-80 -> 1.524E-80 Inexact Rounded Subnormal Underflow ! basx1022 toSci 1.52445E-80 -> 1.524E-80 Inexact Rounded Subnormal Underflow ! basx1023 toSci 1.52446E-80 -> 1.524E-80 Inexact Rounded Subnormal Underflow --- 1204,1231 ---- basx1012 toSci 1e-000000000001000000007 -> 1E-1000000007 Subnormal + -- Edge cases for int32 exponents... + basx1021 tosci 1e+2147483649 -> Infinity Overflow Inexact Rounded + basx1022 tosci 1e+2147483648 -> Infinity Overflow Inexact Rounded + basx1023 tosci 1e+2147483647 -> Infinity Overflow Inexact Rounded + basx1024 tosci 1e-2147483647 -> 0E-1000000014 Underflow Subnormal Inexact Rounded + basx1025 tosci 1e-2147483648 -> 0E-1000000014 Underflow Subnormal Inexact Rounded + basx1026 tosci 1e-2147483649 -> 0E-1000000014 Underflow Subnormal Inexact Rounded + -- same unbalanced + precision: 7 + maxExponent: 96 + minexponent: -95 + basx1031 tosci 1e+2147483649 -> Infinity Overflow Inexact Rounded + basx1032 tosci 1e+2147483648 -> Infinity Overflow Inexact Rounded + basx1033 tosci 1e+2147483647 -> Infinity Overflow Inexact Rounded + basx1034 tosci 1e-2147483647 -> 0E-101 Underflow Subnormal Inexact Rounded + basx1035 tosci 1e-2147483648 -> 0E-101 Underflow Subnormal Inexact Rounded + basx1036 tosci 1e-2147483649 -> 0E-101 Underflow Subnormal Inexact Rounded + -- check for double-rounded subnormals precision: 5 maxexponent: 79 minexponent: -79 ! basx1041 toSci 1.52444E-80 -> 1.524E-80 Inexact Rounded Subnormal Underflow ! basx1042 toSci 1.52445E-80 -> 1.524E-80 Inexact Rounded Subnormal Underflow ! basx1043 toSci 1.52446E-80 -> 1.524E-80 Inexact Rounded Subnormal Underflow ! Index: clamp.decTest =================================================================== RCS file: /cvsroot/python/python/nondist/sandbox/decimal/tests/clamp.decTest,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** clamp.decTest 27 May 2003 22:46:40 -0000 1.2 --- clamp.decTest 2 Jul 2003 23:51:16 -0000 1.3 *************** *** 18,22 **** -- mfc@uk.ibm.com -- ------------------------------------------------------------------------ ! version: 2.23 -- This set of tests uses the same limits as the 8-byte concrete --- 18,22 ---- -- mfc@uk.ibm.com -- ------------------------------------------------------------------------ ! version: 2.26 -- This set of tests uses the same limits as the 8-byte concrete Index: compare.decTest =================================================================== RCS file: /cvsroot/python/python/nondist/sandbox/decimal/tests/compare.decTest,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** compare.decTest 27 May 2003 22:46:40 -0000 1.2 --- compare.decTest 2 Jul 2003 23:51:16 -0000 1.3 *************** *** 18,22 **** -- mfc@uk.ibm.com -- ------------------------------------------------------------------------ ! version: 2.23 -- Note that we cannot assume add/subtract tests cover paths adequately, --- 18,22 ---- -- mfc@uk.ibm.com -- ------------------------------------------------------------------------ ! version: 2.26 -- Note that we cannot assume add/subtract tests cover paths adequately, Index: decimal64.decTest =================================================================== RCS file: /cvsroot/python/python/nondist/sandbox/decimal/tests/decimal64.decTest,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** decimal64.decTest 27 May 2003 22:46:40 -0000 1.2 --- decimal64.decTest 2 Jul 2003 23:51:16 -0000 1.3 *************** *** 18,22 **** -- mfc@uk.ibm.com -- ------------------------------------------------------------------------ ! version: 2.23 -- This set of tests is for the eight-byte concrete representation. --- 18,22 ---- -- mfc@uk.ibm.com -- ------------------------------------------------------------------------ ! version: 2.26 -- This set of tests is for the eight-byte concrete representation. Index: divide.decTest =================================================================== RCS file: /cvsroot/python/python/nondist/sandbox/decimal/tests/divide.decTest,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** divide.decTest 27 May 2003 22:46:40 -0000 1.2 --- divide.decTest 2 Jul 2003 23:51:16 -0000 1.3 *************** *** 18,22 **** -- mfc@uk.ibm.com -- ------------------------------------------------------------------------ ! version: 2.23 extended: 1 --- 18,22 ---- -- mfc@uk.ibm.com -- ------------------------------------------------------------------------ ! version: 2.26 extended: 1 Index: divideint.decTest =================================================================== RCS file: /cvsroot/python/python/nondist/sandbox/decimal/tests/divideint.decTest,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** divideint.decTest 27 May 2003 22:46:40 -0000 1.2 --- divideint.decTest 2 Jul 2003 23:51:16 -0000 1.3 *************** *** 18,22 **** -- mfc@uk.ibm.com -- ------------------------------------------------------------------------ ! version: 2.23 extended: 1 --- 18,22 ---- -- mfc@uk.ibm.com -- ------------------------------------------------------------------------ ! version: 2.26 extended: 1 Index: inexact.decTest =================================================================== RCS file: /cvsroot/python/python/nondist/sandbox/decimal/tests/inexact.decTest,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** inexact.decTest 27 May 2003 22:46:40 -0000 1.2 --- inexact.decTest 2 Jul 2003 23:51:16 -0000 1.3 *************** *** 18,22 **** -- mfc@uk.ibm.com -- ------------------------------------------------------------------------ ! version: 2.23 extended: 1 --- 18,22 ---- -- mfc@uk.ibm.com -- ------------------------------------------------------------------------ ! version: 2.26 extended: 1 Index: integer.decTest =================================================================== RCS file: /cvsroot/python/python/nondist/sandbox/decimal/tests/integer.decTest,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** integer.decTest 27 May 2003 22:46:40 -0000 1.2 --- integer.decTest 2 Jul 2003 23:51:16 -0000 1.3 *************** *** 18,22 **** -- mfc@uk.ibm.com -- ------------------------------------------------------------------------ ! version: 2.23 -- This set of tests tests the extended specification 'round-to-integer' --- 18,22 ---- -- mfc@uk.ibm.com -- ------------------------------------------------------------------------ ! version: 2.26 -- This set of tests tests the extended specification 'round-to-integer' Index: max.decTest =================================================================== RCS file: /cvsroot/python/python/nondist/sandbox/decimal/tests/max.decTest,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** max.decTest 27 May 2003 22:46:40 -0000 1.2 --- max.decTest 2 Jul 2003 23:51:16 -0000 1.3 *************** *** 18,22 **** -- mfc@uk.ibm.com -- ------------------------------------------------------------------------ ! version: 2.23 -- we assume that base comparison is tested in compare.decTest, so --- 18,22 ---- -- mfc@uk.ibm.com -- ------------------------------------------------------------------------ ! version: 2.26 -- we assume that base comparison is tested in compare.decTest, so Index: min.decTest =================================================================== RCS file: /cvsroot/python/python/nondist/sandbox/decimal/tests/min.decTest,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** min.decTest 27 May 2003 22:46:40 -0000 1.2 --- min.decTest 2 Jul 2003 23:51:16 -0000 1.3 *************** *** 18,22 **** -- mfc@uk.ibm.com -- ------------------------------------------------------------------------ ! version: 2.23 -- we assume that base comparison is tested in compare.decTest, so --- 18,22 ---- -- mfc@uk.ibm.com -- ------------------------------------------------------------------------ ! version: 2.26 -- we assume that base comparison is tested in compare.decTest, so Index: minus.decTest =================================================================== RCS file: /cvsroot/python/python/nondist/sandbox/decimal/tests/minus.decTest,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** minus.decTest 27 May 2003 22:46:40 -0000 1.2 --- minus.decTest 2 Jul 2003 23:51:16 -0000 1.3 *************** *** 18,22 **** -- mfc@uk.ibm.com -- ------------------------------------------------------------------------ ! version: 2.23 -- This set of tests primarily tests the existence of the operator. --- 18,22 ---- -- mfc@uk.ibm.com -- ------------------------------------------------------------------------ ! version: 2.26 -- This set of tests primarily tests the existence of the operator. Index: multiply.decTest =================================================================== RCS file: /cvsroot/python/python/nondist/sandbox/decimal/tests/multiply.decTest,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** multiply.decTest 27 May 2003 22:46:40 -0000 1.2 --- multiply.decTest 2 Jul 2003 23:51:16 -0000 1.3 *************** *** 18,22 **** -- mfc@uk.ibm.com -- ------------------------------------------------------------------------ ! version: 2.23 extended: 1 --- 18,22 ---- -- mfc@uk.ibm.com -- ------------------------------------------------------------------------ ! version: 2.26 extended: 1 Index: normalize.decTest =================================================================== RCS file: /cvsroot/python/python/nondist/sandbox/decimal/tests/normalize.decTest,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** normalize.decTest 27 May 2003 22:46:40 -0000 1.2 --- normalize.decTest 2 Jul 2003 23:51:16 -0000 1.3 *************** *** 18,22 **** -- mfc@uk.ibm.com -- ------------------------------------------------------------------------ ! version: 2.23 extended: 1 --- 18,22 ---- -- mfc@uk.ibm.com -- ------------------------------------------------------------------------ ! version: 2.26 extended: 1 Index: plus.decTest =================================================================== RCS file: /cvsroot/python/python/nondist/sandbox/decimal/tests/plus.decTest,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** plus.decTest 27 May 2003 22:46:40 -0000 1.2 --- plus.decTest 2 Jul 2003 23:51:16 -0000 1.3 *************** *** 18,22 **** -- mfc@uk.ibm.com -- ------------------------------------------------------------------------ ! version: 2.23 -- This set of tests primarily tests the existence of the operator. --- 18,22 ---- -- mfc@uk.ibm.com -- ------------------------------------------------------------------------ ! version: 2.26 -- This set of tests primarily tests the existence of the operator. Index: power.decTest =================================================================== RCS file: /cvsroot/python/python/nondist/sandbox/decimal/tests/power.decTest,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** power.decTest 27 May 2003 22:46:40 -0000 1.2 --- power.decTest 2 Jul 2003 23:51:16 -0000 1.3 *************** *** 18,22 **** -- mfc@uk.ibm.com -- ------------------------------------------------------------------------ ! version: 2.23 -- This set of testcases tests raising numbers to an integer power only. --- 18,22 ---- -- mfc@uk.ibm.com -- ------------------------------------------------------------------------ ! version: 2.26 -- This set of testcases tests raising numbers to an integer power only. Index: randomBound32.decTest =================================================================== RCS file: /cvsroot/python/python/nondist/sandbox/decimal/tests/randomBound32.decTest,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** randomBound32.decTest 27 May 2003 22:46:40 -0000 1.2 --- randomBound32.decTest 2 Jul 2003 23:51:16 -0000 1.3 *************** *** 18,22 **** -- mfc@uk.ibm.com -- ------------------------------------------------------------------------ ! version: 2.23 -- These testcases test calculations at precisions 31, 32, and 33, to --- 18,22 ---- -- mfc@uk.ibm.com -- ------------------------------------------------------------------------ ! version: 2.26 -- These testcases test calculations at precisions 31, 32, and 33, to Index: randoms.decTest =================================================================== RCS file: /cvsroot/python/python/nondist/sandbox/decimal/tests/randoms.decTest,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** randoms.decTest 27 May 2003 22:46:40 -0000 1.2 --- randoms.decTest 2 Jul 2003 23:51:16 -0000 1.3 *************** *** 18,22 **** -- mfc@uk.ibm.com -- ------------------------------------------------------------------------ ! version: 2.23 extended: 1 --- 18,22 ---- -- mfc@uk.ibm.com -- ------------------------------------------------------------------------ ! version: 2.26 extended: 1 Index: remainder.decTest =================================================================== RCS file: /cvsroot/python/python/nondist/sandbox/decimal/tests/remainder.decTest,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** remainder.decTest 27 May 2003 22:46:40 -0000 1.2 --- remainder.decTest 2 Jul 2003 23:51:16 -0000 1.3 *************** *** 18,22 **** -- mfc@uk.ibm.com -- ------------------------------------------------------------------------ ! version: 2.23 extended: 1 --- 18,22 ---- -- mfc@uk.ibm.com -- ------------------------------------------------------------------------ ! version: 2.26 extended: 1 Index: remainderNear.decTest =================================================================== RCS file: /cvsroot/python/python/nondist/sandbox/decimal/tests/remainderNear.decTest,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** remainderNear.decTest 27 May 2003 22:46:40 -0000 1.2 --- remainderNear.decTest 2 Jul 2003 23:51:16 -0000 1.3 *************** *** 18,22 **** -- mfc@uk.ibm.com -- ------------------------------------------------------------------------ ! version: 2.23 extended: 1 --- 18,22 ---- -- mfc@uk.ibm.com -- ------------------------------------------------------------------------ ! version: 2.26 extended: 1 Index: rescale.decTest =================================================================== RCS file: /cvsroot/python/python/nondist/sandbox/decimal/tests/rescale.decTest,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** rescale.decTest 27 May 2003 22:46:40 -0000 1.2 --- rescale.decTest 2 Jul 2003 23:51:16 -0000 1.3 *************** *** 18,22 **** -- mfc@uk.ibm.com -- ------------------------------------------------------------------------ ! version: 2.23 extended: 1 --- 18,24 ---- -- mfc@uk.ibm.com -- ------------------------------------------------------------------------ ! version: 2.26 ! ! -- [obsolete] Quantize.decTest has the improved version extended: 1 *************** *** 26,30 **** minexponent: -999 ! -- sanity checks (as base, above) resx001 rescale 0 0 -> 0 --- 28,32 ---- minexponent: -999 ! -- sanity checks resx001 rescale 0 0 -> 0 *************** *** 450,507 **** minexponent: -999999999 precision: 15 ! resx521 rescale 1.234 999999E+3 -> 0E+999999000 Inexact Rounded ! resx522 rescale 123.456 999999E+3 -> 0E+999999000 Inexact Rounded ! resx523 rescale 1.234 999999999 -> 0E+999999999 Inexact Rounded ! resx524 rescale 123.456 999999999 -> 0E+999999999 Inexact Rounded ! resx525 rescale 123.456 1000000000 -> NaN Invalid_operation ! resx526 rescale 123.456 12345678903 -> NaN Invalid_operation -- next four are "won't fit" overflows ! resx527 rescale 1.234 -999999E+3 -> NaN Invalid_operation ! resx528 rescale 123.456 -999999E+3 -> NaN Invalid_operation ! resx529 rescale 1.234 -999999999 -> NaN Invalid_operation ! resx530 rescale 123.456 -999999999 -> NaN Invalid_operation ! resx531 rescale 123.456 -1000000014 -> NaN Invalid_operation ! resx532 rescale 123.456 -12345678903 -> NaN Invalid_operation maxexponent: 999 minexponent: -999 precision: 15 ! resx540 rescale 1.234E+999 999 -> 1E+999 Inexact Rounded ! resx541 rescale 1.234E+998 999 -> 0E+999 Inexact Rounded ! resx542 rescale 1.234 999 -> 0E+999 Inexact Rounded ! resx543 rescale 1.234 1000 -> NaN Invalid_operation ! resx544 rescale 1.234 5000 -> NaN Invalid_operation ! ! resx545 rescale 0 -999 -> 0E-999 -- next two are "won't fit" overflows ! resx546 rescale 1.234 -999 -> NaN Invalid_operation ! resx547 rescale 1.234 -1000 -> NaN Invalid_operation ! resx548 rescale 1.234 -5000 -> NaN Invalid_operation -- [more below] -- fractional RHS, some good and some bad precision: 9 ! resx549 rescale 222 +2.0 -> 2E+2 Inexact Rounded ! resx550 rescale 222 +2.00000000 -> 2E+2 Inexact Rounded ! resx551 rescale 222 +2.00100000000 -> NaN Invalid_operation ! resx552 rescale 222 +2.000001 -> NaN Invalid_operation ! resx553 rescale 222 +2.000000001 -> NaN Invalid_operation ! resx554 rescale 222 +2.0000000001 -> NaN Invalid_operation ! resx555 rescale 222 +2.00000000001 -> NaN Invalid_operation ! resx556 rescale 222 +2.99999999999 -> NaN Invalid_operation ! resx557 rescale 222 -2.00000000 -> 222.00 ! resx558 rescale 222 -2.00100000000 -> NaN Invalid_operation ! resx559 rescale 222 -2.0000001000 -> NaN Invalid_operation ! resx560 rescale 222 -2.00000000001 -> NaN Invalid_operation ! resx561 rescale 222 -2.99999999999 -> NaN Invalid_operation ! -- Specials resx580 rescale Inf -Inf -> NaN Invalid_operation ! resx581 rescale Inf -1000 -> NaN Invalid_operation ! resx582 rescale Inf -1 -> NaN Invalid_operation ! resx583 rescale Inf 0 -> NaN Invalid_operation ! resx584 rescale Inf 1 -> NaN Invalid_operation ! resx585 rescale Inf 1000 -> NaN Invalid_operation resx586 rescale Inf Inf -> NaN Invalid_operation resx587 rescale -1000 Inf -> NaN Invalid_operation --- 452,534 ---- minexponent: -999999999 precision: 15 ! resx520 rescale 1.234 999999E+3 -> 0E+999999000 Inexact Rounded ! resx521 rescale 123.456 999999E+3 -> 0E+999999000 Inexact Rounded ! resx522 rescale 1.234 999999999 -> 0E+999999999 Inexact Rounded ! resx523 rescale 123.456 999999999 -> 0E+999999999 Inexact Rounded ! resx524 rescale 123.456 1000000000 -> NaN Invalid_operation ! resx525 rescale 123.456 12345678903 -> NaN Invalid_operation -- next four are "won't fit" overflows ! resx526 rescale 1.234 -999999E+3 -> NaN Invalid_operation ! resx527 rescale 123.456 -999999E+3 -> NaN Invalid_operation ! resx528 rescale 1.234 -999999999 -> NaN Invalid_operation ! resx529 rescale 123.456 -999999999 -> NaN Invalid_operation ! resx530 rescale 123.456 -1000000014 -> NaN Invalid_operation ! resx531 rescale 123.456 -12345678903 -> NaN Invalid_operation maxexponent: 999 minexponent: -999 precision: 15 ! resx532 rescale 1.234E+999 999 -> 1E+999 Inexact Rounded ! resx533 rescale 1.234E+998 999 -> 0E+999 Inexact Rounded ! resx534 rescale 1.234 999 -> 0E+999 Inexact Rounded ! resx535 rescale 1.234 1000 -> NaN Invalid_operation ! resx536 rescale 1.234 5000 -> NaN Invalid_operation ! resx537 rescale 0 -999 -> 0E-999 -- next two are "won't fit" overflows ! resx538 rescale 1.234 -999 -> NaN Invalid_operation ! resx539 rescale 1.234 -1000 -> NaN Invalid_operation ! resx540 rescale 1.234 -5000 -> NaN Invalid_operation -- [more below] + -- check bounds (lhs maybe out of range for destination, etc.) + precision: 7 + resx541 rescale 1E+999 +999 -> 1E+999 + resx542 rescale 1E+1000 +999 -> NaN Invalid_operation + resx543 rescale 1E+999 +1000 -> NaN Invalid_operation + resx544 rescale 1E-999 -999 -> 1E-999 + resx545 rescale 1E-1000 -999 -> 0E-999 Inexact Rounded + resx546 rescale 1E-999 -1000 -> 1.0E-999 + resx547 rescale 1E-1005 -999 -> 0E-999 Inexact Rounded + resx548 rescale 1E-1006 -999 -> 0E-999 Inexact Rounded + resx549 rescale 1E-1007 -999 -> 0E-999 Inexact Rounded + resx550 rescale 1E-998 -1005 -> NaN Invalid_operation -- won't fit + resx551 rescale 1E-999 -1005 -> 1.000000E-999 + resx552 rescale 1E-1000 -1005 -> 1.00000E-1000 Subnormal + resx553 rescale 1E-999 -1006 -> NaN Invalid_operation + resx554 rescale 1E-999 -1007 -> NaN Invalid_operation + -- related subnormal rounding + resx555 rescale 1.666666E-999 -1005 -> 1.666666E-999 + resx556 rescale 1.666666E-1000 -1005 -> 1.66667E-1000 Underflow Subnormal Inexact Rounded + resx557 rescale 1.666666E-1001 -1005 -> 1.6667E-1001 Underflow Subnormal Inexact Rounded + resx558 rescale 1.666666E-1002 -1005 -> 1.667E-1002 Underflow Subnormal Inexact Rounded + resx559 rescale 1.666666E-1003 -1005 -> 1.67E-1003 Underflow Subnormal Inexact Rounded + resx560 rescale 1.666666E-1004 -1005 -> 1.7E-1004 Underflow Subnormal Inexact Rounded + resx561 rescale 1.666666E-1005 -1005 -> 2E-1005 Underflow Subnormal Inexact Rounded + resx562 rescale 1.666666E-1006 -1005 -> 0E-1005 Inexact Rounded + resx563 rescale 1.666666E-1007 -1005 -> 0E-1005 Inexact Rounded + -- fractional RHS, some good and some bad precision: 9 ! resx564 rescale 222 +2.0 -> 2E+2 Inexact Rounded ! resx565 rescale 222 +2.00000000 -> 2E+2 Inexact Rounded ! resx566 rescale 222 +2.00100000000 -> NaN Invalid_operation ! resx567 rescale 222 +2.000001 -> NaN Invalid_operation ! resx568 rescale 222 +2.000000001 -> NaN Invalid_operation ! resx569 rescale 222 +2.0000000001 -> NaN Invalid_operation ! resx570 rescale 222 +2.00000000001 -> NaN Invalid_operation ! resx571 rescale 222 +2.99999999999 -> NaN Invalid_operation ! resx572 rescale 222 -2.00000000 -> 222.00 ! resx573 rescale 222 -2.00100000000 -> NaN Invalid_operation ! resx574 rescale 222 -2.0000001000 -> NaN Invalid_operation ! resx575 rescale 222 -2.00000000001 -> NaN Invalid_operation ! resx576 rescale 222 -2.99999999999 -> NaN Invalid_operation -- Specials resx580 rescale Inf -Inf -> NaN Invalid_operation ! resx581 rescale Inf -1000 -> NaN Invalid_operation ! resx582 rescale Inf -1 -> NaN Invalid_operation ! resx583 rescale Inf 0 -> NaN Invalid_operation ! resx584 rescale Inf 1 -> NaN Invalid_operation ! resx585 rescale Inf 1000 -> NaN Invalid_operation resx586 rescale Inf Inf -> NaN Invalid_operation resx587 rescale -1000 Inf -> NaN Invalid_operation *************** *** 512,516 **** resx592 rescale 1000 Inf -> NaN Invalid_operation resx593 rescale Inf Inf -> NaN Invalid_operation ! resx594 rescale Inf -0 -> NaN Invalid_operation resx595 rescale -0 Inf -> NaN Invalid_operation --- 539,543 ---- resx592 rescale 1000 Inf -> NaN Invalid_operation resx593 rescale Inf Inf -> NaN Invalid_operation ! resx594 rescale Inf -0 -> NaN Invalid_operation resx595 rescale -0 Inf -> NaN Invalid_operation Index: rounding.decTest =================================================================== RCS file: /cvsroot/python/python/nondist/sandbox/decimal/tests/rounding.decTest,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** rounding.decTest 27 May 2003 22:46:40 -0000 1.2 --- rounding.decTest 2 Jul 2003 23:51:16 -0000 1.3 *************** *** 18,22 **** -- mfc@uk.ibm.com -- ------------------------------------------------------------------------ ! version: 2.23 -- These tests require that implementations take account of residues in --- 18,22 ---- -- mfc@uk.ibm.com -- ------------------------------------------------------------------------ ! version: 2.26 -- These tests require that implementations take account of residues in Index: squareroot.decTest =================================================================== RCS file: /cvsroot/python/python/nondist/sandbox/decimal/tests/squareroot.decTest,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** squareroot.decTest 27 May 2003 22:46:40 -0000 1.2 --- squareroot.decTest 2 Jul 2003 23:51:16 -0000 1.3 *************** *** 18,22 **** -- mfc@uk.ibm.com -- ------------------------------------------------------------------------ ! version: 2.23 extended: 1 --- 18,22 ---- -- mfc@uk.ibm.com -- ------------------------------------------------------------------------ ! version: 2.26 extended: 1 *************** *** 27,55 **** -- basics ! sqtx001 squareroot 1 -> 1 ! sqtx002 squareroot -1 -> NaN Invalid_operation ! sqtx003 squareroot 1.00 -> 1.0 ! sqtx004 squareroot -1.00 -> NaN Invalid_operation ! sqtx005 squareroot 0 -> 0 ! sqtx006 squareroot 00.0 -> 0 ! sqtx007 squareroot 0.00 -> 0.0 ! sqtx008 squareroot 00.00 -> 0.0 ! sqtx009 squareroot 00 -> 0 ! sqtx010 squareroot -2 -> NaN Invalid_operation ! sqtx011 squareroot 2 -> 1.41421356 Inexact Rounded ! sqtx012 squareroot -2.00 -> NaN Invalid_operation ! sqtx013 squareroot 2.00 -> 1.41421356 Inexact Rounded ! sqtx014 squareroot -0 -> -0 ! sqtx015 squareroot -0.00 -> -0.0 ! sqtx016 squareroot -00.0 -> -0 ! sqtx017 squareroot -0E+9 -> -0E+4 ! sqtx018 squareroot -0E+10 -> -0E+5 ! sqtx019 squareroot -0E+11 -> -0E+5 ! sqtx020 squareroot -0E+12 -> -0E+6 ! sqtx021 squareroot -00 -> -0 ! sqtx022 squareroot 0E+5 -> 0E+2 ! sqtx023 squareroot 4.0 -> 2 ! sqtx024 squareroot 4.00 -> 2.0 sqtx030 squareroot +0.1 -> 0.316227766 Inexact Rounded --- 27,59 ---- -- basics ! sqtx001 squareroot 1 -> 1 ! sqtx002 squareroot -1 -> NaN Invalid_operation ! sqtx003 squareroot 1.00 -> 1.0 ! sqtx004 squareroot -1.00 -> NaN Invalid_operation ! sqtx005 squareroot 0 -> 0 ! sqtx006 squareroot 00.0 -> 0.0 ! sqtx007 squareroot 0.00 -> 0.0 ! sqtx008 squareroot 00.00 -> 0.0 ! sqtx009 squareroot 00.000 -> 0.00 ! sqtx010 squareroot 00.0000 -> 0.00 ! sqtx011 squareroot 00 -> 0 ! sqtx012 squareroot -2 -> NaN Invalid_operation ! sqtx013 squareroot 2 -> 1.41421356 Inexact Rounded ! sqtx014 squareroot -2.00 -> NaN Invalid_operation ! sqtx015 squareroot 2.00 -> 1.41421356 Inexact Rounded ! sqtx016 squareroot -0 -> -0 ! sqtx017 squareroot -0.0 -> -0.0 ! sqtx018 squareroot -00.00 -> -0.0 ! sqtx019 squareroot -00.000 -> -0.00 ! sqtx020 squareroot -0.0000 -> -0.00 ! sqtx021 squareroot -0E+9 -> -0E+4 ! sqtx022 squareroot -0E+10 -> -0E+5 ! sqtx023 squareroot -0E+11 -> -0E+5 ! sqtx024 squareroot -0E+12 -> -0E+6 ! sqtx025 squareroot -00 -> -0 ! sqtx026 squareroot 0E+5 -> 0E+2 ! sqtx027 squareroot 4.0 -> 2.0 ! sqtx028 squareroot 4.00 -> 2.0 sqtx030 squareroot +0.1 -> 0.316227766 Inexact Rounded *************** *** 81,96 **** sqtx056 squareroot -9.990 -> NaN Invalid_operation ! sqtx060 squareroot 10.0 -> 3.16227766 Inexact Rounded ! sqtx061 squareroot 10.00 -> 3.16227766 Inexact Rounded ! sqtx062 squareroot 100.0 -> 10 ! sqtx063 squareroot 100.00 -> 10.0 ! sqtx064 squareroot 1.1000E+3 -> 33.1662479 Inexact Rounded ! sqtx065 squareroot 1.10000E+3 -> 33.1662479 Inexact Rounded ! sqtx066 squareroot -10.0 -> NaN Invalid_operation ! sqtx067 squareroot -10.00 -> NaN Invalid_operation ! sqtx068 squareroot -100.0 -> NaN Invalid_operation ! sqtx069 squareroot -100.00 -> NaN Invalid_operation ! sqtx070 squareroot -1.1000E+3 -> NaN Invalid_operation ! sqtx071 squareroot -1.10000E+3 -> NaN Invalid_operation -- famous squares --- 85,106 ---- sqtx056 squareroot -9.990 -> NaN Invalid_operation ! sqtx060 squareroot 1 -> 1 ! sqtx061 squareroot 1.0 -> 1.0 ! sqtx062 squareroot 1.00 -> 1.0 ! sqtx063 squareroot 10.0 -> 3.16227766 Inexact Rounded ! sqtx064 squareroot 10.0 -> 3.16227766 Inexact Rounded ! sqtx065 squareroot 10.0 -> 3.16227766 Inexact Rounded ! sqtx066 squareroot 10.00 -> 3.16227766 Inexact Rounded ! sqtx067 squareroot 100 -> 10 ! sqtx068 squareroot 100.0 -> 10.0 ! sqtx069 squareroot 100.00 -> 10.0 ! sqtx070 squareroot 1.1000E+3 -> 33.1662479 Inexact Rounded ! sqtx071 squareroot 1.10000E+3 -> 33.1662479 Inexact Rounded ! sqtx072 squareroot -10.0 -> NaN Invalid_operation ! sqtx073 squareroot -10.00 -> NaN Invalid_operation ! sqtx074 squareroot -100.0 -> NaN Invalid_operation ! sqtx075 squareroot -100.00 -> NaN Invalid_operation ! sqtx076 squareroot -1.1000E+3 -> NaN Invalid_operation ! sqtx077 squareroot -1.10000E+3 -> NaN Invalid_operation -- famous squares *************** *** 284,291 **** sqtx2272 squareroot 9E+3 -> 95 Inexact Rounded sqtx2273 squareroot 0.10 -> 0.32 Inexact Rounded ! sqtx2274 squareroot 0.010 -> 0.1 sqtx2275 squareroot 10.0E-1 -> 1.0 sqtx2276 squareroot 10.00E-2 -> 0.32 Inexact Rounded ! sqtx2277 squareroot 10E-3 -> 0.1 sqtx2278 squareroot 10E+1 -> 10 sqtx2279 squareroot 10E+2 -> 32 Inexact Rounded --- 294,301 ---- sqtx2272 squareroot 9E+3 -> 95 Inexact Rounded sqtx2273 squareroot 0.10 -> 0.32 Inexact Rounded ! sqtx2274 squareroot 0.010 -> 0.10 sqtx2275 squareroot 10.0E-1 -> 1.0 sqtx2276 squareroot 10.00E-2 -> 0.32 Inexact Rounded ! sqtx2277 squareroot 10E-3 -> 0.10 sqtx2278 squareroot 10E+1 -> 10 sqtx2279 squareroot 10E+2 -> 32 Inexact Rounded *************** *** 524,531 **** sqtx2512 squareroot 39E+3 -> 2.0E+2 Inexact Rounded sqtx2513 squareroot 0.40 -> 0.63 Inexact Rounded ! sqtx2514 squareroot 0.040 -> 0.2 sqtx2515 squareroot 40.0E-1 -> 2.0 sqtx2516 squareroot 40.00E-2 -> 0.63 Inexact Rounded ! sqtx2517 squareroot 40E-3 -> 0.2 sqtx2518 squareroot 40E+1 -> 20 sqtx2519 squareroot 40E+2 -> 63 Inexact Rounded --- 534,541 ---- sqtx2512 squareroot 39E+3 -> 2.0E+2 Inexact Rounded sqtx2513 squareroot 0.40 -> 0.63 Inexact Rounded ! sqtx2514 squareroot 0.040 -> 0.20 sqtx2515 squareroot 40.0E-1 -> 2.0 sqtx2516 squareroot 40.00E-2 -> 0.63 Inexact Rounded ! sqtx2517 squareroot 40E-3 -> 0.20 sqtx2518 squareroot 40E+1 -> 20 sqtx2519 squareroot 40E+2 -> 63 Inexact Rounded *************** *** 924,931 **** sqtx2912 squareroot 89E+3 -> 3.0E+2 Inexact Rounded sqtx2913 squareroot 0.90 -> 0.95 Inexact Rounded ! sqtx2914 squareroot 0.090 -> 0.3 sqtx2915 squareroot 90.0E-1 -> 3.0 sqtx2916 squareroot 90.00E-2 -> 0.95 Inexact Rounded ! sqtx2917 squareroot 90E-3 -> 0.3 sqtx2918 squareroot 90E+1 -> 30 sqtx2919 squareroot 90E+2 -> 95 Inexact Rounded --- 934,941 ---- sqtx2912 squareroot 89E+3 -> 3.0E+2 Inexact Rounded sqtx2913 squareroot 0.90 -> 0.95 Inexact Rounded ! sqtx2914 squareroot 0.090 -> 0.30 sqtx2915 squareroot 90.0E-1 -> 3.0 sqtx2916 squareroot 90.00E-2 -> 0.95 Inexact Rounded ! sqtx2917 squareroot 90E-3 -> 0.30 sqtx2918 squareroot 90E+1 -> 30 sqtx2919 squareroot 90E+2 -> 95 Inexact Rounded *************** *** 2910,2914 **** precision: 9 -- Etiny=-17 sqtx800 squareroot 1E-17 -> 3.16227766E-9 Inexact Rounded ! sqtx801 squareroot 10E-17 -> 1E-8 precision: 10 -- Etiny=-18 sqtx802 squareroot 10E-18 -> 3.162277660E-9 Inexact Rounded --- 2920,2924 ---- precision: 9 -- Etiny=-17 sqtx800 squareroot 1E-17 -> 3.16227766E-9 Inexact Rounded ! sqtx801 squareroot 10E-17 -> 1.0E-8 precision: 10 -- Etiny=-18 sqtx802 squareroot 10E-18 -> 3.162277660E-9 Inexact Rounded *************** *** 2917,2921 **** precision: 11 -- Etiny=-19 sqtx804 squareroot 1E-19 -> 3.162277660E-10 Underflow Subnormal Inexact Rounded ! sqtx805 squareroot 10E-19 -> 1E-9 precision: 12 -- Etiny=-20 sqtx806 squareroot 10E-20 -> 3.1622776602E-10 Underflow Subnormal Inexact Rounded --- 2927,2931 ---- precision: 11 -- Etiny=-19 sqtx804 squareroot 1E-19 -> 3.162277660E-10 Underflow Subnormal Inexact Rounded ! sqtx805 squareroot 10E-19 -> 1.0E-9 precision: 12 -- Etiny=-20 sqtx806 squareroot 10E-20 -> 3.1622776602E-10 Underflow Subnormal Inexact Rounded *************** *** 2924,2928 **** precision: 13 -- Etiny=-21 sqtx808 squareroot 1E-21 -> 3.1622776602E-11 Underflow Subnormal Inexact Rounded ! sqtx809 squareroot 10E-21 -> 1E-10 Subnormal precision: 14 -- Etiny=-22 sqtx810 squareroot 1E-21 -> 3.16227766017E-11 Underflow Subnormal Inexact Rounded --- 2934,2938 ---- precision: 13 -- Etiny=-21 sqtx808 squareroot 1E-21 -> 3.1622776602E-11 Underflow Subnormal Inexact Rounded ! sqtx809 squareroot 10E-21 -> 1.0E-10 Subnormal precision: 14 -- Etiny=-22 sqtx810 squareroot 1E-21 -> 3.16227766017E-11 Underflow Subnormal Inexact Rounded Index: subtract.decTest =================================================================== RCS file: /cvsroot/python/python/nondist/sandbox/decimal/tests/subtract.decTest,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** subtract.decTest 27 May 2003 22:46:40 -0000 1.2 --- subtract.decTest 2 Jul 2003 23:51:16 -0000 1.3 *************** *** 18,22 **** -- mfc@uk.ibm.com -- ------------------------------------------------------------------------ ! version: 2.23 extended: 1 --- 18,22 ---- -- mfc@uk.ibm.com -- ------------------------------------------------------------------------ ! version: 2.26 extended: 1 Index: testall.decTest =================================================================== RCS file: /cvsroot/python/python/nondist/sandbox/decimal/tests/testall.decTest,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** testall.decTest 27 May 2003 22:46:40 -0000 1.2 --- testall.decTest 2 Jul 2003 23:51:16 -0000 1.3 *************** *** 18,22 **** -- mfc@uk.ibm.com -- ------------------------------------------------------------------------ ! version: 2.23 -- core tests (using Extended: 1) -------------------------------------- --- 18,22 ---- -- mfc@uk.ibm.com -- ------------------------------------------------------------------------ ! version: 2.26 -- core tests (using Extended: 1) -------------------------------------- *************** *** 37,44 **** dectest: plus dectest: power dectest: randoms dectest: remainder dectest: remaindernear ! dectest: rescale dectest: rounding dectest: squareroot --- 37,45 ---- dectest: plus dectest: power + dectest: quantize dectest: randoms dectest: remainder dectest: remaindernear ! dectest: rescale -- [obsolete] dectest: rounding dectest: squareroot Index: trim.decTest =================================================================== RCS file: /cvsroot/python/python/nondist/sandbox/decimal/tests/trim.decTest,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** trim.decTest 27 May 2003 22:46:40 -0000 1.2 --- trim.decTest 2 Jul 2003 23:51:16 -0000 1.3 *************** *** 18,22 **** -- mfc@uk.ibm.com -- ------------------------------------------------------------------------ ! version: 2.23 extended: 1 --- 18,22 ---- -- mfc@uk.ibm.com -- ------------------------------------------------------------------------ ! version: 2.26 extended: 1 From bcannon@users.sourceforge.net Thu Jul 3 20:59:59 2003 From: bcannon@users.sourceforge.net (bcannon@users.sourceforge.net) Date: Thu, 03 Jul 2003 12:59:59 -0700 Subject: [Python-checkins] python/dist/src/Lib _strptime.py,1.19,1.20 Message-ID: Update of /cvsroot/python/python/dist/src/Lib In directory sc8-pr-cvs1:/tmp/cvs-serv7713/Lib Modified Files: _strptime.py Log Message: Fixes bug of timezone value being left as -1 when ``time.tzname[0] == time.tzname[1] and not time.daylight`` is true when it should only when time.daylight is true. Tests are also fixed. Closes bug #763047 and its cohort #763052. Index: _strptime.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/_strptime.py,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** _strptime.py 29 Jun 2003 04:16:49 -0000 1.19 --- _strptime.py 3 Jul 2003 19:59:57 -0000 1.20 *************** *** 502,506 **** # it can be something other than -1. found_zone = found_dict['Z'].lower() ! if locale_time.timezone[0] == locale_time.timezone[1]: pass #Deals with bad locale setup where timezone info is # the same; first found on FreeBSD 4.4. --- 502,507 ---- # it can be something other than -1. found_zone = found_dict['Z'].lower() ! if locale_time.timezone[0] == locale_time.timezone[1] and \ ! time.daylight: pass #Deals with bad locale setup where timezone info is # the same; first found on FreeBSD 4.4. *************** *** 509,515 **** elif locale_time.timezone[2].lower() == found_zone: tz = 0 ! elif time.daylight: ! if locale_time.timezone[3].lower() == found_zone: ! tz = 1 # Cannot pre-calculate datetime_date() since can change in Julian --- 510,516 ---- elif locale_time.timezone[2].lower() == found_zone: tz = 0 ! elif time.daylight and \ ! locale_time.timezone[3].lower() == found_zone: ! tz = 1 # Cannot pre-calculate datetime_date() since can change in Julian From bcannon@users.sourceforge.net Thu Jul 3 20:59:59 2003 From: bcannon@users.sourceforge.net (bcannon@users.sourceforge.net) Date: Thu, 03 Jul 2003 12:59:59 -0700 Subject: [Python-checkins] python/dist/src/Lib/test test_strptime.py,1.16,1.17 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/test In directory sc8-pr-cvs1:/tmp/cvs-serv7713/Lib/test Modified Files: test_strptime.py Log Message: Fixes bug of timezone value being left as -1 when ``time.tzname[0] == time.tzname[1] and not time.daylight`` is true when it should only when time.daylight is true. Tests are also fixed. Closes bug #763047 and its cohort #763052. Index: test_strptime.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/test/test_strptime.py,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** test_strptime.py 30 Jun 2003 19:22:12 -0000 1.16 --- test_strptime.py 3 Jul 2003 19:59:57 -0000 1.17 *************** *** 304,308 **** strp_output = _strptime.strptime(strf_output, "%Z") locale_time = _strptime.LocaleTime() ! if time.tzname[0] != time.tzname[1]: self.failUnless(strp_output[8] == time_tuple[8], "timezone check failed; '%s' -> %s != %s" % --- 304,308 ---- strp_output = _strptime.strptime(strf_output, "%Z") locale_time = _strptime.LocaleTime() ! if time.tzname[0] != time.tzname[1] or not time.daylight: self.failUnless(strp_output[8] == time_tuple[8], "timezone check failed; '%s' -> %s != %s" % *************** *** 310,315 **** else: self.failUnless(strp_output[8] == -1, ! "LocaleTime().timezone has duplicate values but " ! "timezone value not set to -1") def test_date_time(self): --- 310,315 ---- else: self.failUnless(strp_output[8] == -1, ! "LocaleTime().timezone has duplicate values and " ! "time.daylight but timezone value not set to -1") def test_date_time(self): From jackjansen@users.sourceforge.net Thu Jul 3 22:33:05 2003 From: jackjansen@users.sourceforge.net (jackjansen@users.sourceforge.net) Date: Thu, 03 Jul 2003 14:33:05 -0700 Subject: [Python-checkins] python/dist/src/Mac/OSXResources/app/Resources/English.lproj/Documentation packman.html,1.4,1.5 Message-ID: Update of /cvsroot/python/python/dist/src/Mac/OSXResources/app/Resources/English.lproj/Documentation In directory sc8-pr-cvs1:/tmp/cvs-serv3949 Modified Files: packman.html Log Message: Moved two sentences around to make them clearer. Index: packman.html =================================================================== RCS file: /cvsroot/python/python/dist/src/Mac/OSXResources/app/Resources/English.lproj/Documentation/packman.html,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** packman.html 29 Jun 2003 00:17:23 -0000 1.4 --- packman.html 3 Jul 2003 21:33:02 -0000 1.5 *************** *** 44,52 **** connected to the internet. If you are connected then the problem could be that there is no database (yet?) for your version of Mac OS X. ! In the standalone Package Manager you can open an alternative database ! with the File->Open URL... command, but you should realize that ! you are now on untested ground. You may be able to find an alternative database that works for your system at ! http://www.python.org/packman.

    --- 44,53 ---- connected to the internet. If you are connected then the problem could be that there is no database (yet?) for your version of Mac OS X. ! You may be able to find an alternative database that works for your system at ! http://www.python.org/packman. ! In the standalone Package Manager you can then open such an alternative database ! with the File->Open URL... command, but you should realize that ! you are now on untested ground.

    From eprice@users.sourceforge.net Fri Jul 4 04:11:44 2003 From: eprice@users.sourceforge.net (eprice@users.sourceforge.net) Date: Thu, 03 Jul 2003 20:11:44 -0700 Subject: [Python-checkins] python/nondist/sandbox/decimal Decimal.py,1.10,1.11 Message-ID: Update of /cvsroot/python/python/nondist/sandbox/decimal In directory sc8-pr-cvs1:/tmp/cvs-serv16079 Modified Files: Decimal.py Log Message: Removed debugging output. Index: Decimal.py =================================================================== RCS file: /cvsroot/python/python/nondist/sandbox/decimal/Decimal.py,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** Decimal.py 2 Jul 2003 23:48:22 -0000 1.10 --- Decimal.py 4 Jul 2003 03:11:42 -0000 1.11 *************** *** 489,501 **** 2 if sNaN """ - #print repr(self), repr(self._exp) - #print 'here', self._exp if self._exp == 'n': - #print 'Gone' return 1 elif self._exp == 'N': - #print 'Gone' return 2 - #print 'Gone' return 0 --- 489,496 ---- *************** *** 621,625 **** 1 => a > b NaN => one is NaN ! Returns Decimal instances, though. """ if context is None: --- 616,620 ---- 1 => a > b NaN => one is NaN ! Like __cmp__, but returns Decimal instances. """ if context is None: *************** *** 627,681 **** if not isinstance(other, Decimal): other = Decimal(other) - #print repr(self), repr(other) - ans = self._check_nans(other, context) #compare(NaN, NaN) = NaN - #print 'Here' if ans: - #print 'Yay', self, other, ans return ans - #print self, other - - if not self and not other: - return Decimal(0) #If both 0, sign comparison isn't certain. ! #If different signs, neg one is less ! if other._sign < self._sign: ! return Decimal(-1) ! if self._sign < other._sign: ! return Decimal(1) ! ! # INF = INF ! if self._isinfinity() and other._isinfinity(): ! return Decimal(0) ! if self._isinfinity(): ! return Decimal((-1)**self._sign) ! if other._isinfinity(): ! return Decimal(-((-1)**other._sign)) ! ! if self.adjusted() == other.adjusted() and \ ! self._int + (0,)*(self._exp - other._exp) == \ ! other._int + (0,)*(other._exp - self._exp): ! return Decimal(0) #equal, except in precision. ([0]*(-x) = []) ! elif self.adjusted() > other.adjusted() and self._int[0] != 0: ! return Decimal((-1)**self._sign) ! elif self.adjusted < other.adjusted() and other._int[0] != 0: ! return Decimal(-((-1)**self._sign)) ! ! context = copy.copy(context) ! rounding = context.set_rounding(ROUND_UP) #round away from 0 ! ! flags = context.ignore_all_flags() ! res = self.__sub__(other, context=context) ! ! context.regard_flags(*flags) ! ! context.rounding = rounding ! ! if not res: ! return Decimal(0) ! elif res._sign: ! return Decimal(-1) ! return Decimal(1) def __hash__(self): --- 622,631 ---- if not isinstance(other, Decimal): other = Decimal(other) ans = self._check_nans(other, context) #compare(NaN, NaN) = NaN if ans: return ans ! return Decimal(self.__cmp__(other, context)) def __hash__(self): *************** *** 1383,1389 **** if self._isnan(): - print "mmoo" - raise "ACK" - #raise "AIIII" context = getcontext() return context.raise_error(InvalidContext) --- 1333,1336 ---- *************** *** 1411,1416 **** Equivalent to int(long(self)) """ - #print 'M', repr(self), repr(self._exp) - print self._exp == 'n' return int(self.__long__()) --- 1358,1361 ---- From tim_one@users.sourceforge.net Fri Jul 4 05:40:47 2003 From: tim_one@users.sourceforge.net (tim_one@users.sourceforge.net) Date: Thu, 03 Jul 2003 21:40:47 -0700 Subject: [Python-checkins] python/dist/src/Misc NEWS,1.807,1.808 Message-ID: Update of /cvsroot/python/python/dist/src/Misc In directory sc8-pr-cvs1:/tmp/cvs-serv23219/Misc Modified Files: NEWS Log Message: An Anonymous Coward on c.l.py posted a little program with bizarre behavior, creating many threads very quickly. A long debugging session revealed that the Windows implementation of PyThread_start_new_thread() was choked with "laziness" errors: 1. It checked MS _beginthread() for a failure return, but when that happened it returned heap trash as the function result, instead of an id of -1 (the proper error-return value). 2. It didn't consider that the Win32 CreateSemaphore() can fail. 3. When creating a great many threads very quickly, it's quite possible that any particular bootstrap call can take virtually any amount of time to return. But the code waited for a maximum of 5 seconds, and didn't check to see whether the semaphore it was waiting for got signaled. If it in fact timed out, the function could again return heap trash as the function result. This is actually what confused the test program, as the heap trash usually turned out to be 0, and then multiple threads all got id 0 simultaneously, confusing the hell out of threading.py's _active dict (mapping id to thread object). A variety of baffling behaviors followed from that. WRT #1 and #2, error returns are checked now, and "thread.error: can't start new thread" gets raised now if a new thread (or new semaphore) can't be created. WRT #3, we now wait for the semaphore without a timeout. Also removed useless local vrbls, folded long lines, and changed callobj to a stack auto (it was going thru malloc/free instead, for no discernible reason). Bugfix candidate. Index: NEWS =================================================================== RCS file: /cvsroot/python/python/dist/src/Misc/NEWS,v retrieving revision 1.807 retrieving revision 1.808 diff -C2 -d -r1.807 -r1.808 *** NEWS 1 Jul 2003 21:12:47 -0000 1.807 --- NEWS 4 Jul 2003 04:40:44 -0000 1.808 *************** *** 11,14 **** --- 11,25 ---- ----------------- + - The Windows implementation of PyThread_start_new_thread() never + checked error returns from Windows functions correctly. As a result, + it could claim to start a new thread even when the Microsoft + _beginthread() function failed (due to "too many threads" -- this is + on the order of thousands when it happens). In these cases, the + Python exception :: + + thread.error: can't start new thread + + is raised now. + Extension modules ----------------- From tim_one@users.sourceforge.net Fri Jul 4 05:40:47 2003 From: tim_one@users.sourceforge.net (tim_one@users.sourceforge.net) Date: Thu, 03 Jul 2003 21:40:47 -0700 Subject: [Python-checkins] python/dist/src/Python thread_nt.h,2.22,2.23 Message-ID: Update of /cvsroot/python/python/dist/src/Python In directory sc8-pr-cvs1:/tmp/cvs-serv23219/Python Modified Files: thread_nt.h Log Message: An Anonymous Coward on c.l.py posted a little program with bizarre behavior, creating many threads very quickly. A long debugging session revealed that the Windows implementation of PyThread_start_new_thread() was choked with "laziness" errors: 1. It checked MS _beginthread() for a failure return, but when that happened it returned heap trash as the function result, instead of an id of -1 (the proper error-return value). 2. It didn't consider that the Win32 CreateSemaphore() can fail. 3. When creating a great many threads very quickly, it's quite possible that any particular bootstrap call can take virtually any amount of time to return. But the code waited for a maximum of 5 seconds, and didn't check to see whether the semaphore it was waiting for got signaled. If it in fact timed out, the function could again return heap trash as the function result. This is actually what confused the test program, as the heap trash usually turned out to be 0, and then multiple threads all got id 0 simultaneously, confusing the hell out of threading.py's _active dict (mapping id to thread object). A variety of baffling behaviors followed from that. WRT #1 and #2, error returns are checked now, and "thread.error: can't start new thread" gets raised now if a new thread (or new semaphore) can't be created. WRT #3, we now wait for the semaphore without a timeout. Also removed useless local vrbls, folded long lines, and changed callobj to a stack auto (it was going thru malloc/free instead, for no discernible reason). Bugfix candidate. Index: thread_nt.h =================================================================== RCS file: /cvsroot/python/python/dist/src/Python/thread_nt.h,v retrieving revision 2.22 retrieving revision 2.23 diff -C2 -d -r2.22 -r2.23 *** thread_nt.h 28 Feb 2002 21:34:34 -0000 2.22 --- thread_nt.h 4 Jul 2003 04:40:45 -0000 2.23 *************** *** 149,153 **** typedef struct { void (*func)(void*); ! void *arg; long id; HANDLE done; --- 149,153 ---- typedef struct { void (*func)(void*); ! void *arg; long id; HANDLE done; *************** *** 168,200 **** } ! long PyThread_start_new_thread(void (*func)(void *), void *arg) { unsigned long rv; ! int success = 0; ! callobj *obj; ! int id; ! dprintf(("%ld: PyThread_start_new_thread called\n", PyThread_get_thread_ident())); if (!initialized) PyThread_init_thread(); ! obj = malloc(sizeof(callobj)); ! obj->func = func; ! obj->arg = arg; ! obj->done = CreateSemaphore(NULL, 0, 1, NULL); ! rv = _beginthread(bootstrap, 0, obj); /* use default stack size */ ! ! if (rv != (unsigned long)-1) { ! success = 1; ! dprintf(("%ld: PyThread_start_new_thread succeeded: %p\n", PyThread_get_thread_ident(), rv)); } ! ! /* wait for thread to initialize and retrieve id */ ! WaitForSingleObject(obj->done, 5000); /* maybe INFINITE instead of 5000? */ ! CloseHandle((HANDLE)obj->done); ! id = obj->id; ! free(obj); ! return id; } --- 168,207 ---- } ! long ! PyThread_start_new_thread(void (*func)(void *), void *arg) { unsigned long rv; ! callobj obj; ! dprintf(("%ld: PyThread_start_new_thread called\n", ! PyThread_get_thread_ident())); if (!initialized) PyThread_init_thread(); ! obj.id = -1; /* guilty until proved innocent */ ! obj.func = func; ! obj.arg = arg; ! obj.done = CreateSemaphore(NULL, 0, 1, NULL); ! if (obj.done == NULL) ! return -1; ! rv = _beginthread(bootstrap, 0, &obj); /* use default stack size */ ! if (rv == (unsigned long)-1) { ! /* I've seen errno == EAGAIN here, which means "there are ! * too many threads". ! */ ! dprintf(("%ld: PyThread_start_new_thread failed: %p errno %d\n", ! PyThread_get_thread_ident(), rv, errno)); ! obj.id = -1; } ! else { ! dprintf(("%ld: PyThread_start_new_thread succeeded: %p\n", ! PyThread_get_thread_ident(), rv)); ! /* wait for thread to initialize, so we can get its id */ ! WaitForSingleObject(obj.done, INFINITE); ! assert(obj.id != -1); ! } ! CloseHandle((HANDLE)obj.done); ! return obj.id; } From jackjansen@users.sourceforge.net Fri Jul 4 12:05:38 2003 From: jackjansen@users.sourceforge.net (jackjansen@users.sourceforge.net) Date: Fri, 04 Jul 2003 04:05:38 -0700 Subject: [Python-checkins] python/dist/src/Lib/plat-mac bundlebuilder.py,1.33,1.34 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/plat-mac In directory sc8-pr-cvs1:/tmp/cvs-serv4526 Modified Files: bundlebuilder.py Log Message: If a --python option is used to specify the Python to use in the #! line also use this as the executable in the bundle. Index: bundlebuilder.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/plat-mac/bundlebuilder.py,v retrieving revision 1.33 retrieving revision 1.34 diff -C2 -d -r1.33 -r1.34 *** bundlebuilder.py 29 Jun 2003 22:20:26 -0000 1.33 --- bundlebuilder.py 4 Jul 2003 11:05:35 -0000 1.34 *************** *** 406,410 **** if not self.standalone and not isFramework(): self.symlink_exec = 1 ! self.executable = sys.executable if self.nibname: --- 406,413 ---- if not self.standalone and not isFramework(): self.symlink_exec = 1 ! if self.python: ! self.executable = self.python ! else: ! self.executable = sys.executable if self.nibname: From jackjansen@users.sourceforge.net Fri Jul 4 12:06:38 2003 From: jackjansen@users.sourceforge.net (jackjansen@users.sourceforge.net) Date: Fri, 04 Jul 2003 04:06:38 -0700 Subject: [Python-checkins] python/dist/src/Mac/OSX/Dist build,1.9,1.10 Message-ID: Update of /cvsroot/python/python/dist/src/Mac/OSX/Dist In directory sc8-pr-cvs1:/tmp/cvs-serv4670 Modified Files: build Log Message: Files used for 2.3b2 macpython binary distribution. Index: build =================================================================== RCS file: /cvsroot/python/python/dist/src/Mac/OSX/Dist/build,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** build 20 Jun 2003 21:40:57 -0000 1.9 --- build 4 Jul 2003 11:06:36 -0000 1.10 *************** *** 6,12 **** # Script configs ! PYVERSION=2.3b1 PYVER=2.3 ! BUILDNUM=1 DOCLEANUP=no --- 6,12 ---- # Script configs ! PYVERSION=2.3b2 PYVER=2.3 ! BUILDNUM=2 DOCLEANUP=no From jackjansen@users.sourceforge.net Fri Jul 4 12:06:38 2003 From: jackjansen@users.sourceforge.net (jackjansen@users.sourceforge.net) Date: Fri, 04 Jul 2003 04:06:38 -0700 Subject: [Python-checkins] python/dist/src/Mac/OSX/Dist/resources Welcome.txt,1.3,1.4 Message-ID: Update of /cvsroot/python/python/dist/src/Mac/OSX/Dist/resources In directory sc8-pr-cvs1:/tmp/cvs-serv4670/resources Modified Files: Welcome.txt Log Message: Files used for 2.3b2 macpython binary distribution. Index: Welcome.txt =================================================================== RCS file: /cvsroot/python/python/dist/src/Mac/OSX/Dist/resources/Welcome.txt,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Welcome.txt 20 Jun 2003 21:40:57 -0000 1.3 --- Welcome.txt 4 Jul 2003 11:06:36 -0000 1.4 *************** *** 1,3 **** ! This program will install MacPython 2.3b1+ for Mac OS X. MacPython consists of the Python programming language interpreter, plus --- 1,4 ---- ! This program will install MacPython 2.3b2 for Mac OS X 10.2. Installation ! on 10.0, 10.1 or the 10.3 seed is explicitly discouraged. MacPython consists of the Python programming language interpreter, plus From jackjansen@users.sourceforge.net Fri Jul 4 13:05:27 2003 From: jackjansen@users.sourceforge.net (jackjansen@users.sourceforge.net) Date: Fri, 04 Jul 2003 05:05:27 -0700 Subject: [Python-checkins] python/dist/src/Mac/OSX Makefile,1.46,1.47 Message-ID: Update of /cvsroot/python/python/dist/src/Mac/OSX In directory sc8-pr-cvs1:/tmp/cvs-serv11867 Modified Files: Makefile Log Message: Added missing newline at end of file. Index: Makefile =================================================================== RCS file: /cvsroot/python/python/dist/src/Mac/OSX/Makefile,v retrieving revision 1.46 retrieving revision 1.47 diff -C2 -d -r1.46 -r1.47 *** Makefile 2 Jul 2003 09:20:09 -0000 1.46 --- Makefile 4 Jul 2003 12:05:25 -0000 1.47 *************** *** 251,253 **** $(DESTDIR)$(PYTHONAPPSDIR)/Extras/Demo $(BUILDPYTHON) $(srcdir)/Mac/OSX/Extras.install.py $(srcdir)/Tools \ ! $(DESTDIR)$(PYTHONAPPSDIR)/Extras/Tools \ No newline at end of file --- 251,254 ---- $(DESTDIR)$(PYTHONAPPSDIR)/Extras/Demo $(BUILDPYTHON) $(srcdir)/Mac/OSX/Extras.install.py $(srcdir)/Tools \ ! $(DESTDIR)$(PYTHONAPPSDIR)/Extras/Tools ! \ No newline at end of file From jackjansen@users.sourceforge.net Fri Jul 4 13:14:41 2003 From: jackjansen@users.sourceforge.net (jackjansen@users.sourceforge.net) Date: Fri, 04 Jul 2003 05:14:41 -0700 Subject: [Python-checkins] python/dist/src Makefile.pre.in,1.134,1.135 configure.in,1.420,1.421 configure,1.409,1.410 Message-ID: Update of /cvsroot/python/python/dist/src In directory sc8-pr-cvs1:/tmp/cvs-serv12931 Modified Files: Makefile.pre.in configure.in configure Log Message: Fixed two bugs in MacOSX framework handling spotted by Edward Moy: - In the top level Makefile, the argument to -install_name should be prepended with /System/Library/Frameworks/, so it is an absolute path. - In the top level Makefile, because of 2), RUNSHARED needs to be set to DYLD_FRAMEWORK_PATH= and $(RUNSHARED) prepended to the $(MAKE) lines in the frameworkinstallmaclib and frameworkinstallapps targets. Index: Makefile.pre.in =================================================================== RCS file: /cvsroot/python/python/dist/src/Makefile.pre.in,v retrieving revision 1.134 retrieving revision 1.135 diff -C2 -d -r1.134 -r1.135 *** Makefile.pre.in 21 Jun 2003 13:26:28 -0000 1.134 --- Makefile.pre.in 4 Jul 2003 12:14:38 -0000 1.135 *************** *** 859,863 **** frameworkinstallmaclib: $(MAKE) -f $(srcdir)/Mac/OSX/Makefile installmacsubtree \ ! BUILDPYTHON=./$(BUILDPYTHON) DIRMODE=$(DIRMODE) FILEMODE=$(FILEMODE) \ srcdir=$(srcdir) builddir=. prefix=$(prefix) LIBDEST=$(LIBDEST) \ DESTDIR=$(DESTDIR) --- 859,863 ---- frameworkinstallmaclib: $(MAKE) -f $(srcdir)/Mac/OSX/Makefile installmacsubtree \ ! $(RUNSHARED) BUILDPYTHON=./$(BUILDPYTHON) DIRMODE=$(DIRMODE) FILEMODE=$(FILEMODE) \ srcdir=$(srcdir) builddir=. prefix=$(prefix) LIBDEST=$(LIBDEST) \ DESTDIR=$(DESTDIR) *************** *** 866,870 **** frameworkinstallapps: $(MAKE) -f $(srcdir)/Mac/OSX/Makefile installapps \ ! BUILDPYTHON=./$(BUILDPYTHON) DIRMODE=$(DIRMODE) FILEMODE=$(FILEMODE) \ srcdir=$(srcdir) builddir=. DESTDIR=$(DESTDIR) --- 866,870 ---- frameworkinstallapps: $(MAKE) -f $(srcdir)/Mac/OSX/Makefile installapps \ ! $(RUNSHARED) BUILDPYTHON=./$(BUILDPYTHON) DIRMODE=$(DIRMODE) FILEMODE=$(FILEMODE) \ srcdir=$(srcdir) builddir=. DESTDIR=$(DESTDIR) *************** *** 879,883 **** frameworkinstallextras: $(MAKE) -f $(srcdir)/Mac/OSX/Makefile installextras \ ! BUILDPYTHON=./$(BUILDPYTHON) DIRMODE=$(DIRMODE) FILEMODE=$(FILEMODE) \ srcdir=$(srcdir) builddir=. DESTDIR=$(DESTDIR) --- 879,883 ---- frameworkinstallextras: $(MAKE) -f $(srcdir)/Mac/OSX/Makefile installextras \ ! $(RUNSHARED) BUILDPYTHON=./$(BUILDPYTHON) DIRMODE=$(DIRMODE) FILEMODE=$(FILEMODE) \ srcdir=$(srcdir) builddir=. DESTDIR=$(DESTDIR) Index: configure.in =================================================================== RCS file: /cvsroot/python/python/dist/src/configure.in,v retrieving revision 1.420 retrieving revision 1.421 diff -C2 -d -r1.420 -r1.421 *** configure.in 2 Jul 2003 13:53:23 -0000 1.420 --- configure.in 4 Jul 2003 12:14:39 -0000 1.421 *************** *** 488,492 **** then LDLIBRARY='$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)' ! LDLIBRARYDIR='$(PYTHONFRAMEWORKDIR)' BLDLIBRARY='' else --- 488,492 ---- then LDLIBRARY='$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)' ! RUNSHARED=DYLD_FRAMEWORK_PATH="`pwd`:$DYLD_FRAMEWORK_PATH" BLDLIBRARY='' else *************** *** 1133,1142 **** LIBTOOL_CRUFT="-lcc_dynamic -arch_only ppc" LIBTOOL_CRUFT="$LIBTOOL_CRUFT $extra_frameworks" ! LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -install_name $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/Python' LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -compatibility_version $(VERSION) -current_version $(VERSION)';; Darwin/*) LIBTOOL_CRUFT="-lcc_dynamic -arch_only ppc" LIBTOOL_CRUFT="$LIBTOOL_CRUFT $extra_frameworks" ! LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -install_name $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/Python' LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -compatibility_version $(VERSION) -current_version $(VERSION)';; esac --- 1133,1142 ---- LIBTOOL_CRUFT="-lcc_dynamic -arch_only ppc" LIBTOOL_CRUFT="$LIBTOOL_CRUFT $extra_frameworks" ! LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -install_name $(PYTHONFRAMEWORKINSTALLDIR)/Versions/$(VERSION)/Python' LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -compatibility_version $(VERSION) -current_version $(VERSION)';; Darwin/*) LIBTOOL_CRUFT="-lcc_dynamic -arch_only ppc" LIBTOOL_CRUFT="$LIBTOOL_CRUFT $extra_frameworks" ! LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -install_name $(PYTHONFRAMEWORKINSTALLDIR)/Versions/$(VERSION)/Python' LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -compatibility_version $(VERSION) -current_version $(VERSION)';; esac Index: configure =================================================================== RCS file: /cvsroot/python/python/dist/src/configure,v retrieving revision 1.409 retrieving revision 1.410 diff -C2 -d -r1.409 -r1.410 *** configure 2 Jul 2003 13:53:23 -0000 1.409 --- configure 4 Jul 2003 12:14:39 -0000 1.410 *************** *** 1,4 **** #! /bin/sh ! # From configure.in Revision: 1.419 . # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.53 for python 2.3. --- 1,4 ---- #! /bin/sh ! # From configure.in Revision: 1.420 . # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.53 for python 2.3. *************** *** 3256,3260 **** then LDLIBRARY='$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)' ! LDLIBRARYDIR='$(PYTHONFRAMEWORKDIR)' BLDLIBRARY='' else --- 3256,3260 ---- then LDLIBRARY='$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)' ! RUNSHARED=DYLD_FRAMEWORK_PATH="`pwd`:$DYLD_FRAMEWORK_PATH" BLDLIBRARY='' else *************** *** 9467,9476 **** LIBTOOL_CRUFT="-lcc_dynamic -arch_only ppc" LIBTOOL_CRUFT="$LIBTOOL_CRUFT $extra_frameworks" ! LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -install_name $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/Python' LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -compatibility_version $(VERSION) -current_version $(VERSION)';; Darwin/*) LIBTOOL_CRUFT="-lcc_dynamic -arch_only ppc" LIBTOOL_CRUFT="$LIBTOOL_CRUFT $extra_frameworks" ! LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -install_name $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/Python' LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -compatibility_version $(VERSION) -current_version $(VERSION)';; esac --- 9467,9476 ---- LIBTOOL_CRUFT="-lcc_dynamic -arch_only ppc" LIBTOOL_CRUFT="$LIBTOOL_CRUFT $extra_frameworks" ! LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -install_name $(PYTHONFRAMEWORKINSTALLDIR)/Versions/$(VERSION)/Python' LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -compatibility_version $(VERSION) -current_version $(VERSION)';; Darwin/*) LIBTOOL_CRUFT="-lcc_dynamic -arch_only ppc" LIBTOOL_CRUFT="$LIBTOOL_CRUFT $extra_frameworks" ! LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -install_name $(PYTHONFRAMEWORKINSTALLDIR)/Versions/$(VERSION)/Python' LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -compatibility_version $(VERSION) -current_version $(VERSION)';; esac From jackjansen@users.sourceforge.net Fri Jul 4 14:06:16 2003 From: jackjansen@users.sourceforge.net (jackjansen@users.sourceforge.net) Date: Fri, 04 Jul 2003 06:06:16 -0700 Subject: [Python-checkins] python/dist/src/Mac/OSXResources/framework version.plist,1.2,1.3 Message-ID: Update of /cvsroot/python/python/dist/src/Mac/OSXResources/framework In directory sc8-pr-cvs1:/tmp/cvs-serv19579/OSXResources/framework Modified Files: version.plist Log Message: Fixed lots of minor issues found by Edward Moy: incorrect version strings, non-standard naming of things in bundles, etc. Index: version.plist =================================================================== RCS file: /cvsroot/python/python/dist/src/Mac/OSXResources/framework/version.plist,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** version.plist 12 Dec 2001 21:40:33 -0000 1.2 --- version.plist 4 Jul 2003 13:06:14 -0000 1.3 *************** *** 6,12 **** 1 CFBundleShortVersionString ! 2.2 CFBundleVersion ! Python 2.2 ProjectName Python --- 6,12 ---- 1 CFBundleShortVersionString ! 2.3 CFBundleVersion ! 2.3 ProjectName Python *************** *** 14,18 **** final SourceVersion ! 2.2 --- 14,18 ---- final SourceVersion ! 2.3 From jackjansen@users.sourceforge.net Fri Jul 4 14:06:15 2003 From: jackjansen@users.sourceforge.net (jackjansen@users.sourceforge.net) Date: Fri, 04 Jul 2003 06:06:15 -0700 Subject: [Python-checkins] python/dist/src/Mac/OSX Makefile,1.47,1.48 Message-ID: Update of /cvsroot/python/python/dist/src/Mac/OSX In directory sc8-pr-cvs1:/tmp/cvs-serv19579/OSX Modified Files: Makefile Log Message: Fixed lots of minor issues found by Edward Moy: incorrect version strings, non-standard naming of things in bundles, etc. Index: Makefile =================================================================== RCS file: /cvsroot/python/python/dist/src/Mac/OSX/Makefile,v retrieving revision 1.47 retrieving revision 1.48 diff -C2 -d -r1.47 -r1.48 *** Makefile 4 Jul 2003 12:05:25 -0000 1.47 --- Makefile 4 Jul 2003 13:06:13 -0000 1.48 *************** *** 107,111 **** done; \ done ! $(INSTALL_PROGRAM) $(STRIPFLAG) $(BUILDPYTHON) $(DESTDIR)$(APPINSTALLDIR)/Contents/MacOS/python install_IDE: --- 107,111 ---- done; \ done ! $(INSTALL_PROGRAM) $(STRIPFLAG) $(BUILDPYTHON) $(DESTDIR)$(APPINSTALLDIR)/Contents/MacOS/Python install_IDE: From jackjansen@users.sourceforge.net Fri Jul 4 14:06:16 2003 From: jackjansen@users.sourceforge.net (jackjansen@users.sourceforge.net) Date: Fri, 04 Jul 2003 06:06:16 -0700 Subject: [Python-checkins] python/dist/src/Mac/OSX/PythonLauncher/PythonLauncher.pbproj project.pbxproj,1.11,1.12 Message-ID: Update of /cvsroot/python/python/dist/src/Mac/OSX/PythonLauncher/PythonLauncher.pbproj In directory sc8-pr-cvs1:/tmp/cvs-serv19579/OSX/PythonLauncher/PythonLauncher.pbproj Modified Files: project.pbxproj Log Message: Fixed lots of minor issues found by Edward Moy: incorrect version strings, non-standard naming of things in bundles, etc. Index: project.pbxproj =================================================================== RCS file: /cvsroot/python/python/dist/src/Mac/OSX/PythonLauncher/PythonLauncher.pbproj/project.pbxproj,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** project.pbxproj 20 Jun 2003 22:21:03 -0000 1.11 --- project.pbxproj 4 Jul 2003 13:06:13 -0000 1.12 *************** *** 133,137 **** 4A9504D1FFE6A4CB11CA0CBA, ); - hasScannedForEncodings = 1; isa = PBXProject; mainGroup = 2A37F4AAFDCFA73011CA2CEA; --- 133,136 ---- *************** *** 365,369 **** PythonLauncher CFBundleGetInfoString ! Python Launcher CFBundleIconFile PythonInterpreter.icns --- 364,368 ---- PythonLauncher CFBundleGetInfoString ! 2.3, © 2001-2003 Python Software Foundation CFBundleIconFile PythonInterpreter.icns *************** *** 373,383 **** 6.0 CFBundleName ! Python Launcher CFBundlePackageType APPL CFBundleSignature PytL CFBundleVersion ! 2.3a0 NSMainNibFile MainMenu --- 372,384 ---- 6.0 CFBundleName ! PythonLauncher CFBundlePackageType APPL + CFBundleShortVersionString + 2.3 CFBundleSignature PytL CFBundleVersion ! 2.3 NSMainNibFile MainMenu *************** *** 387,390 **** --- 388,392 ---- "; + shouldUseHeadermap = 0; }; 2A37F4C7FDCFA73011CA2CEA = { From jackjansen@users.sourceforge.net Fri Jul 4 14:06:16 2003 From: jackjansen@users.sourceforge.net (jackjansen@users.sourceforge.net) Date: Fri, 04 Jul 2003 06:06:16 -0700 Subject: [Python-checkins] python/dist/src/Mac/Tools/IDE PythonIDE.plist,1.1,1.2 Message-ID: Update of /cvsroot/python/python/dist/src/Mac/Tools/IDE In directory sc8-pr-cvs1:/tmp/cvs-serv19579/Tools/IDE Modified Files: PythonIDE.plist Log Message: Fixed lots of minor issues found by Edward Moy: incorrect version strings, non-standard naming of things in bundles, etc. Index: PythonIDE.plist =================================================================== RCS file: /cvsroot/python/python/dist/src/Mac/Tools/IDE/PythonIDE.plist,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** PythonIDE.plist 29 Mar 2002 23:46:34 -0000 1.1 --- PythonIDE.plist 4 Jul 2003 13:06:14 -0000 1.2 *************** *** 25,36 **** CFBundleExecutable ! python CFBundleGetInfoString ! Python IDE version 2.3, (c) 2002 Python Software Foundation. CFBundleLongVersionString ! 2.3, (c) 2002 Python Software Foundation. NSHumanReadableCopyright ! Copyright 2002 Python Software Foundation. CFBundleShortVersionString 2.3 --- 25,36 ---- CFBundleExecutable ! PythonIDE CFBundleGetInfoString ! 2.3, (c) 2003 Python Software Foundation. CFBundleLongVersionString ! 2.3, (c) 2003 Python Software Foundation. NSHumanReadableCopyright ! Copyright 2003 Python Software Foundation. CFBundleShortVersionString 2.3 From jackjansen@users.sourceforge.net Fri Jul 4 14:06:16 2003 From: jackjansen@users.sourceforge.net (jackjansen@users.sourceforge.net) Date: Fri, 04 Jul 2003 06:06:16 -0700 Subject: [Python-checkins] python/dist/src/Mac/OSXResources/framework/English.lproj InfoPlist.strings,1.1,1.2 Message-ID: Update of /cvsroot/python/python/dist/src/Mac/OSXResources/framework/English.lproj In directory sc8-pr-cvs1:/tmp/cvs-serv19579/OSXResources/framework/English.lproj Modified Files: InfoPlist.strings Log Message: Fixed lots of minor issues found by Edward Moy: incorrect version strings, non-standard naming of things in bundles, etc. Index: InfoPlist.strings =================================================================== RCS file: /cvsroot/python/python/dist/src/Mac/OSXResources/framework/English.lproj/InfoPlist.strings,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** InfoPlist.strings 8 Aug 2001 22:00:26 -0000 1.1 --- InfoPlist.strings 4 Jul 2003 13:06:14 -0000 1.2 *************** *** 2,5 **** CFBundleName = "Python"; ! CFBundleShortVersionString = "2.2a1"; ! CFBundleGetInfoString = "Python Runtime and Library"; --- 2,5 ---- CFBundleName = "Python"; ! CFBundleShortVersionString = "2.3"; ! CFBundleGetInfoString = "2.3, (c) 2003 Python Software Foundation"; From jackjansen@users.sourceforge.net Fri Jul 4 14:06:16 2003 From: jackjansen@users.sourceforge.net (jackjansen@users.sourceforge.net) Date: Fri, 04 Jul 2003 06:06:16 -0700 Subject: [Python-checkins] python/dist/src/Mac/OSXResources/app/Resources/English.lproj InfoPlist.strings,1.4,1.5 Message-ID: Update of /cvsroot/python/python/dist/src/Mac/OSXResources/app/Resources/English.lproj In directory sc8-pr-cvs1:/tmp/cvs-serv19579/OSXResources/app/Resources/English.lproj Modified Files: InfoPlist.strings Log Message: Fixed lots of minor issues found by Edward Moy: incorrect version strings, non-standard naming of things in bundles, etc. Index: InfoPlist.strings =================================================================== RCS file: /cvsroot/python/python/dist/src/Mac/OSXResources/app/Resources/English.lproj/InfoPlist.strings,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** InfoPlist.strings 28 Aug 2002 21:27:02 -0000 1.4 --- InfoPlist.strings 4 Jul 2003 13:06:14 -0000 1.5 *************** *** 2,7 **** CFBundleName = "Python"; ! CFBundleShortVersionString = "Python Interpreter version 2.3"; ! CFBundleGetInfoString = "Python Interpreter version 2.3, (c) 2002 Python Software Foundation."; ! CFBundleLongVersionString = "2.3, (c) 2002 Python Software Foundation."; ! NSHumanReadableCopyright = "Copyright 2002 Python Software Foundation."; --- 2,7 ---- CFBundleName = "Python"; ! CFBundleShortVersionString = "2.3"; ! CFBundleGetInfoString = "2.3, (c) 2003 Python Software Foundation."; ! CFBundleLongVersionString = "2.3, (c) 2003 Python Software Foundation."; ! NSHumanReadableCopyright = "Copyright 2003 Python Software Foundation."; From jackjansen@users.sourceforge.net Fri Jul 4 14:06:16 2003 From: jackjansen@users.sourceforge.net (jackjansen@users.sourceforge.net) Date: Fri, 04 Jul 2003 06:06:16 -0700 Subject: [Python-checkins] python/dist/src/Mac/OSXResources/app Info.plist,1.10,1.11 Message-ID: Update of /cvsroot/python/python/dist/src/Mac/OSXResources/app In directory sc8-pr-cvs1:/tmp/cvs-serv19579/OSXResources/app Modified Files: Info.plist Log Message: Fixed lots of minor issues found by Edward Moy: incorrect version strings, non-standard naming of things in bundles, etc. Index: Info.plist =================================================================== RCS file: /cvsroot/python/python/dist/src/Mac/OSXResources/app/Info.plist,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** Info.plist 16 Mar 2003 22:09:22 -0000 1.10 --- Info.plist 4 Jul 2003 13:06:14 -0000 1.11 *************** *** 19,30 **** CFBundleExecutable ! python CFBundleGetInfoString ! Python Interpreter version 2.3, (c) 2002 Python Software Foundation. CFBundleLongVersionString ! 2.3, (c) 2002 Python Software Foundation. NSHumanReadableCopyright ! Copyright 2002 Python Software Foundation. CFBundleShortVersionString 2.3 --- 19,30 ---- CFBundleExecutable ! Python CFBundleGetInfoString ! 2.3, (c) 2003 Python Software Foundation. CFBundleLongVersionString ! 2.3, (c) 2003 Python Software Foundation. NSHumanReadableCopyright ! Copyright 2003 Python Software Foundation. CFBundleShortVersionString 2.3 *************** *** 57,60 **** --- 57,62 ---- CSResourcesFileMapped + + NSAppleScriptEnabled From jvr@users.sourceforge.net Fri Jul 4 15:20:06 2003 From: jvr@users.sourceforge.net (jvr@users.sourceforge.net) Date: Fri, 04 Jul 2003 07:20:06 -0700 Subject: [Python-checkins] python/dist/src/Lib/plat-mac bundlebuilder.py,1.34,1.35 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/plat-mac In directory sc8-pr-cvs1:/tmp/cvs-serv30759 Modified Files: bundlebuilder.py Log Message: #765903: - added bundle_id/--bundle-id option, to specify the CFBundleIndentifier #765615: - in the appropriate situation, prepend $PATH with our path instead of setting it. Index: bundlebuilder.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/plat-mac/bundlebuilder.py,v retrieving revision 1.34 retrieving revision 1.35 diff -C2 -d -r1.34 -r1.35 *** bundlebuilder.py 4 Jul 2003 11:05:35 -0000 1.34 --- bundlebuilder.py 4 Jul 2003 14:20:03 -0000 1.35 *************** *** 88,91 **** --- 88,94 ---- creator = None + # the CFBundleIdentifier (this is used for the preferences file name) + bundle_id = None + # List of files that have to be copied to /Contents/Resources. resources = [] *************** *** 127,131 **** self.creator = "????" plist.CFBundleSignature = self.creator ! if not hasattr(plist, "CFBundleIdentifier"): plist.CFBundleIdentifier = self.name --- 130,136 ---- self.creator = "????" plist.CFBundleSignature = self.creator ! if self.bundle_id: ! plist.CFBundleIdentifier = self.bundle_id ! elif not hasattr(plist, "CFBundleIdentifier"): plist.CFBundleIdentifier = self.name *************** *** 279,285 **** sys.argv.insert(1, mainprogram) ! os.environ["PYTHONPATH"] = resdir ! if %(standalone)s: ! os.environ["PYTHONHOME"] = resdir os.environ["PYTHONEXECUTABLE"] = executable os.environ["DYLD_LIBRARY_PATH"] = libdir --- 284,296 ---- sys.argv.insert(1, mainprogram) ! if %(standalone)s or %(semi_standalone)s: ! os.environ["PYTHONPATH"] = resdir ! if %(standalone)s: ! os.environ["PYTHONHOME"] = resdir ! else: ! pypath = os.getenv("PYTHONPATH", "") ! if pypath: ! pypath = ":" + pypath ! os.environ["PYTHONPATH"] = resdir + pypath os.environ["PYTHONEXECUTABLE"] = executable os.environ["DYLD_LIBRARY_PATH"] = libdir *************** *** 476,479 **** --- 487,491 ---- hashbang = os.path.realpath(sys.executable) standalone = self.standalone + semi_standalone = self.semi_standalone open(bootstrappath, "w").write(BOOTSTRAP_SCRIPT % locals()) os.chmod(bootstrappath, 0775) *************** *** 780,783 **** --- 792,798 ---- --iconfile=FILE filename of the icon (an .icns file) to be used as the Finder icon + --bundle-id=ID the CFBundleIdentifier, in reverse-dns format + (eg. org.python.BuildApplet; this is used for + the preferences file name) -l, --link symlink files/folder instead of copying them --link-exec symlink the executable instead of copying it *************** *** 814,818 **** "link-exec", "help", "verbose", "quiet", "argv", "standalone", "exclude=", "include=", "package=", "strip", "iconfile=", ! "lib=", "python=", "semi-standalone") try: --- 829,833 ---- "link-exec", "help", "verbose", "quiet", "argv", "standalone", "exclude=", "include=", "package=", "strip", "iconfile=", ! "lib=", "python=", "semi-standalone", "bundle-id=") try: *************** *** 842,845 **** --- 857,862 ---- elif opt in ('-c', '--creator'): builder.creator = arg + elif opt == '--bundle-id': + builder.bundle_id = arg elif opt == '--iconfile': builder.iconfile = arg From nnorwitz@users.sourceforge.net Sat Jul 5 18:38:01 2003 From: nnorwitz@users.sourceforge.net (nnorwitz@users.sourceforge.net) Date: Sat, 05 Jul 2003 10:38:01 -0700 Subject: [Python-checkins] python/dist/src/Doc/lib libfuncs.tex,1.142,1.143 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/lib In directory sc8-pr-cvs1:/tmp/cvs-serv9545/Doc/lib Modified Files: libfuncs.tex Log Message: Fix SF bug #766288, property() example gives syntax error Index: libfuncs.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/libfuncs.tex,v retrieving revision 1.142 retrieving revision 1.143 diff -C2 -d -r1.142 -r1.143 *** libfuncs.tex 2 Jul 2003 15:31:54 -0000 1.142 --- libfuncs.tex 5 Jul 2003 17:37:58 -0000 1.143 *************** *** 748,752 **** def setx(self, value): self.__x = value def delx(self): del self.__x ! x = property(getx, setx, delx, "I'm the 'x' property.") \end{verbatim} --- 748,752 ---- def setx(self, value): self.__x = value def delx(self): del self.__x ! x = property(getx, setx, delx, "I'm the 'x' property.") \end{verbatim} From nnorwitz@users.sourceforge.net Sat Jul 5 18:38:28 2003 From: nnorwitz@users.sourceforge.net (nnorwitz@users.sourceforge.net) Date: Sat, 05 Jul 2003 10:38:28 -0700 Subject: [Python-checkins] python/dist/src/Doc/lib libfuncs.tex,1.100.4.16,1.100.4.17 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/lib In directory sc8-pr-cvs1:/tmp/cvs-serv9642/Doc/lib Modified Files: Tag: release22-maint libfuncs.tex Log Message: Fix SF bug #766288, property() example gives syntax error Index: libfuncs.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/libfuncs.tex,v retrieving revision 1.100.4.16 retrieving revision 1.100.4.17 diff -C2 -d -r1.100.4.16 -r1.100.4.17 *** libfuncs.tex 16 May 2003 03:08:34 -0000 1.100.4.16 --- libfuncs.tex 5 Jul 2003 17:38:25 -0000 1.100.4.17 *************** *** 685,689 **** def setx(self, value): self.__x = value def delx(self): del self.__x ! x = property(getx, setx, delx, "I'm the 'x' property.") \end{verbatim} --- 685,689 ---- def setx(self, value): self.__x = value def delx(self): del self.__x ! x = property(getx, setx, delx, "I'm the 'x' property.") \end{verbatim} From loewis@users.sourceforge.net Sun Jul 6 10:29:55 2003 From: loewis@users.sourceforge.net (loewis@users.sourceforge.net) Date: Sun, 06 Jul 2003 02:29:55 -0700 Subject: [Python-checkins] python/dist/src configure.in,1.421,1.422 configure,1.410,1.411 Message-ID: Update of /cvsroot/python/python/dist/src In directory sc8-pr-cvs1:/tmp/cvs-serv11884 Modified Files: configure.in configure Log Message: Include grp.h in setgroups test. Fixes #765822. Index: configure.in =================================================================== RCS file: /cvsroot/python/python/dist/src/configure.in,v retrieving revision 1.421 retrieving revision 1.422 diff -C2 -d -r1.421 -r1.422 *** configure.in 4 Jul 2003 12:14:39 -0000 1.421 --- configure.in 6 Jul 2003 09:29:52 -0000 1.422 *************** *** 2128,2135 **** --- 2128,2139 ---- ) + # On some systems, setgroups is in unistd.h, on others, in grp.h AC_MSG_CHECKING(for setgroups) AC_TRY_COMPILE([ #include "confdefs.h" #include + #ifdef HAVE_GRP_H + #include + #endif ], void* p = setgroups, Index: configure =================================================================== RCS file: /cvsroot/python/python/dist/src/configure,v retrieving revision 1.410 retrieving revision 1.411 diff -C2 -d -r1.410 -r1.411 *** configure 4 Jul 2003 12:14:39 -0000 1.410 --- configure 6 Jul 2003 09:29:52 -0000 1.411 *************** *** 1,4 **** #! /bin/sh ! # From configure.in Revision: 1.420 . # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.53 for python 2.3. --- 1,4 ---- #! /bin/sh ! # From configure.in Revision: 1.421 . # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.53 for python 2.3. *************** *** 909,913 **** # absolute. ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` ! ac_abs_top_builddir=`cd "$ac_dir" && cd $ac_top_builddir && pwd` ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` --- 909,913 ---- # absolute. ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` ! ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd` ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` *************** *** 13124,13127 **** --- 13124,13128 ---- rm -f conftest.$ac_objext conftest.$ac_ext + # On some systems, setgroups is in unistd.h, on others, in grp.h echo "$as_me:$LINENO: checking for setgroups" >&5 echo $ECHO_N "checking for setgroups... $ECHO_C" >&6 *************** *** 13132,13135 **** --- 13133,13139 ---- #include "confdefs.h" #include + #ifdef HAVE_GRP_H + #include + #endif #ifdef F77_DUMMY_MAIN *************** *** 18451,18455 **** # absolute. ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` ! ac_abs_top_builddir=`cd "$ac_dir" && cd $ac_top_builddir && pwd` ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` --- 18455,18459 ---- # absolute. ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` ! ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd` ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` From tim_one@users.sourceforge.net Sun Jul 6 19:36:56 2003 From: tim_one@users.sourceforge.net (tim_one@users.sourceforge.net) Date: Sun, 06 Jul 2003 11:36:56 -0700 Subject: [Python-checkins] python/dist/src/Lib/test test_sys.py,1.7,1.8 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/test In directory sc8-pr-cvs1:/tmp/cvs-serv11478/Lib/test Modified Files: test_sys.py Log Message: New function sys.getcheckinterval(), to complement setcheckinterval(). Index: test_sys.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/test/test_sys.py,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** test_sys.py 1 May 2003 17:45:51 -0000 1.7 --- test_sys.py 6 Jul 2003 18:36:54 -0000 1.8 *************** *** 173,178 **** def test_setcheckinterval(self): self.assertRaises(TypeError, sys.setcheckinterval) ! sys.setcheckinterval(120) ! sys.setcheckinterval(100) def test_recursionlimit(self): --- 173,180 ---- def test_setcheckinterval(self): self.assertRaises(TypeError, sys.setcheckinterval) ! orig = sys.getcheckinterval() ! for n in 0, 100, 120, orig: # orig last to restore starting state ! sys.setcheckinterval(n) ! self.assertEquals(sys.getcheckinterval(), n) def test_recursionlimit(self): From tim_one@users.sourceforge.net Sun Jul 6 19:36:56 2003 From: tim_one@users.sourceforge.net (tim_one@users.sourceforge.net) Date: Sun, 06 Jul 2003 11:36:56 -0700 Subject: [Python-checkins] python/dist/src/Doc/lib libsys.tex,1.65,1.66 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/lib In directory sc8-pr-cvs1:/tmp/cvs-serv11478/Doc/lib Modified Files: libsys.tex Log Message: New function sys.getcheckinterval(), to complement setcheckinterval(). Index: libsys.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/libsys.tex,v retrieving revision 1.65 retrieving revision 1.66 diff -C2 -d -r1.65 -r1.66 *** libsys.tex 2 Jul 2003 21:38:34 -0000 1.65 --- libsys.tex 6 Jul 2003 18:36:53 -0000 1.66 *************** *** 198,201 **** --- 198,206 ---- \end{datadesc} + \begin{funcdesc}{getcheckinterval}{} + Return the interpreter's ``check interval''; + see \function{setcheckinterval()}. + \end{funcdesc} + \begin{funcdesc}{getdefaultencoding}{} Return the name of the current default string encoding used by the From tim_one@users.sourceforge.net Sun Jul 6 19:36:56 2003 From: tim_one@users.sourceforge.net (tim_one@users.sourceforge.net) Date: Sun, 06 Jul 2003 11:36:56 -0700 Subject: [Python-checkins] python/dist/src/Python sysmodule.c,2.119,2.120 Message-ID: Update of /cvsroot/python/python/dist/src/Python In directory sc8-pr-cvs1:/tmp/cvs-serv11478/Python Modified Files: sysmodule.c Log Message: New function sys.getcheckinterval(), to complement setcheckinterval(). Index: sysmodule.c =================================================================== RCS file: /cvsroot/python/python/dist/src/Python/sysmodule.c,v retrieving revision 2.119 retrieving revision 2.120 diff -C2 -d -r2.119 -r2.120 *** sysmodule.c 10 May 2003 07:08:50 -0000 2.119 --- sysmodule.c 6 Jul 2003 18:36:54 -0000 2.120 *************** *** 433,436 **** --- 433,446 ---- static PyObject * + sys_getcheckinterval(PyObject *self, PyObject *args) + { + return PyInt_FromLong(_Py_CheckInterval); + } + + PyDoc_STRVAR(getcheckinterval_doc, + "getcheckinterval() -> current check interval; see setcheckinterval()." + ); + + static PyObject * sys_setrecursionlimit(PyObject *self, PyObject *args) { *************** *** 724,727 **** --- 734,739 ---- {"setcheckinterval", sys_setcheckinterval, METH_VARARGS, setcheckinterval_doc}, + {"getcheckinterval", sys_getcheckinterval, METH_NOARGS, + getcheckinterval_doc}, #ifdef HAVE_DLOPEN {"setdlopenflags", sys_setdlopenflags, METH_VARARGS, From tim_one@users.sourceforge.net Sun Jul 6 19:36:56 2003 From: tim_one@users.sourceforge.net (tim_one@users.sourceforge.net) Date: Sun, 06 Jul 2003 11:36:56 -0700 Subject: [Python-checkins] python/dist/src/Misc NEWS,1.808,1.809 Message-ID: Update of /cvsroot/python/python/dist/src/Misc In directory sc8-pr-cvs1:/tmp/cvs-serv11478/Misc Modified Files: NEWS Log Message: New function sys.getcheckinterval(), to complement setcheckinterval(). Index: NEWS =================================================================== RCS file: /cvsroot/python/python/dist/src/Misc/NEWS,v retrieving revision 1.808 retrieving revision 1.809 diff -C2 -d -r1.808 -r1.809 *** NEWS 4 Jul 2003 04:40:44 -0000 1.808 --- NEWS 6 Jul 2003 18:36:54 -0000 1.809 *************** *** 11,14 **** --- 11,17 ---- ----------------- + - The new function sys.getcheckinterval() returns the last value set + by sys.setcheckinterval(). + - The Windows implementation of PyThread_start_new_thread() never checked error returns from Windows functions correctly. As a result, From nnorwitz@users.sourceforge.net Mon Jul 7 15:11:55 2003 From: nnorwitz@users.sourceforge.net (nnorwitz@users.sourceforge.net) Date: Mon, 07 Jul 2003 07:11:55 -0700 Subject: [Python-checkins] python/dist/src/Doc/lib libsys.tex,1.66,1.67 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/lib In directory sc8-pr-cvs1:/tmp/cvs-serv31010/Doc/lib Modified Files: libsys.tex Log Message: add versionadded for getcheckinterval Index: libsys.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/libsys.tex,v retrieving revision 1.66 retrieving revision 1.67 diff -C2 -d -r1.66 -r1.67 *** libsys.tex 6 Jul 2003 18:36:53 -0000 1.66 --- libsys.tex 7 Jul 2003 14:11:53 -0000 1.67 *************** *** 201,204 **** --- 201,205 ---- Return the interpreter's ``check interval''; see \function{setcheckinterval()}. + \versionadded{2.3} \end{funcdesc} From jhylton@users.sourceforge.net Mon Jul 7 17:08:49 2003 From: jhylton@users.sourceforge.net (jhylton@users.sourceforge.net) Date: Mon, 07 Jul 2003 09:08:49 -0700 Subject: [Python-checkins] python/dist/src/Lib trace.py,1.10,1.11 Message-ID: Update of /cvsroot/python/python/dist/src/Lib In directory sc8-pr-cvs1:/tmp/cvs-serv19007 Modified Files: trace.py Log Message: Patch from Zooko to remove an experimental feature. Index: trace.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/trace.py,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** trace.py 27 Jun 2003 19:22:11 -0000 1.10 --- trace.py 7 Jul 2003 16:08:47 -0000 1.11 *************** *** 199,212 **** self.outfile = outfile if self.infile: ! # Try and merge existing counts file. ! # This code understand a couple of old trace.py formats. try: ! thingie = pickle.load(open(self.infile, 'r')) ! if isinstance(thingie, dict): ! self.update(self.__class__(thingie)) ! elif isinstance(thingie, tuple) and len(thingie) == 2: ! counts, calledfuncs = thingie ! self.update(self.__class__(counts, calledfuncs)) ! except (IOError, EOFError), err: print >> sys.stderr, ("Skipping counts file %r: %s" % (self.infile, err)) --- 199,207 ---- self.outfile = outfile if self.infile: ! # Try to merge existing counts file. try: ! counts, calledfuncs = pickle.load(open(self.infile, 'r')) ! self.update(self.__class__(counts, calledfuncs)) ! except (IOError, EOFError, ValueError), err: print >> sys.stderr, ("Skipping counts file %r: %s" % (self.infile, err)) From jhylton@users.sourceforge.net Mon Jul 7 17:09:26 2003 From: jhylton@users.sourceforge.net (jhylton@users.sourceforge.net) Date: Mon, 07 Jul 2003 09:09:26 -0700 Subject: [Python-checkins] python/dist/src/Tools/scripts trace.py,1.15,NONE Message-ID: Update of /cvsroot/python/python/dist/src/Tools/scripts In directory sc8-pr-cvs1:/tmp/cvs-serv19075 Removed Files: trace.py Log Message: This file was moved to Lib/. --- trace.py DELETED --- From fdrake@users.sourceforge.net Mon Jul 7 18:20:43 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Mon, 07 Jul 2003 10:20:43 -0700 Subject: [Python-checkins] python/dist/src/Doc/api newtypes.tex,1.22,1.23 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/api In directory sc8-pr-cvs1:/tmp/cvs-serv32530 Modified Files: newtypes.tex Log Message: Error noted in email to python-docs: PyObject corresponds to PyObject_HEAD, not PyObject_VAR_HEAD. Index: newtypes.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/api/newtypes.tex,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -d -r1.22 -r1.23 *** newtypes.tex 7 Mar 2003 15:02:03 -0000 1.22 --- newtypes.tex 7 Jul 2003 17:20:40 -0000 1.23 *************** *** 149,153 **** only the objects reference count and a pointer to the corresponding type object. It corresponds to the fields defined by the ! expansion of the \code{PyObject_VAR_HEAD} macro. \end{ctypedesc} --- 149,153 ---- only the objects reference count and a pointer to the corresponding type object. It corresponds to the fields defined by the ! expansion of the \code{PyObject_HEAD} macro. \end{ctypedesc} From fdrake@users.sourceforge.net Mon Jul 7 18:38:28 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Mon, 07 Jul 2003 10:38:28 -0700 Subject: [Python-checkins] python/dist/src/Mac/OSX Makefile,1.48,1.49 Message-ID: Update of /cvsroot/python/python/dist/src/Mac/OSX In directory sc8-pr-cvs1:/tmp/cvs-serv2355 Modified Files: Makefile Log Message: removed trailing tabs in several places, including after the final newline Index: Makefile =================================================================== RCS file: /cvsroot/python/python/dist/src/Mac/OSX/Makefile,v retrieving revision 1.48 retrieving revision 1.49 diff -C2 -d -r1.48 -r1.49 *** Makefile 4 Jul 2003 13:06:13 -0000 1.48 --- Makefile 7 Jul 2003 17:38:26 -0000 1.49 *************** *** 61,65 **** pbxbuild -target PythonLauncher -buildstyle Deployment install \ DSTROOT=$(DESTDIR)/ INSTALL_PATH=$(PYTHONAPPSPATH) ! install_Python: @if test ! -f $(DOCINDEX); then \ --- 61,65 ---- pbxbuild -target PythonLauncher -buildstyle Deployment install \ DSTROOT=$(DESTDIR)/ INSTALL_PATH=$(PYTHONAPPSPATH) ! install_Python: @if test ! -f $(DOCINDEX); then \ *************** *** 107,112 **** done; \ done ! $(INSTALL_PROGRAM) $(STRIPFLAG) $(BUILDPYTHON) $(DESTDIR)$(APPINSTALLDIR)/Contents/MacOS/Python ! install_IDE: @if ! $(BUILDPYTHON) -c "import waste"; then \ --- 107,112 ---- done; \ done ! $(INSTALL_PROGRAM) $(STRIPFLAG) $(BUILDPYTHON) $(DESTDIR)$(APPINSTALLDIR)/Contents/MacOS/Python ! install_IDE: @if ! $(BUILDPYTHON) -c "import waste"; then \ *************** *** 162,166 **** fi ! install_BuildApplet: $(BUILDPYTHON) $(srcdir)/Mac/scripts/BuildApplet.py \ --- 162,166 ---- fi ! install_BuildApplet: $(BUILDPYTHON) $(srcdir)/Mac/scripts/BuildApplet.py \ *************** *** 168,172 **** --output $(DESTDIR)$(PYTHONAPPSDIR)/BuildApplet.app \ $(srcdir)/Mac/scripts/BuildApplet.py ! MACLIBDEST=$(LIBDEST)/plat-mac MACTOOLSDEST=$(prefix)/Mac/Tools --- 168,172 ---- --output $(DESTDIR)$(PYTHONAPPSDIR)/BuildApplet.app \ $(srcdir)/Mac/scripts/BuildApplet.py ! MACLIBDEST=$(LIBDEST)/plat-mac MACTOOLSDEST=$(prefix)/Mac/Tools *************** *** 221,225 **** done; \ done ! $(BUILDPYTHON) $(CACHERSRC) -v $(DESTDIR)$(MACLIBDEST) $(DESTDIR)$(MACTOOLSDEST) --- 221,225 ---- done; \ done ! $(BUILDPYTHON) $(CACHERSRC) -v $(DESTDIR)$(MACLIBDEST) $(DESTDIR)$(MACTOOLSDEST) *************** *** 244,248 **** $(INSTALL) pythonw.sh $(DESTDIR)$(bindir)/pythonw$(VERSION) $(INSTALL_SYMLINK) pythonw$(VERSION) $(DESTDIR)$(bindir)/pythonw ! installextras: $(INSTALL) -d $(DESTDIR)$(PYTHONAPPSDIR)/Extras --- 244,248 ---- $(INSTALL) pythonw.sh $(DESTDIR)$(bindir)/pythonw$(VERSION) $(INSTALL_SYMLINK) pythonw$(VERSION) $(DESTDIR)$(bindir)/pythonw ! installextras: $(INSTALL) -d $(DESTDIR)$(PYTHONAPPSDIR)/Extras *************** *** 252,254 **** $(BUILDPYTHON) $(srcdir)/Mac/OSX/Extras.install.py $(srcdir)/Tools \ $(DESTDIR)$(PYTHONAPPSDIR)/Extras/Tools - \ No newline at end of file --- 252,253 ---- From greg@users.sourceforge.net Mon Jul 7 20:06:47 2003 From: greg@users.sourceforge.net (greg@users.sourceforge.net) Date: Mon, 07 Jul 2003 12:06:47 -0700 Subject: [Python-checkins] python/dist/src/Modules _bsddb.c,1.14,1.15 Message-ID: Update of /cvsroot/python/python/dist/src/Modules In directory sc8-pr-cvs1:/tmp/cvs-serv19538/extsrc Modified Files: _bsddb.c Log Message: Fix a typo/cut-n-paste error in DBCursor.join_item so that it doesn't return a tuple. (this also implies that nobody uses this method; the bug has been here for a long time) Index: _bsddb.c =================================================================== RCS file: /cvsroot/python/python/dist/src/Modules/_bsddb.c,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** _bsddb.c 15 May 2003 00:13:18 -0000 1.14 --- _bsddb.c 7 Jul 2003 19:06:45 -0000 1.15 *************** *** 3034,3038 **** } else { ! retval = Py_BuildValue("s#s#", key.data, key.size); FREE_DBT(key); } --- 3034,3038 ---- } else { ! retval = Py_BuildValue("s#", key.data, key.size); FREE_DBT(key); } From fdrake@users.sourceforge.net Mon Jul 7 22:00:32 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Mon, 07 Jul 2003 14:00:32 -0700 Subject: [Python-checkins] python/dist/src/Doc/tut tut.tex,1.192,1.193 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/tut In directory sc8-pr-cvs1:/tmp/cvs-serv5518 Modified Files: tut.tex Log Message: - explain about making Python scripts executable on Unix in more detail - fix minor markup nit Index: tut.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/tut/tut.tex,v retrieving revision 1.192 retrieving revision 1.193 diff -C2 -d -r1.192 -r1.193 *** tut.tex 1 Jul 2003 06:19:34 -0000 1.192 --- tut.tex 7 Jul 2003 21:00:29 -0000 1.193 *************** *** 300,310 **** (assuming that the interpreter is on the user's \envvar{PATH}) at the beginning of the script and giving the file an executable mode. The ! \samp{\#!} must be the first two characters of the file. Note that the hash, or pound, character, \character{\#}, is used to start a comment in Python. \subsection{Source Code Encoding} ! It is possible to use encodings different than ASCII in Python source files. The best way to do it is to put one more special comment line right after the \code{\#!} line to define the source file encoding: --- 300,321 ---- (assuming that the interpreter is on the user's \envvar{PATH}) at the beginning of the script and giving the file an executable mode. The ! \samp{\#!} must be the first two characters of the file. On some ! platforms, this first line must end with a \UNIX-style line ending ! (\character{\e n}), not a Mac OS (\character{\e r}) or Windows ! (\character{\e r\e n}) line ending. Note that the hash, or pound, character, \character{\#}, is used to start a comment in Python. + The script can be given a executable mode, or permission, using the + \program{chmod} command: + + \begin{verbatim} + $ chmod +x myscript.py + \end{verbatim} % $ <-- bow to font-lock + + \subsection{Source Code Encoding} ! It is possible to use encodings different than \ASCII{} in Python source files. The best way to do it is to put one more special comment line right after the \code{\#!} line to define the source file encoding: From fdrake@users.sourceforge.net Mon Jul 7 22:01:12 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Mon, 07 Jul 2003 14:01:12 -0700 Subject: [Python-checkins] python/dist/src/Doc/tut tut.tex,1.156.4.1.2.19,1.156.4.1.2.20 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/tut In directory sc8-pr-cvs1:/tmp/cvs-serv5663 Modified Files: Tag: release22-maint tut.tex Log Message: - explain about making Python scripts executable on Unix in more detail Index: tut.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/tut/tut.tex,v retrieving revision 1.156.4.1.2.19 retrieving revision 1.156.4.1.2.20 diff -C2 -d -r1.156.4.1.2.19 -r1.156.4.1.2.20 *** tut.tex 20 Jun 2003 14:28:05 -0000 1.156.4.1.2.19 --- tut.tex 7 Jul 2003 21:01:09 -0000 1.156.4.1.2.20 *************** *** 300,306 **** (assuming that the interpreter is on the user's \envvar{PATH}) at the beginning of the script and giving the file an executable mode. The ! \samp{\#!} must be the first two characters of the file. Note that the hash, or pound, character, \character{\#}, is used to start a comment in Python. \subsection{The Interactive Startup File \label{startup}} --- 300,317 ---- (assuming that the interpreter is on the user's \envvar{PATH}) at the beginning of the script and giving the file an executable mode. The ! \samp{\#!} must be the first two characters of the file. On some ! platforms, this first line must end with a \UNIX-style line ending ! (\character{\e n}), not a Mac OS (\character{\e r}) or Windows ! (\character{\e r\e n}) line ending. Note that the hash, or pound, character, \character{\#}, is used to start a comment in Python. + + The script can be given a executable mode, or permission, using the + \program{chmod} command: + + \begin{verbatim} + % chmod +x myscript.py + \end{verbatim} + \subsection{The Interactive Startup File \label{startup}} From loewis@users.sourceforge.net Mon Jul 7 22:26:21 2003 From: loewis@users.sourceforge.net (loewis@users.sourceforge.net) Date: Mon, 07 Jul 2003 14:26:21 -0700 Subject: [Python-checkins] python/dist/src configure,1.411,1.412 configure.in,1.422,1.423 Message-ID: Update of /cvsroot/python/python/dist/src In directory sc8-pr-cvs1:/tmp/cvs-serv9361 Modified Files: configure configure.in Log Message: Use -fno-strict-aliasing if available. Fixes #766696. Will backport to 2.2. Index: configure =================================================================== RCS file: /cvsroot/python/python/dist/src/configure,v retrieving revision 1.411 retrieving revision 1.412 diff -C2 -d -r1.411 -r1.412 *** configure 6 Jul 2003 09:29:52 -0000 1.411 --- configure 7 Jul 2003 21:26:17 -0000 1.412 *************** *** 1,4 **** #! /bin/sh ! # From configure.in Revision: 1.421 . # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.53 for python 2.3. --- 1,4 ---- #! /bin/sh ! # From configure.in Revision: 1.422 . # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.53 for python 2.3. *************** *** 3646,3649 **** --- 3646,3692 ---- case $GCC in yes) + # Python violates C99 rules, by casting between incompatible + # pointer types. GCC may generate bad code as a result of that, + # so use -fno-strict-aliasing if supported. + echo "$as_me:$LINENO: checking whether $CC accepts -fno-strict-aliasing" >&5 + echo $ECHO_N "checking whether $CC accepts -fno-strict-aliasing... $ECHO_C" >&6 + ac_save_cc="$CC" + CC="$CC -fno-strict-aliasing" + if test "$cross_compiling" = yes; then + ac_cv_no_strict_aliasing_ok=no + else + cat >conftest.$ac_ext <<_ACEOF + #line $LINENO "configure" + #include "confdefs.h" + int main() { return 0; } + _ACEOF + rm -f conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_no_strict_aliasing_ok=yes + else + echo "$as_me: program exited with status $ac_status" >&5 + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 + ( exit $ac_status ) + ac_cv_no_strict_aliasing_ok=no + fi + rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext + fi + CC="$ac_save_cc" + echo "$as_me:$LINENO: result: $ac_cv_no_strict_aliasing_ok" >&5 + echo "${ECHO_T}$ac_cv_no_strict_aliasing_ok" >&6 + if test $ac_cv_no_strict_aliasing_ok = yes + then + BASECFLAGS="$BASECFLAGS -fno-strict-aliasing" + fi case $ac_sys_system in SCO_SV*) Index: configure.in =================================================================== RCS file: /cvsroot/python/python/dist/src/configure.in,v retrieving revision 1.422 retrieving revision 1.423 diff -C2 -d -r1.422 -r1.423 *** configure.in 6 Jul 2003 09:29:52 -0000 1.422 --- configure.in 7 Jul 2003 21:26:19 -0000 1.423 *************** *** 642,645 **** --- 642,661 ---- case $GCC in yes) + # Python violates C99 rules, by casting between incompatible + # pointer types. GCC may generate bad code as a result of that, + # so use -fno-strict-aliasing if supported. + AC_MSG_CHECKING(whether $CC accepts -fno-strict-aliasing) + ac_save_cc="$CC" + CC="$CC -fno-strict-aliasing" + AC_TRY_RUN([int main() { return 0; }], + ac_cv_no_strict_aliasing_ok=yes, + ac_cv_no_strict_aliasing_ok=no, + ac_cv_no_strict_aliasing_ok=no) + CC="$ac_save_cc" + AC_MSG_RESULT($ac_cv_no_strict_aliasing_ok) + if test $ac_cv_no_strict_aliasing_ok = yes + then + BASECFLAGS="$BASECFLAGS -fno-strict-aliasing" + fi case $ac_sys_system in SCO_SV*) From fdrake@users.sourceforge.net Mon Jul 7 22:36:21 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Mon, 07 Jul 2003 14:36:21 -0700 Subject: [Python-checkins] python/dist/src/Lib popen2.py,1.26,1.27 Message-ID: Update of /cvsroot/python/python/dist/src/Lib In directory sc8-pr-cvs1:/tmp/cvs-serv11307 Modified Files: popen2.py Log Message: Use Boolean values for the capturestderr flag. Index: popen2.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/popen2.py,v retrieving revision 1.26 retrieving revision 1.27 diff -C2 -d -r1.26 -r1.27 *** popen2.py 2 Jun 2003 19:12:01 -0000 1.26 --- popen2.py 7 Jul 2003 21:36:19 -0000 1.27 *************** *** 26,30 **** sts = -1 # Child not completed yet ! def __init__(self, cmd, capturestderr=0, bufsize=-1): """The parameter 'cmd' is the shell command to execute in a sub-process. The 'capturestderr' flag, if true, specifies that --- 26,30 ---- sts = -1 # Child not completed yet ! def __init__(self, cmd, capturestderr=False, bufsize=-1): """The parameter 'cmd' is the shell command to execute in a sub-process. The 'capturestderr' flag, if true, specifies that *************** *** 142,146 **** specified, it sets the buffer size for the I/O pipes. The file objects (child_stdout, child_stdin) are returned.""" ! inst = Popen3(cmd, 0, bufsize) return inst.fromchild, inst.tochild --- 142,146 ---- specified, it sets the buffer size for the I/O pipes. The file objects (child_stdout, child_stdin) are returned.""" ! inst = Popen3(cmd, False, bufsize) return inst.fromchild, inst.tochild *************** *** 149,153 **** specified, it sets the buffer size for the I/O pipes. The file objects (child_stdout, child_stdin, child_stderr) are returned.""" ! inst = Popen3(cmd, 1, bufsize) return inst.fromchild, inst.tochild, inst.childerr --- 149,153 ---- specified, it sets the buffer size for the I/O pipes. The file objects (child_stdout, child_stdin, child_stderr) are returned.""" ! inst = Popen3(cmd, True, bufsize) return inst.fromchild, inst.tochild, inst.childerr From loewis@users.sourceforge.net Mon Jul 7 22:44:04 2003 From: loewis@users.sourceforge.net (loewis@users.sourceforge.net) Date: Mon, 07 Jul 2003 14:44:04 -0700 Subject: [Python-checkins] python/dist/src configure,1.279.6.19,1.279.6.20 configure.in,1.288.6.19,1.288.6.20 Message-ID: Update of /cvsroot/python/python/dist/src In directory sc8-pr-cvs1:/tmp/cvs-serv12378 Modified Files: Tag: release22-maint configure configure.in Log Message: Use -fno-strict-aliasing on gcc 3.3. Fixes #766696. Index: configure =================================================================== RCS file: /cvsroot/python/python/dist/src/configure,v retrieving revision 1.279.6.19 retrieving revision 1.279.6.20 diff -C2 -d -r1.279.6.19 -r1.279.6.20 *** configure 29 Mar 2003 22:25:14 -0000 1.279.6.19 --- configure 7 Jul 2003 21:43:58 -0000 1.279.6.20 *************** *** 1,5 **** #! /bin/sh ! # From configure.in Revision: 1.288.6.18 # Guess values for system-dependent variables and create Makefiles. --- 1,5 ---- #! /bin/sh ! # From configure.in Revision: 1.288.6.19 [...4612 lines suppressed...] if eval "test \"`echo '$''{'ac_cv_type_socklen_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < *************** *** 7629,7633 **** SRCDIRS="Parser Grammar Objects Python Modules" echo $ac_n "checking for build directories""... $ac_c" 1>&6 ! echo "configure:7632: checking for build directories" >&5 for dir in $SRCDIRS; do if test ! -d $dir; then --- 7663,7667 ---- SRCDIRS="Parser Grammar Objects Python Modules" echo $ac_n "checking for build directories""... $ac_c" 1>&6 ! echo "configure:7666: checking for build directories" >&5 for dir in $SRCDIRS; do if test ! -d $dir; then Index: configure.in =================================================================== RCS file: /cvsroot/python/python/dist/src/configure.in,v retrieving revision 1.288.6.19 retrieving revision 1.288.6.20 diff -C2 -d -r1.288.6.19 -r1.288.6.20 *** configure.in 29 Mar 2003 22:25:17 -0000 1.288.6.19 --- configure.in 7 Jul 2003 21:44:00 -0000 1.288.6.20 *************** *** 371,374 **** --- 371,389 ---- [AC_MSG_RESULT(no)]) + AC_MSG_CHECKING(whether gcc needs -fno-strict-aliasing) + AC_TRY_CPP([ + #ifdef __GNUC__ + # if defined(__GNUC_MINOR__) && __GNUC__ >= 3 && (__GNUC_MINOR__ >= 3) + # error -fno-strict-aliasing needed + # endif + #endif + ],[ + GCC_EXTRA_OPT= + AC_MSG_RESULT(no) + ],[ + GCC_EXTRA_OPT=-fno-strict-aliasing + AC_MSG_RESULT(yes) + ]) + # Optimizer/debugger flags AC_SUBST(OPT) *************** *** 384,391 **** OPT="-g -Wall -Wstrict-prototypes" else ! OPT="-g -O3 -Wall -Wstrict-prototypes" fi;; *) ! OPT="-O3 -Wall -Wstrict-prototypes";; esac case $ac_sys_system in --- 399,406 ---- OPT="-g -Wall -Wstrict-prototypes" else ! OPT="-g -O3 $GCC_EXTRA_OPT -Wall -Wstrict-prototypes" fi;; *) ! OPT="-O3 $GCC_EXTRA_OPT -Wall -Wstrict-prototypes";; esac case $ac_sys_system in From anthonybaxter@users.sourceforge.net Tue Jul 8 09:40:23 2003 From: anthonybaxter@users.sourceforge.net (anthonybaxter@users.sourceforge.net) Date: Tue, 08 Jul 2003 01:40:23 -0700 Subject: [Python-checkins] python/dist/src/Doc/lib liblogging.tex,1.9,1.10 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/lib In directory sc8-pr-cvs1:/tmp/cvs-serv30714 Modified Files: liblogging.tex Log Message: Fixed a table that wasn't in a tableii block, and added a very simple example to show how to log to a file. Index: liblogging.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/liblogging.tex,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** liblogging.tex 27 Jun 2003 21:43:39 -0000 1.9 --- liblogging.tex 8 Jul 2003 08:40:20 -0000 1.10 *************** *** 803,832 **** knowledge of the \class{LogRecord} attributes - such as the default value mentioned above making use of the fact that the user's message and ! arguments are pre- formatted into a LogRecord's \var{message} ! attribute. Currently, the useful attributes in a LogRecord are ! described by: ! \%(name)s Name of the logger (logging channel) ! \%(levelno)s Numeric logging level for the message (DEBUG, INFO, ! WARNING, ERROR, CRITICAL) ! \%(levelname)s Text logging level for the message ("DEBUG", "INFO", ! "WARNING", "ERROR", "CRITICAL") ! \%(pathname)s Full pathname of the source file where the logging ! call was issued (if available) ! \%(filename)s Filename portion of pathname ! \%(module)s Module (name portion of filename) ! \%(lineno)d Source line number where the logging call was issued ! (if available) ! \%(created)f Time when the LogRecord was created (time.time() ! return value) ! \%(asctime)s Textual time when the LogRecord was created ! \%(msecs)d Millisecond portion of the creation time ! \%(relativeCreated)d Time in milliseconds when the LogRecord was created, ! relative to the time the logging module was loaded ! (typically at application startup time) ! \%(thread)d Thread ID (if available) ! \%(process)d Process ID (if available) ! \%(message)s The result of msg \% args, computed just as the ! record is emitted \begin{classdesc}{Formatter}{\optional{fmt\optional{, datefmt}}} --- 803,836 ---- knowledge of the \class{LogRecord} attributes - such as the default value mentioned above making use of the fact that the user's message and ! arguments are pre-formatted into a LogRecord's \var{message} ! attribute. This format string contains standard python \%-style ! mapping keys. See section \ref{typesseq-strings}, ``String Formatting ! Operations,'' for more information on string formatting. ! Currently, the useful mapping keys in a LogRecord are: ! ! \begin{tableii}{l|l}{formats}{Format}{Description} ! \lineii{\%(name)s}{Name of the logger (logging channel).} ! \lineii{\%(levelno)s}{Numeric logging level for the message (DEBUG, INFO, ! WARNING, ERROR, CRITICAL).} ! \lineii{\%(levelname)s}{Text logging level for the message ("DEBUG", "INFO", ! "WARNING", "ERROR", "CRITICAL").} ! \lineii{\%(pathname)s}{Full pathname of the source file where the logging ! call was issued (if available).} ! \lineii{\%(filename)s}{Filename portion of pathname.} ! \lineii{\%(module)s}{Module (name portion of filename).} ! \lineii{\%(lineno)d}{Source line number where the logging call was issued ! (if available).} ! \lineii{\%(created)f}{Time when the LogRecord was created (as returned by ! \code{time.time()}).} ! \lineii{\%(asctime)s}{Human-readable time when the LogRecord was created. ! By default this is of the form ``2003-07-08 16:49:45,896'' (the numbers ! after the comma are millisecond portion of the time).} ! \lineii{\%(msecs)d}{Millisecond portion of the time when the LogRecord ! was created.} ! \lineii{\%(thread)d}{Thread ID (if available).} ! \lineii{\%(process)d}{Process ID (if available).} ! \lineii{\%(message)s}{The logged message, computed as msg \% args.} ! \end{tableii} \begin{classdesc}{Formatter}{\optional{fmt\optional{, datefmt}}} *************** *** 1125,1126 **** --- 1129,1172 ---- result of using the above format string, with a comma separator. An example time in ISO8601 format is \code{2003-01-23 00:29:50,411}. + + \subsection{Using the logging package} + + \subsubsection{Basic example - log to a file} + + Here's a simple logging example that just logs to a file. In order, + it creates a \class{Logger} instance, then a \class{FileHandler} + and a \class{Formatter}. It attaches the \class{Formatter} to the + \class{FileHandler}, then the \class{FileHandler} to the \class{Logger}. + Finally, it sets a debug level for the logger. + + \begin{verbatim} + import logging + logger = logging.getLogger('myapp') + hdlr = logging.FileHandler('/var/tmp/myapp.log') + formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s') + hdlr.setFormatter(formatter) + logger.addHandler(hdlr) + logger.setLevel(logging.WARNING) + \end{verbatim} + + We can use this logger object now to write entries to the log file: + + \begin{verbatim} + logger.error('We have a problem') + logger.info('While this is just chatty') + \end{verbatim} + + If we look in the file that was created, we'll see something like this: + \begin{verbatim} + 2003-07-08 16:49:45,896 ERROR We have a problem + \end{verbatim} + + The info message was not written to the file - we called the \method{setLevel} + method to say we only wanted \code{WARNING} or worse, so the info message is + discarded. + + The timestamp is of the form + ``year-month-day hour:minutes:seconds,milliseconds.'' + Note that despite the three digits of precision in the milliseconds field, + not all systems provide time with this much precision. + From jhylton@users.sourceforge.net Tue Jul 8 13:37:01 2003 From: jhylton@users.sourceforge.net (jhylton@users.sourceforge.net) Date: Tue, 08 Jul 2003 05:37:01 -0700 Subject: [Python-checkins] python/dist/src/Lib/test/output test_httplib,1.4,1.5 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/test/output In directory sc8-pr-cvs1:/tmp/cvs-serv31377/output Modified Files: test_httplib Log Message: Fix SF bug 764095: Don't use network in test_httplib. Index: test_httplib =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/test/output/test_httplib,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** test_httplib 23 Jan 2003 18:02:20 -0000 1.4 --- test_httplib 8 Jul 2003 12:36:58 -0000 1.5 *************** *** 9,11 **** --- 9,13 ---- header: Set-Cookie: Customer="WILE_E_COYOTE"; Version="1"; Path="/acme" header: Set-Cookie: Part_Number="Rocket_Launcher_0001"; Version="1"; Path="/acme" + reply: 'HTTP/1.1 200 OK\r\n' + header: Content-Length: 14432 From jhylton@users.sourceforge.net Tue Jul 8 13:37:00 2003 From: jhylton@users.sourceforge.net (jhylton@users.sourceforge.net) Date: Tue, 08 Jul 2003 05:37:00 -0700 Subject: [Python-checkins] python/dist/src/Lib/test test_httplib.py,1.11,1.12 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/test In directory sc8-pr-cvs1:/tmp/cvs-serv31377 Modified Files: test_httplib.py Log Message: Fix SF bug 764095: Don't use network in test_httplib. Index: test_httplib.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/test/test_httplib.py,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** test_httplib.py 5 May 2003 16:13:57 -0000 1.11 --- test_httplib.py 8 Jul 2003 12:36:58 -0000 1.12 *************** *** 1,14 **** - from test.test_support import verify,verbose import httplib import StringIO class FakeSocket: ! def __init__(self, text): self.text = text def makefile(self, mode, bufsize=None): if mode != 'r' and mode != 'rb': raise httplib.UnimplementedFileMode() ! return StringIO.StringIO(self.text) # Collect output to a buffer so that we don't have to cope with line-ending --- 1,35 ---- import httplib import StringIO + import sys + + from test.test_support import verify,verbose class FakeSocket: ! def __init__(self, text, fileclass=StringIO.StringIO): self.text = text + self.fileclass = fileclass def makefile(self, mode, bufsize=None): if mode != 'r' and mode != 'rb': raise httplib.UnimplementedFileMode() ! return self.fileclass(self.text) ! ! class NoEOFStringIO(StringIO.StringIO): ! """Like StringIO, but raises AssertionError on EOF. ! ! This is used below to test that httplib doesn't try to read ! more from the underlying file than it should. ! """ ! def read(self, n=-1): ! data = StringIO.StringIO.read(self, n) ! if data == '': ! raise AssertionError('caller tried to read past EOF') ! return data ! ! def readline(self, length=None): ! data = StringIO.StringIO.readline(self, length) ! if data == '': ! raise AssertionError('caller tried to read past EOF') ! return data # Collect output to a buffer so that we don't have to cope with line-ending *************** *** 16,21 **** # and some platforms will strip them from the output file. - import sys - def test(): buf = StringIO.StringIO() --- 37,40 ---- *************** *** 79,94 **** raise AssertionError, "multiple headers not combined properly" ! # test that the library doesn't attempt to read any data ! # from a head request ! conn = httplib.HTTPConnection("www.python.org") ! conn.connect() ! conn.request("HEAD", "/", headers={"Connection" : "keep-alive"}) ! resp = conn.getresponse() ! if resp.status != 200: ! raise AssertionError, "Expected status 200, got %d" % resp.status if resp.read() != "": raise AssertionError, "Did not expect response from HEAD request" resp.close() - conn.close() test() --- 98,113 ---- raise AssertionError, "multiple headers not combined properly" ! # Test that the library doesn't attempt to read any data ! # from a HEAD request. (Tickles SF bug #622042.) ! sock = FakeSocket( ! 'HTTP/1.1 200 OK\r\n' ! 'Content-Length: 14432\r\n' ! '\r\n', ! NoEOFStringIO) ! resp = httplib.HTTPResponse(sock, 1, method="HEAD") ! resp.begin() if resp.read() != "": raise AssertionError, "Did not expect response from HEAD request" resp.close() test() From fdrake@users.sourceforge.net Tue Jul 8 14:44:29 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Tue, 08 Jul 2003 06:44:29 -0700 Subject: [Python-checkins] python/dist/src/Doc/lib tkinter.tex,1.20,1.21 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/lib In directory sc8-pr-cvs1:/tmp/cvs-serv10287 Modified Files: tkinter.tex Log Message: Update Tkinter3000 notes based on text from Fredrik Lundh. Index: tkinter.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/tkinter.tex,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** tkinter.tex 20 May 2003 15:21:08 -0000 1.20 --- tkinter.tex 8 Jul 2003 13:44:27 -0000 1.21 *************** *** 1782,1792 **** Tix, lacking however Tix's fast \class{HList} widget for drawing trees. } ! \seetitle[http://tkinter.effbot.org]{Tkinter3000}{ ! is a Widget Construction Kit that allows you to write new Tkinter ! widgets in Python using Mixins. It is built on top of Tkinter, ! and does not offer the extended range of widgets that \refmodule{Tix} does, ! but does allow a form of building mega-widgets. The project is ! still in the early stages. ! } \end{seealso*} --- 1782,1794 ---- Tix, lacking however Tix's fast \class{HList} widget for drawing trees. } ! ! \seetitle[http://tkinter.effbot.org/]{Tkinter3000 Widget Construction ! Kit (WCK)}{% ! is a library that allows you to write new Tkinter widgets in pure ! Python. The WCK framework gives you full control over widget ! creation, configuration, screen appearance, and event handling. WCK ! widgets can be very fast and light-weight, since they can operate ! directly on Python data structures, without having to transfer data ! through the Tk/Tcl layer.} \end{seealso*} From fdrake@users.sourceforge.net Tue Jul 8 14:45:41 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Tue, 08 Jul 2003 06:45:41 -0700 Subject: [Python-checkins] python/dist/src/Doc/lib tkinter.tex,1.10.6.7,1.10.6.8 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/lib In directory sc8-pr-cvs1:/tmp/cvs-serv10483 Modified Files: Tag: release22-maint tkinter.tex Log Message: Update Tkinter3000 notes based on text from Fredrik Lundh. Index: tkinter.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/tkinter.tex,v retrieving revision 1.10.6.7 retrieving revision 1.10.6.8 diff -C2 -d -r1.10.6.7 -r1.10.6.8 *** tkinter.tex 20 May 2003 15:20:33 -0000 1.10.6.7 --- tkinter.tex 8 Jul 2003 13:45:39 -0000 1.10.6.8 *************** *** 1764,1774 **** Tix, lacking however Tix's fast \class{HList} widget for drawing trees. } ! \seetitle[http://tkinter.effbot.org]{Tkinter3000}{ ! is a Widget Construction Kit that allows you to write new Tkinter ! widgets in Python using Mixins. It is built on top of Tkinter, ! and does not offer the extended range of widgets that \refmodule{Tix} does, ! but does allow a form of building mega-widgets. The project is ! still in the early stages. ! } \end{seealso*} --- 1764,1776 ---- Tix, lacking however Tix's fast \class{HList} widget for drawing trees. } ! ! \seetitle[http://tkinter.effbot.org/]{Tkinter3000 Widget Construction ! Kit (WCK)}{% ! is a library that allows you to write new Tkinter widgets in pure ! Python. The WCK framework gives you full control over widget ! creation, configuration, screen appearance, and event handling. WCK ! widgets can be very fast and light-weight, since they can operate ! directly on Python data structures, without having to transfer data ! through the Tk/Tcl layer.} \end{seealso*} From fdrake@users.sourceforge.net Tue Jul 8 16:38:42 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Tue, 08 Jul 2003 08:38:42 -0700 Subject: [Python-checkins] python/dist/src/Doc/lib liblogging.tex,1.10,1.11 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/lib In directory sc8-pr-cvs1:/tmp/cvs-serv31499 Modified Files: liblogging.tex Log Message: - clean up table markup for readability - don't use \constant for literals; it's for "defined" constants - fix various consistency issues Index: liblogging.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/liblogging.tex,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** liblogging.tex 8 Jul 2003 08:40:20 -0000 1.10 --- liblogging.tex 8 Jul 2003 15:38:40 -0000 1.11 *************** *** 2,6 **** Logging facility for Python} ! \declaremodule{standard}{logging} % standard library, in Python % These apply to all modules, and may be given more than once: --- 2,6 ---- Logging facility for Python} ! \declaremodule{standard}{logging} % These apply to all modules, and may be given more than once: *************** *** 479,483 **** Returns a new instance of the \class{FileHandler} class. The specified file is opened and used as the stream for logging. If \var{mode} is ! not specified, \constant{"a"} is used. By default, the file grows indefinitely. \end{classdesc} --- 479,483 ---- Returns a new instance of the \class{FileHandler} class. The specified file is opened and used as the stream for logging. If \var{mode} is ! not specified, \constant{'a'} is used. By default, the file grows indefinitely. \end{classdesc} *************** *** 495,500 **** The \class{RotatingFileHandler} class supports rotation of disk log files. ! \begin{classdesc}{RotatingFileHandler}{filename\optional{, mode, maxBytes, ! backupCount}} Returns a new instance of the \class{RotatingFileHandler} class. The specified file is opened and used as the stream for logging. If --- 495,500 ---- The \class{RotatingFileHandler} class supports rotation of disk log files. ! \begin{classdesc}{RotatingFileHandler}{filename\optional{, mode\optional{, ! maxBytes\optional{, backupCount}}}} Returns a new instance of the \class{RotatingFileHandler} class. The specified file is opened and used as the stream for logging. If *************** *** 636,641 **** installed. ! \begin{classdesc}{NTEventLogHandler}{appname ! \optional{, dllname\optional{, logtype}}} Returns a new instance of the \class{NTEventLogHandler} class. The \var{appname} is used to define the application name as it appears in the --- 636,641 ---- installed. ! \begin{classdesc}{NTEventLogHandler}{appname\optional{, ! dllname\optional{, logtype}}} Returns a new instance of the \class{NTEventLogHandler} class. The \var{appname} is used to define the application name as it appears in the *************** *** 643,647 **** The \var{dllname} should give the fully qualified pathname of a .dll or .exe which contains message definitions to hold in the log (if not specified, ! \constant{"win32service.pyd"} is used - this is installed with the Win32 extensions and contains some basic placeholder message definitions. Note that use of these placeholders will make your event logs big, as the --- 643,647 ---- The \var{dllname} should give the fully qualified pathname of a .dll or .exe which contains message definitions to hold in the log (if not specified, ! \code{'win32service.pyd'} is used - this is installed with the Win32 extensions and contains some basic placeholder message definitions. Note that use of these placeholders will make your event logs big, as the *************** *** 649,654 **** to pass in the name of your own .dll or .exe which contains the message definitions you want to use in the event log). The \var{logtype} is one of ! \constant{"Application"}, \constant{"System"} or \constant{"Security"}, and ! defaults to \constant{"Application"}. \end{classdesc} --- 649,654 ---- to pass in the name of your own .dll or .exe which contains the message definitions you want to use in the event log). The \var{logtype} is one of ! \code{'Application'}, \code{'System'} or \code{'Security'}, and ! defaults to \code{'Application'}. \end{classdesc} *************** *** 688,692 **** you could use a dictionary lookup to get the message ID. This version returns 1, which is the base message ID in ! \constant{win32service.pyd}. \end{methoddesc} --- 688,692 ---- you could use a dictionary lookup to get the message ID. This version returns 1, which is the base message ID in ! \file{win32service.pyd}. \end{methoddesc} *************** *** 798,802 **** base \class{Formatter} allows a formatting string to be specified. If none is ! supplied, the default value of "\%s(message)\\n" is used. A Formatter can be initialized with a format string which makes use of --- 798,802 ---- base \class{Formatter} allows a formatting string to be specified. If none is ! supplied, the default value of \code{'\%(message)s\e'} is used. A Formatter can be initialized with a format string which makes use of *************** *** 810,835 **** Currently, the useful mapping keys in a LogRecord are: ! \begin{tableii}{l|l}{formats}{Format}{Description} ! \lineii{\%(name)s}{Name of the logger (logging channel).} ! \lineii{\%(levelno)s}{Numeric logging level for the message (DEBUG, INFO, ! WARNING, ERROR, CRITICAL).} ! \lineii{\%(levelname)s}{Text logging level for the message ("DEBUG", "INFO", ! "WARNING", "ERROR", "CRITICAL").} ! \lineii{\%(pathname)s}{Full pathname of the source file where the logging ! call was issued (if available).} ! \lineii{\%(filename)s}{Filename portion of pathname.} ! \lineii{\%(module)s}{Module (name portion of filename).} ! \lineii{\%(lineno)d}{Source line number where the logging call was issued ! (if available).} ! \lineii{\%(created)f}{Time when the LogRecord was created (as returned by ! \code{time.time()}).} ! \lineii{\%(asctime)s}{Human-readable time when the LogRecord was created. ! By default this is of the form ``2003-07-08 16:49:45,896'' (the numbers ! after the comma are millisecond portion of the time).} ! \lineii{\%(msecs)d}{Millisecond portion of the time when the LogRecord ! was created.} ! \lineii{\%(thread)d}{Thread ID (if available).} ! \lineii{\%(process)d}{Process ID (if available).} ! \lineii{\%(message)s}{The logged message, computed as msg \% args.} \end{tableii} --- 810,840 ---- Currently, the useful mapping keys in a LogRecord are: ! \begin{tableii}{l|l}{code}{Format}{Description} ! \lineii{\%(name)s} {Name of the logger (logging channel).} ! \lineii{\%(levelno)s} {Numeric logging level for the message ! (\constant{DEBUG}, \constant{INFO}, ! \constant{WARNING}, \constant{ERROR}, ! \constant{CRITICAL}).} ! \lineii{\%(levelname)s}{Text logging level for the message ! (\code{'DEBUG'}, \code{'INFO'}, ! \code{'WARNING'}, \code{'ERROR'}, ! \code{'CRITICAL'}).} ! \lineii{\%(pathname)s} {Full pathname of the source file where the logging ! call was issued (if available).} ! \lineii{\%(filename)s} {Filename portion of pathname.} ! \lineii{\%(module)s} {Module (name portion of filename).} ! \lineii{\%(lineno)d} {Source line number where the logging call was issued ! (if available).} ! \lineii{\%(created)f} {Time when the LogRecord was created (as ! returned by \function{time.time()}).} ! \lineii{\%(asctime)s} {Human-readable time when the LogRecord was created. ! By default this is of the form ! ``2003-07-08 16:49:45,896'' (the numbers after the ! comma are millisecond portion of the time).} ! \lineii{\%(msecs)d} {Millisecond portion of the time when the ! \class{LogRecord} was created.} ! \lineii{\%(thread)d} {Thread ID (if available).} ! \lineii{\%(process)d} {Process ID (if available).} ! \lineii{\%(message)s} {The logged message, computed as \code{msg \% args}.} \end{tableii} *************** *** 838,842 **** instance is initialized with a format string for the message as a whole, as well as a format string for the date/time portion of a message. If ! no \var{fmt} is specified, "\%(message)s" is used. If no \var{datefmt} is specified, the ISO8601 date format is used. \end{classdesc} --- 843,847 ---- instance is initialized with a format string for the message as a whole, as well as a format string for the date/time portion of a message. If ! no \var{fmt} is specified, \code{\%(message)s'} is used. If no \var{datefmt} is specified, the ISO8601 date format is used. \end{classdesc} *************** *** 848,852 **** are carried out. The \var{message} attribute of the record is computed using \var{msg} \% \var{args}. If the formatting string contains ! \constant{"(asctime)"}, \method{formatTime()} is called to format the event time. If there is exception information, it is formatted using \method{formatException()} and appended to the message. --- 853,857 ---- are carried out. The \var{message} attribute of the record is computed using \var{msg} \% \var{args}. If the formatting string contains ! \code{'(asctime)'}, \method{formatTime()} is called to format the event time. If there is exception information, it is formatted using \method{formatException()} and appended to the message. *************** *** 906,910 **** \begin{classdesc}{LogRecord}{name, lvl, pathname, lineno, msg, args, ! exc_info} Returns an instance of \class{LogRecord} initialized with interesting information. The \var{name} is the logger name; \var{lvl} is the --- 911,915 ---- \begin{classdesc}{LogRecord}{name, lvl, pathname, lineno, msg, args, ! exc_info} Returns an instance of \class{LogRecord} initialized with interesting information. The \var{name} is the logger name; \var{lvl} is the *************** *** 932,939 **** \subsubsection{Configuration functions} ! The following functions allow the logging module to be configured. Before ! they can be used, you must import \module{logging.config}. Their use is optional - ! you can configure the logging module entirely by making calls to the main ! API (defined in \module{logging} itself) and defining handlers which are declared either in \module{logging} or \module{logging.handlers}. --- 937,945 ---- \subsubsection{Configuration functions} ! The following functions allow the logging module to be ! configured. Before they can be used, you must import ! \module{logging.config}. Their use is optional --- you can configure ! the logging module entirely by making calls to the main API (defined ! in \module{logging} itself) and defining handlers which are declared either in \module{logging} or \module{logging.handlers}. From fdrake@users.sourceforge.net Tue Jul 8 16:57:54 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Tue, 08 Jul 2003 08:57:54 -0700 Subject: [Python-checkins] python/dist/src/Doc/perl python.perl,1.133,1.134 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/perl In directory sc8-pr-cvs1:/tmp/cvs-serv2334 Modified Files: python.perl Log Message: Improve compatibility with more versions of LaTeX2HTML and more LaTeX markup. Not currently needed, but easier to save this now than to have to figure it out when we do. Index: python.perl =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/perl/python.perl,v retrieving revision 1.133 retrieving revision 1.134 diff -C2 -d -r1.133 -r1.134 *** python.perl 4 Feb 2003 15:01:37 -0000 1.133 --- python.perl 8 Jul 2003 15:57:52 -0000 1.134 *************** *** 90,93 **** --- 90,94 ---- sub do_cmd_textasciicircum{ '^' . $_[0]; } sub do_cmd_textbar{ '|' . $_[0]; } + sub do_cmd_texteuro { '€' . $_[0]); } sub do_cmd_textgreater{ '>' . $_[0]; } sub do_cmd_textless{ '<' . $_[0]; } From nnorwitz@users.sourceforge.net Tue Jul 8 17:26:37 2003 From: nnorwitz@users.sourceforge.net (nnorwitz@users.sourceforge.net) Date: Tue, 08 Jul 2003 09:26:37 -0700 Subject: [Python-checkins] python/dist/src/Doc/lib liblogging.tex,1.11,1.12 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/lib In directory sc8-pr-cvs1:/tmp/cvs-serv6957/Doc/lib Modified Files: liblogging.tex Log Message: add missing ' Index: liblogging.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/liblogging.tex,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** liblogging.tex 8 Jul 2003 15:38:40 -0000 1.11 --- liblogging.tex 8 Jul 2003 16:26:34 -0000 1.12 *************** *** 843,847 **** instance is initialized with a format string for the message as a whole, as well as a format string for the date/time portion of a message. If ! no \var{fmt} is specified, \code{\%(message)s'} is used. If no \var{datefmt} is specified, the ISO8601 date format is used. \end{classdesc} --- 843,847 ---- instance is initialized with a format string for the message as a whole, as well as a format string for the date/time portion of a message. If ! no \var{fmt} is specified, \code{'\%(message)s'} is used. If no \var{datefmt} is specified, the ISO8601 date format is used. \end{classdesc} From kbk@users.sourceforge.net Tue Jul 8 18:07:22 2003 From: kbk@users.sourceforge.net (kbk@users.sourceforge.net) Date: Tue, 08 Jul 2003 10:07:22 -0700 Subject: [Python-checkins] python/dist/src/Doc/lib libthread.tex,1.28,1.29 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/lib In directory sc8-pr-cvs1:/tmp/cvs-serv13640 Modified Files: libthread.tex Log Message: Document interrupt_main() Remove obsolete reference to deprecated exit_thread() function Index: libthread.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/libthread.tex,v retrieving revision 1.28 retrieving revision 1.29 diff -C2 -d -r1.28 -r1.29 *** libthread.tex 30 Dec 2002 23:00:35 -0000 1.28 --- libthread.tex 8 Jul 2003 17:07:20 -0000 1.29 *************** *** 44,55 **** \end{funcdesc} \begin{funcdesc}{exit}{} Raise the \exception{SystemExit} exception. When not caught, this will cause the thread to exit silently. - \end{funcdesc} - - \begin{funcdesc}{exit_thread}{} - \deprecated{1.5.2}{Use \function{exit()}.} - This is an obsolete synonym for \function{exit()}. \end{funcdesc} --- 44,55 ---- \end{funcdesc} + \begin{funcdesc}{interrupt_main}{} + Raise a KeyboardInterrupt in the main thread. A subthread can use this + function to to interrupt the main thread. + \end{funcdesc} + \begin{funcdesc}{exit}{} Raise the \exception{SystemExit} exception. When not caught, this will cause the thread to exit silently. \end{funcdesc} From kbk@users.sourceforge.net Tue Jul 8 19:05:28 2003 From: kbk@users.sourceforge.net (kbk@users.sourceforge.net) Date: Tue, 08 Jul 2003 11:05:28 -0700 Subject: [Python-checkins] python/dist/src/Doc README,1.48,1.49 Message-ID: Update of /cvsroot/python/python/dist/src/Doc In directory sc8-pr-cvs1:/tmp/cvs-serv22830 Modified Files: README Log Message: Adding "use warnings" to .../Doc/perl/python.perl raises the Perl requirement to 5.6.0 or later. Index: README =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/README,v retrieving revision 1.48 retrieving revision 1.49 diff -C2 -d -r1.48 -r1.49 *** README 29 Jun 2003 16:55:47 -0000 1.48 --- README 8 Jul 2003 18:05:26 -0000 1.49 *************** *** 142,146 **** To create HTML files: ! - Perl 5.004_04 or newer. Find the software at . --- 142,146 ---- To create HTML files: ! - Perl 5.6.0 or newer. Find the software at . From tim_one@users.sourceforge.net Tue Jul 8 21:53:40 2003 From: tim_one@users.sourceforge.net (tim_one@users.sourceforge.net) Date: Tue, 08 Jul 2003 13:53:40 -0700 Subject: [Python-checkins] python/dist/src/PCbuild _bsddb.dsp,1.3,1.4 _csv.dsp,1.2,1.3 _ssl.dsp,1.2,1.3 bz2.dsp,1.1,1.2 datetime.dsp,1.1,1.2 Message-ID: Update of /cvsroot/python/python/dist/src/PCbuild In directory sc8-pr-cvs1:/tmp/cvs-serv18061 Modified Files: _bsddb.dsp _csv.dsp _ssl.dsp bz2.dsp datetime.dsp Log Message: I "cvs admin -kb"'ed these files to close a bug report. Now they need to have genuwine Windows line ends. Index: _bsddb.dsp =================================================================== RCS file: /cvsroot/python/python/dist/src/PCbuild/_bsddb.dsp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** _bsddb.dsp 24 Jan 2003 15:31:31 -0000 1.3 --- _bsddb.dsp 8 Jul 2003 20:53:38 -0000 1.4 *************** *** 1,99 **** ! # Microsoft Developer Studio Project File - Name="_bsddb" - Package Owner=<4> ! # Microsoft Developer Studio Generated Build File, Format Version 6.00 ! # ** DO NOT EDIT ** ! ! # TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 ! ! CFG=_bsddb - Win32 Release ! !MESSAGE This is not a valid makefile. To build this project using NMAKE, ! !MESSAGE use the Export Makefile command and run ! !MESSAGE ! !MESSAGE NMAKE /f "_bsddb.mak". ! !MESSAGE ! !MESSAGE You can specify a configuration when running NMAKE ! !MESSAGE by defining the macro CFG on the command line. For example: ! !MESSAGE ! !MESSAGE NMAKE /f "_bsddb.mak" CFG="_bsddb - Win32 Release" ! !MESSAGE ! !MESSAGE Possible choices for configuration are: ! !MESSAGE ! !MESSAGE "_bsddb - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") ! !MESSAGE "_bsddb - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") ! !MESSAGE ! ! # Begin Project ! # PROP AllowPerConfigDependencies 0 ! # PROP Scc_ProjName "_bsddb" ! # PROP Scc_LocalPath ".." ! CPP=cl.exe ! MTL=midl.exe ! RSC=rc.exe ! ! !IF "$(CFG)" == "_bsddb - Win32 Release" ! ! # PROP BASE Use_MFC 0 ! # PROP BASE Use_Debug_Libraries 0 ! # PROP BASE Output_Dir "Release" ! # PROP BASE Intermediate_Dir "Release" ! # PROP BASE Target_Dir "" ! # PROP Use_MFC 0 ! # PROP Use_Debug_Libraries 0 ! # PROP Output_Dir "." ! # PROP Intermediate_Dir "x86-temp-release\_bsddb" ! # PROP Ignore_Export_Lib 0 ! # PROP Target_Dir "" ! F90=df.exe ! # ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c ! # ADD CPP /nologo /MD /W3 /GX /Zi /O2 /I "..\Include" /I "..\PC" /I "..\..\db-4.1.25\build_win32" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c ! # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 ! # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 ! # ADD BASE RSC /l 0x409 /d "NDEBUG" ! # ADD RSC /l 0x409 /d "NDEBUG" ! BSC32=bscmake.exe ! # ADD BASE BSC32 /nologo ! # ADD BSC32 /nologo ! LINK32=link.exe ! # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 ! # ADD LINK32 user32.lib kernel32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ..\..\db-4.1.25\build_win32\Release_static\libdb41s.lib /nologo /base:"0x1e180000" /subsystem:windows /dll /debug /machine:I386 /nodefaultlib:"msvcrt" /out:"./_bsddb.pyd" ! # SUBTRACT LINK32 /pdb:none ! ! !ELSEIF "$(CFG)" == "_bsddb - Win32 Debug" ! ! # PROP BASE Use_MFC 0 ! # PROP BASE Use_Debug_Libraries 1 ! # PROP BASE Output_Dir "Debug" ! # PROP BASE Intermediate_Dir "Debug" ! # PROP BASE Target_Dir "" ! # PROP Use_MFC 0 ! # PROP Use_Debug_Libraries 1 ! # PROP Output_Dir "." ! # PROP Intermediate_Dir "x86-temp-debug\_bsddb" ! # PROP Ignore_Export_Lib 0 ! # PROP Target_Dir "" ! F90=df.exe ! # ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c ! # ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\Include" /I "..\PC" /I "..\..\db-4.1.25\build_win32" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c ! # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 ! # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 ! # ADD BASE RSC /l 0x409 /d "_DEBUG" ! # ADD RSC /l 0x409 /d "_DEBUG" ! BSC32=bscmake.exe ! # ADD BASE BSC32 /nologo ! # ADD BSC32 /nologo ! LINK32=link.exe ! # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept ! # ADD LINK32 user32.lib kernel32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ..\..\db-4.1.25\build_win32\Release_static\libdb41s.lib /nologo /base:"0x1e180000" /subsystem:windows /dll /debug /machine:I386 /nodefaultlib:"msvcrtd" /out:"./_bsddb_d.pyd" /pdbtype:sept ! # SUBTRACT LINK32 /pdb:none ! ! !ENDIF ! ! # Begin Target ! ! # Name "_bsddb - Win32 Release" ! # Name "_bsddb - Win32 Debug" ! # Begin Source File ! ! SOURCE=..\Modules\_bsddb.c ! # End Source File ! # End Target ! # End Project --- 1,99 ---- ! # Microsoft Developer Studio Project File - Name="_bsddb" - Package Owner=<4> ! # Microsoft Developer Studio Generated Build File, Format Version 6.00 ! # ** DO NOT EDIT ** ! ! # TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 ! ! CFG=_bsddb - Win32 Release ! !MESSAGE This is not a valid makefile. To build this project using NMAKE, ! !MESSAGE use the Export Makefile command and run ! !MESSAGE ! !MESSAGE NMAKE /f "_bsddb.mak". ! !MESSAGE ! !MESSAGE You can specify a configuration when running NMAKE ! !MESSAGE by defining the macro CFG on the command line. For example: ! !MESSAGE ! !MESSAGE NMAKE /f "_bsddb.mak" CFG="_bsddb - Win32 Release" ! !MESSAGE ! !MESSAGE Possible choices for configuration are: ! !MESSAGE ! !MESSAGE "_bsddb - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") ! !MESSAGE "_bsddb - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") ! !MESSAGE ! ! # Begin Project ! # PROP AllowPerConfigDependencies 0 ! # PROP Scc_ProjName "_bsddb" ! # PROP Scc_LocalPath ".." ! CPP=cl.exe ! MTL=midl.exe ! RSC=rc.exe ! ! !IF "$(CFG)" == "_bsddb - Win32 Release" ! ! # PROP BASE Use_MFC 0 ! # PROP BASE Use_Debug_Libraries 0 ! # PROP BASE Output_Dir "Release" ! # PROP BASE Intermediate_Dir "Release" ! # PROP BASE Target_Dir "" ! # PROP Use_MFC 0 ! # PROP Use_Debug_Libraries 0 ! # PROP Output_Dir "." ! # PROP Intermediate_Dir "x86-temp-release\_bsddb" ! # PROP Ignore_Export_Lib 0 ! # PROP Target_Dir "" ! F90=df.exe ! # ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c ! # ADD CPP /nologo /MD /W3 /GX /Zi /O2 /I "..\Include" /I "..\PC" /I "..\..\db-4.1.25\build_win32" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c ! # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 ! # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 ! # ADD BASE RSC /l 0x409 /d "NDEBUG" ! # ADD RSC /l 0x409 /d "NDEBUG" ! BSC32=bscmake.exe ! # ADD BASE BSC32 /nologo ! # ADD BSC32 /nologo ! LINK32=link.exe ! # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 ! # ADD LINK32 user32.lib kernel32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ..\..\db-4.1.25\build_win32\Release_static\libdb41s.lib /nologo /base:"0x1e180000" /subsystem:windows /dll /debug /machine:I386 /nodefaultlib:"msvcrt" /out:"./_bsddb.pyd" ! # SUBTRACT LINK32 /pdb:none ! ! !ELSEIF "$(CFG)" == "_bsddb - Win32 Debug" ! ! # PROP BASE Use_MFC 0 ! # PROP BASE Use_Debug_Libraries 1 ! # PROP BASE Output_Dir "Debug" ! # PROP BASE Intermediate_Dir "Debug" ! # PROP BASE Target_Dir "" ! # PROP Use_MFC 0 ! # PROP Use_Debug_Libraries 1 ! # PROP Output_Dir "." ! # PROP Intermediate_Dir "x86-temp-debug\_bsddb" ! # PROP Ignore_Export_Lib 0 ! # PROP Target_Dir "" ! F90=df.exe ! # ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c ! # ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\Include" /I "..\PC" /I "..\..\db-4.1.25\build_win32" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c ! # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 ! # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 ! # ADD BASE RSC /l 0x409 /d "_DEBUG" ! # ADD RSC /l 0x409 /d "_DEBUG" ! BSC32=bscmake.exe ! # ADD BASE BSC32 /nologo ! # ADD BSC32 /nologo ! LINK32=link.exe ! # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept ! # ADD LINK32 user32.lib kernel32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ..\..\db-4.1.25\build_win32\Release_static\libdb41s.lib /nologo /base:"0x1e180000" /subsystem:windows /dll /debug /machine:I386 /nodefaultlib:"msvcrtd" /out:"./_bsddb_d.pyd" /pdbtype:sept ! # SUBTRACT LINK32 /pdb:none ! ! !ENDIF ! ! # Begin Target ! ! # Name "_bsddb - Win32 Release" ! # Name "_bsddb - Win32 Debug" ! # Begin Source File ! ! SOURCE=..\Modules\_bsddb.c ! # End Source File ! # End Target ! # End Project Index: _csv.dsp =================================================================== RCS file: /cvsroot/python/python/dist/src/PCbuild/_csv.dsp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** _csv.dsp 21 Mar 2003 02:02:02 -0000 1.2 --- _csv.dsp 8 Jul 2003 20:53:38 -0000 1.3 *************** *** 1,99 **** ! # Microsoft Developer Studio Project File - Name="_csv" - Package Owner=<4> ! # Microsoft Developer Studio Generated Build File, Format Version 6.00 ! # ** DO NOT EDIT ** ! ! # TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 ! ! CFG=_csv - Win32 Release ! !MESSAGE This is not a valid makefile. To build this project using NMAKE, ! !MESSAGE use the Export Makefile command and run ! !MESSAGE ! !MESSAGE NMAKE /f "_csv.mak". ! !MESSAGE ! !MESSAGE You can specify a configuration when running NMAKE ! !MESSAGE by defining the macro CFG on the command line. For example: ! !MESSAGE ! !MESSAGE NMAKE /f "_csv.mak" CFG="_csv - Win32 Release" ! !MESSAGE ! !MESSAGE Possible choices for configuration are: ! !MESSAGE ! !MESSAGE "_csv - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") ! !MESSAGE "_csv - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") ! !MESSAGE ! ! # Begin Project ! # PROP AllowPerConfigDependencies 0 ! # PROP Scc_ProjName "_csv" ! # PROP Scc_LocalPath ".." ! CPP=cl.exe ! MTL=midl.exe ! RSC=rc.exe ! ! !IF "$(CFG)" == "_csv - Win32 Release" ! ! # PROP BASE Use_MFC 0 ! # PROP BASE Use_Debug_Libraries 0 ! # PROP BASE Output_Dir "Release" ! # PROP BASE Intermediate_Dir "Release" ! # PROP BASE Target_Dir "" ! # PROP Use_MFC 0 ! # PROP Use_Debug_Libraries 0 ! # PROP Output_Dir "." ! # PROP Intermediate_Dir "x86-temp-release\_csv" ! # PROP Ignore_Export_Lib 0 ! # PROP Target_Dir "" ! F90=df.exe ! # ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c ! # ADD CPP /nologo /MD /W3 /GX /Zi /O2 /I "..\Include" /I "..\PC" /I "C:\Program Files\Tcl\include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c ! # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 ! # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 ! # ADD BASE RSC /l 0x409 /d "NDEBUG" ! # ADD RSC /l 0x409 /d "NDEBUG" ! BSC32=bscmake.exe ! # ADD BASE BSC32 /nologo ! # ADD BSC32 /nologo ! LINK32=link.exe ! # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 ! # ADD LINK32 user32.lib kernel32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /base:"0x1d190000" /subsystem:windows /dll /debug /machine:I386 /out:"./_csv.pyd" ! # SUBTRACT LINK32 /pdb:none ! ! !ELSEIF "$(CFG)" == "_csv - Win32 Debug" ! ! # PROP BASE Use_MFC 0 ! # PROP BASE Use_Debug_Libraries 1 ! # PROP BASE Output_Dir "Debug" ! # PROP BASE Intermediate_Dir "Debug" ! # PROP BASE Target_Dir "" ! # PROP Use_MFC 0 ! # PROP Use_Debug_Libraries 1 ! # PROP Output_Dir "." ! # PROP Intermediate_Dir "x86-temp-debug\_csv" ! # PROP Ignore_Export_Lib 0 ! # PROP Target_Dir "" ! F90=df.exe ! # ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c ! # ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\Include" /I "..\PC" /I "C:\Program Files\Tcl\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c ! # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 ! # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 ! # ADD BASE RSC /l 0x409 /d "_DEBUG" ! # ADD RSC /l 0x409 /d "_DEBUG" ! BSC32=bscmake.exe ! # ADD BASE BSC32 /nologo ! # ADD BSC32 /nologo ! LINK32=link.exe ! # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept ! # ADD LINK32 user32.lib kernel32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /base:"0x1d190000" /subsystem:windows /dll /debug /machine:I386 /out:"./_csv_d.pyd" /pdbtype:sept ! # SUBTRACT LINK32 /pdb:none ! ! !ENDIF ! ! # Begin Target ! ! # Name "_csv - Win32 Release" ! # Name "_csv - Win32 Debug" ! # Begin Source File ! ! SOURCE=..\Modules\_csv.c ! # End Source File ! # End Target ! # End Project --- 1,99 ---- ! # Microsoft Developer Studio Project File - Name="_csv" - Package Owner=<4> ! # Microsoft Developer Studio Generated Build File, Format Version 6.00 ! # ** DO NOT EDIT ** ! ! # TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 ! ! CFG=_csv - Win32 Release ! !MESSAGE This is not a valid makefile. To build this project using NMAKE, ! !MESSAGE use the Export Makefile command and run ! !MESSAGE ! !MESSAGE NMAKE /f "_csv.mak". ! !MESSAGE ! !MESSAGE You can specify a configuration when running NMAKE ! !MESSAGE by defining the macro CFG on the command line. For example: ! !MESSAGE ! !MESSAGE NMAKE /f "_csv.mak" CFG="_csv - Win32 Release" ! !MESSAGE ! !MESSAGE Possible choices for configuration are: ! !MESSAGE ! !MESSAGE "_csv - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") ! !MESSAGE "_csv - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") ! !MESSAGE ! ! # Begin Project ! # PROP AllowPerConfigDependencies 0 ! # PROP Scc_ProjName "_csv" ! # PROP Scc_LocalPath ".." ! CPP=cl.exe ! MTL=midl.exe ! RSC=rc.exe ! ! !IF "$(CFG)" == "_csv - Win32 Release" ! ! # PROP BASE Use_MFC 0 ! # PROP BASE Use_Debug_Libraries 0 ! # PROP BASE Output_Dir "Release" ! # PROP BASE Intermediate_Dir "Release" ! # PROP BASE Target_Dir "" ! # PROP Use_MFC 0 ! # PROP Use_Debug_Libraries 0 ! # PROP Output_Dir "." ! # PROP Intermediate_Dir "x86-temp-release\_csv" ! # PROP Ignore_Export_Lib 0 ! # PROP Target_Dir "" ! F90=df.exe ! # ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c ! # ADD CPP /nologo /MD /W3 /GX /Zi /O2 /I "..\Include" /I "..\PC" /I "C:\Program Files\Tcl\include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c ! # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 ! # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 ! # ADD BASE RSC /l 0x409 /d "NDEBUG" ! # ADD RSC /l 0x409 /d "NDEBUG" ! BSC32=bscmake.exe ! # ADD BASE BSC32 /nologo ! # ADD BSC32 /nologo ! LINK32=link.exe ! # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 ! # ADD LINK32 user32.lib kernel32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /base:"0x1d190000" /subsystem:windows /dll /debug /machine:I386 /out:"./_csv.pyd" ! # SUBTRACT LINK32 /pdb:none ! ! !ELSEIF "$(CFG)" == "_csv - Win32 Debug" ! ! # PROP BASE Use_MFC 0 ! # PROP BASE Use_Debug_Libraries 1 ! # PROP BASE Output_Dir "Debug" ! # PROP BASE Intermediate_Dir "Debug" ! # PROP BASE Target_Dir "" ! # PROP Use_MFC 0 ! # PROP Use_Debug_Libraries 1 ! # PROP Output_Dir "." ! # PROP Intermediate_Dir "x86-temp-debug\_csv" ! # PROP Ignore_Export_Lib 0 ! # PROP Target_Dir "" ! F90=df.exe ! # ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c ! # ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\Include" /I "..\PC" /I "C:\Program Files\Tcl\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c ! # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 ! # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 ! # ADD BASE RSC /l 0x409 /d "_DEBUG" ! # ADD RSC /l 0x409 /d "_DEBUG" ! BSC32=bscmake.exe ! # ADD BASE BSC32 /nologo ! # ADD BSC32 /nologo ! LINK32=link.exe ! # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept ! # ADD LINK32 user32.lib kernel32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /base:"0x1d190000" /subsystem:windows /dll /debug /machine:I386 /out:"./_csv_d.pyd" /pdbtype:sept ! # SUBTRACT LINK32 /pdb:none ! ! !ENDIF ! ! # Begin Target ! ! # Name "_csv - Win32 Release" ! # Name "_csv - Win32 Debug" ! # Begin Source File ! ! SOURCE=..\Modules\_csv.c ! # End Source File ! # End Target ! # End Project Index: _ssl.dsp =================================================================== RCS file: /cvsroot/python/python/dist/src/PCbuild/_ssl.dsp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** _ssl.dsp 13 Feb 2003 12:05:15 -0000 1.2 --- _ssl.dsp 8 Jul 2003 20:53:38 -0000 1.3 *************** *** 1,89 **** ! # Microsoft Developer Studio Project File - Name="_ssl" - Package Owner=<4> ! # Microsoft Developer Studio Generated Build File, Format Version 6.00 ! # ** DO NOT EDIT ** ! ! # TARGTYPE "Win32 (x86) External Target" 0x0106 ! ! CFG=_ssl - Win32 Debug ! !MESSAGE This is not a valid makefile. To build this project using NMAKE, ! !MESSAGE use the Export Makefile command and run ! !MESSAGE ! !MESSAGE NMAKE /f "_ssl.mak". ! !MESSAGE ! !MESSAGE You can specify a configuration when running NMAKE ! !MESSAGE by defining the macro CFG on the command line. For example: ! !MESSAGE ! !MESSAGE NMAKE /f "_ssl.mak" CFG="_ssl - Win32 Debug" ! !MESSAGE ! !MESSAGE Possible choices for configuration are: ! !MESSAGE ! !MESSAGE "_ssl - Win32 Release" (based on "Win32 (x86) External Target") ! !MESSAGE "_ssl - Win32 Debug" (based on "Win32 (x86) External Target") ! !MESSAGE ! ! # Begin Project ! # PROP AllowPerConfigDependencies 0 ! # PROP Scc_ProjName "" ! # PROP Scc_LocalPath "" ! ! !IF "$(CFG)" == "_ssl - Win32 Release" ! ! # PROP BASE Use_MFC 0 ! # PROP BASE Use_Debug_Libraries 0 ! # PROP BASE Output_Dir "Release" ! # PROP BASE Intermediate_Dir "Release" ! # PROP BASE Cmd_Line "NMAKE /f _ssl.mak" ! # PROP BASE Rebuild_Opt "/a" ! # PROP BASE Target_File "_ssl.exe" ! # PROP BASE Bsc_Name "_ssl.bsc" ! # PROP BASE Target_Dir "" ! # PROP Use_MFC 0 ! # PROP Use_Debug_Libraries 0 ! # PROP Output_Dir "." ! # PROP Intermediate_Dir "x86-temp-release\_ssl" ! # PROP Cmd_Line "python build_ssl.py" ! # PROP Rebuild_Opt "-a" ! # PROP Target_File "_ssl.pyd" ! # PROP Bsc_Name "" ! # PROP Target_Dir "" ! ! !ELSEIF "$(CFG)" == "_ssl - Win32 Debug" ! ! # PROP BASE Use_MFC 0 ! # PROP BASE Use_Debug_Libraries 1 ! # PROP BASE Output_Dir "x86-temp-debug\_ssl" ! # PROP BASE Intermediate_Dir "x86-temp-debug\_ssl" ! # PROP BASE Cmd_Line "NMAKE /f _ssl.mak" ! # PROP BASE Rebuild_Opt "/a" ! # PROP BASE Target_File "_ssl_d.pyd" ! # PROP BASE Bsc_Name "_ssl_d.bsc" ! # PROP BASE Target_Dir "" ! # PROP Use_MFC 0 ! # PROP Use_Debug_Libraries 1 ! # PROP Output_Dir "." ! # PROP Intermediate_Dir "x86-temp-debug\_ssl" ! # PROP Cmd_Line "python_d -u build_ssl.py -d" ! # PROP Rebuild_Opt "-a" ! # PROP Target_File "_ssl_d.pyd" ! # PROP Bsc_Name "" ! # PROP Target_Dir "" ! ! !ENDIF ! ! # Begin Target ! ! # Name "_ssl - Win32 Release" ! # Name "_ssl - Win32 Debug" ! ! !IF "$(CFG)" == "_ssl - Win32 Release" ! ! !ELSEIF "$(CFG)" == "_ssl - Win32 Debug" ! ! !ENDIF ! ! # Begin Source File ! ! SOURCE=..\Modules\_ssl.c ! # End Source File ! # End Target ! # End Project --- 1,89 ---- ! # Microsoft Developer Studio Project File - Name="_ssl" - Package Owner=<4> ! # Microsoft Developer Studio Generated Build File, Format Version 6.00 ! # ** DO NOT EDIT ** ! ! # TARGTYPE "Win32 (x86) External Target" 0x0106 ! ! CFG=_ssl - Win32 Debug ! !MESSAGE This is not a valid makefile. To build this project using NMAKE, ! !MESSAGE use the Export Makefile command and run ! !MESSAGE ! !MESSAGE NMAKE /f "_ssl.mak". ! !MESSAGE ! !MESSAGE You can specify a configuration when running NMAKE ! !MESSAGE by defining the macro CFG on the command line. For example: ! !MESSAGE ! !MESSAGE NMAKE /f "_ssl.mak" CFG="_ssl - Win32 Debug" ! !MESSAGE ! !MESSAGE Possible choices for configuration are: ! !MESSAGE ! !MESSAGE "_ssl - Win32 Release" (based on "Win32 (x86) External Target") ! !MESSAGE "_ssl - Win32 Debug" (based on "Win32 (x86) External Target") ! !MESSAGE ! ! # Begin Project ! # PROP AllowPerConfigDependencies 0 ! # PROP Scc_ProjName "" ! # PROP Scc_LocalPath "" ! ! !IF "$(CFG)" == "_ssl - Win32 Release" ! ! # PROP BASE Use_MFC 0 ! # PROP BASE Use_Debug_Libraries 0 ! # PROP BASE Output_Dir "Release" ! # PROP BASE Intermediate_Dir "Release" ! # PROP BASE Cmd_Line "NMAKE /f _ssl.mak" ! # PROP BASE Rebuild_Opt "/a" ! # PROP BASE Target_File "_ssl.exe" ! # PROP BASE Bsc_Name "_ssl.bsc" ! # PROP BASE Target_Dir "" ! # PROP Use_MFC 0 ! # PROP Use_Debug_Libraries 0 ! # PROP Output_Dir "." ! # PROP Intermediate_Dir "x86-temp-release\_ssl" ! # PROP Cmd_Line "python build_ssl.py" ! # PROP Rebuild_Opt "-a" ! # PROP Target_File "_ssl.pyd" ! # PROP Bsc_Name "" ! # PROP Target_Dir "" ! ! !ELSEIF "$(CFG)" == "_ssl - Win32 Debug" ! ! # PROP BASE Use_MFC 0 ! # PROP BASE Use_Debug_Libraries 1 ! # PROP BASE Output_Dir "x86-temp-debug\_ssl" ! # PROP BASE Intermediate_Dir "x86-temp-debug\_ssl" ! # PROP BASE Cmd_Line "NMAKE /f _ssl.mak" ! # PROP BASE Rebuild_Opt "/a" ! # PROP BASE Target_File "_ssl_d.pyd" ! # PROP BASE Bsc_Name "_ssl_d.bsc" ! # PROP BASE Target_Dir "" ! # PROP Use_MFC 0 ! # PROP Use_Debug_Libraries 1 ! # PROP Output_Dir "." ! # PROP Intermediate_Dir "x86-temp-debug\_ssl" ! # PROP Cmd_Line "python_d -u build_ssl.py -d" ! # PROP Rebuild_Opt "-a" ! # PROP Target_File "_ssl_d.pyd" ! # PROP Bsc_Name "" ! # PROP Target_Dir "" ! ! !ENDIF ! ! # Begin Target ! ! # Name "_ssl - Win32 Release" ! # Name "_ssl - Win32 Debug" ! ! !IF "$(CFG)" == "_ssl - Win32 Release" ! ! !ELSEIF "$(CFG)" == "_ssl - Win32 Debug" ! ! !ENDIF ! ! # Begin Source File ! ! SOURCE=..\Modules\_ssl.c ! # End Source File ! # End Target ! # End Project Index: bz2.dsp =================================================================== RCS file: /cvsroot/python/python/dist/src/PCbuild/bz2.dsp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** bz2.dsp 9 Nov 2002 04:48:58 -0000 1.1 --- bz2.dsp 8 Jul 2003 20:53:38 -0000 1.2 *************** *** 1,99 **** ! # Microsoft Developer Studio Project File - Name="bz2" - Package Owner=<4> ! # Microsoft Developer Studio Generated Build File, Format Version 6.00 ! # ** DO NOT EDIT ** ! ! # TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 ! ! CFG=bz2 - Win32 Debug ! !MESSAGE This is not a valid makefile. To build this project using NMAKE, ! !MESSAGE use the Export Makefile command and run ! !MESSAGE ! !MESSAGE NMAKE /f "bz2.mak". ! !MESSAGE ! !MESSAGE You can specify a configuration when running NMAKE ! !MESSAGE by defining the macro CFG on the command line. For example: ! !MESSAGE ! !MESSAGE NMAKE /f "bz2.mak" CFG="bz2 - Win32 Debug" ! !MESSAGE ! !MESSAGE Possible choices for configuration are: ! !MESSAGE ! !MESSAGE "bz2 - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") ! !MESSAGE "bz2 - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") ! !MESSAGE ! ! # Begin Project ! # PROP AllowPerConfigDependencies 0 ! # PROP Scc_ProjName "bz2" ! # PROP Scc_LocalPath ".." ! CPP=cl.exe ! MTL=midl.exe ! RSC=rc.exe ! ! !IF "$(CFG)" == "bz2 - Win32 Release" ! ! # PROP BASE Use_MFC 0 ! # PROP BASE Use_Debug_Libraries 0 ! # PROP BASE Output_Dir "Release" ! # PROP BASE Intermediate_Dir "Release" ! # PROP BASE Target_Dir "" ! # PROP Use_MFC 0 ! # PROP Use_Debug_Libraries 0 ! # PROP Output_Dir "." ! # PROP Intermediate_Dir "x86-temp-release\bz2" ! # PROP Ignore_Export_Lib 0 ! # PROP Target_Dir "" ! F90=df.exe ! # ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c ! # ADD CPP /nologo /MD /W3 /GX /Zi /O2 /I "..\Include" /I "..\PC" /I "..\..\bzip2-1.0.2" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c ! # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 ! # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 ! # ADD BASE RSC /l 0x409 /d "NDEBUG" ! # ADD RSC /l 0x409 /d "NDEBUG" ! BSC32=bscmake.exe ! # ADD BASE BSC32 /nologo ! # ADD BSC32 /nologo ! LINK32=link.exe ! # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 ! # ADD LINK32 ..\..\bzip2-1.0.2\libbz2.lib /nologo /base:"0x1D170000" /subsystem:windows /dll /debug /machine:I386 /nodefaultlib:"libc" /out:"./bz2.pyd" ! # SUBTRACT LINK32 /pdb:none /nodefaultlib ! ! !ELSEIF "$(CFG)" == "bz2 - Win32 Debug" ! ! # PROP BASE Use_MFC 0 ! # PROP BASE Use_Debug_Libraries 1 ! # PROP BASE Output_Dir "Debug" ! # PROP BASE Intermediate_Dir "Debug" ! # PROP BASE Target_Dir "" ! # PROP Use_MFC 0 ! # PROP Use_Debug_Libraries 1 ! # PROP Output_Dir "." ! # PROP Intermediate_Dir "x86-temp-debug\bz2" ! # PROP Ignore_Export_Lib 0 ! # PROP Target_Dir "" ! F90=df.exe ! # ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c ! # ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\Include" /I "..\PC" /I "..\..\bzip2-1.0.2" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c ! # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 ! # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 ! # ADD BASE RSC /l 0x409 /d "_DEBUG" ! # ADD RSC /l 0x409 /d "_DEBUG" ! BSC32=bscmake.exe ! # ADD BASE BSC32 /nologo ! # ADD BSC32 /nologo ! LINK32=link.exe ! # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept ! # ADD LINK32 ..\..\bzip2-1.0.2\libbz2.lib /nologo /base:"0x1D170000" /subsystem:windows /dll /debug /machine:I386 /nodefaultlib:"msvcrt" /nodefaultlib:"libc" /out:"./bz2_d.pyd" /pdbtype:sept ! # SUBTRACT LINK32 /pdb:none ! ! !ENDIF ! ! # Begin Target ! ! # Name "bz2 - Win32 Release" ! # Name "bz2 - Win32 Debug" ! # Begin Source File ! ! SOURCE=..\Modules\bz2module.c ! # End Source File ! # End Target ! # End Project --- 1,99 ---- ! # Microsoft Developer Studio Project File - Name="bz2" - Package Owner=<4> ! # Microsoft Developer Studio Generated Build File, Format Version 6.00 ! # ** DO NOT EDIT ** ! ! # TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 ! ! CFG=bz2 - Win32 Debug ! !MESSAGE This is not a valid makefile. To build this project using NMAKE, ! !MESSAGE use the Export Makefile command and run ! !MESSAGE ! !MESSAGE NMAKE /f "bz2.mak". ! !MESSAGE ! !MESSAGE You can specify a configuration when running NMAKE ! !MESSAGE by defining the macro CFG on the command line. For example: ! !MESSAGE ! !MESSAGE NMAKE /f "bz2.mak" CFG="bz2 - Win32 Debug" ! !MESSAGE ! !MESSAGE Possible choices for configuration are: ! !MESSAGE ! !MESSAGE "bz2 - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") ! !MESSAGE "bz2 - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") ! !MESSAGE ! ! # Begin Project ! # PROP AllowPerConfigDependencies 0 ! # PROP Scc_ProjName "bz2" ! # PROP Scc_LocalPath ".." ! CPP=cl.exe ! MTL=midl.exe ! RSC=rc.exe ! ! !IF "$(CFG)" == "bz2 - Win32 Release" ! ! # PROP BASE Use_MFC 0 ! # PROP BASE Use_Debug_Libraries 0 ! # PROP BASE Output_Dir "Release" ! # PROP BASE Intermediate_Dir "Release" ! # PROP BASE Target_Dir "" ! # PROP Use_MFC 0 ! # PROP Use_Debug_Libraries 0 ! # PROP Output_Dir "." ! # PROP Intermediate_Dir "x86-temp-release\bz2" ! # PROP Ignore_Export_Lib 0 ! # PROP Target_Dir "" ! F90=df.exe ! # ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c ! # ADD CPP /nologo /MD /W3 /GX /Zi /O2 /I "..\Include" /I "..\PC" /I "..\..\bzip2-1.0.2" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c ! # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 ! # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 ! # ADD BASE RSC /l 0x409 /d "NDEBUG" ! # ADD RSC /l 0x409 /d "NDEBUG" ! BSC32=bscmake.exe ! # ADD BASE BSC32 /nologo ! # ADD BSC32 /nologo ! LINK32=link.exe ! # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 ! # ADD LINK32 ..\..\bzip2-1.0.2\libbz2.lib /nologo /base:"0x1D170000" /subsystem:windows /dll /debug /machine:I386 /nodefaultlib:"libc" /out:"./bz2.pyd" ! # SUBTRACT LINK32 /pdb:none /nodefaultlib ! ! !ELSEIF "$(CFG)" == "bz2 - Win32 Debug" ! ! # PROP BASE Use_MFC 0 ! # PROP BASE Use_Debug_Libraries 1 ! # PROP BASE Output_Dir "Debug" ! # PROP BASE Intermediate_Dir "Debug" ! # PROP BASE Target_Dir "" ! # PROP Use_MFC 0 ! # PROP Use_Debug_Libraries 1 ! # PROP Output_Dir "." ! # PROP Intermediate_Dir "x86-temp-debug\bz2" ! # PROP Ignore_Export_Lib 0 ! # PROP Target_Dir "" ! F90=df.exe ! # ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c ! # ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\Include" /I "..\PC" /I "..\..\bzip2-1.0.2" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c ! # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 ! # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 ! # ADD BASE RSC /l 0x409 /d "_DEBUG" ! # ADD RSC /l 0x409 /d "_DEBUG" ! BSC32=bscmake.exe ! # ADD BASE BSC32 /nologo ! # ADD BSC32 /nologo ! LINK32=link.exe ! # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept ! # ADD LINK32 ..\..\bzip2-1.0.2\libbz2.lib /nologo /base:"0x1D170000" /subsystem:windows /dll /debug /machine:I386 /nodefaultlib:"msvcrt" /nodefaultlib:"libc" /out:"./bz2_d.pyd" /pdbtype:sept ! # SUBTRACT LINK32 /pdb:none ! ! !ENDIF ! ! # Begin Target ! ! # Name "bz2 - Win32 Release" ! # Name "bz2 - Win32 Debug" ! # Begin Source File ! ! SOURCE=..\Modules\bz2module.c ! # End Source File ! # End Target ! # End Project Index: datetime.dsp =================================================================== RCS file: /cvsroot/python/python/dist/src/PCbuild/datetime.dsp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** datetime.dsp 16 Dec 2002 20:18:17 -0000 1.1 --- datetime.dsp 8 Jul 2003 20:53:38 -0000 1.2 *************** *** 1,99 **** ! # Microsoft Developer Studio Project File - Name="datetime" - Package Owner=<4> ! # Microsoft Developer Studio Generated Build File, Format Version 6.00 ! # ** DO NOT EDIT ** ! ! # TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 ! ! CFG=datetime - Win32 Debug ! !MESSAGE This is not a valid makefile. To build this project using NMAKE, ! !MESSAGE use the Export Makefile command and run ! !MESSAGE ! !MESSAGE NMAKE /f "datetime.mak". ! !MESSAGE ! !MESSAGE You can specify a configuration when running NMAKE ! !MESSAGE by defining the macro CFG on the command line. For example: ! !MESSAGE ! !MESSAGE NMAKE /f "datetime.mak" CFG="datetime - Win32 Debug" ! !MESSAGE ! !MESSAGE Possible choices for configuration are: ! !MESSAGE ! !MESSAGE "datetime - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") ! !MESSAGE "datetime - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") ! !MESSAGE ! ! # Begin Project ! # PROP AllowPerConfigDependencies 0 ! # PROP Scc_ProjName "datetime" ! # PROP Scc_LocalPath ".." ! CPP=cl.exe ! MTL=midl.exe ! RSC=rc.exe ! ! !IF "$(CFG)" == "datetime - Win32 Release" ! ! # PROP BASE Use_MFC 0 ! # PROP BASE Use_Debug_Libraries 0 ! # PROP BASE Output_Dir "Release" ! # PROP BASE Intermediate_Dir "Release" ! # PROP BASE Target_Dir "" ! # PROP Use_MFC 0 ! # PROP Use_Debug_Libraries 0 ! # PROP Output_Dir "." ! # PROP Intermediate_Dir "x86-temp-release\datetime" ! # PROP Ignore_Export_Lib 0 ! # PROP Target_Dir "" ! F90=df.exe ! # ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c ! # ADD CPP /nologo /MD /W3 /GX /Zi /O2 /I "..\Include" /I "..\PC" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c ! # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 ! # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 ! # ADD BASE RSC /l 0x409 /d "NDEBUG" ! # ADD RSC /l 0x409 /d "NDEBUG" ! BSC32=bscmake.exe ! # ADD BASE BSC32 /nologo ! # ADD BSC32 /nologo ! LINK32=link.exe ! # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 ! # ADD LINK32 user32.lib kernel32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib /nologo /base:"0x1D180000" /subsystem:windows /dll /debug /machine:I386 /nodefaultlib:"libc" /out:"./datetime.pyd" ! # SUBTRACT LINK32 /pdb:none ! ! !ELSEIF "$(CFG)" == "datetime - Win32 Debug" ! ! # PROP BASE Use_MFC 0 ! # PROP BASE Use_Debug_Libraries 1 ! # PROP BASE Output_Dir "Debug" ! # PROP BASE Intermediate_Dir "Debug" ! # PROP BASE Target_Dir "" ! # PROP Use_MFC 0 ! # PROP Use_Debug_Libraries 1 ! # PROP Output_Dir "." ! # PROP Intermediate_Dir "x86-temp-debug\datetime" ! # PROP Ignore_Export_Lib 0 ! # PROP Target_Dir "" ! F90=df.exe ! # ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c ! # ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\Include" /I "..\PC" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c ! # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 ! # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 ! # ADD BASE RSC /l 0x409 /d "_DEBUG" ! # ADD RSC /l 0x409 /d "_DEBUG" ! BSC32=bscmake.exe ! # ADD BASE BSC32 /nologo ! # ADD BSC32 /nologo ! LINK32=link.exe ! # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept ! # ADD LINK32 user32.lib kernel32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib /nologo /base:"0x1D180000" /subsystem:windows /dll /debug /machine:I386 /nodefaultlib:"libc" /nodefaultlib:"msvcrt" /out:"./datetime_d.pyd" /pdbtype:sept ! # SUBTRACT LINK32 /pdb:none ! ! !ENDIF ! ! # Begin Target ! ! # Name "datetime - Win32 Release" ! # Name "datetime - Win32 Debug" ! # Begin Source File ! ! SOURCE=..\Modules\datetimemodule.c ! # End Source File ! # End Target ! # End Project --- 1,99 ---- ! # Microsoft Developer Studio Project File - Name="datetime" - Package Owner=<4> ! # Microsoft Developer Studio Generated Build File, Format Version 6.00 ! # ** DO NOT EDIT ** ! ! # TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 ! ! CFG=datetime - Win32 Debug ! !MESSAGE This is not a valid makefile. To build this project using NMAKE, ! !MESSAGE use the Export Makefile command and run ! !MESSAGE ! !MESSAGE NMAKE /f "datetime.mak". ! !MESSAGE ! !MESSAGE You can specify a configuration when running NMAKE ! !MESSAGE by defining the macro CFG on the command line. For example: ! !MESSAGE ! !MESSAGE NMAKE /f "datetime.mak" CFG="datetime - Win32 Debug" ! !MESSAGE ! !MESSAGE Possible choices for configuration are: ! !MESSAGE ! !MESSAGE "datetime - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") ! !MESSAGE "datetime - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") ! !MESSAGE ! ! # Begin Project ! # PROP AllowPerConfigDependencies 0 ! # PROP Scc_ProjName "datetime" ! # PROP Scc_LocalPath ".." ! CPP=cl.exe ! MTL=midl.exe ! RSC=rc.exe ! ! !IF "$(CFG)" == "datetime - Win32 Release" ! ! # PROP BASE Use_MFC 0 ! # PROP BASE Use_Debug_Libraries 0 ! # PROP BASE Output_Dir "Release" ! # PROP BASE Intermediate_Dir "Release" ! # PROP BASE Target_Dir "" ! # PROP Use_MFC 0 ! # PROP Use_Debug_Libraries 0 ! # PROP Output_Dir "." ! # PROP Intermediate_Dir "x86-temp-release\datetime" ! # PROP Ignore_Export_Lib 0 ! # PROP Target_Dir "" ! F90=df.exe ! # ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c ! # ADD CPP /nologo /MD /W3 /GX /Zi /O2 /I "..\Include" /I "..\PC" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c ! # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 ! # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 ! # ADD BASE RSC /l 0x409 /d "NDEBUG" ! # ADD RSC /l 0x409 /d "NDEBUG" ! BSC32=bscmake.exe ! # ADD BASE BSC32 /nologo ! # ADD BSC32 /nologo ! LINK32=link.exe ! # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 ! # ADD LINK32 user32.lib kernel32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib /nologo /base:"0x1D180000" /subsystem:windows /dll /debug /machine:I386 /nodefaultlib:"libc" /out:"./datetime.pyd" ! # SUBTRACT LINK32 /pdb:none ! ! !ELSEIF "$(CFG)" == "datetime - Win32 Debug" ! ! # PROP BASE Use_MFC 0 ! # PROP BASE Use_Debug_Libraries 1 ! # PROP BASE Output_Dir "Debug" ! # PROP BASE Intermediate_Dir "Debug" ! # PROP BASE Target_Dir "" ! # PROP Use_MFC 0 ! # PROP Use_Debug_Libraries 1 ! # PROP Output_Dir "." ! # PROP Intermediate_Dir "x86-temp-debug\datetime" ! # PROP Ignore_Export_Lib 0 ! # PROP Target_Dir "" ! F90=df.exe ! # ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c ! # ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\Include" /I "..\PC" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c ! # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 ! # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 ! # ADD BASE RSC /l 0x409 /d "_DEBUG" ! # ADD RSC /l 0x409 /d "_DEBUG" ! BSC32=bscmake.exe ! # ADD BASE BSC32 /nologo ! # ADD BSC32 /nologo ! LINK32=link.exe ! # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept ! # ADD LINK32 user32.lib kernel32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib /nologo /base:"0x1D180000" /subsystem:windows /dll /debug /machine:I386 /nodefaultlib:"libc" /nodefaultlib:"msvcrt" /out:"./datetime_d.pyd" /pdbtype:sept ! # SUBTRACT LINK32 /pdb:none ! ! !ENDIF ! ! # Begin Target ! ! # Name "datetime - Win32 Release" ! # Name "datetime - Win32 Debug" ! # Begin Source File ! ! SOURCE=..\Modules\datetimemodule.c ! # End Source File ! # End Target ! # End Project From montanaro@users.sourceforge.net Tue Jul 8 22:17:27 2003 From: montanaro@users.sourceforge.net (montanaro@users.sourceforge.net) Date: Tue, 08 Jul 2003 14:17:27 -0700 Subject: [Python-checkins] python/dist/src/Modules md5module.c,2.34,2.35 Message-ID: Update of /cvsroot/python/python/dist/src/Modules In directory sc8-pr-cvs1:/tmp/cvs-serv22322 Modified Files: md5module.c Log Message: typo Index: md5module.c =================================================================== RCS file: /cvsroot/python/python/dist/src/Modules/md5module.c,v retrieving revision 2.34 retrieving revision 2.35 diff -C2 -d -r2.34 -r2.35 *** md5module.c 11 Oct 2002 21:53:01 -0000 2.34 --- md5module.c 8 Jul 2003 21:17:25 -0000 2.35 *************** *** 87,91 **** \n\ Return the digest of the strings passed to the update() method so\n\ ! far. This is an 16-byte string which may contain non-ASCII characters,\n\ including null bytes."); --- 87,91 ---- \n\ Return the digest of the strings passed to the update() method so\n\ ! far. This is a 16-byte string which may contain non-ASCII characters,\n\ including null bytes."); From bcannon@users.sourceforge.net Wed Jul 9 05:18:04 2003 From: bcannon@users.sourceforge.net (bcannon@users.sourceforge.net) Date: Tue, 08 Jul 2003 21:18:04 -0700 Subject: [Python-checkins] python/dist/src/Python compile.txt,1.1.2.4,1.1.2.5 Message-ID: Update of /cvsroot/python/python/dist/src/Python In directory sc8-pr-cvs1:/tmp/cvs-serv22899/Python Modified Files: Tag: ast-branch compile.txt Log Message: Basic grammar corrections and add a new CST->AST section. Index: compile.txt =================================================================== RCS file: /cvsroot/python/python/dist/src/Python/Attic/compile.txt,v retrieving revision 1.1.2.4 retrieving revision 1.1.2.5 diff -C2 -d -r1.1.2.4 -r1.1.2.5 *** compile.txt 29 Apr 2003 00:44:41 -0000 1.1.2.4 --- compile.txt 9 Jul 2003 04:18:02 -0000 1.1.2.5 *************** *** 4,7 **** --- 4,8 ---- Parsing ------- + XXX Fill in Abstract Syntax Tree (AST) *************** *** 81,84 **** --- 82,88 ---- initializes the ``name``, ``args``, and ``body`` fields. + CST to AST + ---------- + The parser generates a concrete syntax tree represented by a ``node *`` defined in ``Include/node.h``. The abstract syntax is generated *************** *** 87,90 **** --- 91,109 ---- mod_ty PyAST_FromNode(const node *n); + It does this by calling various functions in the file that all have the + name ast_for_xxx where xxx is what the rule of the grammar (as defined + in ``Grammar/Grammar``) that the function handles (alias_for_import_name + is the exception to this). These in turn call the constructor functions + as defined by the ASDL grammar to create the nodes of the AST. + + Common macros used as defined in ``Include/node.h``: + - CHILD(node, n) -- Returns the nth child of node using zero-offset + indexing + - NCH(node) -- Number of children node has + - STR(node) -- String representation of node + - TYPE(node) -- The type of node as listed in ``Include/graminit.h`` + - REQ(node, type) -- Assert that the node is the type that is expected + + Code Generation and Basic Blocks -------------------------------- *************** *** 93,97 **** and the helper functions and macros. ! - for each ast type (mod, stmt, expr, ...) define function with a switch statement. inline code generation for simple things, call function compiler_xxx where xxx is kind name for others. --- 112,116 ---- and the helper functions and macros. ! - for each ast type (mod, stmt, expr, ...), define a function with a switch statement. inline code generation for simple things, call function compiler_xxx where xxx is kind name for others. *************** *** 116,125 **** - all functions return true on success, false on failure ! Code is generate using a simple basic block interface. ! - each block has single entry point - possibly multiple exit points - when generating jumps, always jump to a block ! - for code unit, blocks identified by int id - NEW_BLOCK() -- create block and set it as current --- 135,144 ---- - all functions return true on success, false on failure ! Code is generated using a simple, basic block interface. ! - each block has a single entry point - possibly multiple exit points - when generating jumps, always jump to a block ! - for a code unit, blocks are identified by its int id - NEW_BLOCK() -- create block and set it as current *************** *** 134,138 **** ADDOP(c, opcode) -- opcode with no arguments ADDOP_I(c, opcode, oparg) -- oparg is a C int ! ADDOP_O(c, opcode, oparg, namespace) -- oparg is a PyObject * namespace is the name of a code object member that contains the set of objects. For example, --- 153,157 ---- ADDOP(c, opcode) -- opcode with no arguments ADDOP_I(c, opcode, oparg) -- oparg is a C int ! ADDOP_O(c, opcode, oparg, namespace) -- oparg is a PyObject * , namespace is the name of a code object member that contains the set of objects. For example, *************** *** 186,190 **** - ast.c ! Converts Python's concrete syntax tree into abstract syntax. - compile.txt --- 205,209 ---- - ast.c ! Converts Python's concrete syntax tree into the abstract syntax tree. - compile.txt From kbk@users.sourceforge.net Wed Jul 9 05:27:26 2003 From: kbk@users.sourceforge.net (kbk@users.sourceforge.net) Date: Tue, 08 Jul 2003 21:27:26 -0700 Subject: [Python-checkins] python/dist/src/Lib/idlelib PyShell.py,1.78,1.79 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/idlelib In directory sc8-pr-cvs1:/tmp/cvs-serv23208 Modified Files: PyShell.py Log Message: SF Bug 767794 "Break or continue outside loop causes crash" Index: PyShell.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/idlelib/PyShell.py,v retrieving revision 1.78 retrieving revision 1.79 diff -C2 -d -r1.78 -r1.79 *** PyShell.py 22 Jun 2003 07:52:56 -0000 1.78 --- PyShell.py 9 Jul 2003 04:27:24 -0000 1.79 *************** *** 606,609 **** --- 606,611 ---- try: msg, (dummy_filename, lineno, offset, line) = value + if not offset: + offset = 0 except: ok = 0 From greg@users.sourceforge.net Wed Jul 9 05:46:01 2003 From: greg@users.sourceforge.net (greg@users.sourceforge.net) Date: Tue, 08 Jul 2003 21:46:01 -0700 Subject: [Python-checkins] python/dist/src/Lib/bsddb dbobj.py,1.6,1.7 dbtables.py,1.7,1.8 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/bsddb In directory sc8-pr-cvs1:/tmp/cvs-serv26130/bsddb Modified Files: dbobj.py dbtables.py Log Message: bsddb 4.1.6: * Extended DB & DBEnv set_get_returns_none functionality to take a "level" instead of a boolean flag. The boolean 0 and 1 values still have the same effect. A value of 2 extends the "return None instead of raising an exception" behaviour to the DBCursor set methods. This will become the default behaviour in pybsddb 4.2. * Fixed a typo in DBCursor.join_item method that made it crash instead of returning a value. Obviously nobody uses it. Wrote a test case for join and join_item. Index: dbobj.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/bsddb/dbobj.py,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** dbobj.py 24 Apr 2003 16:02:45 -0000 1.6 --- dbobj.py 9 Jul 2003 04:45:59 -0000 1.7 *************** *** 16,19 **** --- 16,25 ---- # + # + # TODO it would be *really nice* to have an automatic shadow class populator + # so that new methods don't need to be added here manually after being + # added to _bsddb.c. + # + import db *************** *** 58,61 **** --- 64,69 ---- def set_mp_mmapsize(self, *args, **kwargs): return apply(self._cobj.set_mp_mmapsize, args, kwargs) + def set_timeout(self, *args, **kwargs): + return apply(self._cobj.set_timeout, args, kwargs) def set_tmp_dir(self, *args, **kwargs): return apply(self._cobj.set_tmp_dir, args, kwargs) Index: dbtables.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/bsddb/dbtables.py,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** dbtables.py 28 Jan 2003 17:20:42 -0000 1.7 --- dbtables.py 9 Jul 2003 04:45:59 -0000 1.8 *************** *** 156,159 **** --- 156,162 ---- myflags |= DB_TRUNCATE self.db = DB(self.env) + # this code relies on DBCursor.set* methods to raise exceptions + # rather than returning None + self.db.set_get_returns_none(1) # allow duplicate entries [warning: be careful w/ metadata] self.db.set_flags(DB_DUP) From greg@users.sourceforge.net Wed Jul 9 05:46:01 2003 From: greg@users.sourceforge.net (greg@users.sourceforge.net) Date: Tue, 08 Jul 2003 21:46:01 -0700 Subject: [Python-checkins] python/dist/src/Lib/bsddb/test test_associate.py,1.4,1.5 test_basics.py,1.6,1.7 test_join.py,1.3,1.4 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/bsddb/test In directory sc8-pr-cvs1:/tmp/cvs-serv26130/bsddb/test Modified Files: test_associate.py test_basics.py test_join.py Log Message: bsddb 4.1.6: * Extended DB & DBEnv set_get_returns_none functionality to take a "level" instead of a boolean flag. The boolean 0 and 1 values still have the same effect. A value of 2 extends the "return None instead of raising an exception" behaviour to the DBCursor set methods. This will become the default behaviour in pybsddb 4.2. * Fixed a typo in DBCursor.join_item method that made it crash instead of returning a value. Obviously nobody uses it. Wrote a test case for join and join_item. Index: test_associate.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/bsddb/test/test_associate.py,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** test_associate.py 28 Jan 2003 17:20:43 -0000 1.4 --- test_associate.py 9 Jul 2003 04:45:59 -0000 1.5 *************** *** 1,4 **** """ ! TestCases for multi-threaded access to a DB. """ --- 1,4 ---- """ ! TestCases for DB.associate. """ Index: test_basics.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/bsddb/test/test_basics.py,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** test_basics.py 28 Jan 2003 17:20:43 -0000 1.6 --- test_basics.py 9 Jul 2003 04:45:59 -0000 1.7 *************** *** 283,291 **** #---------------------------------------- ! def test03_SimpleCursorStuff(self): if verbose: print '\n', '-=' * 30 ! print "Running %s.test03_SimpleCursorStuff..." % \ ! self.__class__.__name__ if self.env and self.dbopenflags & db.DB_AUTO_COMMIT: --- 283,291 ---- #---------------------------------------- ! def test03_SimpleCursorStuff(self, get_raises_error=0, set_raises_error=1): if verbose: print '\n', '-=' * 30 ! print "Running %s.test03_SimpleCursorStuff (get_error %s, set_error %s)..." % \ ! (self.__class__.__name__, get_raises_error, set_raises_error) if self.env and self.dbopenflags & db.DB_AUTO_COMMIT: *************** *** 301,305 **** if verbose and count % 100 == 0: print rec ! rec = c.next() assert count == 1000 --- 301,313 ---- if verbose and count % 100 == 0: print rec ! try: ! rec = c.next() ! except db.DBNotFoundError, val: ! if get_raises_error: ! assert val[0] == db.DB_NOTFOUND ! if verbose: print val ! rec = None ! else: ! self.fail("unexpected DBNotFoundError") assert count == 1000 *************** *** 312,316 **** if verbose and count % 100 == 0: print rec ! rec = c.prev() assert count == 1000 --- 320,332 ---- if verbose and count % 100 == 0: print rec ! try: ! rec = c.prev() ! except db.DBNotFoundError, val: ! if get_raises_error: ! assert val[0] == db.DB_NOTFOUND ! if verbose: print val ! rec = None ! else: ! self.fail("unexpected DBNotFoundError") assert count == 1000 *************** *** 323,332 **** try: ! c.set('bad key') except db.DBNotFoundError, val: assert val[0] == db.DB_NOTFOUND if verbose: print val else: ! self.fail("expected exception") rec = c.get_both('0404', self.makeData('0404')) --- 339,351 ---- try: ! n = c.set('bad key') except db.DBNotFoundError, val: assert val[0] == db.DB_NOTFOUND if verbose: print val else: ! if set_raises_error: ! self.fail("expected exception") ! if n != None: ! self.fail("expected None: "+`n`) rec = c.get_both('0404', self.makeData('0404')) *************** *** 334,343 **** try: ! c.get_both('0404', 'bad data') except db.DBNotFoundError, val: assert val[0] == db.DB_NOTFOUND if verbose: print val else: ! self.fail("expected exception") if self.d.get_type() == db.DB_BTREE: --- 353,365 ---- try: ! n = c.get_both('0404', 'bad data') except db.DBNotFoundError, val: assert val[0] == db.DB_NOTFOUND if verbose: print val else: ! if get_raises_error: ! self.fail("expected exception") ! if n != None: ! self.fail("expected None: "+`n`) if self.d.get_type() == db.DB_BTREE: *************** *** 415,418 **** --- 437,463 ---- del oldcursor + def test03b_SimpleCursorWithoutGetReturnsNone0(self): + # same test but raise exceptions instead of returning None + if verbose: + print '\n', '-=' * 30 + print "Running %s.test03b_SimpleCursorStuffWithoutGetReturnsNone..." % \ + self.__class__.__name__ + + old = self.d.set_get_returns_none(0) + assert old == 1 + self.test03_SimpleCursorStuff(get_raises_error=1, set_raises_error=1) + + def test03c_SimpleCursorGetReturnsNone2(self): + # same test but raise exceptions instead of returning None + if verbose: + print '\n', '-=' * 30 + print "Running %s.test03c_SimpleCursorStuffWithoutSetReturnsNone..." % \ + self.__class__.__name__ + + old = self.d.set_get_returns_none(2) + assert old == 1 + old = self.d.set_get_returns_none(2) + assert old == 2 + self.test03_SimpleCursorStuff(get_raises_error=0, set_raises_error=0) #---------------------------------------- Index: test_join.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/bsddb/test/test_join.py,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** test_join.py 30 Dec 2002 20:44:16 -0000 1.3 --- test_join.py 9 Jul 2003 04:45:59 -0000 1.4 *************** *** 2,9 **** --- 2,117 ---- """ + import sys, os, string + import tempfile + import time + from pprint import pprint + + try: + from threading import Thread, currentThread + have_threads = 1 + except ImportError: + have_threads = 0 + import unittest + from test_all import verbose + + try: + # For Python 2.3 + from bsddb import db, dbshelve + except ImportError: + # For earlier Pythons w/distutils pybsddb + from bsddb3 import db, dbshelve + + + #---------------------------------------------------------------------- + + ProductIndex = [ + ('apple', "Convenience Store"), + ('blueberry', "Farmer's Market"), + ('shotgun', "S-Mart"), # Aisle 12 + ('pear', "Farmer's Market"), + ('chainsaw', "S-Mart"), # "Shop smart. Shop S-Mart!" + ('strawberry', "Farmer's Market"), + ] + + ColorIndex = [ + ('blue', "blueberry"), + ('red', "apple"), + ('red', "chainsaw"), + ('red', "strawberry"), + ('yellow', "peach"), + ('yellow', "pear"), + ('black', "shotgun"), + ] + + class JoinTestCase(unittest.TestCase): + keytype = '' + + def setUp(self): + self.filename = self.__class__.__name__ + '.db' + homeDir = os.path.join(os.path.dirname(sys.argv[0]), 'db_home') + self.homeDir = homeDir + try: os.mkdir(homeDir) + except os.error: pass + self.env = db.DBEnv() + self.env.open(homeDir, db.DB_CREATE | db.DB_INIT_MPOOL | db.DB_INIT_LOCK ) + + def tearDown(self): + self.env.close() + import glob + files = glob.glob(os.path.join(self.homeDir, '*')) + for file in files: + os.remove(file) + + def test01_join(self): + if verbose: + print '\n', '-=' * 30 + print "Running %s.test01_join..." % \ + self.__class__.__name__ + + # create and populate primary index + priDB = db.DB(self.env) + priDB.open(self.filename, "primary", db.DB_BTREE, db.DB_CREATE) + map(lambda t: apply(priDB.put, t), ProductIndex) + + # create and populate secondary index + secDB = db.DB(self.env) + secDB.set_flags(db.DB_DUP | db.DB_DUPSORT) + secDB.open(self.filename, "secondary", db.DB_BTREE, db.DB_CREATE) + map(lambda t: apply(secDB.put, t), ColorIndex) + + sCursor = None + jCursor = None + try: + # lets look up all of the red Products + sCursor = secDB.cursor() + assert sCursor.set('red') + + # FIXME: jCursor doesn't properly hold a reference to its + # cursors, if they are closed before jcursor is used it + # can cause a crash. + jCursor = priDB.join([sCursor]) + + if jCursor.get(0) != ('apple', "Convenience Store"): + self.fail("join cursor positioned wrong") + if jCursor.join_item() != 'chainsaw': + self.fail("DBCursor.join_item returned wrong item") + if jCursor.get(0)[0] != 'strawberry': + self.fail("join cursor returned wrong thing") + if jCursor.get(0): # there were only three red items to return + self.fail("join cursor returned too many items") + finally: + if jCursor: + jCursor.close() + if sCursor: + sCursor.close() + priDB.close() + secDB.close() def test_suite(): suite = unittest.TestSuite() + + suite.addTest(unittest.makeSuite(JoinTestCase)) + return suite From greg@users.sourceforge.net Wed Jul 9 05:46:01 2003 From: greg@users.sourceforge.net (greg@users.sourceforge.net) Date: Tue, 08 Jul 2003 21:46:01 -0700 Subject: [Python-checkins] python/dist/src/Modules _bsddb.c,1.15,1.16 Message-ID: Update of /cvsroot/python/python/dist/src/Modules In directory sc8-pr-cvs1:/tmp/cvs-serv26130/extsrc Modified Files: _bsddb.c Log Message: bsddb 4.1.6: * Extended DB & DBEnv set_get_returns_none functionality to take a "level" instead of a boolean flag. The boolean 0 and 1 values still have the same effect. A value of 2 extends the "return None instead of raising an exception" behaviour to the DBCursor set methods. This will become the default behaviour in pybsddb 4.2. * Fixed a typo in DBCursor.join_item method that made it crash instead of returning a value. Obviously nobody uses it. Wrote a test case for join and join_item. Index: _bsddb.c =================================================================== RCS file: /cvsroot/python/python/dist/src/Modules/_bsddb.c,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** _bsddb.c 7 Jul 2003 19:06:45 -0000 1.15 --- _bsddb.c 9 Jul 2003 04:45:59 -0000 1.16 *************** *** 94,98 **** #define DBVER (DB_VERSION_MAJOR * 10 + DB_VERSION_MINOR) ! #define PY_BSDDB_VERSION "4.1.5" static char *rcs_id = "$Id$"; --- 94,98 ---- #define DBVER (DB_VERSION_MAJOR * 10 + DB_VERSION_MINOR) ! #define PY_BSDDB_VERSION "4.1.6" static char *rcs_id = "$Id$"; *************** *** 142,151 **** #endif - - /* What is the default behaviour when DB->get or DBCursor->get returns a - DB_NOTFOUND error? Return None or raise an exception? */ - #define GET_RETURNS_NONE_DEFAULT 1 - - /* Should DB_INCOMPLETE be turned into a warning or an exception? */ #define INCOMPLETE_IS_WARNING 1 --- 142,145 ---- *************** *** 190,193 **** --- 184,199 ---- /* Structure definitions */ + struct behaviourFlags { + /* What is the default behaviour when DB->get or DBCursor->get returns a + DB_NOTFOUND error? Return None or raise an exception? */ + unsigned int getReturnsNone : 1; + /* What is the default behaviour for DBCursor.set* methods when DBCursor->get + * returns a DB_NOTFOUND error? Return None or raise an exception? */ + unsigned int cursorSetReturnsNone : 1; + }; + + #define DEFAULT_GET_RETURNS_NONE 1 + #define DEFAULT_CURSOR_SET_RETURNS_NONE 0 /* 0 in pybsddb < 4.2, python < 2.4 */ + typedef struct { PyObject_HEAD *************** *** 195,199 **** u_int32_t flags; /* saved flags from open() */ int closed; ! int getReturnsNone; } DBEnvObject; --- 201,205 ---- u_int32_t flags; /* saved flags from open() */ int closed; ! struct behaviourFlags moduleFlags; } DBEnvObject; *************** *** 206,210 **** u_int32_t setflags; /* saved flags from set_flags() */ int haveStat; ! int getReturnsNone; #if (DBVER >= 33) PyObject* associateCallback; --- 212,216 ---- u_int32_t setflags; /* saved flags from set_flags() */ int haveStat; ! struct behaviourFlags moduleFlags; #if (DBVER >= 33) PyObject* associateCallback; *************** *** 596,600 **** MYDB_END_ALLOW_THREADS; ! if ((err == DB_NOTFOUND) && self->mydb->getReturnsNone) { Py_INCREF(Py_None); retval = Py_None; --- 602,606 ---- MYDB_END_ALLOW_THREADS; ! if ((err == DB_NOTFOUND) && self->mydb->moduleFlags.getReturnsNone) { Py_INCREF(Py_None); retval = Py_None; *************** *** 682,688 **** if (self->myenvobj) ! self->getReturnsNone = self->myenvobj->getReturnsNone; else ! self->getReturnsNone = GET_RETURNS_NONE_DEFAULT; MYDB_BEGIN_ALLOW_THREADS; --- 688,695 ---- if (self->myenvobj) ! self->moduleFlags = self->myenvobj->moduleFlags; else ! self->moduleFlags.getReturnsNone = DEFAULT_GET_RETURNS_NONE; ! self->moduleFlags.cursorSetReturnsNone = DEFAULT_CURSOR_SET_RETURNS_NONE; MYDB_BEGIN_ALLOW_THREADS; *************** *** 798,802 **** self->closed = 1; self->flags = flags; ! self->getReturnsNone = GET_RETURNS_NONE_DEFAULT; MYDB_BEGIN_ALLOW_THREADS; --- 805,810 ---- self->closed = 1; self->flags = flags; ! self->moduleFlags.getReturnsNone = DEFAULT_GET_RETURNS_NONE; ! self->moduleFlags.cursorSetReturnsNone = DEFAULT_CURSOR_SET_RETURNS_NONE; MYDB_BEGIN_ALLOW_THREADS; *************** *** 1183,1187 **** MYDB_END_ALLOW_THREADS; ! if ((err == DB_NOTFOUND) && self->getReturnsNone) { err = 0; Py_INCREF(Py_None); --- 1191,1195 ---- MYDB_END_ALLOW_THREADS; ! if ((err == DB_NOTFOUND) && self->moduleFlags.getReturnsNone) { err = 0; Py_INCREF(Py_None); *************** *** 1325,1329 **** retval = dfltobj; } ! else if ((err == DB_NOTFOUND) && self->getReturnsNone) { err = 0; Py_INCREF(Py_None); --- 1333,1337 ---- retval = dfltobj; } ! else if ((err == DB_NOTFOUND) && self->moduleFlags.getReturnsNone) { err = 0; Py_INCREF(Py_None); *************** *** 1425,1429 **** MYDB_END_ALLOW_THREADS; ! if ((err == DB_NOTFOUND) && self->getReturnsNone) { err = 0; Py_INCREF(Py_None); --- 1433,1437 ---- MYDB_END_ALLOW_THREADS; ! if ((err == DB_NOTFOUND) && self->moduleFlags.getReturnsNone) { err = 0; Py_INCREF(Py_None); *************** *** 1526,1529 **** --- 1534,1542 ---- RETURN_IF_ERR(); + // FIXME: this is a buggy interface. The returned cursor + // contains internal references to the passed in cursors + // but does not hold python references to them or prevent + // them from being closed prematurely. This can cause + // python to crash when things are done in the wrong order. return (PyObject*) newDBCursorObject(dbc, self); } *************** *** 2157,2161 **** { int flags=0; ! int oldValue; if (!PyArg_ParseTuple(args,"i:set_get_returns_none", &flags)) --- 2170,2174 ---- { int flags=0; ! int oldValue=0; if (!PyArg_ParseTuple(args,"i:set_get_returns_none", &flags)) *************** *** 2163,2168 **** CHECK_DB_NOT_CLOSED(self); ! oldValue = self->getReturnsNone; ! self->getReturnsNone = flags; return PyInt_FromLong(oldValue); } --- 2176,2185 ---- CHECK_DB_NOT_CLOSED(self); ! if (self->moduleFlags.getReturnsNone) ! ++oldValue; ! if (self->moduleFlags.cursorSetReturnsNone) ! ++oldValue; ! self->moduleFlags.getReturnsNone = (flags >= 1); ! self->moduleFlags.cursorSetReturnsNone = (flags >= 2); return PyInt_FromLong(oldValue); } *************** *** 2644,2648 **** ! if ((err == DB_NOTFOUND) && self->mydb->getReturnsNone) { Py_INCREF(Py_None); retval = Py_None; --- 2661,2665 ---- ! if ((err == DB_NOTFOUND) && self->mydb->moduleFlags.getReturnsNone) { Py_INCREF(Py_None); retval = Py_None; *************** *** 2791,2795 **** err = self->dbc->c_get(self->dbc, &key, &data, flags|DB_SET); MYDB_END_ALLOW_THREADS; ! if (makeDBError(err)) { retval = NULL; } --- 2808,2816 ---- err = self->dbc->c_get(self->dbc, &key, &data, flags|DB_SET); MYDB_END_ALLOW_THREADS; ! if ((err == DB_NOTFOUND) && self->mydb->moduleFlags.cursorSetReturnsNone) { ! Py_INCREF(Py_None); ! retval = Py_None; ! } ! else if (makeDBError(err)) { retval = NULL; } *************** *** 2849,2853 **** err = self->dbc->c_get(self->dbc, &key, &data, flags|DB_SET_RANGE); MYDB_END_ALLOW_THREADS; ! if (makeDBError(err)) { retval = NULL; } --- 2870,2878 ---- err = self->dbc->c_get(self->dbc, &key, &data, flags|DB_SET_RANGE); MYDB_END_ALLOW_THREADS; ! if ((err == DB_NOTFOUND) && self->mydb->moduleFlags.cursorSetReturnsNone) { ! Py_INCREF(Py_None); ! retval = Py_None; ! } ! else if (makeDBError(err)) { retval = NULL; } *************** *** 2876,2892 **** } - static PyObject* ! DBC_get_both(DBCursorObject* self, PyObject* args) { ! int err, flags=0; DBT key, data; ! PyObject* retval, *keyobj, *dataobj; ! ! if (!PyArg_ParseTuple(args, "OO|i:get_both", &keyobj, &dataobj, &flags)) ! return NULL; ! ! CHECK_CURSOR_NOT_CLOSED(self); if (!make_key_dbt(self->mydb, keyobj, &key, NULL)) return NULL; --- 2901,2913 ---- } static PyObject* ! _DBC_get_set_both(DBCursorObject* self, PyObject* keyobj, PyObject* dataobj, ! int flags, unsigned int returnsNone) { ! int err; DBT key, data; ! PyObject* retval; + // the caller did this: CHECK_CURSOR_NOT_CLOSED(self); if (!make_key_dbt(self->mydb, keyobj, &key, NULL)) return NULL; *************** *** 2897,2901 **** err = self->dbc->c_get(self->dbc, &key, &data, flags|DB_GET_BOTH); MYDB_END_ALLOW_THREADS; ! if (makeDBError(err)) { retval = NULL; } --- 2918,2926 ---- err = self->dbc->c_get(self->dbc, &key, &data, flags|DB_GET_BOTH); MYDB_END_ALLOW_THREADS; ! if ((err == DB_NOTFOUND) && returnsNone) { ! Py_INCREF(Py_None); ! retval = Py_None; ! } ! else if (makeDBError(err)) { retval = NULL; } *************** *** 2923,2926 **** --- 2948,2983 ---- } + static PyObject* + DBC_get_both(DBCursorObject* self, PyObject* args) + { + int flags=0; + PyObject *keyobj, *dataobj; + + if (!PyArg_ParseTuple(args, "OO|i:get_both", &keyobj, &dataobj, &flags)) + return NULL; + + // if the cursor is closed, self->mydb may be invalid + CHECK_CURSOR_NOT_CLOSED(self); + + return _DBC_get_set_both(self, keyobj, dataobj, flags, + self->mydb->moduleFlags.getReturnsNone); + } + + static PyObject* + DBC_set_both(DBCursorObject* self, PyObject* args) + { + int flags=0; + PyObject *keyobj, *dataobj; + + if (!PyArg_ParseTuple(args, "OO|i:set_both", &keyobj, &dataobj, &flags)) + return NULL; + + // if the cursor is closed, self->mydb may be invalid + CHECK_CURSOR_NOT_CLOSED(self); + + return _DBC_get_set_both(self, keyobj, dataobj, flags, + self->mydb->moduleFlags.cursorSetReturnsNone); + } + static PyObject* *************** *** 2966,2970 **** err = self->dbc->c_get(self->dbc, &key, &data, flags|DB_SET_RECNO); MYDB_END_ALLOW_THREADS; ! if (makeDBError(err)) { retval = NULL; } --- 3023,3031 ---- err = self->dbc->c_get(self->dbc, &key, &data, flags|DB_SET_RECNO); MYDB_END_ALLOW_THREADS; ! if ((err == DB_NOTFOUND) && self->mydb->moduleFlags.cursorSetReturnsNone) { ! Py_INCREF(Py_None); ! retval = Py_None; ! } ! else if (makeDBError(err)) { retval = NULL; } *************** *** 3011,3019 **** DBC_join_item(DBCursorObject* self, PyObject* args) { ! int err; DBT key, data; PyObject* retval; ! if (!PyArg_ParseTuple(args, ":join_item")) return NULL; --- 3072,3080 ---- DBC_join_item(DBCursorObject* self, PyObject* args) { ! int err, flags=0; DBT key, data; PyObject* retval; ! if (!PyArg_ParseTuple(args, "|i:join_item", &flags)) return NULL; *************** *** 3028,3034 **** MYDB_BEGIN_ALLOW_THREADS; ! err = self->dbc->c_get(self->dbc, &key, &data, DB_JOIN_ITEM); MYDB_END_ALLOW_THREADS; ! if (makeDBError(err)) { retval = NULL; } --- 3089,3099 ---- MYDB_BEGIN_ALLOW_THREADS; ! err = self->dbc->c_get(self->dbc, &key, &data, flags | DB_JOIN_ITEM); MYDB_END_ALLOW_THREADS; ! if ((err == DB_NOTFOUND) && self->mydb->moduleFlags.getReturnsNone) { ! Py_INCREF(Py_None); ! retval = Py_None; ! } ! else if (makeDBError(err)) { retval = NULL; } *************** *** 3749,3753 **** { int flags=0; ! int oldValue; if (!PyArg_ParseTuple(args,"i:set_get_returns_none", &flags)) --- 3814,3818 ---- { int flags=0; ! int oldValue=0; if (!PyArg_ParseTuple(args,"i:set_get_returns_none", &flags)) *************** *** 3755,3760 **** CHECK_ENV_NOT_CLOSED(self); ! oldValue = self->getReturnsNone; ! self->getReturnsNone = flags; return PyInt_FromLong(oldValue); } --- 3820,3829 ---- CHECK_ENV_NOT_CLOSED(self); ! if (self->moduleFlags.getReturnsNone) ! ++oldValue; ! if (self->moduleFlags.cursorSetReturnsNone) ! ++oldValue; ! self->moduleFlags.getReturnsNone = (flags >= 1); ! self->moduleFlags.cursorSetReturnsNone = (flags >= 2); return PyInt_FromLong(oldValue); } *************** *** 3978,3982 **** {"set_range", (PyCFunction)DBC_set_range, METH_VARARGS|METH_KEYWORDS}, {"get_both", (PyCFunction)DBC_get_both, METH_VARARGS}, ! {"set_both", (PyCFunction)DBC_get_both, METH_VARARGS}, {"set_recno", (PyCFunction)DBC_set_recno, METH_VARARGS|METH_KEYWORDS}, {"consume", (PyCFunction)DBC_consume, METH_VARARGS|METH_KEYWORDS}, --- 4047,4051 ---- {"set_range", (PyCFunction)DBC_set_range, METH_VARARGS|METH_KEYWORDS}, {"get_both", (PyCFunction)DBC_get_both, METH_VARARGS}, ! {"set_both", (PyCFunction)DBC_set_both, METH_VARARGS}, {"set_recno", (PyCFunction)DBC_set_recno, METH_VARARGS|METH_KEYWORDS}, {"consume", (PyCFunction)DBC_consume, METH_VARARGS|METH_KEYWORDS}, From mhammond@users.sourceforge.net Wed Jul 9 05:57:48 2003 From: mhammond@users.sourceforge.net (mhammond@users.sourceforge.net) Date: Tue, 08 Jul 2003 21:57:48 -0700 Subject: [Python-checkins] python/dist/src/Modules socketmodule.c,1.269,1.270 Message-ID: Update of /cvsroot/python/python/dist/src/Modules In directory sc8-pr-cvs1:/tmp/cvs-serv27314 Modified Files: socketmodule.c Log Message: Fix [ 766669 ] Consistent GPF on exit Use Py_AtExit instead of atexit so we are called during Py_Finalize() rather than during DLL teardown. Index: socketmodule.c =================================================================== RCS file: /cvsroot/python/python/dist/src/Modules/socketmodule.c,v retrieving revision 1.269 retrieving revision 1.270 diff -C2 -d -r1.269 -r1.270 *** socketmodule.c 29 Jun 2003 03:08:05 -0000 1.269 --- socketmodule.c 9 Jul 2003 04:57:46 -0000 1.270 *************** *** 3359,3363 **** switch (ret) { case 0: /* No error */ ! atexit(os_cleanup); return 1; /* Success */ case WSASYSNOTREADY: --- 3359,3363 ---- switch (ret) { case 0: /* No error */ ! Py_AtExit(os_cleanup); return 1; /* Success */ case WSASYSNOTREADY: From greg@users.sourceforge.net Wed Jul 9 06:29:26 2003 From: greg@users.sourceforge.net (greg@users.sourceforge.net) Date: Tue, 08 Jul 2003 22:29:26 -0700 Subject: [Python-checkins] python/dist/src/Lib/bsddb/test test_compat.py,1.4,1.5 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/bsddb/test In directory sc8-pr-cvs1:/tmp/cvs-serv30738/bsddb/test Modified Files: test_compat.py Log Message: bugfix: proper import bsddb exists below Index: test_compat.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/bsddb/test/test_compat.py,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** test_compat.py 28 Jan 2003 17:20:43 -0000 1.4 --- test_compat.py 9 Jul 2003 05:29:24 -0000 1.5 *************** *** 5,9 **** import sys, os, string - import bsddb import unittest import tempfile --- 5,8 ---- From greg@users.sourceforge.net Wed Jul 9 06:33:17 2003 From: greg@users.sourceforge.net (greg@users.sourceforge.net) Date: Tue, 08 Jul 2003 22:33:17 -0700 Subject: [Python-checkins] python/dist/src/Lib/bsddb/test test_join.py,1.4,1.5 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/bsddb/test In directory sc8-pr-cvs1:/tmp/cvs-serv31449/bsddb/test Modified Files: test_join.py Log Message: fix to work on python <= 2.1 Index: test_join.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/bsddb/test/test_join.py,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** test_join.py 9 Jul 2003 04:45:59 -0000 1.4 --- test_join.py 9 Jul 2003 05:33:14 -0000 1.5 *************** *** 73,77 **** priDB = db.DB(self.env) priDB.open(self.filename, "primary", db.DB_BTREE, db.DB_CREATE) ! map(lambda t: apply(priDB.put, t), ProductIndex) # create and populate secondary index --- 73,77 ---- priDB = db.DB(self.env) priDB.open(self.filename, "primary", db.DB_BTREE, db.DB_CREATE) ! map(lambda t, priDB=priDB: apply(priDB.put, t), ProductIndex) # create and populate secondary index *************** *** 79,83 **** secDB.set_flags(db.DB_DUP | db.DB_DUPSORT) secDB.open(self.filename, "secondary", db.DB_BTREE, db.DB_CREATE) ! map(lambda t: apply(secDB.put, t), ColorIndex) sCursor = None --- 79,83 ---- secDB.set_flags(db.DB_DUP | db.DB_DUPSORT) secDB.open(self.filename, "secondary", db.DB_BTREE, db.DB_CREATE) ! map(lambda t, secDB=secDB: apply(secDB.put, t), ColorIndex) sCursor = None From nnorwitz@users.sourceforge.net Wed Jul 9 13:41:57 2003 From: nnorwitz@users.sourceforge.net (nnorwitz@users.sourceforge.net) Date: Wed, 09 Jul 2003 05:41:57 -0700 Subject: [Python-checkins] python/dist/src/Doc/lib libthread.tex,1.29,1.30 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/lib In directory sc8-pr-cvs1:/tmp/cvs-serv19520/Doc/lib Modified Files: libthread.tex Log Message: Add versionadded. Remove duplicate "to" Index: libthread.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/libthread.tex,v retrieving revision 1.29 retrieving revision 1.30 diff -C2 -d -r1.29 -r1.30 *** libthread.tex 8 Jul 2003 17:07:20 -0000 1.29 --- libthread.tex 9 Jul 2003 12:41:55 -0000 1.30 *************** *** 46,50 **** \begin{funcdesc}{interrupt_main}{} Raise a KeyboardInterrupt in the main thread. A subthread can use this ! function to to interrupt the main thread. \end{funcdesc} --- 46,51 ---- \begin{funcdesc}{interrupt_main}{} Raise a KeyboardInterrupt in the main thread. A subthread can use this ! function to interrupt the main thread. ! \versionadded{2.3} \end{funcdesc} From bwarsaw@users.sourceforge.net Wed Jul 9 15:49:52 2003 From: bwarsaw@users.sourceforge.net (bwarsaw@users.sourceforge.net) Date: Wed, 09 Jul 2003 07:49:52 -0700 Subject: [Python-checkins] python/nondist/peps pep-0283.txt,1.37,1.38 Message-ID: Update of /cvsroot/python/python/nondist/peps In directory sc8-pr-cvs1:/tmp/cvs-serv4223 Modified Files: pep-0283.txt Log Message: Updated schedule Index: pep-0283.txt =================================================================== RCS file: /cvsroot/python/python/nondist/peps/pep-0283.txt,v retrieving revision 1.37 retrieving revision 1.38 diff -C2 -d -r1.37 -r1.38 *** pep-0283.txt 29 Jun 2003 19:01:15 -0000 1.37 --- pep-0283.txt 9 Jul 2003 14:49:49 -0000 1.38 *************** *** 30,42 **** beta 2 -- June 29, 2003 ! Here's a tenative schedule for the remaining releases: ! rc 1 -- late July ! final -- early August Release Manager ! Guido van Rossum. --- 30,43 ---- beta 2 -- June 29, 2003 ! Here is the schedule for the remaining releases: ! July 17, 2003 -- rc 1 ! July 24, 2003 -- rc 2 if necessary, otherwise final ! July 31, 2003 -- final (if rc 2) Release Manager ! Barry Warsaw, Jeremy Hylton From rhettinger@users.sourceforge.net Wed Jul 9 19:48:27 2003 From: rhettinger@users.sourceforge.net (rhettinger@users.sourceforge.net) Date: Wed, 09 Jul 2003 11:48:27 -0700 Subject: [Python-checkins] python/dist/src/Lib/idlelib ColorDelegator.py,1.10,1.11 EditorWindow.py,1.52,1.53 MultiStatusBar.py,1.3,1.4 OutputWindow.py,1.9,1.10 Percolator.py,1.3,1.4 PyShell.py,1.79,1.80 TreeWidget.py,1.6,1.7 WidgetRedirector.py,1.2,1.3 configDialog.py,1.54,1.55 keybindingDialog.py,1.10,1.11 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/idlelib In directory sc8-pr-cvs1:/tmp/cvs-serv8147 Modified Files: ColorDelegator.py EditorWindow.py MultiStatusBar.py OutputWindow.py Percolator.py PyShell.py TreeWidget.py WidgetRedirector.py configDialog.py keybindingDialog.py Log Message: SF patch #768187: replace apply(f, args, kwds) with f(*args, **kwds) Index: ColorDelegator.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/idlelib/ColorDelegator.py,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** ColorDelegator.py 31 Dec 2002 15:59:14 -0000 1.10 --- ColorDelegator.py 9 Jul 2003 18:48:24 -0000 1.11 *************** *** 51,55 **** for tag, cnf in self.tagdefs.items(): if cnf: ! apply(self.tag_configure, (tag,), cnf) self.tag_raise('sel') --- 51,55 ---- for tag, cnf in self.tagdefs.items(): if cnf: ! self.tag_configure(tag, **cnf) self.tag_raise('sel') Index: EditorWindow.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/idlelib/EditorWindow.py,v retrieving revision 1.52 retrieving revision 1.53 diff -C2 -d -r1.52 -r1.53 *** EditorWindow.py 12 Jun 2003 04:03:49 -0000 1.52 --- EditorWindow.py 9 Jul 2003 18:48:24 -0000 1.53 *************** *** 793,797 **** for event, keylist in keydefs.items(): if keylist: ! apply(text.event_add, (event,) + tuple(keylist)) def fill_menus(self, defs=None, keydefs=None): --- 793,797 ---- for event, keylist in keydefs.items(): if keylist: ! text.event_add(event, *keylist) def fill_menus(self, defs=None, keydefs=None): Index: MultiStatusBar.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/idlelib/MultiStatusBar.py,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** MultiStatusBar.py 13 Jul 2001 17:52:08 -0000 1.3 --- MultiStatusBar.py 9 Jul 2003 18:48:24 -0000 1.4 *************** *** 6,10 **** if master is None: master = Tk() ! apply(Frame.__init__, (self, master), kw) self.labels = {} --- 6,10 ---- if master is None: master = Tk() ! Frame.__init__(self, master, **kw) self.labels = {} Index: OutputWindow.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/idlelib/OutputWindow.py,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** OutputWindow.py 15 Jun 2003 17:49:59 -0000 1.9 --- OutputWindow.py 9 Jul 2003 18:48:24 -0000 1.10 *************** *** 14,18 **** def __init__(self, *args): ! apply(EditorWindow.__init__, (self,) + args) self.text.bind("<>", self.goto_file_line) --- 14,18 ---- def __init__(self, *args): ! EditorWindow.__init__(self, *args) self.text.bind("<>", self.goto_file_line) *************** *** 137,141 **** for tag, cnf in self.tagdefs.items(): if cnf: ! apply(text.tag_configure, (tag,), cnf) text.tag_raise('sel') self.write = self.owin.write --- 137,141 ---- for tag, cnf in self.tagdefs.items(): if cnf: ! text.tag_configure(tag, **cnf) text.tag_raise('sel') self.write = self.owin.write Index: Percolator.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/idlelib/Percolator.py,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Percolator.py 13 Jul 2001 20:00:15 -0000 1.3 --- Percolator.py 9 Jul 2003 18:48:24 -0000 1.4 *************** *** 60,67 **** def insert(self, *args): print self.name, ": insert", args ! apply(self.delegate.insert, args) def delete(self, *args): print self.name, ": delete", args ! apply(self.delegate.delete, args) root = Tk() root.wm_protocol("WM_DELETE_WINDOW", root.quit) --- 60,67 ---- def insert(self, *args): print self.name, ": insert", args ! self.delegate.insert(*args) def delete(self, *args): print self.name, ": delete", args ! self.delegate.delete(*args) root = Tk() root.wm_protocol("WM_DELETE_WINDOW", root.quit) Index: PyShell.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/idlelib/PyShell.py,v retrieving revision 1.79 retrieving revision 1.80 diff -C2 -d -r1.79 -r1.80 *** PyShell.py 9 Jul 2003 04:27:24 -0000 1.79 --- PyShell.py 9 Jul 2003 18:48:24 -0000 1.80 *************** *** 78,82 **** def __init__(self, *args): self.breakpoints = [] ! apply(EditorWindow.__init__, (self,) + args) self.text.bind("<>", self.set_breakpoint_here) self.text.bind("<>", self.clear_breakpoint_here) --- 78,82 ---- def __init__(self, *args): self.breakpoints = [] ! EditorWindow.__init__(self, *args) self.text.bind("<>", self.set_breakpoint_here) self.text.bind("<>", self.clear_breakpoint_here) Index: TreeWidget.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/idlelib/TreeWidget.py,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** TreeWidget.py 22 Jan 2003 00:31:09 -0000 1.6 --- TreeWidget.py 9 Jul 2003 18:48:24 -0000 1.7 *************** *** 415,419 **** self.frame.rowconfigure(0, weight=1) self.frame.columnconfigure(0, weight=1) ! self.canvas = apply(Canvas, (self.frame,), opts) self.canvas.grid(row=0, column=0, sticky="nsew") self.vbar = Scrollbar(self.frame, name="vbar") --- 415,419 ---- self.frame.rowconfigure(0, weight=1) self.frame.columnconfigure(0, weight=1) ! self.canvas = Canvas(self.frame, **opts) self.canvas.grid(row=0, column=0, sticky="nsew") self.vbar = Scrollbar(self.frame, name="vbar") Index: WidgetRedirector.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/idlelib/WidgetRedirector.py,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** WidgetRedirector.py 4 Jul 2001 03:15:10 -0000 1.2 --- WidgetRedirector.py 9 Jul 2003 18:48:24 -0000 1.3 *************** *** 52,56 **** try: if m: ! return apply(m, args) else: return self.tk.call((self.orig, cmd) + args) --- 52,56 ---- try: if m: ! return m(*args) else: return self.tk.call((self.orig, cmd) + args) *************** *** 85,89 **** def my_insert(*args): print "insert", args ! apply(orig_insert, args) orig_insert = redir.register("insert", my_insert) root.mainloop() --- 85,89 ---- def my_insert(*args): print "insert", args ! orig_insert(*args) orig_insert = redir.register("insert", my_insert) root.mainloop() Index: configDialog.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/idlelib/configDialog.py,v retrieving revision 1.54 retrieving revision 1.55 diff -C2 -d -r1.54 -r1.55 *** configDialog.py 26 May 2003 20:35:53 -0000 1.54 --- configDialog.py 9 Jul 2003 18:48:24 -0000 1.55 *************** *** 795,800 **** else: plane='background' sampleElement=self.themeElements[self.highlightTarget.get()][0] ! apply(self.textHighlightSample.tag_config, ! (sampleElement,),{plane:newColour}) theme=self.customTheme.get() themeElement=sampleElement+'-'+plane --- 795,799 ---- else: plane='background' sampleElement=self.themeElements[self.highlightTarget.get()][0] ! self.textHighlightSample.tag_config(sampleElement, **{plane:newColour}) theme=self.customTheme.get() themeElement=sampleElement+'-'+plane *************** *** 891,895 **** if themeDict.has_key(element+'-background'): colours['background']=themeDict[element+'-background'] ! apply(self.textHighlightSample.tag_config,(element,),colours) self.SetColourSample() --- 890,894 ---- if themeDict.has_key(element+'-background'): colours['background']=themeDict[element+'-background'] ! self.textHighlightSample.tag_config(element, **colours) self.SetColourSample() Index: keybindingDialog.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/idlelib/keybindingDialog.py,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** keybindingDialog.py 31 Dec 2002 16:03:23 -0000 1.10 --- keybindingDialog.py 9 Jul 2003 18:48:24 -0000 1.11 *************** *** 189,194 **** keys=(self.alphanumKeys+self.punctuationKeys+self.functionKeys+ self.whitespaceKeys+self.editKeys+self.moveKeys) ! apply(self.listKeysFinal.insert, ! (END,)+keys) def TranslateKey(self,key): --- 189,193 ---- keys=(self.alphanumKeys+self.punctuationKeys+self.functionKeys+ self.whitespaceKeys+self.editKeys+self.moveKeys) ! self.listKeysFinal.insert(END, *keys) def TranslateKey(self,key): From aimacintyre@users.sourceforge.net Thu Jul 10 13:48:42 2003 From: aimacintyre@users.sourceforge.net (aimacintyre@users.sourceforge.net) Date: Thu, 10 Jul 2003 05:48:42 -0700 Subject: [Python-checkins] python/dist/src setup.py,1.170,1.171 Message-ID: Update of /cvsroot/python/python/dist/src In directory sc8-pr-cvs1:/tmp/cvs-serv6167 Modified Files: setup.py Log Message: patch #764612 - find DB 4.1/4.0/3.x on FreeBSD and systems with similar installation location policies. Index: setup.py =================================================================== RCS file: /cvsroot/python/python/dist/src/setup.py,v retrieving revision 1.170 retrieving revision 1.171 diff -C2 -d -r1.170 -r1.171 *** setup.py 17 Jun 2003 02:51:28 -0000 1.170 --- setup.py 10 Jul 2003 12:48:39 -0000 1.171 *************** *** 477,481 **** # order you wish to search - e.g., search for db4 before db3 db_try_this = { ! 'db4': {'libs': ('db-4.1', 'db-4.0',), 'libdirs': ('/usr/local/BerkeleyDB.4.1/lib', '/usr/local/BerkeleyDB.4.0/lib', --- 477,481 ---- # order you wish to search - e.g., search for db4 before db3 db_try_this = { ! 'db4': {'libs': ('db-4.1', 'db41', 'db-4.0', 'db4',), 'libdirs': ('/usr/local/BerkeleyDB.4.1/lib', '/usr/local/BerkeleyDB.4.0/lib', *************** *** 485,488 **** --- 485,489 ---- ), 'incdirs': ('/usr/local/BerkeleyDB.4.1/include', + '/usr/local/include/db41', '/usr/local/BerkeleyDB.4.0/include', '/usr/local/include/db4', *************** *** 491,495 **** '/usr/include/db4', )}, ! 'db3': {'libs': ('db-3.3', 'db-3.2', 'db-3.1'), 'libdirs': ('/usr/local/BerkeleyDB.3.3/lib', '/usr/local/BerkeleyDB.3.2/lib', --- 492,496 ---- '/usr/include/db4', )}, ! 'db3': {'libs': ('db-3.3', 'db-3.2', 'db-3.1', 'db3',), 'libdirs': ('/usr/local/BerkeleyDB.3.3/lib', '/usr/local/BerkeleyDB.3.2/lib', From aimacintyre@users.sourceforge.net Thu Jul 10 13:53:06 2003 From: aimacintyre@users.sourceforge.net (aimacintyre@users.sourceforge.net) Date: Thu, 10 Jul 2003 05:53:06 -0700 Subject: [Python-checkins] python/dist/src/Lib/plat-os2emx grp.py,1.1,1.2 pwd.py,1.1,1.2 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/plat-os2emx In directory sc8-pr-cvs1:/tmp/cvs-serv6682 Modified Files: grp.py pwd.py Log Message: Extend the pwd & grp emulations to support accessing the pwd/grp record tuple by name as well as index, to match the behaviour of the pwd/grp extension modules for Unix. These emulation modules now pass test_pwd & test_grp. Index: grp.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/plat-os2emx/grp.py,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** grp.py 22 Feb 2002 11:06:30 -0000 1.1 --- grp.py 10 Jul 2003 12:52:52 -0000 1.2 *************** *** 3,7 **** # written by Andrew MacIntyre, April 2001. ! # released into the public domain "as is", with NO WARRANTY # note that this implementation checks whether ":" or ";" as used as --- 3,7 ---- # written by Andrew MacIntyre, April 2001. ! # updated July 2003, adding field accessor support # note that this implementation checks whether ":" or ";" as used as *************** *** 97,100 **** --- 97,134 ---- raise KeyError, '>> group database fields not delimited <<' + # class to match the new record field name accessors. + # the resulting object is intended to behave like a read-only tuple, + # with each member also accessible by a field name. + class Group: + def __init__(self, name, passwd, gid, mem): + self.__dict__['gr_name'] = name + self.__dict__['gr_passwd'] = passwd + self.__dict__['gr_gid'] = gid + self.__dict__['gr_mem'] = mem + self.__dict__['_record'] = (self.gr_name, self.gr_passwd, + self.gr_gid, self.gr_mem) + + def __len__(self): + return 4 + + def __getitem__(self, key): + return self._record[key] + + def __setattr__(self, name, value): + raise AttributeError('attribute read-only: %s' % name) + + def __repr__(self): + return str(self._record) + + def __cmp__(self, other): + this = str(self._record) + if this == other: + return 0 + elif this < other: + return -1 + else: + return 1 + + # read the whole file, parsing each entry into tuple form # with dictionaries to speed recall by GID or group name *************** *** 114,118 **** fields = entry.split(sep) fields[2] = int(fields[2]) ! record = tuple(fields) if not gidx.has_key(fields[2]): gidx[fields[2]] = record --- 148,153 ---- fields = entry.split(sep) fields[2] = int(fields[2]) ! fields[3] = [f.strip() for f in fields[3].split(',')] ! record = Group(*fields) if not gidx.has_key(fields[2]): gidx[fields[2]] = record Index: pwd.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/plat-os2emx/pwd.py,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** pwd.py 22 Feb 2002 11:06:30 -0000 1.1 --- pwd.py 10 Jul 2003 12:52:54 -0000 1.2 *************** *** 3,7 **** # written by Andrew MacIntyre, April 2001. ! # released into the public domain "as is", with NO WARRANTY # note that this implementation checks whether ":" or ";" as used as --- 3,7 ---- # written by Andrew MacIntyre, April 2001. ! # updated July 2003, adding field accessor support # note that this implementation checks whether ":" or ";" as used as *************** *** 116,119 **** --- 116,158 ---- raise KeyError, '>> passwd database fields not delimited <<' + # class to match the new record field name accessors. + # the resulting object is intended to behave like a read-only tuple, + # with each member also accessible by a field name. + class Passwd: + def __init__(self, name, passwd, uid, gid, gecos, dir, shell): + self.__dict__['pw_name'] = name + self.__dict__['pw_passwd'] = passwd + self.__dict__['pw_uid'] = uid + self.__dict__['pw_gid'] = gid + self.__dict__['pw_gecos'] = gecos + self.__dict__['pw_dir'] = dir + self.__dict__['pw_shell'] = shell + self.__dict__['_record'] = (self.pw_name, self.pw_passwd, + self.pw_uid, self.pw_gid, + self.pw_gecos, self.pw_dir, + self.pw_shell) + + def __len__(self): + return 7 + + def __getitem__(self, key): + return self._record[key] + + def __setattr__(self, name, value): + raise AttributeError('attribute read-only: %s' % name) + + def __repr__(self): + return str(self._record) + + def __cmp__(self, other): + this = str(self._record) + if this == other: + return 0 + elif this < other: + return -1 + else: + return 1 + + # read the whole file, parsing each entry into tuple form # with dictionaries to speed recall by UID or passwd name *************** *** 136,140 **** for i in (5, 6): fields[i] = __field_sep[sep](fields[i]) ! record = tuple(fields) if not uidx.has_key(fields[2]): uidx[fields[2]] = record --- 175,179 ---- for i in (5, 6): fields[i] = __field_sep[sep](fields[i]) ! record = Passwd(*fields) if not uidx.has_key(fields[2]): uidx[fields[2]] = record From aimacintyre@users.sourceforge.net Thu Jul 10 13:55:33 2003 From: aimacintyre@users.sourceforge.net (aimacintyre@users.sourceforge.net) Date: Thu, 10 Jul 2003 05:55:33 -0700 Subject: [Python-checkins] python/dist/src/PC/os2emx README.os2emx,1.5,1.6 Message-ID: Update of /cvsroot/python/python/dist/src/PC/os2emx In directory sc8-pr-cvs1:/tmp/cvs-serv7008 Modified Files: README.os2emx Log Message: update OS/2 EMX port notes Index: README.os2emx =================================================================== RCS file: /cvsroot/python/python/dist/src/PC/os2emx/README.os2emx,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** README.os2emx 9 Jun 2003 08:15:14 -0000 1.5 --- README.os2emx 10 Jul 2003 12:55:30 -0000 1.6 *************** *** 293,297 **** time: - test_mhlib (I don't know of any port of MH to OS/2); ! - test_pwd (see "YOU HAVE BEEN WARNED" item 10, probably a bug in my code); - test_grp (as per test_pwd); - test_strftime (see "YOU HAVE BEEN WARNED" item 15); --- 293,297 ---- time: - test_mhlib (I don't know of any port of MH to OS/2); ! - test_pwd (see "YOU HAVE BEEN WARNED" item 10); - test_grp (as per test_pwd); - test_strftime (see "YOU HAVE BEEN WARNED" item 15); *************** *** 495,498 **** --- 495,503 ---- $PYTHONHOME/Etc/group (%PYTHONHOME%/Etc/group) + The ETC_PASSWD and ETC_GROUP environment variables are intended to allow + support for multiple passwd/grp files, where other applications may not + support as wide a variety of input variations (drive remappings, + separators etc). + Both modules support using either the ":" character (Unix standard) or ";" (OS/2, DOS, Windows standard) field separator character, and pwd.py *************** *** 502,508 **** x; -> x: ! Example versions of passwd and group are in the Etc subdirectory. Note ! that as of this release, this code fails the regression test. I'm looking ! into why, and hope to have this fixed. Be aware that Python's pwd & group modules are for reading password and --- 507,513 ---- x; -> x: ! Example versions of passwd and group are in the Etc subdirectory. The ! regression tests (test_pwd and test_grp) will fail if valid password and ! group files cannot be found, but should pass otherwise. Be aware that Python's pwd & group modules are for reading password and From jhylton@users.sourceforge.net Thu Jul 10 14:30:15 2003 From: jhylton@users.sourceforge.net (jhylton@users.sourceforge.net) Date: Thu, 10 Jul 2003 06:30:15 -0700 Subject: [Python-checkins] python/dist/src/Lib urllib2.py,1.51,1.52 Message-ID: Update of /cvsroot/python/python/dist/src/Lib In directory sc8-pr-cvs1:/tmp/cvs-serv13349 Modified Files: urllib2.py Log Message: Fix wrong header name. The framework looks for auth_header. Index: urllib2.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/urllib2.py,v retrieving revision 1.51 retrieving revision 1.52 diff -C2 -d -r1.51 -r1.52 *** urllib2.py 17 Jun 2003 21:52:34 -0000 1.51 --- urllib2.py 10 Jul 2003 13:30:12 -0000 1.52 *************** *** 423,431 **** """Return a Request or None in response to a redirect. ! This is called by the http_error_30x methods when a redirection ! response is received. If a redirection should take place, return a new ! Request to allow http_error_30x to perform the redirect. Otherwise, ! raise HTTPError if no-one else should try to handle this url. Return ! None if you can't but another Handler might. """ m = req.get_method() --- 423,432 ---- """Return a Request or None in response to a redirect. ! This is called by the http_error_30x methods when a ! redirection response is received. If a redirection should ! take place, return a new Request to allow http_error_30x to ! perform the redirect. Otherwise, raise HTTPError if no-one ! else should try to handle this url. Return None if you can't ! but another Handler might. """ m = req.get_method() *************** *** 613,617 **** def find_user_password(self, realm, authuri): ! user, password = HTTPPasswordMgr.find_user_password(self,realm,authuri) if user is not None: return user, password --- 614,619 ---- def find_user_password(self, realm, authuri): ! user, password = HTTPPasswordMgr.find_user_password(self, realm, ! authuri) if user is not None: return user, password *************** *** 768,772 **** """ ! header = 'Authorization' def http_error_401(self, req, fp, code, msg, headers): --- 770,774 ---- """ ! auth_header = 'Authorization' def http_error_401(self, req, fp, code, msg, headers): *************** *** 777,781 **** class ProxyDigestAuthHandler(BaseHandler, AbstractDigestAuthHandler): ! header = 'Proxy-Authorization' def http_error_407(self, req, fp, code, msg, headers): --- 779,783 ---- class ProxyDigestAuthHandler(BaseHandler, AbstractDigestAuthHandler): ! auth_header = 'Proxy-Authorization' def http_error_407(self, req, fp, code, msg, headers): From jvr@users.sourceforge.net Thu Jul 10 15:26:08 2003 From: jvr@users.sourceforge.net (jvr@users.sourceforge.net) Date: Thu, 10 Jul 2003 07:26:08 -0700 Subject: [Python-checkins] python/dist/src/Lib/plat-mac plistlib.py,1.3,1.4 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/plat-mac In directory sc8-pr-cvs1:/tmp/cvs-serv23474 Modified Files: plistlib.py Log Message: don't optimize empty strings Index: plistlib.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/plat-mac/plistlib.py,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** plistlib.py 1 Jul 2003 20:15:38 -0000 1.3 --- plistlib.py 10 Jul 2003 14:26:06 -0000 1.4 *************** *** 89,93 **** def simpleElement(self, element, value=None): ! if value: value = _encode(value) self.writeln("<%s>%s" % (element, value, element)) --- 89,93 ---- def simpleElement(self, element, value=None): ! if value is not None: value = _encode(value) self.writeln("<%s>%s" % (element, value, element)) From jvr@users.sourceforge.net Thu Jul 10 15:53:30 2003 From: jvr@users.sourceforge.net (jvr@users.sourceforge.net) Date: Thu, 10 Jul 2003 07:53:30 -0700 Subject: [Python-checkins] python/dist/src/Lib/plat-mac bundlebuilder.py,1.35,1.36 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/plat-mac In directory sc8-pr-cvs1:/tmp/cvs-serv28283 Modified Files: bundlebuilder.py Log Message: Fixed a bug that's been there from the beginning but wasn't noticed until now: the inheritance of default values was the wrong way around. This caused app bundles to get a type of "BNDL" instead of "APPL". Apparently this is not a problem until you try to drag your app to the dock. ---------------------------------------------------------------------- Index: bundlebuilder.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/plat-mac/bundlebuilder.py,v retrieving revision 1.35 retrieving revision 1.36 diff -C2 -d -r1.35 -r1.36 *** bundlebuilder.py 4 Jul 2003 14:20:03 -0000 1.35 --- bundlebuilder.py 10 Jul 2003 14:53:27 -0000 1.36 *************** *** 55,65 **** def _getDefaults(cls): defaults = {} for name, value in cls.__dict__.items(): if name[0] != "_" and not isinstance(value, (function, classmethod)): defaults[name] = deepcopy(value) - for base in cls.__bases__: - if hasattr(base, "_getDefaults"): - defaults.update(base._getDefaults()) return defaults _getDefaults = classmethod(_getDefaults) --- 55,65 ---- def _getDefaults(cls): defaults = {} + for base in cls.__bases__: + if hasattr(base, "_getDefaults"): + defaults.update(base._getDefaults()) for name, value in cls.__dict__.items(): if name[0] != "_" and not isinstance(value, (function, classmethod)): defaults[name] = deepcopy(value) return defaults _getDefaults = classmethod(_getDefaults) From rhettinger@users.sourceforge.net Thu Jul 10 16:48:35 2003 From: rhettinger@users.sourceforge.net (rhettinger@users.sourceforge.net) Date: Thu, 10 Jul 2003 08:48:35 -0700 Subject: [Python-checkins] python/dist/src/Doc/whatsnew whatsnew23.tex,1.147,1.148 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/whatsnew In directory sc8-pr-cvs1:/tmp/cvs-serv3097 Modified Files: whatsnew23.tex Log Message: Missing markup. Index: whatsnew23.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/whatsnew/whatsnew23.tex,v retrieving revision 1.147 retrieving revision 1.148 diff -C2 -d -r1.147 -r1.148 *** whatsnew23.tex 13 May 2003 14:26:54 -0000 1.147 --- whatsnew23.tex 10 Jul 2003 15:48:33 -0000 1.148 *************** *** 1778,1782 **** (Contributed by Raymond Hettinger.) ! item The \module{Tix} module has received various bug fixes and updates for the current version of the Tix package. --- 1778,1782 ---- (Contributed by Raymond Hettinger.) ! \item The \module{Tix} module has received various bug fixes and updates for the current version of the Tix package. From kbk@users.sourceforge.net Thu Jul 10 17:21:01 2003 From: kbk@users.sourceforge.net (kbk@users.sourceforge.net) Date: Thu, 10 Jul 2003 09:21:01 -0700 Subject: [Python-checkins] python/dist/src/PCbuild python20.wse,1.127,1.128 Message-ID: Update of /cvsroot/python/python/dist/src/PCbuild In directory sc8-pr-cvs1:/tmp/cvs-serv8176 Modified Files: python20.wse Log Message: SF Patch 763681 "Support IDLE Edit of .py/.pyw from idlelib" Index: python20.wse =================================================================== RCS file: /cvsroot/python/python/dist/src/PCbuild/python20.wse,v retrieving revision 1.127 retrieving revision 1.128 diff -C2 -d -r1.127 -r1.128 *** python20.wse 27 Jun 2003 15:49:34 -0000 1.127 --- python20.wse 10 Jul 2003 16:20:58 -0000 1.128 *************** *** 2657,2666 **** Total Keys=1 Key=Python.NoConFile\shell\Edit with IDLE\command ! New Value=%MAINDIR%\pythonw.exe %MAINDIR%\Tools\idle\idle.pyw -e "%%1" end item: Edit Registry Total Keys=1 Key=Python.File\shell\Edit with IDLE\command ! New Value=%MAINDIR%\pythonw.exe %MAINDIR%\Tools\idle\idle.pyw -e "%%1" end item: Else Statement --- 2657,2666 ---- Total Keys=1 Key=Python.NoConFile\shell\Edit with IDLE\command ! New Value=%MAINDIR%\pythonw.exe %MAINDIR%\Lib\idlelib\idle.pyw -e "%%1" end item: Edit Registry Total Keys=1 Key=Python.File\shell\Edit with IDLE\command ! New Value=%MAINDIR%\pythonw.exe %MAINDIR%\Lib\idlelib\idle.pyw -e "%%1" end item: Else Statement *************** *** 2669,2673 **** Total Keys=1 Key=Software\CLASSES\Python.NoConFile\shell\Edit with IDLE\command ! New Value=%MAINDIR%\pythonw.exe %MAINDIR%\Tools\idle\idle.pyw -e "%%1" Root=1 end --- 2669,2673 ---- Total Keys=1 Key=Software\CLASSES\Python.NoConFile\shell\Edit with IDLE\command ! New Value=%MAINDIR%\pythonw.exe %MAINDIR%\Lib\idlelib\idle.pyw -e "%%1" Root=1 end *************** *** 2675,2679 **** Total Keys=1 Key=Software\CLASSES\Python.File\shell\Edit with IDLE\command ! New Value=%MAINDIR%\pythonw.exe %MAINDIR%\Tools\idle\idle.pyw -e "%%1" Root=1 end --- 2675,2679 ---- Total Keys=1 Key=Software\CLASSES\Python.File\shell\Edit with IDLE\command ! New Value=%MAINDIR%\pythonw.exe %MAINDIR%\Lib\idlelib\idle.pyw -e "%%1" Root=1 end From fdrake@users.sourceforge.net Thu Jul 10 18:04:47 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Thu, 10 Jul 2003 10:04:47 -0700 Subject: [Python-checkins] python/dist/src/Doc/perl python.perl,1.134,1.135 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/perl In directory sc8-pr-cvs1:/tmp/cvs-serv15373 Modified Files: python.perl Log Message: fix stupid typo Index: python.perl =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/perl/python.perl,v retrieving revision 1.134 retrieving revision 1.135 diff -C2 -d -r1.134 -r1.135 *** python.perl 8 Jul 2003 15:57:52 -0000 1.134 --- python.perl 10 Jul 2003 17:04:45 -0000 1.135 *************** *** 90,94 **** sub do_cmd_textasciicircum{ '^' . $_[0]; } sub do_cmd_textbar{ '|' . $_[0]; } ! sub do_cmd_texteuro { '€' . $_[0]); } sub do_cmd_textgreater{ '>' . $_[0]; } sub do_cmd_textless{ '<' . $_[0]; } --- 90,94 ---- sub do_cmd_textasciicircum{ '^' . $_[0]; } sub do_cmd_textbar{ '|' . $_[0]; } ! sub do_cmd_texteuro { '€' . $_[0]; } sub do_cmd_textgreater{ '>' . $_[0]; } sub do_cmd_textless{ '<' . $_[0]; } From montanaro@users.sourceforge.net Thu Jul 10 21:44:13 2003 From: montanaro@users.sourceforge.net (montanaro@users.sourceforge.net) Date: Thu, 10 Jul 2003 13:44:13 -0700 Subject: [Python-checkins] python/dist/src configure,1.412,1.413 configure.in,1.423,1.424 Message-ID: Update of /cvsroot/python/python/dist/src In directory sc8-pr-cvs1:/tmp/cvs-serv14011 Modified Files: configure configure.in Log Message: avoid testing for -Kthread or -pthread if the default build environment supports pthreads Index: configure =================================================================== RCS file: /cvsroot/python/python/dist/src/configure,v retrieving revision 1.412 retrieving revision 1.413 diff -C2 -d -r1.412 -r1.413 *** configure 7 Jul 2003 21:26:17 -0000 1.412 --- configure 10 Jul 2003 20:44:10 -0000 1.413 *************** *** 1,6 **** #! /bin/sh ! # From configure.in Revision: 1.422 . # Guess values for system-dependent variables and create Makefiles. ! # Generated by GNU Autoconf 2.53 for python 2.3. # # Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002 --- 1,6 ---- #! /bin/sh ! # From configure.in Revision: 1.423 . # Guess values for system-dependent variables and create Makefiles. [...13458 lines suppressed...] rm -f $ac_file *************** *** 18816,18821 **** if test "$no_create" != yes; then ac_cs_success=: exec 5>/dev/null ! $SHELL $CONFIG_STATUS || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which --- 19654,19662 ---- if test "$no_create" != yes; then ac_cs_success=: + ac_config_status_args= + test "$silent" = yes && + ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null ! $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which Index: configure.in =================================================================== RCS file: /cvsroot/python/python/dist/src/configure.in,v retrieving revision 1.423 retrieving revision 1.424 diff -C2 -d -r1.423 -r1.424 *** configure.in 7 Jul 2003 21:26:19 -0000 1.423 --- configure.in 10 Jul 2003 20:44:10 -0000 1.424 *************** *** 752,756 **** } ], ! ac_cv_pthread_is_default=yes, ac_cv_pthread_is_default=no, ac_cv_pthread_is_default=no) --- 752,760 ---- } ], ! [ ! ac_cv_pthread_is_default=yes ! ac_cv_kthread=no ! ac_cv_pthread=no ! ], ac_cv_pthread_is_default=no, ac_cv_pthread_is_default=no) *************** *** 792,796 **** fi ! if test $ac_cv_kpthread = no then # -Kthread, if available, provides the right #defines --- 796,800 ---- fi ! if test $ac_cv_kpthread = no -a $ac_cv_pthread_is_default = no then # -Kthread, if available, provides the right #defines *************** *** 823,827 **** fi ! if test $ac_cv_kthread = no then # -pthread, if available, provides the right #defines --- 827,831 ---- fi ! if test $ac_cv_kthread = no -a $ac_cv_pthread_is_default = no then # -pthread, if available, provides the right #defines From rhettinger@users.sourceforge.net Thu Jul 10 23:14:43 2003 From: rhettinger@users.sourceforge.net (rhettinger@users.sourceforge.net) Date: Thu, 10 Jul 2003 15:14:43 -0700 Subject: [Python-checkins] python/dist/src/Doc/lib libunittest.tex,1.13,1.14 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/lib In directory sc8-pr-cvs1:/tmp/cvs-serv29215 Modified Files: libunittest.tex Log Message: SF #767592: unittest docs don't suggest "unittest.main()" Expanded docs to have a quick start example showing how to create and run tests. Index: libunittest.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/libunittest.tex,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** libunittest.tex 10 Feb 2003 19:21:16 -0000 1.13 --- libunittest.tex 10 Jul 2003 22:14:41 -0000 1.14 *************** *** 7,10 **** --- 7,11 ---- \sectionauthor{Steve Purcell}{stephen\textunderscore{}purcell@yahoo.com} \sectionauthor{Fred L. Drake, Jr.}{fdrake@acm.org} + \sectionauthor{Raymond Hettinger}{python@rcn.com} \versionadded{2.1} *************** *** 89,92 **** --- 90,188 ---- \module{unittest}.} \end{seealso} + + + \subsection{Minimal example \label{minimal-example}} + + The \module{unittest} module provides a rich set of tools for + constructing and running tests. This section demonstrates that a + small subset of the tools suffice to meet the needs of most users. + + Here is a short script to test three functions from the + \refmodule{random} module: + + \begin{verbatim} + import random + import unittest + + class TestSequenceFunctions(unittest.TestCase): + + def setUp(self): + self.seq = range(10) + + def testshuffle(self): + # make sure the shuffled sequence does not lose any elements + random.shuffle(self.seq) + self.seq.sort() + self.assertEqual(self.seq, range(10)) + + def testchoice(self): + element = random.choice(self.seq) + self.assert_(element in self.seq) + + def testsample(self): + self.assertRaises(ValueError, random.sample, self.seq, 20) + for element in random.sample(self.seq, 5): + self.assert_(element in self.seq) + + if __name__ == '__main__': + unittest.main() + \end{verbatim} + + A testcase is created by subclassing \code{unittest.TestCase}. + The three individual tests are defined with methods whose names start with + the letters \code{test}. This naming convention informs the test runner + about which methods represent tests. + + The crux of each test is a call to \method{assertEqual()} to + check for an expected result; \method{assert_()} to verify a condition; + or \method{assertRaises()} to verify that an expected exception gets + raised. These methods are used instead of the \keyword{assert} statement + so the test runner can accumulate all test results and produce a report. + + When a \method{setUp()} method is defined, the test runner will run that + method prior to each test. Likewise, if a \method{tearDown()} method is + defined, the test runner will invoke that method after each test. In the + example, \method{setUp()} was used to create a fresh sequence for each test. + + The final block shows a simple way to run the tests. \code{unittest.main()} + provides a command line interface to the test script. When run from the + command line, the above script produces an output that looks like this: + + \begin{verbatim} + ... + ---------------------------------------------------------------------- + Ran 3 tests in 0.000s + + OK + \end{verbatim} + + Instead of \code{unittest.main()}, there are other ways to run the tests + with a finer level of control, less terse output, and no requirement to be + run from the command line. For example, the last two lines may be replaced + with: + + \begin{verbatim} + suite = unittest.TestSuite() + suite.addTest(unittest.makeSuite(TestSequenceFunctions)) + unittest.TextTestRunner(verbosity=2).run(suite) + \end{verbatim} + + Running the revised script from the interpreter or another script + produces the following output: + + \begin{verbatim} + testchoice (__main__.TestSequenceFunctions) ... ok + testsample (__main__.TestSequenceFunctions) ... ok + testshuffle (__main__.TestSequenceFunctions) ... ok + + ---------------------------------------------------------------------- + Ran 3 tests in 0.110s + + OK + \end{verbatim} + + The above examples show the most commonly used \module{unittest} features + which are sufficient to meet many everyday testing needs. The remainder + of the documentation explores the full feature set from first principles. From fdrake@users.sourceforge.net Fri Jul 11 04:34:20 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Thu, 10 Jul 2003 20:34:20 -0700 Subject: [Python-checkins] python/dist/src/Doc/doc doc.tex,1.72,1.73 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/doc In directory sc8-pr-cvs1:/tmp/cvs-serv6303 Modified Files: doc.tex Log Message: update the reference to the Apple Publications Style Guide Index: doc.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/doc/doc.tex,v retrieving revision 1.72 retrieving revision 1.73 diff -C2 -d -r1.72 -r1.73 *** doc.tex 29 May 2003 02:17:22 -0000 1.72 --- doc.tex 11 Jul 2003 03:34:17 -0000 1.73 *************** *** 161,170 **** The Python documentation should follow the \citetitle ! [http://developer.apple.com/techpubs/macos8/pdf/apple_styleguide00.pdf] {Apple Publications Style Guide} wherever possible. This particular style guide was selected mostly because it seems reasonable and is ! easy to get online. (Printed copies are available; see the Apple's ! \citetitle[http://developer.apple.com/techpubs/faq.html]{Developer ! Documentation FAQ} for more information.) Topics which are not covered in the Apple's style guide will be --- 161,168 ---- The Python documentation should follow the \citetitle ! [http://developer.apple.com/documentation/UserExperience/Conceptual/APStyleGuide/AppleStyleGuide2003.pdf] {Apple Publications Style Guide} wherever possible. This particular style guide was selected mostly because it seems reasonable and is ! easy to get online. Topics which are not covered in the Apple's style guide will be From fdrake@users.sourceforge.net Fri Jul 11 04:36:17 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Thu, 10 Jul 2003 20:36:17 -0700 Subject: [Python-checkins] python/dist/src/Doc/doc doc.tex,1.73,1.74 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/doc In directory sc8-pr-cvs1:/tmp/cvs-serv6532 Modified Files: doc.tex Log Message: normalize whitespace Index: doc.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/doc/doc.tex,v retrieving revision 1.73 retrieving revision 1.74 diff -C2 -d -r1.73 -r1.74 *** doc.tex 11 Jul 2003 03:34:17 -0000 1.73 --- doc.tex 11 Jul 2003 03:36:15 -0000 1.74 *************** *** 13,18 **** \author{Fred L. Drake, Jr.} \authoraddress{ ! PythonLabs \\ ! Email: \email{fdrake@acm.org} } --- 13,18 ---- \author{Fred L. Drake, Jr.} \authoraddress{ ! PythonLabs \\ ! Email: \email{fdrake@acm.org} } *************** *** 95,157 **** \begin{definitions} \term{Document Sources} ! The \LaTeX{} sources for each document are placed in a ! separate directory. These directories are given short ! names which vaguely indicate the document in each: ! \begin{tableii}{p{.75in}|p{3in}}{filenq}{Directory}{Document Title} ! \lineii{api/} {\citetitle[../api/api.html]{The Python/C API}} ! \lineii{dist/} {\citetitle[../dist/dist.html]{Distributing Python Modules}} ! \lineii{doc/} {\citetitle[../doc/doc.html]{Documenting Python}} ! \lineii{ext/} {\citetitle[../ext/ext.html]{Extending and Embedding the Python Interpreter}} ! \lineii{inst/} {\citetitle[../inst/inst.html]{Installing Python Modules}} ! \lineii{lib/} {\citetitle[../lib/lib.html]{Python Library Reference}} ! \lineii{mac/} {\citetitle[../mac/mac.html]{Macintosh Module Reference}} ! \lineii{ref/} {\citetitle[../ref/ref.html]{Python Reference Manual}} ! \lineii{tut/} {\citetitle[../tut/tut.html]{Python Tutorial}} ! \end{tableii} \term{Format-Specific Output} ! Most output formats have a directory which contains a ! \file{Makefile} which controls the generation of that format ! and provides storage for the formatted documents. The only ! variations within this category are the Portable Document Format (PDF) and PostScript versions are placed in the ! directories \file{paper-a4/} and \file{paper-letter/} (this ! causes all the temporary files created by \LaTeX{} to be kept ! in the same place for each paper size, where they can be more ! easily ignored). ! \begin{tableii}{p{.75in}|p{3in}}{filenq}{Directory}{Output Formats} ! \lineii{html/}{HTML output} ! \lineii{info/}{GNU info output} ! \lineii{isilo/}{\ulink{iSilo}{http://www.isilo.com/} ! documents (for Palm OS devices)} ! \lineii{paper-a4/}{PDF and PostScript, A4 paper} ! \lineii{paper-letter/}{PDF and PostScript, US-Letter paper} ! \end{tableii} \term{Supplemental Files} ! Some additional directories are used to store supplemental ! files used for the various processes. Directories are ! included for the shared \LaTeX{} document classes, the ! \LaTeX2HTML support, template files for various document ! components, and the scripts used to perform various steps in ! the formatting processes. ! \begin{tableii}{p{.75in}|p{3in}}{filenq}{Directory}{Contents} ! \lineii{perl/}{Support for \LaTeX2HTML processing} ! \lineii{templates/}{Example files for source documents} ! \lineii{texinputs/}{Style implementation for \LaTeX} ! \lineii{tools/}{Custom processing scripts} ! \end{tableii} \end{definitions} --- 95,157 ---- \begin{definitions} \term{Document Sources} ! The \LaTeX{} sources for each document are placed in a ! separate directory. These directories are given short ! names which vaguely indicate the document in each: ! \begin{tableii}{p{.75in}|p{3in}}{filenq}{Directory}{Document Title} ! \lineii{api/} {\citetitle[../api/api.html]{The Python/C API}} ! \lineii{dist/} {\citetitle[../dist/dist.html]{Distributing Python Modules}} ! \lineii{doc/} {\citetitle[../doc/doc.html]{Documenting Python}} ! \lineii{ext/} {\citetitle[../ext/ext.html]{Extending and Embedding the Python Interpreter}} ! \lineii{inst/} {\citetitle[../inst/inst.html]{Installing Python Modules}} ! \lineii{lib/} {\citetitle[../lib/lib.html]{Python Library Reference}} ! \lineii{mac/} {\citetitle[../mac/mac.html]{Macintosh Module Reference}} ! \lineii{ref/} {\citetitle[../ref/ref.html]{Python Reference Manual}} ! \lineii{tut/} {\citetitle[../tut/tut.html]{Python Tutorial}} ! \end{tableii} \term{Format-Specific Output} ! Most output formats have a directory which contains a ! \file{Makefile} which controls the generation of that format ! and provides storage for the formatted documents. The only ! variations within this category are the Portable Document Format (PDF) and PostScript versions are placed in the ! directories \file{paper-a4/} and \file{paper-letter/} (this ! causes all the temporary files created by \LaTeX{} to be kept ! in the same place for each paper size, where they can be more ! easily ignored). ! \begin{tableii}{p{.75in}|p{3in}}{filenq}{Directory}{Output Formats} ! \lineii{html/}{HTML output} ! \lineii{info/}{GNU info output} ! \lineii{isilo/}{\ulink{iSilo}{http://www.isilo.com/} ! documents (for Palm OS devices)} ! \lineii{paper-a4/}{PDF and PostScript, A4 paper} ! \lineii{paper-letter/}{PDF and PostScript, US-Letter paper} ! \end{tableii} \term{Supplemental Files} ! Some additional directories are used to store supplemental ! files used for the various processes. Directories are ! included for the shared \LaTeX{} document classes, the ! \LaTeX2HTML support, template files for various document ! components, and the scripts used to perform various steps in ! the formatting processes. ! \begin{tableii}{p{.75in}|p{3in}}{filenq}{Directory}{Contents} ! \lineii{perl/}{Support for \LaTeX2HTML processing} ! \lineii{templates/}{Example files for source documents} ! \lineii{texinputs/}{Style implementation for \LaTeX} ! \lineii{tools/}{Custom processing scripts} ! \end{tableii} \end{definitions} *************** *** 191,209 **** \item[\POSIX] ! The name assigned to a particular group of standards. This is ! always uppercase. Use the macro \macro{POSIX} to represent this ! name. \item[Python] ! The name of our favorite programming language is always ! capitalized. \item[Unicode] ! The name of a character set and matching encoding. This is ! always written capitalized. \item[\UNIX] ! The name of the operating system developed at AT\&T Bell Labs ! in the early 1970s. Use the macro \macro{UNIX} to use this name. \end{description} --- 191,210 ---- \item[\POSIX] ! The name assigned to a particular group of standards. This is ! always uppercase. Use the macro \macro{POSIX} to represent this ! name. \item[Python] ! The name of our favorite programming language is always ! capitalized. \item[Unicode] ! The name of a character set and matching encoding. This is ! always written capitalized. \item[\UNIX] ! The name of the operating system developed at AT\&T Bell Labs ! in the early 1970s. Use the macro \macro{UNIX} to use this ! name. \end{description} *************** *** 217,221 **** Perhaps the most important concept to keep in mind while marking up Python documentation is that while \TeX{} is unstructured, \LaTeX{} was ! designed as a layer on top of \TeX{} which specifically supports structured markup. The Python-specific markup is intended to extend the structure provided by standard \LaTeX{} document classes to --- 218,222 ---- Perhaps the most important concept to keep in mind while marking up Python documentation is that while \TeX{} is unstructured, \LaTeX{} was ! designed as a layer on top of \TeX{} which specifically supports structured markup. The Python-specific markup is intended to extend the structure provided by standard \LaTeX{} document classes to *************** *** 502,506 **** the address should be lower case. ! No presentation is generated from this markup, but it is used to help keep track of contributions. \end{macrodesc} --- 503,507 ---- the address should be lower case. ! No presentation is generated from this markup, but it is used to help keep track of contributions. \end{macrodesc} *************** *** 679,683 **** >>> 1 + 1 2 ! >>> \end{verbatim} --- 680,684 ---- >>> 1 + 1 2 ! >>> \end{verbatim} *************** *** 774,778 **** \begin{macrodesc}{deprecated}{\p{version}\p{what to do}} ! Declare whatever is being described as being deprecated starting with release \var{version}. The text given as \var{what to do} should recommend something to use instead. It should be --- 775,779 ---- \begin{macrodesc}{deprecated}{\p{version}\p{what to do}} ! Declare whatever is being described as being deprecated starting with release \var{version}. The text given as \var{what to do} should recommend something to use instead. It should be *************** *** 783,787 **** \begin{macrodesc}{dfn}{\p{term}} ! Mark the defining instance of \var{term} in the text. (No index entries are generated.) \end{macrodesc} --- 784,788 ---- \begin{macrodesc}{dfn}{\p{term}} ! Mark the defining instance of \var{term} in the text. (No index entries are generated.) \end{macrodesc} *************** *** 822,826 **** \begin{macrodesc}{filenq}{\p{file or dir}} Like \macro{file}, but single quotes are never used. This can ! be used in conjunction with tables if a column will only contain file or directory names. \warning{The \macro{filenq} macro cannot be used in the --- 823,827 ---- \begin{macrodesc}{filenq}{\p{file or dir}} Like \macro{file}, but single quotes are never used. This can ! be used in conjunction with tables if a column will only contain file or directory names. \warning{The \macro{filenq} macro cannot be used in the *************** *** 924,929 **** \begin{macrodesc}{program}{\p{name}} The name of an executable program. This may differ from the ! file name for the executable for some platforms. In particular, ! the \file{.exe} (or other) extension should be omitted for Windows programs. \end{macrodesc} --- 925,930 ---- \begin{macrodesc}{program}{\p{name}} The name of an executable program. This may differ from the ! file name for the executable for some platforms. In particular, ! the \file{.exe} (or other) extension should be omitted for Windows programs. \end{macrodesc} *************** *** 942,946 **** \begin{macrodesc}{refmodule}{\op{key}\p{name}} ! Like \macro{module}, but create a hyperlink to the documentation for the named module. Note that the corresponding \macro{declaremodule} must be in the same document. If the --- 943,947 ---- \begin{macrodesc}{refmodule}{\op{key}\p{name}} ! Like \macro{module}, but create a hyperlink to the documentation for the named module. Note that the corresponding \macro{declaremodule} must be in the same document. If the *************** *** 955,959 **** \begin{macrodesc}{rfc}{\p{number}} ! A reference to an Internet Request for Comments. This generates appropriate index entries. The text \samp{RFC \var{number}} is generated; in the HTML output, this text is a hyperlink to an --- 956,960 ---- \begin{macrodesc}{rfc}{\p{number}} ! A reference to an Internet Request for Comments. This generates appropriate index entries. The text \samp{RFC \var{number}} is generated; in the HTML output, this text is a hyperlink to an *************** *** 963,967 **** \begin{macrodesc}{samp}{\p{text}} A short code sample, but possibly longer than would be given ! using \macro{code}. Since quotation marks are added, spaces are acceptable. \end{macrodesc} --- 964,968 ---- \begin{macrodesc}{samp}{\p{text}} A short code sample, but possibly longer than would be given ! using \macro{code}. Since quotation marks are added, spaces are acceptable. \end{macrodesc} *************** *** 996,1000 **** \begin{macrodesc}{url}{\p{url}} ! A URL (or URN). The URL will be presented as text. In the HTML and PDF formatted versions, the URL will also be a hyperlink. This can be used when referring to external resources without --- 997,1001 ---- \begin{macrodesc}{url}{\p{url}} ! A URL (or URN). The URL will be presented as text. In the HTML and PDF formatted versions, the URL will also be a hyperlink. This can be used when referring to external resources without *************** *** 1305,1310 **** {Base category for warnings about dubious runtime features.} \lineii{FutureWarning} ! {Base category for warnings about constructs that will change ! semantically in the future.} \end{tableii} \end{verbatim} --- 1306,1311 ---- {Base category for warnings about dubious runtime features.} \lineii{FutureWarning} ! {Base category for warnings about constructs that will change ! semantically in the future.} \end{tableii} \end{verbatim} *************** *** 1556,1560 **** \begin{macrodesc}{indexii}{\p{word1}\p{word2}} Build two index entries. This is exactly equivalent to using ! \code{\e index\{\var{word1}!\var{word2}\}} and \code{\e index\{\var{word2}!\var{word1}\}}. \end{macrodesc} --- 1557,1561 ---- \begin{macrodesc}{indexii}{\p{word1}\p{word2}} Build two index entries. This is exactly equivalent to using ! \code{\e index\{\var{word1}!\var{word2}\}} and \code{\e index\{\var{word2}!\var{word1}\}}. \end{macrodesc} *************** *** 1767,1776 **** \item[\program{mkhowto}] This is the primary script used to format third-party ! documents. It contains all the logic needed to ``get it ! right.'' The proper way to use this script is to make a ! symbolic link to it or run it in place; the actual script file ! must be stored as part of the documentation source tree, ! though it may be used to format documents outside the ! tree. Use \program{mkhowto} \longprogramopt{help} for a list of command line options. --- 1768,1777 ---- \item[\program{mkhowto}] This is the primary script used to format third-party ! documents. It contains all the logic needed to ``get it ! right.'' The proper way to use this script is to make a ! symbolic link to it or run it in place; the actual script file ! must be stored as part of the documentation source tree, ! though it may be used to format documents outside the ! tree. Use \program{mkhowto} \longprogramopt{help} for a list of command line options. *************** *** 1781,1785 **** version from an older source release of Python. ! XXX Need more here. \end{description} --- 1782,1786 ---- version from an older source release of Python. ! XXX Need more here. \end{description} *************** *** 1894,1898 **** documentation. Some XSLT stylesheets have been started for presenting a preliminary XML version as HTML, but the results are ! fairly rough.. The timeframe for the conversion is not clear since there doesn't --- 1895,1899 ---- documentation. Some XSLT stylesheets have been started for presenting a preliminary XML version as HTML, but the results are ! fairly rough. The timeframe for the conversion is not clear since there doesn't From tim_one@users.sourceforge.net Fri Jul 11 05:09:11 2003 From: tim_one@users.sourceforge.net (tim_one@users.sourceforge.net) Date: Thu, 10 Jul 2003 21:09:11 -0700 Subject: [Python-checkins] python/dist/src/Lib/test test_dumbdbm.py,1.8,1.9 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/test In directory sc8-pr-cvs1:/tmp/cvs-serv10247/Lib/test Modified Files: test_dumbdbm.py Log Message: Added a new randomized test. Index: test_dumbdbm.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/test/test_dumbdbm.py,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** test_dumbdbm.py 9 Aug 2002 16:37:35 -0000 1.8 --- test_dumbdbm.py 11 Jul 2003 04:09:09 -0000 1.9 *************** *** 87,90 **** --- 87,118 ---- return keys + # Perform randomized operations. This doesn't make assumptions about + # what *might* fail. + def test_random(self): + import random + d = {} # mirror the database + for dummy in range(5): + f = dumbdbm.open(_fname) + for dummy in range(100): + k = random.choice('abcdefghijklm') + if random.random() < 0.2: + if k in d: + del d[k] + del f[k] + else: + v = random.choice('abc') * random.randrange(10000) + d[k] = v + f[k] = v + self.assertEqual(f[k], v) + f.close() + + f = dumbdbm.open(_fname) + expected = d.items() + expected.sort() + got = f.items() + got.sort() + self.assertEqual(expected, got) + f.close() + def tearDown(self): _delete_files() From tim_one@users.sourceforge.net Fri Jul 11 05:09:57 2003 From: tim_one@users.sourceforge.net (tim_one@users.sourceforge.net) Date: Thu, 10 Jul 2003 21:09:57 -0700 Subject: [Python-checkins] python/dist/src/Lib dumbdbm.py,1.21,1.22 Message-ID: Update of /cvsroot/python/python/dist/src/Lib In directory sc8-pr-cvs1:/tmp/cvs-serv10344/Lib Modified Files: dumbdbm.py Log Message: __setitem__: Use integer division for computing # of blocks. Index: dumbdbm.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/dumbdbm.py,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** dumbdbm.py 28 Jun 2003 07:08:39 -0000 1.21 --- dumbdbm.py 11 Jul 2003 04:09:55 -0000 1.22 *************** *** 115,120 **** else: pos, siz = self._index[key] ! oldblocks = (siz + _BLOCKSIZE - 1) / _BLOCKSIZE ! newblocks = (len(val) + _BLOCKSIZE - 1) / _BLOCKSIZE if newblocks <= oldblocks: pos, siz = self._setval(pos, val) --- 115,120 ---- else: pos, siz = self._index[key] ! oldblocks = (siz + _BLOCKSIZE - 1) // _BLOCKSIZE ! newblocks = (len(val) + _BLOCKSIZE - 1) // _BLOCKSIZE if newblocks <= oldblocks: pos, siz = self._setval(pos, val) From jvr@users.sourceforge.net Fri Jul 11 08:36:51 2003 From: jvr@users.sourceforge.net (jvr@users.sourceforge.net) Date: Fri, 11 Jul 2003 00:36:51 -0700 Subject: [Python-checkins] python/dist/src/Lib posixpath.py,1.60,1.61 Message-ID: Update of /cvsroot/python/python/dist/src/Lib In directory sc8-pr-cvs1:/tmp/cvs-serv2061 Modified Files: posixpath.py Log Message: [ 767645 ] correctly set the os.path.supports_unicode_filenames flag for OSX Index: posixpath.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/posixpath.py,v retrieving revision 1.60 retrieving revision 1.61 diff -C2 -d -r1.60 -r1.61 *** posixpath.py 19 Jun 2003 10:21:13 -0000 1.60 --- posixpath.py 11 Jul 2003 07:36:49 -0000 1.61 *************** *** 11,14 **** --- 11,15 ---- """ + import sys import os import stat *************** *** 417,419 **** return filename ! supports_unicode_filenames = False --- 418,423 ---- return filename ! if sys.platform == "darwin": ! supports_unicode_filenames = True ! else: ! supports_unicode_filenames = False From aimacintyre@users.sourceforge.net Fri Jul 11 13:16:50 2003 From: aimacintyre@users.sourceforge.net (aimacintyre@users.sourceforge.net) Date: Fri, 11 Jul 2003 05:16:50 -0700 Subject: [Python-checkins] python/dist/src/Lib whichdb.py,1.16,1.17 Message-ID: Update of /cvsroot/python/python/dist/src/Lib In directory sc8-pr-cvs1:/tmp/cvs-serv4332 Modified Files: whichdb.py Log Message: patch #766650 - whichdb not identifying dbm DBs when dbm linked with gdbm At this point, the problem appears particular to the OS/2 EMX port of gdbm (which is at v1.7.3) - this combination produces a .pag file but no .dir file. A more sophisticated patch which checks magic numbers when dbm.library indicates that dbm is linked to gdbm, and there is no .dir file, is still attached to the above patch entry for reconsideration after 2.3 is released. This checkin applies a workaround specific to the known failure case. Index: whichdb.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/whichdb.py,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** whichdb.py 21 Jun 2003 13:54:55 -0000 1.16 --- whichdb.py 11 Jul 2003 12:16:48 -0000 1.17 *************** *** 3,6 **** --- 3,7 ---- import os import struct + import sys try: *************** *** 30,35 **** f = open(filename + os.extsep + "pag", "rb") f.close() ! f = open(filename + os.extsep + "dir", "rb") ! f.close() return "dbm" except IOError: --- 31,38 ---- f = open(filename + os.extsep + "pag", "rb") f.close() ! # dbm linked with gdbm on OS/2 doesn't have .dir file ! if not (dbm.library == "GNU gdbm" and sys.platform == "os2emx"): ! f = open(filename + os.extsep + "dir", "rb") ! f.close() return "dbm" except IOError: From fdrake@users.sourceforge.net Fri Jul 11 16:01:05 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Fri, 11 Jul 2003 08:01:05 -0700 Subject: [Python-checkins] python/dist/src/Python import.c,2.221,2.222 Message-ID: Update of /cvsroot/python/python/dist/src/Python In directory sc8-pr-cvs1:/tmp/cvs-serv29136 Modified Files: import.c Log Message: - fix typo - there's a weird variable name here (zimpimport), but I'll leave that for someone that's familiar with the ZIP import support Index: import.c =================================================================== RCS file: /cvsroot/python/python/dist/src/Python/import.c,v retrieving revision 2.221 retrieving revision 2.222 diff -C2 -d -r2.221 -r2.222 *** import.c 16 Jun 2003 21:03:07 -0000 2.221 --- import.c 11 Jul 2003 15:01:02 -0000 2.222 *************** *** 203,207 **** if (Py_VerboseFlag) PySys_WriteStderr( ! "# can't import zipimport.zimimporter\n"); } else { --- 203,207 ---- if (Py_VerboseFlag) PySys_WriteStderr( ! "# can't import zipimport.zipimporter\n"); } else { From jhylton@users.sourceforge.net Fri Jul 11 16:38:01 2003 From: jhylton@users.sourceforge.net (jhylton@users.sourceforge.net) Date: Fri, 11 Jul 2003 08:38:01 -0700 Subject: [Python-checkins] python/dist/src/Lib/test/output test_warnings,NONE,1.1 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/test/output In directory sc8-pr-cvs1:/tmp/cvs-serv2922/test/output Added Files: test_warnings Log Message: Change warnings to avoid importing re module during startup. Add API function simplefilter() that does not create or install regular expressions to match message or module. Extend the filters data structure to store None as an alternative to re.compile(""). Move the _test() function to test_warnings and add some code to try and avoid disturbing the global state of the warnings module. --- NEW FILE: test_warnings --- test_warnings ('ignore', False, 'FutureWarning', False, 0) ('ignore', True, 'OverflowWarning', True, 0) ('ignore', True, 'PendingDeprecationWarning', True, 0) Lib/test/test_warnings.py:31: UserWarning: hello world Lib/test/test_warnings.py:32: UserWarning: hello world Lib/test/test_warnings.py:33: DeprecationWarning: hello world Lib/test/test_warnings.py:35: UserWarning: hello world Caught UserWarning: hello world Caught AssertionError: invalid action: 'booh' From jhylton@users.sourceforge.net Fri Jul 11 16:38:00 2003 From: jhylton@users.sourceforge.net (jhylton@users.sourceforge.net) Date: Fri, 11 Jul 2003 08:38:00 -0700 Subject: [Python-checkins] python/dist/src/Lib warnings.py,1.20,1.21 Message-ID: Update of /cvsroot/python/python/dist/src/Lib In directory sc8-pr-cvs1:/tmp/cvs-serv2922 Modified Files: warnings.py Log Message: Change warnings to avoid importing re module during startup. Add API function simplefilter() that does not create or install regular expressions to match message or module. Extend the filters data structure to store None as an alternative to re.compile(""). Move the _test() function to test_warnings and add some code to try and avoid disturbing the global state of the warnings module. Index: warnings.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/warnings.py,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** warnings.py 14 May 2003 17:33:53 -0000 1.20 --- warnings.py 11 Jul 2003 15:37:56 -0000 1.21 *************** *** 10,15 **** "resetwarnings"] ! defaultaction = "default" filters = [] onceregistry = {} --- 10,23 ---- "resetwarnings"] ! # filters contains a sequence of filter 5-tuples ! # The components of the 5-tuple are: ! # - an action: error, ignore, always, default, module, or once ! # - a compiled regex that must match the warning message ! # - a class representing the warning category ! # - a compiled regex that must match the module that is being warned ! # - a line number for the line being warning, or 0 to mean any line ! # If either if the compiled regexs are None, match anything. filters = [] + defaultaction = "default" onceregistry = {} *************** *** 70,76 **** for item in filters: action, msg, cat, mod, ln = item ! if (msg.match(text) and issubclass(category, cat) and ! mod.match(module) and (ln == 0 or lineno == ln)): break --- 78,84 ---- for item in filters: action, msg, cat, mod, ln = item ! if ((msg is None or msg.match(text)) and issubclass(category, cat) and ! (msg is None or mod.match(module)) and (ln == 0 or lineno == ln)): break *************** *** 146,149 **** --- 154,172 ---- filters.insert(0, item) + def simplefilter(action, category=Warning, lineno=0, append=0): + """Insert a simple entry into the list of warnings filters (at the front). + + A simple filter matches all modules and messages. + """ + assert action in ("error", "ignore", "always", "default", "module", + "once"), "invalid action: %s" % `action` + assert isinstance(lineno, int) and lineno >= 0, \ + "lineno must be an int >= 0" + item = (action, None, category, None, lineno) + if append: + filters.append(item) + else: + filters.insert(0, item) + def resetwarnings(): """Clear the list of warning filters, so that no filters are active.""" *************** *** 226,267 **** return cat - # Self-test - def _test(): - import getopt - testoptions = [] - try: - opts, args = getopt.getopt(sys.argv[1:], "W:") - except getopt.error, msg: - print >>sys.stderr, msg - return - for o, a in opts: - testoptions.append(a) - try: - _processoptions(testoptions) - except _OptionError, msg: - print >>sys.stderr, msg - return - for item in filters: print item - hello = "hello world" - warn(hello); warn(hello); warn(hello); warn(hello) - warn(hello, UserWarning) - warn(hello, DeprecationWarning) - for i in range(3): - warn(hello) - filterwarnings("error", "", Warning, "", 0) - try: - warn(hello) - except Exception, msg: - print "Caught", msg.__class__.__name__ + ":", msg - else: - print "No exception" - resetwarnings() - try: - filterwarnings("booh", "", Warning, "", 0) - except Exception, msg: - print "Caught", msg.__class__.__name__ + ":", msg - else: - print "No exception" - # Module initialization if __name__ == "__main__": --- 249,252 ---- *************** *** 271,274 **** else: _processoptions(sys.warnoptions) ! filterwarnings("ignore", category=OverflowWarning, append=1) ! filterwarnings("ignore", category=PendingDeprecationWarning, append=1) --- 256,259 ---- else: _processoptions(sys.warnoptions) ! simplefilter("ignore", category=OverflowWarning, append=1) ! simplefilter("ignore", category=PendingDeprecationWarning, append=1) From jhylton@users.sourceforge.net Fri Jul 11 16:38:01 2003 From: jhylton@users.sourceforge.net (jhylton@users.sourceforge.net) Date: Fri, 11 Jul 2003 08:38:01 -0700 Subject: [Python-checkins] python/dist/src/Lib/test test_warnings.py,NONE,1.1 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/test In directory sc8-pr-cvs1:/tmp/cvs-serv2922/test Added Files: test_warnings.py Log Message: Change warnings to avoid importing re module during startup. Add API function simplefilter() that does not create or install regular expressions to match message or module. Extend the filters data structure to store None as an alternative to re.compile(""). Move the _test() function to test_warnings and add some code to try and avoid disturbing the global state of the warnings module. --- NEW FILE: test_warnings.py --- import warnings # The warnings module isn't easily tested, because it relies on module # globals to store configuration information. We need to extract the # current settings to avoid bashing them while running tests. _filters = [] _showwarning = None def showwarning(message, category, filename, lineno, file=None): i = filename.find("Lib/") filename = filename[i:] print "%s:%s: %s: %s" % (filename, lineno, category.__name__, message) def monkey(): global _filters, _showwarning _filters = warnings.filters[:] _showwarning = warnings.showwarning warnings.showwarning = showwarning def unmonkey(): warnings.filters = _filters[:] warnings.showwarning = _showwarning def test(): for item in warnings.filters: print (item[0], item[1] is None, item[2].__name__, item[3] is None, item[4]) hello = "hello world" for i in range(4): warnings.warn(hello) warnings.warn(hello, UserWarning) warnings.warn(hello, DeprecationWarning) for i in range(3): warnings.warn(hello) warnings.filterwarnings("error", "", Warning, "", 0) try: warnings.warn(hello) except Exception, msg: print "Caught", msg.__class__.__name__ + ":", msg else: print "No exception" warnings.resetwarnings() try: warnings.filterwarnings("booh", "", Warning, "", 0) except Exception, msg: print "Caught", msg.__class__.__name__ + ":", msg else: print "No exception" monkey() test() unmonkey() From jhylton@users.sourceforge.net Fri Jul 11 18:02:42 2003 From: jhylton@users.sourceforge.net (jhylton@users.sourceforge.net) Date: Fri, 11 Jul 2003 10:02:42 -0700 Subject: [Python-checkins] python/dist/src/Objects cobject.c,2.14,2.15 Message-ID: Update of /cvsroot/python/python/dist/src/Objects In directory sc8-pr-cvs1:/tmp/cvs-serv18149/Objects Modified Files: cobject.c Log Message: Add whitespace. Index: cobject.c =================================================================== RCS file: /cvsroot/python/python/dist/src/Objects/cobject.c,v retrieving revision 2.14 retrieving revision 2.15 diff -C2 -d -r2.14 -r2.15 *** cobject.c 13 Jun 2002 20:32:56 -0000 2.14 --- cobject.c 11 Jul 2003 17:02:39 -0000 2.15 *************** *** 47,53 **** if (self == NULL) return NULL; ! self->cobject=cobj; ! self->destructor=(destructor1)destr; ! self->desc=desc; return (PyObject *)self; --- 47,53 ---- if (self == NULL) return NULL; ! self->cobject = cobj; ! self->destructor = (destructor1)destr; ! self->desc = desc; return (PyObject *)self; From rhettinger@users.sourceforge.net Fri Jul 11 19:58:13 2003 From: rhettinger@users.sourceforge.net (rhettinger@users.sourceforge.net) Date: Fri, 11 Jul 2003 11:58:13 -0700 Subject: [Python-checkins] python/dist/src/Doc/tut tut.tex,1.193,1.194 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/tut In directory sc8-pr-cvs1:/tmp/cvs-serv2295 Modified Files: tut.tex Log Message: Minor fixups and added sections for iterators and generators. Index: tut.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/tut/tut.tex,v retrieving revision 1.193 retrieving revision 1.194 diff -C2 -d -r1.193 -r1.194 *** tut.tex 7 Jul 2003 21:00:29 -0000 1.193 --- tut.tex 11 Jul 2003 18:58:11 -0000 1.194 *************** *** 3732,3736 **** of \code{MyClass.i} by assignment. \member{__doc__} is also a valid attribute, returning the docstring belonging to the class: \code{"A ! simple example class"}). Class \emph{instantiation} uses function notation. Just pretend that --- 3732,3736 ---- of \code{MyClass.i} by assignment. \member{__doc__} is also a valid attribute, returning the docstring belonging to the class: \code{"A ! simple example class"}. Class \emph{instantiation} uses function notation. Just pretend that *************** *** 4129,4133 **** function object corresponding to the method. ! \subsection{Exceptions Are Classes Too\label{exceptionClasses}} User-defined exceptions are identified by classes as well. Using this --- 4129,4134 ---- function object corresponding to the method. ! ! \section{Exceptions Are Classes Too\label{exceptionClasses}} User-defined exceptions are identified by classes as well. Using this *************** *** 4185,4188 **** --- 4186,4302 ---- + \section{Iterators\label{iterators}} + + By now, you've probably noticed that most container objects can looped over + using a \code{for} statement: + + \begin{verbatim} + for element in [1, 2, 3]: + print element + for element in (1, 2, 3): + print element + for key in {'one':1, 'two':2}: + print key + for char in "123": + print char + for line in open("myfile.txt"): + print line + \end{verbatim} + + This style of access is clear, concise, and convenient. The use of iterators + pervades and unifies Python. Behind the scenes, the \code{for} statement calls + \function{iter()} on the container object. The function returns an iterator + object that defines the method \method{next()} which accesses elements in the + container one at a time. When there are no more elements, \method{next()} + raises a \exception{StopIteration} exception which tells the \code{for} loop + to terminate. This example shows how it all works: + + \begin{verbatim} + >>> s = 'abc' + >>> it = iter(s) + >>> it + + >>> it.next() + 'a' + >>> it.next() + 'b' + >>> it.next() + 'c' + >>> it.next() + + Traceback (most recent call last): + File "", line 1, in -toplevel- + it.next() + StopIteration + \end{verbatim} + + Having seen the mechanics behind the iterator protocol, it is easy to add + iterator behavior to your classes. Define a \method{__iter__()} method + which returns an object with a \method{next()} method. If the class defines + \method{next()}, then \method{__iter__()} can just return \code{self}: + + \begin{verbatim} + >>> class Reverse: + "Iterator for looping over a sequence backwards" + def __init__(self, data): + self.data = data + self.index = len(data) + def __iter__(self): + return self + def next(self): + if self.index == 0: + raise StopIteration + self.index = self.index - 1 + return self.data[self.index] + + >>> for char in Reverse('spam'): + print char + + m + a + p + s + \end{verbatim} + + + \section{Generators\label{generators}} + + Generators are a simple and powerful tool for creating iterators. They are + written like regular functions but use the \keyword{yield} statement whenever + they want to return data. Each time the \method{next()} is called, the + generator resumes where it left-off (it remembers all the data values and + which statement was last executed). An example shows that generators can + be trivially easy to create: + + \begin{verbatim} + >>> def reverse(data): + for index in range(len(data)-1, -1, -1): + yield data[index] + + >>> for char in reverse('golf'): + print char + + f + l + o + g + \end{verbatim} + + Anything that can be done with generators can also be done with class based + iterators as described in the previous section. What makes generators so + compact is that the \method{__iter__()} and \method{next()} methods are + created automatically. + + Another other key feature is that the local variables and execution state + are automatically saved between calls. This made the function easier to write + and much more clear than an approach using class variables like + \code{self.index} and \code{self.data}. + + In addition to automatic method creation and saving program state, when + generators terminate, they automatically raise \exception{StopIteration}. + In combination, these features make it easy to create iterators with no + more effort than writing a regular function. + + \chapter{What Now? \label{whatNow}} *************** *** 4361,4365 **** # # Store the file in ~/.pystartup, and set an environment variable to point ! # to it, e.g. "export PYTHONSTARTUP=/max/home/itamar/.pystartup" in bash. # # Note that PYTHONSTARTUP does *not* expand "~", so you have to put in the --- 4475,4479 ---- # # Store the file in ~/.pystartup, and set an environment variable to point ! # to it: "export PYTHONSTARTUP=/max/home/itamar/.pystartup" in bash. # # Note that PYTHONSTARTUP does *not* expand "~", so you have to put in the From jhylton@users.sourceforge.net Fri Jul 11 20:42:51 2003 From: jhylton@users.sourceforge.net (jhylton@users.sourceforge.net) Date: Fri, 11 Jul 2003 12:42:51 -0700 Subject: [Python-checkins] python/dist/src/Modules cPickle.c,2.146,2.147 Message-ID: Update of /cvsroot/python/python/dist/src/Modules In directory sc8-pr-cvs1:/tmp/cvs-serv9106 Modified Files: cPickle.c Log Message: The Unpickler forget about its find_class attribute. Index: cPickle.c =================================================================== RCS file: /cvsroot/python/python/dist/src/Modules/cPickle.c,v retrieving revision 2.146 retrieving revision 2.147 diff -C2 -d -r2.146 -r2.147 *** cPickle.c 16 Jun 2003 20:19:49 -0000 2.146 --- cPickle.c 11 Jul 2003 19:42:49 -0000 2.147 *************** *** 5233,5236 **** --- 5233,5237 ---- Py_XDECREF(self->arg); Py_XDECREF(self->last_string); + Py_XDECREF(self->find_class); if (self->marks) { *************** *** 5264,5267 **** --- 5265,5269 ---- VISIT(self->arg); VISIT(self->last_string); + VISIT(self->find_class); #undef VISIT return 0; *************** *** 5280,5283 **** --- 5282,5286 ---- CLEAR(self->arg); CLEAR(self->last_string); + CLEAR(self->find_class); #undef CLEAR return 0; From jhylton@users.sourceforge.net Fri Jul 11 21:22:58 2003 From: jhylton@users.sourceforge.net (jhylton@users.sourceforge.net) Date: Fri, 11 Jul 2003 13:22:58 -0700 Subject: [Python-checkins] python/dist/src/Lib/test test_warnings.py,1.1,1.2 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/test In directory sc8-pr-cvs1:/tmp/cvs-serv14267 Modified Files: test_warnings.py Log Message: Don't include slash in search string; it's OS-specific. Index: test_warnings.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/test/test_warnings.py,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** test_warnings.py 11 Jul 2003 15:37:58 -0000 1.1 --- test_warnings.py 11 Jul 2003 20:22:55 -0000 1.2 *************** *** 9,13 **** def showwarning(message, category, filename, lineno, file=None): ! i = filename.find("Lib/") filename = filename[i:] print "%s:%s: %s: %s" % (filename, lineno, category.__name__, message) --- 9,13 ---- def showwarning(message, category, filename, lineno, file=None): ! i = filename.find("Lib") filename = filename[i:] print "%s:%s: %s: %s" % (filename, lineno, category.__name__, message) From fdrake@users.sourceforge.net Fri Jul 11 21:37:16 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Fri, 11 Jul 2003 13:37:16 -0700 Subject: [Python-checkins] python/dist/src/Modules cPickle.c,2.73.2.1.2.6,2.73.2.1.2.7 Message-ID: Update of /cvsroot/python/python/dist/src/Modules In directory sc8-pr-cvs1:/tmp/cvs-serv15825 Modified Files: Tag: release22-maint cPickle.c Log Message: Backport Jeremy's patch from the trunk (revision 2.147): The Unpickler forget about its find_class attribute. Also make sure we visit and clear self->safe_constructors in the GC support. Index: cPickle.c =================================================================== RCS file: /cvsroot/python/python/dist/src/Modules/cPickle.c,v retrieving revision 2.73.2.1.2.6 retrieving revision 2.73.2.1.2.7 diff -C2 -d -r2.73.2.1.2.6 -r2.73.2.1.2.7 *** cPickle.c 21 May 2003 20:43:09 -0000 2.73.2.1.2.6 --- cPickle.c 11 Jul 2003 20:37:13 -0000 2.73.2.1.2.7 *************** *** 4309,4312 **** --- 4309,4313 ---- Py_XDECREF(self->arg); Py_XDECREF(self->last_string); + Py_XDECREF(self->find_class); Py_XDECREF(self->safe_constructors); *************** *** 4341,4344 **** --- 4342,4347 ---- VISIT(self->arg); VISIT(self->last_string); + VISIT(self->find_class); + VISIT(self->safe_constructors); #undef VISIT return 0; *************** *** 4357,4360 **** --- 4360,4365 ---- CLEAR(self->arg); CLEAR(self->last_string); + CLEAR(self->find_class); + CLEAR(self->safe_constructors); #undef CLEAR return 0; From rhettinger@users.sourceforge.net Fri Jul 11 23:32:20 2003 From: rhettinger@users.sourceforge.net (rhettinger@users.sourceforge.net) Date: Fri, 11 Jul 2003 15:32:20 -0700 Subject: [Python-checkins] python/dist/src/Doc/lib libdoctest.tex,1.12,1.13 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/lib In directory sc8-pr-cvs1:/tmp/cvs-serv655 Modified Files: libdoctest.tex Log Message: Document Jim Fulton's docttest extensions. Index: libdoctest.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/libdoctest.tex,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** libdoctest.tex 28 Jun 2003 03:09:06 -0000 1.12 --- libdoctest.tex 11 Jul 2003 22:32:18 -0000 1.13 *************** *** 66,70 **** if math.floor(n) != n: raise ValueError("n must be exact integer") ! if n+1 == n: # e.g., 1e300 raise OverflowError("n too large") result = 1 --- 66,70 ---- if math.floor(n) != n: raise ValueError("n must be exact integer") ! if n+1 == n: # catch a value like 1e300 raise OverflowError("n too large") result = 1 *************** *** 244,254 **** \subsection{Advanced Usage} ! \function{testmod()} actually creates a local instance of class ! \class{Tester}, runs appropriate methods of that class, and merges ! the results into global \class{Tester} instance \code{master}. ! You can create your own instances of \class{Tester}, and so build your ! own policies, or even run methods of \code{master} directly. See ! \code{Tester.__doc__} for details. --- 244,316 ---- \subsection{Advanced Usage} ! Several module level functions are available for controlling how doctests ! are run. ! \begin{funcdesc}{debug}{module, name} ! Debug a single docstring containing doctests. ! ! Provide the \var{module} (or dotted name of the module) containing the ! docstring to be debugged and the \var{name} (within the module) of the ! object with the docstring to be debugged. ! ! The doctest examples are extracted (see function \function{testsource()}), ! and written to a temporary file. The Python debugger, \refmodule{pdb}, ! is then invoked on that file. ! \versionadded{2.3} ! \end{funcdesc} ! ! \begin{funcdesc}{testmod}{} ! This function provides the most basic interface to the doctests. ! It creates a local instance of class \class{Tester}, runs appropriate ! methods of that class, and merges the results into the global \class{Tester} ! instance, \code{master}. ! ! To get finer control than \function{testmod()} offers, create an instance ! of \class{Tester} with custom policies and run the methods of \code{master} ! directly. See \code{Tester.__doc__} for details. ! \end{funcdesc} ! ! \begin{funcdesc}{testsource}{module, name} ! Extract the doctest examples from a docstring. ! ! Provide the \var{module} (or dotted name of the module) containing the ! tests to be extracted and the \var{name} (within the module) of the object ! with the docstring containing the tests to be extracted. ! ! The doctest examples are returned as a string containing Python ! code. The expected output blocks in the examples are converted ! to Python comments. ! \versionadded{2.3} ! \end{funcdesc} ! ! \begin{funcdesc}{DocTestSuite}{\optional{module}} ! Convert doctest tests for a module to a \refmodule{unittest} ! \class{TestSuite}. ! ! The returned \class{TestSuite} is to be run by the unittest framework ! and runs each doctest in the module. If any of the doctests fail, ! then the synthesized unit test fails, and a \exception{DocTestTestFailure} ! exception is raised showing the name of the file containing the test and a ! (sometimes approximate) line number. ! ! The optional \var{module} argument provides the module to be tested. It ! can be a module object or a (possibly dotted) module name. If not ! specified, the module calling \function{DocTestSuite()} is used. ! ! Example using one of the many ways that the \refmodule{unittest} module ! can use a \class{TestSuite}: ! ! \begin{verbatim} ! import unittest ! import doctest ! import my_module_with_doctests ! ! suite = doctest.DocTestSuite(my_module_with_doctests) ! runner = unittest.TextTestRunner() ! runner.run(suite) ! \end{verbatim} ! ! \versionadded{2.3} ! \end{funcdesc} From rhettinger@users.sourceforge.net Fri Jul 11 23:36:54 2003 From: rhettinger@users.sourceforge.net (rhettinger@users.sourceforge.net) Date: Fri, 11 Jul 2003 15:36:54 -0700 Subject: [Python-checkins] python/dist/src/Lib doctest.py,1.28,1.29 Message-ID: Update of /cvsroot/python/python/dist/src/Lib In directory sc8-pr-cvs1:/tmp/cvs-serv1321 Modified Files: doctest.py Log Message: Expose the 'master' instance mentioned in the docs. Index: doctest.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/doctest.py,v retrieving revision 1.28 retrieving revision 1.29 diff -C2 -d -r1.28 -r1.29 *** doctest.py 29 Jun 2003 05:30:48 -0000 1.28 --- doctest.py 11 Jul 2003 22:36:52 -0000 1.29 *************** *** 282,285 **** --- 282,286 ---- 'testsource', 'debug', + 'master', ] From rhettinger@users.sourceforge.net Sat Jul 12 02:05:39 2003 From: rhettinger@users.sourceforge.net (rhettinger@users.sourceforge.net) Date: Fri, 11 Jul 2003 18:05:39 -0700 Subject: [Python-checkins] python/dist/src/Doc/tut tut.tex,1.194,1.195 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/tut In directory sc8-pr-cvs1:/tmp/cvs-serv18655 Modified Files: tut.tex Log Message: SF patch #726751: Clarify docs for except target assignment Brett found that the tutorial didn't really explain what was happening with exception targets. Hopefully, this sheds some light on the subject. Index: tut.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/tut/tut.tex,v retrieving revision 1.194 retrieving revision 1.195 diff -C2 -d -r1.194 -r1.195 *** tut.tex 11 Jul 2003 18:58:11 -0000 1.194 --- tut.tex 12 Jul 2003 01:05:37 -0000 1.195 *************** *** 3319,3333 **** the exception's \emph{argument}. The presence and type of the argument depend on the exception type. ! For exception types which have an argument, the except clause may ! specify a variable after the exception name (or list) to receive the ! argument's value, as follows: \begin{verbatim} >>> try: ! ... spam() ! ... except NameError, x: ! ... print 'name', x, 'undefined' ! ... ! name spam undefined \end{verbatim} --- 3319,3345 ---- the exception's \emph{argument}. The presence and type of the argument depend on the exception type. ! ! The except clause may specify a variable after the exception name (or list). ! The variable is bound to an exception instance with the arguments stored ! in \code{instance.args}. For convenience, the exception instance ! defines \method{__getitem__} and \method{__str__} so the arguments can ! be accessed or printed directly without having to reference \code{.args}. \begin{verbatim} >>> try: ! ... raise Exception('spam', 'eggs') ! ... except Exception, inst: ! ... print type(inst) # the exception instance ! ... print inst.args # arguments stored in .args ! ... print inst # __str__ allows args to printed directly ! ... x, y = inst # __getitem__ allows args to be unpacked directly ! ... print 'x =', x ! ... print 'y =', y ! ... ! ! ('spam', 'eggs') ! ('spam', 'eggs') ! x = spam ! y = eggs \end{verbatim} From rhettinger@users.sourceforge.net Sat Jul 12 05:42:32 2003 From: rhettinger@users.sourceforge.net (rhettinger@users.sourceforge.net) Date: Fri, 11 Jul 2003 21:42:32 -0700 Subject: [Python-checkins] python/dist/src/Doc/whatsnew whatsnew23.tex,1.148,1.149 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/whatsnew In directory sc8-pr-cvs1:/tmp/cvs-serv10877 Modified Files: whatsnew23.tex Log Message: Fix missing parenthesis Index: whatsnew23.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/whatsnew/whatsnew23.tex,v retrieving revision 1.148 retrieving revision 1.149 diff -C2 -d -r1.148 -r1.149 *** whatsnew23.tex 10 Jul 2003 15:48:33 -0000 1.148 --- whatsnew23.tex 12 Jul 2003 04:42:30 -0000 1.149 *************** *** 2146,2150 **** char *\var{key})} was added as shorthand for ! \code{PyObject_DelItem(\var{mapping}, PyString_New(\var{key})}. \item The \method{xreadlines()} method of file objects, introduced in --- 2146,2150 ---- char *\var{key})} was added as shorthand for ! \code{PyObject_DelItem(\var{mapping}, PyString_New(\var{key}))}. \item The \method{xreadlines()} method of file objects, introduced in From loewis@users.sourceforge.net Sat Jul 12 08:33:34 2003 From: loewis@users.sourceforge.net (loewis@users.sourceforge.net) Date: Sat, 12 Jul 2003 00:33:34 -0700 Subject: [Python-checkins] python/dist/src/Doc/lib liburllib.tex,1.49,1.50 liburllib2.tex,1.10,1.11 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/lib In directory sc8-pr-cvs1:/tmp/cvs-serv30002/Doc/lib Modified Files: liburllib.tex liburllib2.tex Log Message: Patch 549151, rev4: redirect posts for 301 also. Will backport to 2.2. Index: liburllib.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/liburllib.tex,v retrieving revision 1.49 retrieving revision 1.50 diff -C2 -d -r1.49 -r1.50 *** liburllib.tex 29 Apr 2003 04:11:12 -0000 1.49 --- liburllib.tex 12 Jul 2003 07:33:31 -0000 1.50 *************** *** 258,267 **** \begin{classdesc}{FancyURLopener}{...} \class{FancyURLopener} subclasses \class{URLopener} providing default ! handling for the following HTTP response codes: 301, 302, 303 and 401. ! For 301, 302 and 303 response codes, the \mailheader{Location} header ! is used to fetch the actual URL. For 401 response codes ! (authentication required), basic HTTP authentication is performed. ! For 301, 302 and 303 response codes, recursion is bounded by the value ! of the \var{maxtries} attribute, which defaults 10. \note{According to the letter of \rfc{2616}, 301 and 302 responses to --- 258,267 ---- \begin{classdesc}{FancyURLopener}{...} \class{FancyURLopener} subclasses \class{URLopener} providing default ! handling for the following HTTP response codes: 301, 302, 303, 307 and ! 401. For the 30x response codes listed above, the ! \mailheader{Location} header is used to fetch the actual URL. For 401 ! response codes (authentication required), basic HTTP authentication is ! performed. For the 30x response codes, recursion is bounded by the ! value of the \var{maxtries} attribute, which defaults to 10. \note{According to the letter of \rfc{2616}, 301 and 302 responses to Index: liburllib2.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/liburllib2.tex,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** liburllib2.tex 7 Jun 2003 17:53:07 -0000 1.10 --- liburllib2.tex 12 Jul 2003 07:33:31 -0000 1.11 *************** *** 425,430 **** \note{The default implementation of this method does not strictly ! follow \rfc{2616}: it allows automatic 302 redirection of POST ! requests, because essentially all HTTP clients do this.} \end{methoddesc} --- 425,433 ---- \note{The default implementation of this method does not strictly ! follow \rfc{2616}, which says that 301 and 302 responses to POST ! requests must not be automatically redirected without confirmation by ! the user. In reality, browsers do allow automatic redirection of ! these responses, changing the POST to a GET, and the default ! implementation reproduces this behaviour.} \end{methoddesc} *************** *** 447,452 **** fp, code, msg, hdrs} The same as \method{http_error_301()}, but called for the ! `see other' redirect response. \end{methoddesc} \subsection{ProxyHandler Objects \label{proxy-handler}} --- 450,460 ---- fp, code, msg, hdrs} The same as \method{http_error_301()}, but called for the ! `see other' response. \end{methoddesc} + + \begin{methoddesc}[HTTPRedirectHandler]{http_error_307}{req, + fp, code, msg, hdrs} + The same as \method{http_error_301()}, but called for the + `temporary redirect' response. \subsection{ProxyHandler Objects \label{proxy-handler}} From loewis@users.sourceforge.net Sat Jul 12 08:33:34 2003 From: loewis@users.sourceforge.net (loewis@users.sourceforge.net) Date: Sat, 12 Jul 2003 00:33:34 -0700 Subject: [Python-checkins] python/dist/src/Lib urllib2.py,1.52,1.53 Message-ID: Update of /cvsroot/python/python/dist/src/Lib In directory sc8-pr-cvs1:/tmp/cvs-serv30002/Lib Modified Files: urllib2.py Log Message: Patch 549151, rev4: redirect posts for 301 also. Will backport to 2.2. Index: urllib2.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/urllib2.py,v retrieving revision 1.52 retrieving revision 1.53 diff -C2 -d -r1.52 -r1.53 *** urllib2.py 10 Jul 2003 13:30:12 -0000 1.52 --- urllib2.py 12 Jul 2003 07:33:32 -0000 1.53 *************** *** 432,438 **** m = req.get_method() if (code in (301, 302, 303, 307) and m in ("GET", "HEAD") ! or code in (302, 303) and m == "POST"): ! # Strictly (according to RFC 2616), 302 in response to a ! # POST MUST NOT cause a redirection without confirmation # from the user (of urllib2, in this case). In practice, # essentially all clients do redirect in this case, so we --- 432,438 ---- m = req.get_method() if (code in (301, 302, 303, 307) and m in ("GET", "HEAD") ! or code in (301, 302, 303) and m == "POST"): ! # Strictly (according to RFC 2616), 301 or 302 in response ! # to a POST MUST NOT cause a redirection without confirmation # from the user (of urllib2, in this case). In practice, # essentially all clients do redirect in this case, so we *************** *** 481,487 **** http_error_301 = http_error_303 = http_error_307 = http_error_302 ! inf_msg = "The HTTP server returned a redirect error that would" \ "lead to an infinite loop.\n" \ ! "The last 302 error message was:\n" class ProxyHandler(BaseHandler): --- 481,487 ---- http_error_301 = http_error_303 = http_error_307 = http_error_302 ! inf_msg = "The HTTP server returned a redirect error that would " \ "lead to an infinite loop.\n" \ ! "The last 30x error message was:\n" class ProxyHandler(BaseHandler): From loewis@users.sourceforge.net Sat Jul 12 08:35:37 2003 From: loewis@users.sourceforge.net (loewis@users.sourceforge.net) Date: Sat, 12 Jul 2003 00:35:37 -0700 Subject: [Python-checkins] python/dist/src/Doc/lib liburllib.tex,1.40.8.4,1.40.8.5 liburllib2.tex,1.6.8.3,1.6.8.4 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/lib In directory sc8-pr-cvs1:/tmp/cvs-serv30300/Doc/lib Modified Files: Tag: release22-maint liburllib.tex liburllib2.tex Log Message: Patch #549151, rev4: redirect POST on 301 also. Index: liburllib.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/liburllib.tex,v retrieving revision 1.40.8.4 retrieving revision 1.40.8.5 diff -C2 -d -r1.40.8.4 -r1.40.8.5 *** liburllib.tex 25 Apr 2003 05:31:43 -0000 1.40.8.4 --- liburllib.tex 12 Jul 2003 07:35:35 -0000 1.40.8.5 *************** *** 224,233 **** \begin{classdesc}{FancyURLopener}{...} \class{FancyURLopener} subclasses \class{URLopener} providing default ! handling for the following HTTP response codes: 301, 302, 303 and 401. ! For 301, 302 and 303 response codes, the \mailheader{Location} header ! is used to fetch the actual URL. For 401 response codes ! (authentication required), basic HTTP authentication is performed. ! For 301, 302 and 303 response codes, recursion is bounded by the value ! of the \var{maxtries} attribute, which defaults 10. \note{According to the letter of \rfc{2616}, 301 and 302 responses to --- 224,233 ---- \begin{classdesc}{FancyURLopener}{...} \class{FancyURLopener} subclasses \class{URLopener} providing default ! handling for the following HTTP response codes: 301, 302, 303, 307 and ! 401. For the 30x response codes listed above, the ! \mailheader{Location} header is used to fetch the actual URL. For 401 ! response codes (authentication required), basic HTTP authentication is ! performed. For the 30x response codes, recursion is bounded by the ! value of the \var{maxtries} attribute, which defaults to 10. \note{According to the letter of \rfc{2616}, 301 and 302 responses to Index: liburllib2.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/liburllib2.tex,v retrieving revision 1.6.8.3 retrieving revision 1.6.8.4 diff -C2 -d -r1.6.8.3 -r1.6.8.4 *** liburllib2.tex 16 May 2003 03:08:36 -0000 1.6.8.3 --- liburllib2.tex 12 Jul 2003 07:35:35 -0000 1.6.8.4 *************** *** 420,425 **** \note{The default implementation of this method does not strictly ! follow \rfc{2616}: it allows automatic 302 redirection of POST ! requests, because essentially all HTTP clients do this.} \end{methoddesc} --- 420,428 ---- \note{The default implementation of this method does not strictly ! follow \rfc{2616}, which says that 301 and 302 responses to POST ! requests must not be automatically redirected without confirmation by ! the user. In reality, browsers do allow automatic redirection of ! these responses, changing the POST to a GET, and the default ! implementation reproduces this behaviour.} \end{methoddesc} *************** *** 442,447 **** fp, code, msg, hdrs} The same as \method{http_error_301()}, but called for the ! `see other' redirect response. \end{methoddesc} \subsection{ProxyHandler Objects \label{proxy-handler}} --- 445,455 ---- fp, code, msg, hdrs} The same as \method{http_error_301()}, but called for the ! `see other' response. \end{methoddesc} + + \begin{methoddesc}[HTTPRedirectHandler]{http_error_307}{req, + fp, code, msg, hdrs} + The same as \method{http_error_301()}, but called for the + `temporary redirect' response. \subsection{ProxyHandler Objects \label{proxy-handler}} From loewis@users.sourceforge.net Sat Jul 12 08:35:37 2003 From: loewis@users.sourceforge.net (loewis@users.sourceforge.net) Date: Sat, 12 Jul 2003 00:35:37 -0700 Subject: [Python-checkins] python/dist/src/Lib urllib2.py,1.24.8.8,1.24.8.9 Message-ID: Update of /cvsroot/python/python/dist/src/Lib In directory sc8-pr-cvs1:/tmp/cvs-serv30300/Lib Modified Files: Tag: release22-maint urllib2.py Log Message: Patch #549151, rev4: redirect POST on 301 also. Index: urllib2.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/urllib2.py,v retrieving revision 1.24.8.8 retrieving revision 1.24.8.9 diff -C2 -d -r1.24.8.8 -r1.24.8.9 *** urllib2.py 14 Jun 2003 05:52:27 -0000 1.24.8.8 --- urllib2.py 12 Jul 2003 07:35:35 -0000 1.24.8.9 *************** *** 419,425 **** m = req.get_method() if (code in (301, 302, 303, 307) and m in ("GET", "HEAD") ! or code in (302, 303) and m == "POST"): ! # Strictly (according to RFC 2616), 302 in response to a ! # POST MUST NOT cause a redirection without confirmation # from the user (of urllib2, in this case). In practice, # essentially all clients do redirect in this case, so we --- 419,425 ---- m = req.get_method() if (code in (301, 302, 303, 307) and m in ("GET", "HEAD") ! or code in (301, 302, 303) and m == "POST"): ! # Strictly (according to RFC 2616), 301 or 302 in response ! # to a POST MUST NOT cause a redirection without confirmation # from the user (of urllib2, in this case). In practice, # essentially all clients do redirect in this case, so we *************** *** 468,474 **** http_error_301 = http_error_303 = http_error_307 = http_error_302 ! inf_msg = "The HTTP server returned a redirect error that would" \ "lead to an infinite loop.\n" \ ! "The last 302 error message was:\n" class ProxyHandler(BaseHandler): --- 468,474 ---- http_error_301 = http_error_303 = http_error_307 = http_error_302 ! inf_msg = "The HTTP server returned a redirect error that would " \ "lead to an infinite loop.\n" \ ! "The last 30x error message was:\n" class ProxyHandler(BaseHandler): From loewis@users.sourceforge.net Sat Jul 12 08:53:06 2003 From: loewis@users.sourceforge.net (loewis@users.sourceforge.net) Date: Sat, 12 Jul 2003 00:53:06 -0700 Subject: [Python-checkins] python/dist/src/Lib xmlrpclib.py,1.28,1.29 Message-ID: Update of /cvsroot/python/python/dist/src/Lib In directory sc8-pr-cvs1:/tmp/cvs-serv32000/Lib Modified Files: xmlrpclib.py Log Message: Patch #764470: Fix marshalling of faults. Will backport to 2.2. Index: xmlrpclib.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/xmlrpclib.py,v retrieving revision 1.28 retrieving revision 1.29 diff -C2 -d -r1.28 -r1.29 *** xmlrpclib.py 16 Jun 2003 02:49:42 -0000 1.28 --- xmlrpclib.py 12 Jul 2003 07:53:04 -0000 1.29 *************** *** 45,48 **** --- 45,54 ---- # 2002-06-27 fl Merged with Python CVS version # 2002-10-22 fl Added basic authentication (based on code from Phillip Eby) + # 2003-01-22 sm Add support for the bool type + # 2003-02-27 gvr Remove apply calls + # 2003-04-24 sm Use cStringIO if available + # 2003-04-25 ak Add support for nil + # 2003-06-15 gn Add support for time.struct_time + # 2003-07-12 gp Correct marshalling of Faults # # Copyright (c) 1999-2002 by Secret Labs AB. *************** *** 582,586 **** # fault instance write("\n") ! dump(vars(values), write) write("\n") else: --- 588,594 ---- # fault instance write("\n") ! dump({'faultCode': values.faultCode, ! 'faultString': values.faultString}, ! write) write("\n") else: From loewis@users.sourceforge.net Sat Jul 12 08:53:54 2003 From: loewis@users.sourceforge.net (loewis@users.sourceforge.net) Date: Sat, 12 Jul 2003 00:53:54 -0700 Subject: [Python-checkins] python/dist/src/Lib xmlrpclib.py,1.15,1.15.4.1 Message-ID: Update of /cvsroot/python/python/dist/src/Lib In directory sc8-pr-cvs1:/tmp/cvs-serv32082 Modified Files: Tag: release22-maint xmlrpclib.py Log Message: Patch #764470: Fix marshalling of Faults. Index: xmlrpclib.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/xmlrpclib.py,v retrieving revision 1.15 retrieving revision 1.15.4.1 diff -C2 -d -r1.15 -r1.15.4.1 *** xmlrpclib.py 19 Dec 2001 21:40:04 -0000 1.15 --- xmlrpclib.py 12 Jul 2003 07:53:52 -0000 1.15.4.1 *************** *** 440,444 **** # fault instance write("\n") ! self.__dump(vars(values)) write("\n") else: --- 440,447 ---- # fault instance write("\n") ! self.__dump({ ! 'faultCode': values.faultCode, ! 'faultString': values.faultString, ! }) write("\n") else: From tim_one@users.sourceforge.net Sat Jul 12 21:11:27 2003 From: tim_one@users.sourceforge.net (tim_one@users.sourceforge.net) Date: Sat, 12 Jul 2003 13:11:27 -0700 Subject: [Python-checkins] python/dist/src/Lib dumbdbm.py,1.22,1.23 Message-ID: Update of /cvsroot/python/python/dist/src/Lib In directory sc8-pr-cvs1:/tmp/cvs-serv28670/Lib Modified Files: dumbdbm.py Log Message: There's a persistent rumor on the spambayes mailing list that dumbdbm databases are associated with corruption problems, so I studied this code carefully and ran some brutal stress tests. I didn't find any bugs, although it's unclear whether this code *intends* that __setitem__ can leave the directory file out of synch with the data file (so if a dumbdbm isn't properly closed, and the value of an existing key was ever replaced, corruption is almost certain, where "corruption" means the directory file is out of synch with the data file). Added many comments and generally modernized the code. Examples of the latter: we have better ways of reading a whole file line-by-line now; eval() now tolerates a trailing newline; the %r format code can be used to avoid explicit repr/backtick calls; and the code often broke tuples into their components when it was clearer and faster to just leave them as tuples. Index: dumbdbm.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/dumbdbm.py,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -d -r1.22 -r1.23 *** dumbdbm.py 11 Jul 2003 04:09:55 -0000 1.22 --- dumbdbm.py 12 Jul 2003 20:11:25 -0000 1.23 *************** *** 34,42 **** class _Database(UserDict.DictMixin): ! def __init__(self, file, mode): self._mode = mode ! self._dirfile = file + _os.extsep + 'dir' ! self._datfile = file + _os.extsep + 'dat' ! self._bakfile = file + _os.extsep + 'bak' # Mod by Jack: create data file if needed try: --- 34,57 ---- class _Database(UserDict.DictMixin): ! def __init__(self, filebasename, mode): self._mode = mode ! ! # The directory file is a text file. Each line looks like ! # "%r, (%d, %d)\n" % (key, pos, siz) ! # where key is the string key, pos is the offset into the dat ! # file of the associated value's first byte, and siz is the number ! # of bytes in the associated value. ! self._dirfile = filebasename + _os.extsep + 'dir' ! ! # The data file is a binary file pointed into by the directory ! # file, and holds the values associated with keys. Each value ! # begins at a _BLOCKSIZE-aligned byte offset, and is a raw ! # binary 8-bit string value. ! self._datfile = filebasename + _os.extsep + 'dat' ! self._bakfile = filebasename + _os.extsep + 'bak' ! ! # The index is an in-memory dict, mirroring the directory file. ! self._index = None # maps keys to (pos, siz) pairs ! # Mod by Jack: create data file if needed try: *************** *** 47,50 **** --- 62,66 ---- self._update() + # Read directory file into the in-memory index dict. def _update(self): self._index = {} *************** *** 54,72 **** pass else: ! while 1: ! line = f.readline().rstrip() ! if not line: break ! key, (pos, siz) = eval(line) ! self._index[key] = (pos, siz) f.close() def _commit(self): ! try: _os.unlink(self._bakfile) ! except _os.error: pass ! try: _os.rename(self._dirfile, self._bakfile) ! except _os.error: pass f = _open(self._dirfile, 'w', self._mode) for key, (pos, siz) in self._index.items(): ! f.write("%s, (%s, %s)\n" % (`key`, `pos`, `siz`)) f.close() --- 70,95 ---- pass else: ! for line in f: ! key, pos_and_siz_pair = eval(line) ! self._index[key] = pos_and_siz_pair f.close() + # Write the index dict to the directory file. The original directory + # file (if any) is renamed with a .bak extension first. If a .bak + # file currently exists, it's deleted. def _commit(self): ! try: ! _os.unlink(self._bakfile) ! except _os.error: ! pass ! ! try: ! _os.rename(self._dirfile, self._bakfile) ! except _os.error: ! pass ! f = _open(self._dirfile, 'w', self._mode) for key, (pos, siz) in self._index.items(): ! f.write("%r, (%d, %d)\n" % (key, pos, siz)) f.close() *************** *** 79,97 **** return dat def _addval(self, val): f = _open(self._datfile, 'rb+') f.seek(0, 2) pos = int(f.tell()) - ## Does not work under MW compiler - ## pos = ((pos + _BLOCKSIZE - 1) / _BLOCKSIZE) * _BLOCKSIZE - ## f.seek(pos) npos = ((pos + _BLOCKSIZE - 1) // _BLOCKSIZE) * _BLOCKSIZE f.write('\0'*(npos-pos)) pos = npos - f.write(val) f.close() return (pos, len(val)) def _setval(self, pos, val): f = _open(self._datfile, 'rb+') --- 102,124 ---- return dat + # Append val to the data file, starting at a _BLOCKSIZE-aligned + # offset. The data file is first padded with NUL bytes (if needed) + # to get to an aligned offset. Return pair + # (starting offset of val, len(val)) def _addval(self, val): f = _open(self._datfile, 'rb+') f.seek(0, 2) pos = int(f.tell()) npos = ((pos + _BLOCKSIZE - 1) // _BLOCKSIZE) * _BLOCKSIZE f.write('\0'*(npos-pos)) pos = npos f.write(val) f.close() return (pos, len(val)) + # Write val to the data file, starting at offset pos. The caller + # is responsible for ensuring that there's enough room starting at + # pos to hold val, without overwriting some other value. Return + # pair (pos, len(val)). def _setval(self, pos, val): f = _open(self._datfile, 'rb+') *************** *** 101,108 **** return (pos, len(val)) ! def _addkey(self, key, (pos, siz)): ! self._index[key] = (pos, siz) f = _open(self._dirfile, 'a', self._mode) ! f.write("%s, (%s, %s)\n" % (`key`, `pos`, `siz`)) f.close() --- 128,138 ---- return (pos, len(val)) ! # key is a new key whose associated value starts in the data file ! # at offset pos and with length size. Add an index record to ! # the in-memory index dict, and append one to the index file. ! def _addkey(self, key, pos_and_siz_pair): ! self._index[key] = pos_and_siz_pair f = _open(self._dirfile, 'a', self._mode) ! f.write("%r, %r\n" % (key, pos_and_siz_pair)) f.close() *************** *** 110,129 **** if not type(key) == type('') == type(val): raise TypeError, "keys and values must be strings" ! if not key in self._index: ! (pos, siz) = self._addval(val) ! self._addkey(key, (pos, siz)) else: pos, siz = self._index[key] oldblocks = (siz + _BLOCKSIZE - 1) // _BLOCKSIZE newblocks = (len(val) + _BLOCKSIZE - 1) // _BLOCKSIZE if newblocks <= oldblocks: ! pos, siz = self._setval(pos, val) ! self._index[key] = pos, siz else: ! pos, siz = self._addval(val) ! self._index[key] = pos, siz def __delitem__(self, key): del self._index[key] self._commit() --- 140,170 ---- if not type(key) == type('') == type(val): raise TypeError, "keys and values must be strings" ! if key not in self._index: ! self._addkey(key, self._addval(val)) else: + # See whether the new value is small enough to fit in the + # (padded) space currently occupied by the old value. pos, siz = self._index[key] oldblocks = (siz + _BLOCKSIZE - 1) // _BLOCKSIZE newblocks = (len(val) + _BLOCKSIZE - 1) // _BLOCKSIZE if newblocks <= oldblocks: ! self._index[key] = self._setval(pos, val) else: ! # The new value doesn't fit in the (padded) space used ! # by the old value. The blocks used by the old value are ! # forever lost. ! self._index[key] = self._addval(val) ! ! # Note that _index may be out of synch with the directory ! # file now: _setval() and _addval() don't update the directory ! # file. def __delitem__(self, key): + # The blocks used by the associated value are lost. del self._index[key] + # XXX It's unclear why we do a _commit() here (the code always + # XXX has, so I'm not changing it). _setitem__ doesn't try to + # XXX keep the directory file in synch. Why should we? Or + # XXX why shouldn't __setitem__? self._commit() From tim_one@users.sourceforge.net Sat Jul 12 21:23:11 2003 From: tim_one@users.sourceforge.net (tim_one@users.sourceforge.net) Date: Sat, 12 Jul 2003 13:23:11 -0700 Subject: [Python-checkins] python/dist/src/Lib dumbdbm.py,1.23,1.24 Message-ID: Update of /cvsroot/python/python/dist/src/Lib In directory sc8-pr-cvs1:/tmp/cvs-serv31377/Lib Modified Files: dumbdbm.py Log Message: _commit(): Modernization. Index: dumbdbm.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/dumbdbm.py,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -d -r1.23 -r1.24 *** dumbdbm.py 12 Jul 2003 20:11:25 -0000 1.23 --- dumbdbm.py 12 Jul 2003 20:23:09 -0000 1.24 *************** *** 90,95 **** f = _open(self._dirfile, 'w', self._mode) ! for key, (pos, siz) in self._index.items(): ! f.write("%r, (%d, %d)\n" % (key, pos, siz)) f.close() --- 90,95 ---- f = _open(self._dirfile, 'w', self._mode) ! for key, pos_and_siz_pair in self._index.iteritems(): ! f.write("%r, %r\n" % (key, pos_and_siz_pair)) f.close() From rhettinger@users.sourceforge.net Sun Jul 13 00:56:00 2003 From: rhettinger@users.sourceforge.net (rhettinger@users.sourceforge.net) Date: Sat, 12 Jul 2003 16:56:00 -0700 Subject: [Python-checkins] python/dist/src/Misc cheatsheet,1.6,1.7 Message-ID: Update of /cvsroot/python/python/dist/src/Misc In directory sc8-pr-cvs1:/tmp/cvs-serv3050 Modified Files: cheatsheet Log Message: Update for new module and new builtin. Index: cheatsheet =================================================================== RCS file: /cvsroot/python/python/dist/src/Misc/cheatsheet,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** cheatsheet 2 Jul 2003 21:38:34 -0000 1.6 --- cheatsheet 12 Jul 2003 23:55:57 -0000 1.7 *************** *** 1042,1045 **** --- 1042,1047 ---- super(type) Create an unbound super object. Used to call cooperative superclass methods. + sum(sequence, Add the values in the sequence and return the sum. + [start]) tuple(sequence) Creates a tuple with same elements as sequence. If already a tuple, return itself (not a copy). *************** *** 1863,1866 **** --- 1865,1869 ---- copy Generic shallow and deep copying operations. copy_reg Helper to provide extensibility for pickle/cPickle. + csv Read and write files with comma separated values. dbhash (g)dbm-compatible interface to bsdhash.hashopen. dircache Sorted list of files in a dir, using a cache. From rhettinger@users.sourceforge.net Sun Jul 13 01:46:42 2003 From: rhettinger@users.sourceforge.net (rhettinger@users.sourceforge.net) Date: Sat, 12 Jul 2003 17:46:42 -0700 Subject: [Python-checkins] python/dist/src/Doc/lib libresource.tex,1.17,1.18 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/lib In directory sc8-pr-cvs1:/tmp/cvs-serv8715 Modified Files: libresource.tex Log Message: SF bug #770107: Typo in documentation of resource module Index: libresource.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/libresource.tex,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** libresource.tex 8 Apr 2002 21:28:19 -0000 1.17 --- libresource.tex 13 Jul 2003 00:46:40 -0000 1.18 *************** *** 119,124 **** \end{datadesc} ! \begin{datadesc}{RLIMIT_MEMLOC} ! The maximm address space which may be locked in memory. \end{datadesc} --- 119,124 ---- \end{datadesc} ! \begin{datadesc}{RLIMIT_MEMLOCK} ! The maximum address space which may be locked in memory. \end{datadesc} From rhettinger@users.sourceforge.net Sun Jul 13 02:31:40 2003 From: rhettinger@users.sourceforge.net (rhettinger@users.sourceforge.net) Date: Sat, 12 Jul 2003 18:31:40 -0700 Subject: [Python-checkins] python/dist/src/Lib _strptime.py,1.20,1.21 Message-ID: Update of /cvsroot/python/python/dist/src/Lib In directory sc8-pr-cvs1:/tmp/cvs-serv14273 Modified Files: _strptime.py Log Message: SF 748201: time.strptime() should display format and date on error Usability fix. Makes the error message more helpful. Index: _strptime.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/_strptime.py,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** _strptime.py 3 Jul 2003 19:59:57 -0000 1.20 --- _strptime.py 13 Jul 2003 01:31:38 -0000 1.21 *************** *** 431,435 **** found = format_regex.match(data_string) if not found: ! raise ValueError("time data did not match format") if len(data_string) != found.end(): raise ValueError("unconverted data remains: %s" % --- 431,436 ---- found = format_regex.match(data_string) if not found: ! raise ValueError("time data did not match format: data=%s fmt=%s" % ! (data_string, format)) if len(data_string) != found.end(): raise ValueError("unconverted data remains: %s" % From tim_one@users.sourceforge.net Sun Jul 13 03:05:49 2003 From: tim_one@users.sourceforge.net (tim_one@users.sourceforge.net) Date: Sat, 12 Jul 2003 19:05:49 -0700 Subject: [Python-checkins] python/dist/src/Lib dumbdbm.py,1.24,1.25 Message-ID: Update of /cvsroot/python/python/dist/src/Lib In directory sc8-pr-cvs1:/tmp/cvs-serv17744/Lib Modified Files: dumbdbm.py Log Message: More comments about why not closing a dumddbm properly can be a disaster. Index: dumbdbm.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/dumbdbm.py,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** dumbdbm.py 12 Jul 2003 20:23:09 -0000 1.24 --- dumbdbm.py 13 Jul 2003 02:05:47 -0000 1.25 *************** *** 129,134 **** # key is a new key whose associated value starts in the data file ! # at offset pos and with length size. Add an index record to ! # the in-memory index dict, and append one to the index file. def _addkey(self, key, pos_and_siz_pair): self._index[key] = pos_and_siz_pair --- 129,134 ---- # key is a new key whose associated value starts in the data file ! # at offset pos and with length siz. Add an index record to ! # the in-memory index dict, and append one to the directory file. def _addkey(self, key, pos_and_siz_pair): self._index[key] = pos_and_siz_pair *************** *** 158,162 **** # Note that _index may be out of synch with the directory # file now: _setval() and _addval() don't update the directory ! # file. def __delitem__(self, key): --- 158,166 ---- # Note that _index may be out of synch with the directory # file now: _setval() and _addval() don't update the directory ! # file. This also means that the on-disk directory and data ! # files are in a mutually inconsistent state, and they'll ! # remain that way until _commit() is called. Note that this ! # is a disaster (for the database) if the program crashes ! # (so that _commit() never gets called). def __delitem__(self, key): From rhettinger@users.sourceforge.net Sun Jul 13 03:06:49 2003 From: rhettinger@users.sourceforge.net (rhettinger@users.sourceforge.net) Date: Sat, 12 Jul 2003 19:06:49 -0700 Subject: [Python-checkins] python/dist/src/Doc/lib libstring.tex,1.50,1.51 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/lib In directory sc8-pr-cvs1:/tmp/cvs-serv17790 Modified Files: libstring.tex Log Message: SF bug #706546: u''.translate not documented Clarified the difference between translate methods for string objects and Unicode objects. Index: libstring.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/libstring.tex,v retrieving revision 1.50 retrieving revision 1.51 diff -C2 -d -r1.50 -r1.51 *** libstring.tex 17 Apr 2003 23:07:13 -0000 1.50 --- libstring.tex 13 Jul 2003 02:06:47 -0000 1.51 *************** *** 277,281 **** present), and then translate the characters using \var{table}, which must be a 256-character string giving the translation for each ! character value, indexed by its ordinal. \end{funcdesc} --- 277,291 ---- present), and then translate the characters using \var{table}, which must be a 256-character string giving the translation for each ! character value, indexed by its ordinal. ! ! For Unicode objects, the \method{translate()} method does not ! accept the optional \var{deletechars} argument. Instead, it ! returns a copy of the \var{s} where all characters have been mapped ! through the given translation table which must be a mapping of ! Unicode ordinals to Unicode ordinals, Unicode strings or \code{None}. ! Unmapped characters are left untouched. Characters mapped to \code{None} ! are deleted. Note, a more flexible approach is to create a custom ! character mapping codec using the \refmodule{codecs} module (see ! \module{encodings.cp1251} for an example). \end{funcdesc} From tim_one@users.sourceforge.net Sun Jul 13 03:22:06 2003 From: tim_one@users.sourceforge.net (tim_one@users.sourceforge.net) Date: Sat, 12 Jul 2003 19:22:06 -0700 Subject: [Python-checkins] python/dist/src/Misc NEWS,1.809,1.810 Message-ID: Update of /cvsroot/python/python/dist/src/Misc In directory sc8-pr-cvs1:/tmp/cvs-serv19323/Misc Modified Files: NEWS Log Message: Fixed critical shutdown race in _Database._commit. Related to SF patch 723231 (which pointed out the problem, but didn't fix it, just shut up the warning msg -- which was pointing out a dead- serious bug!). Bugfix candidate. Index: NEWS =================================================================== RCS file: /cvsroot/python/python/dist/src/Misc/NEWS,v retrieving revision 1.809 retrieving revision 1.810 diff -C2 -d -r1.809 -r1.810 *** NEWS 6 Jul 2003 18:36:54 -0000 1.809 --- NEWS 13 Jul 2003 02:22:03 -0000 1.810 *************** *** 39,42 **** --- 39,50 ---- ------- + - It's vital that a dumbdbm database be closed properly, else the + on-disk data and directory files can be left in mutually inconsistent + states. dumbdbm.py's _Database.__del__() method attempted to close + the database properly, but a shutdown race in _Database._commit() + could prevent this form working, so that a program trusting __del__() + to get the on-disk files in synch could be badly surprised. The race + has been repaired. + - The classes in threading.py are now new-style classes. That they weren't before was an oversight. From tim_one@users.sourceforge.net Sun Jul 13 03:22:06 2003 From: tim_one@users.sourceforge.net (tim_one@users.sourceforge.net) Date: Sat, 12 Jul 2003 19:22:06 -0700 Subject: [Python-checkins] python/dist/src/Lib dumbdbm.py,1.25,1.26 Message-ID: Update of /cvsroot/python/python/dist/src/Lib In directory sc8-pr-cvs1:/tmp/cvs-serv19323/Lib Modified Files: dumbdbm.py Log Message: Fixed critical shutdown race in _Database._commit. Related to SF patch 723231 (which pointed out the problem, but didn't fix it, just shut up the warning msg -- which was pointing out a dead- serious bug!). Bugfix candidate. Index: dumbdbm.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/dumbdbm.py,v retrieving revision 1.25 retrieving revision 1.26 diff -C2 -d -r1.25 -r1.26 *** dumbdbm.py 13 Jul 2003 02:05:47 -0000 1.25 --- dumbdbm.py 13 Jul 2003 02:22:03 -0000 1.26 *************** *** 34,37 **** --- 34,48 ---- class _Database(UserDict.DictMixin): + # The on-disk directory and data files can remain in mutually + # inconsistent states for an arbitrarily long time (see comments + # at the end of __setitem__). This is only repaired when _commit() + # gets called. One place _commit() gets called is from __del__(), + # and if that occurs at program shutdown time, module globals may + # already have gotten rebound to None. Since it's crucial that + # _commit() finish sucessfully, we can't ignore shutdown races + # here, and _commit() must not reference any globals. + _os = _os # for _commit() + _open = _open # for _commit() + def __init__(self, filebasename, mode): self._mode = mode *************** *** 79,93 **** # file currently exists, it's deleted. def _commit(self): try: ! _os.unlink(self._bakfile) ! except _os.error: pass try: ! _os.rename(self._dirfile, self._bakfile) ! except _os.error: pass ! f = _open(self._dirfile, 'w', self._mode) for key, pos_and_siz_pair in self._index.iteritems(): f.write("%r, %r\n" % (key, pos_and_siz_pair)) --- 90,107 ---- # file currently exists, it's deleted. def _commit(self): + # CAUTION: It's vital that _commit() succeed, and _commit() can + # be called from __del__(). Therefore we must never reference a + # global in this routine. try: ! self._os.unlink(self._bakfile) ! except self._os.error: pass try: ! self._os.rename(self._dirfile, self._bakfile) ! except self._os.error: pass ! f = self._open(self._dirfile, 'w', self._mode) for key, pos_and_siz_pair in self._index.iteritems(): f.write("%r, %r\n" % (key, pos_and_siz_pair)) From tim_one@users.sourceforge.net Sun Jul 13 03:37:07 2003 From: tim_one@users.sourceforge.net (tim_one@users.sourceforge.net) Date: Sat, 12 Jul 2003 19:37:07 -0700 Subject: [Python-checkins] python/dist/src/Lib dumbdbm.py,1.26,1.27 Message-ID: Update of /cvsroot/python/python/dist/src/Lib In directory sc8-pr-cvs1:/tmp/cvs-serv20913/Lib Modified Files: dumbdbm.py Log Message: Repaired typos in comments. Index: dumbdbm.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/dumbdbm.py,v retrieving revision 1.26 retrieving revision 1.27 diff -C2 -d -r1.26 -r1.27 *** dumbdbm.py 13 Jul 2003 02:22:03 -0000 1.26 --- dumbdbm.py 13 Jul 2003 02:37:05 -0000 1.27 *************** *** 40,44 **** # and if that occurs at program shutdown time, module globals may # already have gotten rebound to None. Since it's crucial that ! # _commit() finish sucessfully, we can't ignore shutdown races # here, and _commit() must not reference any globals. _os = _os # for _commit() --- 40,44 ---- # and if that occurs at program shutdown time, module globals may # already have gotten rebound to None. Since it's crucial that ! # _commit() finish successfully, we can't ignore shutdown races # here, and _commit() must not reference any globals. _os = _os # for _commit() From tim_one@users.sourceforge.net Sun Jul 13 03:37:07 2003 From: tim_one@users.sourceforge.net (tim_one@users.sourceforge.net) Date: Sat, 12 Jul 2003 19:37:07 -0700 Subject: [Python-checkins] python/dist/src/Misc NEWS,1.810,1.811 Message-ID: Update of /cvsroot/python/python/dist/src/Misc In directory sc8-pr-cvs1:/tmp/cvs-serv20913/Misc Modified Files: NEWS Log Message: Repaired typos in comments. Index: NEWS =================================================================== RCS file: /cvsroot/python/python/dist/src/Misc/NEWS,v retrieving revision 1.810 retrieving revision 1.811 diff -C2 -d -r1.810 -r1.811 *** NEWS 13 Jul 2003 02:22:03 -0000 1.810 --- NEWS 13 Jul 2003 02:37:05 -0000 1.811 *************** *** 43,47 **** states. dumbdbm.py's _Database.__del__() method attempted to close the database properly, but a shutdown race in _Database._commit() ! could prevent this form working, so that a program trusting __del__() to get the on-disk files in synch could be badly surprised. The race has been repaired. --- 43,47 ---- states. dumbdbm.py's _Database.__del__() method attempted to close the database properly, but a shutdown race in _Database._commit() ! could prevent this from working, so that a program trusting __del__() to get the on-disk files in synch could be badly surprised. The race has been repaired. From rhettinger@users.sourceforge.net Sun Jul 13 07:15:13 2003 From: rhettinger@users.sourceforge.net (rhettinger@users.sourceforge.net) Date: Sat, 12 Jul 2003 23:15:13 -0700 Subject: [Python-checkins] python/dist/src/Lib/test test_warnings.py,1.2,1.3 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/test In directory sc8-pr-cvs1:/tmp/cvs-serv10418 Modified Files: test_warnings.py Log Message: This test failed on WindowsME because the full file path did not get reported consistently with the *nix world. 'Lib/test/test_warnings.py' came out as 'lib\test\test_warnings.py'. The basename is all we care about so I used that. Index: test_warnings.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/test/test_warnings.py,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** test_warnings.py 11 Jul 2003 20:22:55 -0000 1.2 --- test_warnings.py 13 Jul 2003 06:15:11 -0000 1.3 *************** *** 1,3 **** --- 1,4 ---- import warnings + import os # The warnings module isn't easily tested, because it relies on module *************** *** 9,14 **** def showwarning(message, category, filename, lineno, file=None): ! i = filename.find("Lib") ! filename = filename[i:] print "%s:%s: %s: %s" % (filename, lineno, category.__name__, message) --- 10,14 ---- def showwarning(message, category, filename, lineno, file=None): ! filename = os.path.basename(filename) print "%s:%s: %s: %s" % (filename, lineno, category.__name__, message) From rhettinger@users.sourceforge.net Sun Jul 13 07:15:13 2003 From: rhettinger@users.sourceforge.net (rhettinger@users.sourceforge.net) Date: Sat, 12 Jul 2003 23:15:13 -0700 Subject: [Python-checkins] python/dist/src/Lib/test/output test_warnings,1.1,1.2 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/test/output In directory sc8-pr-cvs1:/tmp/cvs-serv10418/output Modified Files: test_warnings Log Message: This test failed on WindowsME because the full file path did not get reported consistently with the *nix world. 'Lib/test/test_warnings.py' came out as 'lib\test\test_warnings.py'. The basename is all we care about so I used that. Index: test_warnings =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/test/output/test_warnings,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** test_warnings 11 Jul 2003 15:37:59 -0000 1.1 --- test_warnings 13 Jul 2003 06:15:11 -0000 1.2 *************** *** 3,10 **** ('ignore', True, 'OverflowWarning', True, 0) ('ignore', True, 'PendingDeprecationWarning', True, 0) ! Lib/test/test_warnings.py:31: UserWarning: hello world ! Lib/test/test_warnings.py:32: UserWarning: hello world ! Lib/test/test_warnings.py:33: DeprecationWarning: hello world ! Lib/test/test_warnings.py:35: UserWarning: hello world Caught UserWarning: hello world Caught AssertionError: invalid action: 'booh' --- 3,10 ---- ('ignore', True, 'OverflowWarning', True, 0) ('ignore', True, 'PendingDeprecationWarning', True, 0) ! test_warnings.py:31: UserWarning: hello world ! test_warnings.py:32: UserWarning: hello world ! test_warnings.py:33: DeprecationWarning: hello world ! test_warnings.py:35: UserWarning: hello world Caught UserWarning: hello world Caught AssertionError: invalid action: 'booh' From rhettinger@users.sourceforge.net Sun Jul 13 09:37:42 2003 From: rhettinger@users.sourceforge.net (rhettinger@users.sourceforge.net) Date: Sun, 13 Jul 2003 01:37:42 -0700 Subject: [Python-checkins] python/dist/src/Lib/test/output test_warnings,1.2,NONE Message-ID: Update of /cvsroot/python/python/dist/src/Lib/test/output In directory sc8-pr-cvs1:/tmp/cvs-serv26065/output Removed Files: test_warnings Log Message: Reworked test_warnings.py: * It ran fine under "python regrtest.py test_warnings" but failed under "python regrtest.py" presumably because other tests would add to filtered warnings and not reset them at the end of the test. * Converted to a unittest format for better control. Renamed monkey() and unmonkey() to setUp() and tearDown(). * Increased coverage by testing all warnings in __builtin__. * Increased coverage by testing regex matching of specific messages. --- test_warnings DELETED --- From rhettinger@users.sourceforge.net Sun Jul 13 09:37:42 2003 From: rhettinger@users.sourceforge.net (rhettinger@users.sourceforge.net) Date: Sun, 13 Jul 2003 01:37:42 -0700 Subject: [Python-checkins] python/dist/src/Lib/test test_warnings.py,1.3,1.4 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/test In directory sc8-pr-cvs1:/tmp/cvs-serv26065 Modified Files: test_warnings.py Log Message: Reworked test_warnings.py: * It ran fine under "python regrtest.py test_warnings" but failed under "python regrtest.py" presumably because other tests would add to filtered warnings and not reset them at the end of the test. * Converted to a unittest format for better control. Renamed monkey() and unmonkey() to setUp() and tearDown(). * Increased coverage by testing all warnings in __builtin__. * Increased coverage by testing regex matching of specific messages. Index: test_warnings.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/test/test_warnings.py,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** test_warnings.py 13 Jul 2003 06:15:11 -0000 1.3 --- test_warnings.py 13 Jul 2003 08:37:39 -0000 1.4 *************** *** 1,53 **** import warnings import os # The warnings module isn't easily tested, because it relies on module ! # globals to store configuration information. We need to extract the ! # current settings to avoid bashing them while running tests. ! _filters = [] ! _showwarning = None def showwarning(message, category, filename, lineno, file=None): ! filename = os.path.basename(filename) ! print "%s:%s: %s: %s" % (filename, lineno, category.__name__, message) ! def monkey(): ! global _filters, _showwarning ! _filters = warnings.filters[:] ! _showwarning = warnings.showwarning ! warnings.showwarning = showwarning ! def unmonkey(): ! warnings.filters = _filters[:] ! warnings.showwarning = _showwarning ! def test(): ! for item in warnings.filters: ! print (item[0], item[1] is None, item[2].__name__, item[3] is None, ! item[4]) ! hello = "hello world" ! for i in range(4): ! warnings.warn(hello) ! warnings.warn(hello, UserWarning) ! warnings.warn(hello, DeprecationWarning) ! for i in range(3): ! warnings.warn(hello) ! warnings.filterwarnings("error", "", Warning, "", 0) ! try: ! warnings.warn(hello) ! except Exception, msg: ! print "Caught", msg.__class__.__name__ + ":", msg ! else: ! print "No exception" ! warnings.resetwarnings() ! try: ! warnings.filterwarnings("booh", "", Warning, "", 0) ! except Exception, msg: ! print "Caught", msg.__class__.__name__ + ":", msg ! else: ! print "No exception" ! monkey() ! test() ! unmonkey() --- 1,88 ---- import warnings import os + import unittest + from test import test_support # The warnings module isn't easily tested, because it relies on module ! # globals to store configuration information. setUp() and tearDown() ! # preserve the current settings to avoid bashing them while running tests. ! # To capture the warning messages, a replacement for showwarning() is ! # used to save warning information in a global variable. ! ! class WarningMessage: ! "Holds results of latest showwarning() call" ! pass def showwarning(message, category, filename, lineno, file=None): ! msg.message = str(message) ! msg.category = category.__name__ ! msg.filename = os.path.basename(filename) ! msg.lineno = lineno ! class TestModule(unittest.TestCase): ! def setUp(self): ! global msg ! msg = WarningMessage() ! self._filters = warnings.filters[:] ! self._showwarning = warnings.showwarning ! warnings.showwarning = showwarning ! self.ignored = [w[2].__name__ for w in self._filters ! if w[0]=='ignore' and w[1] is None and w[3] is None] ! def tearDown(self): ! warnings.filters = self._filters[:] ! warnings.showwarning = self._showwarning ! def test_warn_default_category(self): ! for i in range(4): ! text = 'multi %d' %i # Different text on each call ! warnings.warn(text) ! self.assertEqual(msg.message, text) ! self.assertEqual(msg.category, 'UserWarning') ! ! def test_warn_specific_category(self): ! text = 'None' ! for category in [DeprecationWarning, FutureWarning, OverflowWarning, ! PendingDeprecationWarning, RuntimeWarning, ! SyntaxWarning, UserWarning, Warning]: ! if category.__name__ in self.ignored: ! text = 'filtered out' + category.__name__ ! warnings.warn(text, category) ! self.assertNotEqual(msg.message, text) ! else: ! text = 'unfiltered %s' % category.__name__ ! warnings.warn(text, category) ! self.assertEqual(msg.message, text) ! self.assertEqual(msg.category, category.__name__) ! ! def test_filtering(self): ! ! warnings.filterwarnings("error", "", Warning, "", 0) ! self.assertRaises(UserWarning, warnings.warn, 'convert to error') ! ! warnings.resetwarnings() ! text = 'handle normally' ! warnings.warn(text) ! self.assertEqual(msg.message, text) ! self.assertEqual(msg.category, 'UserWarning') ! ! warnings.filterwarnings("ignore", "", Warning, "", 0) ! text = 'filtered out' ! warnings.warn(text) ! self.assertNotEqual(msg.message, text) ! ! warnings.resetwarnings() ! warnings.filterwarnings("error", "hex*", Warning, "", 0) ! self.assertRaises(UserWarning, warnings.warn, 'hex/oct') ! text = 'nonmatching text' ! warnings.warn(text) ! self.assertEqual(msg.message, text) ! self.assertEqual(msg.category, 'UserWarning') ! ! def test_main(verbose=None): ! test_support.run_unittest(TestModule) ! ! if __name__ == "__main__": ! test_main(verbose=True) From loewis@users.sourceforge.net Sun Jul 13 10:46:16 2003 From: loewis@users.sourceforge.net (loewis@users.sourceforge.net) Date: Sun, 13 Jul 2003 02:46:16 -0700 Subject: [Python-checkins] python/dist/src configure,1.413,1.414 configure.in,1.424,1.425 Message-ID: Update of /cvsroot/python/python/dist/src In directory sc8-pr-cvs1:/tmp/cvs-serv651 Modified Files: configure configure.in Log Message: Treat irix64 like irix. Fixes #764560. Will backport to 2.2. Index: configure =================================================================== RCS file: /cvsroot/python/python/dist/src/configure,v retrieving revision 1.413 retrieving revision 1.414 diff -C2 -d -r1.413 -r1.414 *** configure 10 Jul 2003 20:44:10 -0000 1.413 --- configure 13 Jul 2003 09:46:13 -0000 1.414 *************** *** 1,6 **** #! /bin/sh ! # From configure.in Revision: 1.423 . # Guess values for system-dependent variables and create Makefiles. ! # Generated by GNU Autoconf 2.57 for python 2.3. # # Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002 --- 1,6 ---- #! /bin/sh ! # From configure.in Revision: 1.424 . # Guess values for system-dependent variables and create Makefiles. [...13428 lines suppressed...] rm -f $ac_file *************** *** 19654,19662 **** if test "$no_create" != yes; then ac_cs_success=: - ac_config_status_args= - test "$silent" = yes && - ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null ! $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which --- 18821,18826 ---- if test "$no_create" != yes; then ac_cs_success=: exec 5>/dev/null ! $SHELL $CONFIG_STATUS || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which Index: configure.in =================================================================== RCS file: /cvsroot/python/python/dist/src/configure.in,v retrieving revision 1.424 retrieving revision 1.425 diff -C2 -d -r1.424 -r1.425 *** configure.in 10 Jul 2003 20:44:10 -0000 1.424 --- configure.in 13 Jul 2003 09:46:13 -0000 1.425 *************** *** 118,121 **** --- 118,122 ---- darwin*) MACHDEP="darwin";; atheos*) MACHDEP="atheos";; + irix646) MACHDEP="irix6";; '') MACHDEP="unknown";; esac From loewis@users.sourceforge.net Sun Jul 13 10:48:35 2003 From: loewis@users.sourceforge.net (loewis@users.sourceforge.net) Date: Sun, 13 Jul 2003 02:48:35 -0700 Subject: [Python-checkins] python/dist/src configure,1.279.6.20,1.279.6.21 configure.in,1.288.6.20,1.288.6.21 Message-ID: Update of /cvsroot/python/python/dist/src In directory sc8-pr-cvs1:/tmp/cvs-serv996 Modified Files: Tag: release22-maint configure configure.in Log Message: Treat irix64 like irix. Fixes #764560. Index: configure =================================================================== RCS file: /cvsroot/python/python/dist/src/configure,v retrieving revision 1.279.6.20 retrieving revision 1.279.6.21 diff -C2 -d -r1.279.6.20 -r1.279.6.21 *** configure 7 Jul 2003 21:43:58 -0000 1.279.6.20 --- configure 13 Jul 2003 09:48:29 -0000 1.279.6.21 *************** *** 1,5 **** #! /bin/sh ! # From configure.in Revision: 1.288.6.19 # Guess values for system-dependent variables and create Makefiles. --- 1,5 ---- #! /bin/sh ! # From configure.in Revision: 1.288.6.20 [...5068 lines suppressed...] if eval "test \"`echo '$''{'ac_cv_type_socklen_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < *************** *** 7663,7667 **** SRCDIRS="Parser Grammar Objects Python Modules" echo $ac_n "checking for build directories""... $ac_c" 1>&6 ! echo "configure:7666: checking for build directories" >&5 for dir in $SRCDIRS; do if test ! -d $dir; then --- 7664,7668 ---- SRCDIRS="Parser Grammar Objects Python Modules" echo $ac_n "checking for build directories""... $ac_c" 1>&6 ! echo "configure:7667: checking for build directories" >&5 for dir in $SRCDIRS; do if test ! -d $dir; then Index: configure.in =================================================================== RCS file: /cvsroot/python/python/dist/src/configure.in,v retrieving revision 1.288.6.20 retrieving revision 1.288.6.21 diff -C2 -d -r1.288.6.20 -r1.288.6.21 *** configure.in 7 Jul 2003 21:44:00 -0000 1.288.6.20 --- configure.in 13 Jul 2003 09:48:31 -0000 1.288.6.21 *************** *** 71,74 **** --- 71,75 ---- cygwin*) MACHDEP="cygwin";; darwin*) MACHDEP="darwin";; + irix646) MACHDEP="irix6";; '') MACHDEP="unknown";; esac From loewis@users.sourceforge.net Sun Jul 13 11:10:45 2003 From: loewis@users.sourceforge.net (loewis@users.sourceforge.net) Date: Sun, 13 Jul 2003 03:10:45 -0700 Subject: [Python-checkins] python/dist/src Makefile.pre.in,1.135,1.136 Message-ID: Update of /cvsroot/python/python/dist/src In directory sc8-pr-cvs1:/tmp/cvs-serv3121 Modified Files: Makefile.pre.in Log Message: Patch #770245: Pass LDFLAGS to pgen creation. Index: Makefile.pre.in =================================================================== RCS file: /cvsroot/python/python/dist/src/Makefile.pre.in,v retrieving revision 1.135 retrieving revision 1.136 diff -C2 -d -r1.135 -r1.136 *** Makefile.pre.in 4 Jul 2003 12:14:38 -0000 1.135 --- Makefile.pre.in 13 Jul 2003 10:10:42 -0000 1.136 *************** *** 436,440 **** $(PGEN): $(PGENOBJS) ! $(CC) $(OPT) $(PGENOBJS) $(LIBS) -o $(PGEN) Parser/grammar.o: $(srcdir)/Parser/grammar.c \ --- 436,440 ---- $(PGEN): $(PGENOBJS) ! $(CC) $(OPT) $(LDFLAGS) $(PGENOBJS) $(LIBS) -o $(PGEN) Parser/grammar.o: $(srcdir)/Parser/grammar.c \ From rhettinger@users.sourceforge.net Sun Jul 13 11:25:16 2003 From: rhettinger@users.sourceforge.net (rhettinger@users.sourceforge.net) Date: Sun, 13 Jul 2003 03:25:16 -0700 Subject: [Python-checkins] python/dist/src/Lib/idlelib CallTips.py,1.9,1.10 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/idlelib In directory sc8-pr-cvs1:/tmp/cvs-serv4397 Modified Files: CallTips.py Log Message: SF bug #769142: CallTip trimming may loop forever. Needs to be backported to both IDLE and IDLEFORK. Index: CallTips.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/idlelib/CallTips.py,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** CallTips.py 31 Dec 2002 15:59:14 -0000 1.9 --- CallTips.py 13 Jul 2003 10:25:14 -0000 1.10 *************** *** 163,170 **** pass # See if we can use the docstring ! doc = getattr(ob, "__doc__", "") if doc: - while doc[:1] in " \t\n": - doc = doc[1:] pos = doc.find("\n") if pos < 0 or pos > 70: --- 163,168 ---- pass # See if we can use the docstring ! doc = getattr(ob, "__doc__", "").lstrip() if doc: pos = doc.find("\n") if pos < 0 or pos > 70: From loewis@users.sourceforge.net Sun Jul 13 11:41:55 2003 From: loewis@users.sourceforge.net (loewis@users.sourceforge.net) Date: Sun, 13 Jul 2003 03:41:55 -0700 Subject: [Python-checkins] python/dist/src/Python pystate.c,2.28,2.29 Message-ID: Update of /cvsroot/python/python/dist/src/Python In directory sc8-pr-cvs1:/tmp/cvs-serv6147/Python Modified Files: pystate.c Log Message: Initialize thread_id to 0 in unthreaded build. Fixes #770247. Index: pystate.c =================================================================== RCS file: /cvsroot/python/python/dist/src/Python/pystate.c,v retrieving revision 2.28 retrieving revision 2.29 diff -C2 -d -r2.28 -r2.29 *** pystate.c 28 Jun 2003 21:53:52 -0000 2.28 --- pystate.c 13 Jul 2003 10:41:53 -0000 2.29 *************** *** 145,149 **** --- 145,153 ---- tstate->gilstate_counter = 0; tstate->async_exc = NULL; + #ifdef WITH_THREAD tstate->thread_id = PyThread_get_thread_ident(); + #else + tstate->thread_id = 0; + #endif tstate->dict = NULL; From aimacintyre@users.sourceforge.net Sun Jul 13 14:42:02 2003 From: aimacintyre@users.sourceforge.net (aimacintyre@users.sourceforge.net) Date: Sun, 13 Jul 2003 06:42:02 -0700 Subject: [Python-checkins] python/dist/src/PC/os2emx Makefile,1.12,1.13 pyconfig.h,1.5,1.6 python23.def,1.6,1.7 Message-ID: Update of /cvsroot/python/python/dist/src/PC/os2emx In directory sc8-pr-cvs1:/tmp/cvs-serv26407 Modified Files: Makefile pyconfig.h python23.def Log Message: More pre-2.3 build tweaks for the OS/2 EMX port: - separate the building of the core from the wrapper executables and the external modules (.PYDs), based on the Py_BUILD_CORE define; - clean up the generated import library definiton (.DEF file) to remove references to a number of non-static symbols that aren't part of the Python API and which shouldn't be exported by the core DLL; - compile the release build with -fomit-frame-pointer, for a small performance gain; - make "make clean" remove byte compiled Python library files. Index: Makefile =================================================================== RCS file: /cvsroot/python/python/dist/src/PC/os2emx/Makefile,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** Makefile 9 Jun 2003 08:14:03 -0000 1.12 --- Makefile 13 Jul 2003 13:41:59 -0000 1.13 *************** *** 84,87 **** --- 84,88 ---- EXPLIB= emxexp EXEOPT= emxbind + PY_DEF= -DPy_BUILD_CORE *************** *** 91,97 **** LDFLAGS+= -g else ! CFLAGS+= -s -O2 LDFLAGS+= -s endif ifeq ($(ASSERTIONS),no) CFLAGS+= -DNDEBUG --- 92,99 ---- LDFLAGS+= -g else ! CFLAGS+= -s -O2 -fomit-frame-pointer LDFLAGS+= -s endif + CFLAGS+= $(PY_DEF) ifeq ($(ASSERTIONS),no) CFLAGS+= -DNDEBUG *************** *** 475,479 **** # Targets all: $(OUT) $(PYTHON.LIB) $(PYTHON.DEF) $(PYTHON.IMPLIB) $(PYTHON.DLL) \ ! $(PYTHON.EXE) $(PYTHONPM.EXE) $(PGEN.EXE) $(EXTERNDLLS) clean: --- 477,484 ---- # Targets all: $(OUT) $(PYTHON.LIB) $(PYTHON.DEF) $(PYTHON.IMPLIB) $(PYTHON.DLL) \ ! python_noncore ! ! python_noncore: ! make PY_DEF= $(PYTHON.EXE) $(PYTHONPM.EXE) $(PGEN.EXE) $(EXTERNDLLS) clean: *************** *** 481,484 **** --- 486,490 ---- rm -f $(PYTHON.LIB) $(PYTHON.IMPLIB) $(PYTHON.EXEIMP) $(PYTHON.DLL) \ $(PYTHON.EXE) $(PYTHONPM.EXE) $(PGEN.EXE) *$(MODULE.EXT) + find ../../Lib -name "*.py[co]" -exec rm {} ";" lx: *************** *** 499,502 **** --- 505,511 ---- $(AR) $(ARFLAGS) $@ $^ + # the Python core DLL .def file needs to have a number of non-static + # symbols that aren't part of the Python C API removed (commented out) + # from the DLL export list. $(PYTHON.DEF): $(PYTHON.LIB) @echo Creating .DEF file: $@ *************** *** 506,510 **** @echo DATA MULTIPLE NONSHARED >>$@ @echo EXPORTS >>$@ ! $(EXPLIB) -u $(PYTHON.LIB) >>$@ $(PYTHON.IMPLIB): $(PYTHON.DEF) --- 515,541 ---- @echo DATA MULTIPLE NONSHARED >>$@ @echo EXPORTS >>$@ ! $(EXPLIB) -u $(PYTHON.LIB) |\ ! sed -e "/ .init.*/s/^ /; /" \ ! -e "/ .pcre_.*/s/^ /; /" \ ! -e "/ .array_methods/s/^ /; /" \ ! -e "/ .fast_save_leave/s/^ /; /" \ ! -e "/ .dlopen/s/^ /; /" \ ! -e "/ .dlsym/s/^ /; /" \ ! -e "/ .dlclose/s/^ /; /" \ ! -e "/ .dlerror/s/^ /; /" \ ! -e "/ .cycle_type/s/^ /; /" \ ! -e "/ .dropwhile_type/s/^ /; /" \ ! -e "/ .takewhile_type/s/^ /; /" \ ! -e "/ .islice_type/s/^ /; /" \ ! -e "/ .starmap_type/s/^ /; /" \ ! -e "/ .imap_type/s/^ /; /" \ ! -e "/ .chain_type/s/^ /; /" \ ! -e "/ .ifilter_type/s/^ /; /" \ ! -e "/ .ifilterfalse_type/s/^ /; /" \ ! -e "/ .count_type/s/^ /; /" \ ! -e "/ .izip_type/s/^ /; /" \ ! -e "/ .repeat_type/s/^ /; /" \ ! -e "/ ._Py_re_.*/s/^ /; /" \ ! -e "/ ._Py_MD5.*/s/^ /; /" >>$@ $(PYTHON.IMPLIB): $(PYTHON.DEF) *************** *** 628,632 **** #_tkinter$(MODULE.EXT): $(OUT)_tkinter$O $(OUT)tclNotify$O $(OUT)tkappinit$O _tkinter$(MODULE.EXT): $(OUT)_tkinter$O $(OUT)tclNotify$O \ ! $(OUT)_tkinter_m.def $(PYTHON.IMPLIB) $(LD) $(LDFLAGS.DLL) -o $@ $(^^) $(L^) $(LIBS) $(TK_LIBS) --- 659,663 ---- #_tkinter$(MODULE.EXT): $(OUT)_tkinter$O $(OUT)tclNotify$O $(OUT)tkappinit$O _tkinter$(MODULE.EXT): $(OUT)_tkinter$O $(OUT)tclNotify$O \ ! $(OUT)_tkinter_m.def $(PYTHON.IMPLIB) $(LD) $(LDFLAGS.DLL) -o $@ $(^^) $(L^) $(LIBS) $(TK_LIBS) Index: pyconfig.h =================================================================== RCS file: /cvsroot/python/python/dist/src/PC/os2emx/pyconfig.h,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** pyconfig.h 9 Jun 2003 08:16:59 -0000 1.5 --- pyconfig.h 13 Jul 2003 13:41:59 -0000 1.6 *************** *** 27,30 **** --- 27,42 ---- #endif + /* if building an extension or wrapper executable, + * mark Python API symbols "extern" so that symbols + * imported from the Python core DLL aren't duplicated. + */ + #ifdef Py_BUILD_CORE + # define PyAPI_FUNC(RTYPE) RTYPE + #else + # define PyAPI_FUNC(RTYPE) extern RTYPE + #endif + #define PyAPI_DATA(RTYPE) extern RTYPE + #define PyMODINIT_FUNC void + /* Use OS/2 flavour of threads */ #define WITH_THREAD 1 Index: python23.def =================================================================== RCS file: /cvsroot/python/python/dist/src/PC/os2emx/python23.def,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** python23.def 19 Feb 2003 12:42:36 -0000 1.6 --- python23.def 13 Jul 2003 13:41:59 -0000 1.7 *************** *** 9,22 **** ; From python23_s.lib(dlfcn) ! "dlopen" ! "dlsym" ! "dlclose" ! "dlerror" ; From python23_s.lib(getpathp) ! "Py_GetPath" "Py_GetPrefix" [...1638 lines suppressed...] + ; "inittermios" + + ; From python23_s.lib(timemodule) + ; "inittime" + ; "inittimezone" + + ; From python23_s.lib(timingmodule) + ; "inittiming" + + ; From python23_s.lib(_weakref) + ; "init_weakref" + + ; From python23_s.lib(xreadlinesmodule) + ; "initxreadlines" + + ; From python23_s.lib(xxsubtype) + ; "initxxsubtype" + + ; From python23_s.lib(zipimport) + ; "initzipimport" From anthonybaxter@users.sourceforge.net Sun Jul 13 14:54:36 2003 From: anthonybaxter@users.sourceforge.net (anthonybaxter@users.sourceforge.net) Date: Sun, 13 Jul 2003 06:54:36 -0700 Subject: [Python-checkins] python/dist/src/Objects funcobject.c,2.50.4.3,2.50.4.4 Message-ID: Update of /cvsroot/python/python/dist/src/Objects In directory sc8-pr-cvs1:/tmp/cvs-serv30506/Objects Modified Files: Tag: release22-maint funcobject.c Log Message: Backport of rhettinger's funcobject.c 2.63, bugfix for SF bug 753451 Check the argument of classmethod is callable. (prevents classmethod(classmethod(func)) from bombing out. Index: funcobject.c =================================================================== RCS file: /cvsroot/python/python/dist/src/Objects/funcobject.c,v retrieving revision 2.50.4.3 retrieving revision 2.50.4.4 diff -C2 -d -r2.50.4.3 -r2.50.4.4 *** funcobject.c 22 May 2003 18:11:20 -0000 2.50.4.3 --- funcobject.c 13 Jul 2003 13:54:34 -0000 2.50.4.4 *************** *** 612,615 **** --- 612,621 ---- if (!PyArg_ParseTuple(args, "O:callable", &callable)) return -1; + if (!PyCallable_Check(callable)) { + PyErr_Format(PyExc_TypeError, "'%s' object is not callable", + callable->ob_type->tp_name); + return -1; + } + Py_INCREF(callable); cm->cm_callable = callable; From anthonybaxter@users.sourceforge.net Sun Jul 13 14:54:36 2003 From: anthonybaxter@users.sourceforge.net (anthonybaxter@users.sourceforge.net) Date: Sun, 13 Jul 2003 06:54:36 -0700 Subject: [Python-checkins] python/dist/src/Lib/test test_descr.py,1.113.4.34,1.113.4.35 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/test In directory sc8-pr-cvs1:/tmp/cvs-serv30506/Lib/test Modified Files: Tag: release22-maint test_descr.py Log Message: Backport of rhettinger's funcobject.c 2.63, bugfix for SF bug 753451 Check the argument of classmethod is callable. (prevents classmethod(classmethod(func)) from bombing out. Index: test_descr.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/test/test_descr.py,v retrieving revision 1.113.4.34 retrieving revision 1.113.4.35 diff -C2 -d -r1.113.4.34 -r1.113.4.35 *** test_descr.py 16 Jun 2003 23:38:27 -0000 1.113.4.34 --- test_descr.py 13 Jul 2003 13:54:34 -0000 1.113.4.35 *************** *** 1288,1291 **** --- 1288,1299 ---- vereq(super(D,d).goo(), (D,)) + # Verify that argument is checked for callability (SF bug 753451) + try: + classmethod(1).__get__(1) + except TypeError: + pass + else: + raise TestFailed, "classmethod should check for callability" + def staticmethods(): if verbose: print "Testing static methods..." From anthonybaxter@users.sourceforge.net Sun Jul 13 14:55:58 2003 From: anthonybaxter@users.sourceforge.net (anthonybaxter@users.sourceforge.net) Date: Sun, 13 Jul 2003 06:55:58 -0700 Subject: [Python-checkins] python/dist/src/Misc NEWS,1.337.2.4.2.90,1.337.2.4.2.91 Message-ID: Update of /cvsroot/python/python/dist/src/Misc In directory sc8-pr-cvs1:/tmp/cvs-serv30741 Modified Files: Tag: release22-maint NEWS Log Message: backport for 753451 Index: NEWS =================================================================== RCS file: /cvsroot/python/python/dist/src/Misc/NEWS,v retrieving revision 1.337.2.4.2.90 retrieving revision 1.337.2.4.2.91 diff -C2 -d -r1.337.2.4.2.90 -r1.337.2.4.2.91 *** NEWS 1 Jul 2003 15:12:33 -0000 1.337.2.4.2.90 --- NEWS 13 Jul 2003 13:55:55 -0000 1.337.2.4.2.91 *************** *** 9,12 **** --- 9,14 ---- when there are no lines. + - SF bug 753451: classmethod checks that it's argument is callable. + What's New in Python 2.2.3 (final) ? Release date: 30-May-2003 From montanaro@users.sourceforge.net Sun Jul 13 16:18:14 2003 From: montanaro@users.sourceforge.net (montanaro@users.sourceforge.net) Date: Sun, 13 Jul 2003 08:18:14 -0700 Subject: [Python-checkins] python/dist/src/Lib unittest.py,1.23,1.24 Message-ID: Update of /cvsroot/python/python/dist/src/Lib In directory sc8-pr-cvs1:/tmp/cvs-serv9038 Modified Files: unittest.py Log Message: delete unused local variable (pychecker caught) Index: unittest.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/unittest.py,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -d -r1.23 -r1.24 *** unittest.py 4 Apr 2003 22:56:41 -0000 1.23 --- unittest.py 13 Jul 2003 15:18:12 -0000 1.24 *************** *** 219,223 **** testMethod() ok = 1 ! except self.failureException, e: result.addFailure(self, self.__exc_info()) except KeyboardInterrupt: --- 219,223 ---- testMethod() ok = 1 ! except self.failureException: result.addFailure(self, self.__exc_info()) except KeyboardInterrupt: From rhettinger@users.sourceforge.net Sun Jul 13 17:06:28 2003 From: rhettinger@users.sourceforge.net (rhettinger@users.sourceforge.net) Date: Sun, 13 Jul 2003 09:06:28 -0700 Subject: [Python-checkins] python/dist/src/Lib fnmatch.py,1.13,1.14 Message-ID: Update of /cvsroot/python/python/dist/src/Lib In directory sc8-pr-cvs1:/tmp/cvs-serv15243 Modified Files: fnmatch.py Log Message: SF patch #765238: fix fnmatch.__all__ (Contributed by George Yoshida.) Index: fnmatch.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/fnmatch.py,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** fnmatch.py 1 Jun 2002 14:18:45 -0000 1.13 --- fnmatch.py 13 Jul 2003 16:06:26 -0000 1.14 *************** *** 13,17 **** import re ! __all__ = ["fnmatch","fnmatchcase","translate"] _cache = {} --- 13,17 ---- import re ! __all__ = ["filter", "fnmatch","fnmatchcase","translate"] _cache = {} From tim_one@users.sourceforge.net Sun Jul 13 18:21:12 2003 From: tim_one@users.sourceforge.net (tim_one@users.sourceforge.net) Date: Sun, 13 Jul 2003 10:21:12 -0700 Subject: [Python-checkins] python/dist/src/Lib/test test_dumbdbm.py,1.9,1.10 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/test In directory sc8-pr-cvs1:/tmp/cvs-serv24717/Lib/test Modified Files: test_dumbdbm.py Log Message: Make close() identical to __del__() for a dumbdbm database. Make closing idempotent (it used to raise a nuisance exception on the 2nd close attempt). Bugfix candidate? Probably, but arguable. Index: test_dumbdbm.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/test/test_dumbdbm.py,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** test_dumbdbm.py 11 Jul 2003 04:09:09 -0000 1.9 --- test_dumbdbm.py 13 Jul 2003 17:21:10 -0000 1.10 *************** *** 39,42 **** --- 39,49 ---- f.close() + def test_close_twice(self): + f = dumbdbm.open(_fname) + f['a'] = 'b' + self.assertEqual(f['a'], 'b') + f.close() + f.close() + def test_dumbdbm_modification(self): self.init_db() From tim_one@users.sourceforge.net Sun Jul 13 18:21:12 2003 From: tim_one@users.sourceforge.net (tim_one@users.sourceforge.net) Date: Sun, 13 Jul 2003 10:21:12 -0700 Subject: [Python-checkins] python/dist/src/Lib dumbdbm.py,1.27,1.28 Message-ID: Update of /cvsroot/python/python/dist/src/Lib In directory sc8-pr-cvs1:/tmp/cvs-serv24717/Lib Modified Files: dumbdbm.py Log Message: Make close() identical to __del__() for a dumbdbm database. Make closing idempotent (it used to raise a nuisance exception on the 2nd close attempt). Bugfix candidate? Probably, but arguable. Index: dumbdbm.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/dumbdbm.py,v retrieving revision 1.27 retrieving revision 1.28 diff -C2 -d -r1.27 -r1.28 *** dumbdbm.py 13 Jul 2003 02:37:05 -0000 1.27 --- dumbdbm.py 13 Jul 2003 17:21:09 -0000 1.28 *************** *** 93,96 **** --- 93,99 ---- # be called from __del__(). Therefore we must never reference a # global in this routine. + if self._index is None: + return # nothing to do + try: self._os.unlink(self._bakfile) *************** *** 205,214 **** def close(self): self._commit() ! self._index = None ! self._datfile = self._dirfile = self._bakfile = None ! def __del__(self): ! if self._index is not None: ! self._commit() --- 208,214 ---- def close(self): self._commit() ! self._index = self._datfile = self._dirfile = self._bakfile = None ! __del__ = close From tim_one@users.sourceforge.net Sun Jul 13 18:21:12 2003 From: tim_one@users.sourceforge.net (tim_one@users.sourceforge.net) Date: Sun, 13 Jul 2003 10:21:12 -0700 Subject: [Python-checkins] python/dist/src/Misc NEWS,1.811,1.812 Message-ID: Update of /cvsroot/python/python/dist/src/Misc In directory sc8-pr-cvs1:/tmp/cvs-serv24717/Misc Modified Files: NEWS Log Message: Make close() identical to __del__() for a dumbdbm database. Make closing idempotent (it used to raise a nuisance exception on the 2nd close attempt). Bugfix candidate? Probably, but arguable. Index: NEWS =================================================================== RCS file: /cvsroot/python/python/dist/src/Misc/NEWS,v retrieving revision 1.811 retrieving revision 1.812 diff -C2 -d -r1.811 -r1.812 *** NEWS 13 Jul 2003 02:37:05 -0000 1.811 --- NEWS 13 Jul 2003 17:21:10 -0000 1.812 *************** *** 39,42 **** --- 39,45 ---- ------- + - Closing a dumbdbm database more than once is now harmless (it used to + raise a nuisance exception on the second close). + - It's vital that a dumbdbm database be closed properly, else the on-disk data and directory files can be left in mutually inconsistent From rhettinger@users.sourceforge.net Mon Jul 14 07:56:34 2003 From: rhettinger@users.sourceforge.net (rhettinger@users.sourceforge.net) Date: Sun, 13 Jul 2003 23:56:34 -0700 Subject: [Python-checkins] python/dist/src/Lib CGIHTTPServer.py,1.31,1.32 Message-ID: Update of /cvsroot/python/python/dist/src/Lib In directory sc8-pr-cvs1:/tmp/cvs-serv32046 Modified Files: CGIHTTPServer.py Log Message: SF bug #770601: CGIHTTPServer and environment variables (bug + solution) (contributed by Vincent Delft.) The script updated os.environ but failed to pass the whole environment to the child process (the CGI script). Index: CGIHTTPServer.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/CGIHTTPServer.py,v retrieving revision 1.31 retrieving revision 1.32 diff -C2 -d -r1.31 -r1.32 *** CGIHTTPServer.py 29 Jun 2003 05:06:56 -0000 1.31 --- CGIHTTPServer.py 14 Jul 2003 06:56:32 -0000 1.32 *************** *** 216,220 **** os.dup2(self.rfile.fileno(), 0) os.dup2(self.wfile.fileno(), 1) ! os.execve(scriptfile, args, env) except: self.server.handle_error(self.request, self.client_address) --- 216,220 ---- os.dup2(self.rfile.fileno(), 0) os.dup2(self.wfile.fileno(), 1) ! os.execve(scriptfile, args, os.environ) except: self.server.handle_error(self.request, self.client_address) From rhettinger@users.sourceforge.net Mon Jul 14 08:07:15 2003 From: rhettinger@users.sourceforge.net (rhettinger@users.sourceforge.net) Date: Mon, 14 Jul 2003 00:07:15 -0700 Subject: [Python-checkins] python/dist/src/Modules itertoolsmodule.c,1.17,1.18 Message-ID: Update of /cvsroot/python/python/dist/src/Modules In directory sc8-pr-cvs1:/tmp/cvs-serv1699 Modified Files: itertoolsmodule.c Log Message: SF patch #770521: make itertools type declarations static (Contributed by Andrew I MacIntyre.) Index: itertoolsmodule.c =================================================================== RCS file: /cvsroot/python/python/dist/src/Modules/itertoolsmodule.c,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** itertoolsmodule.c 18 Jun 2003 19:25:34 -0000 1.17 --- itertoolsmodule.c 14 Jul 2003 07:07:12 -0000 1.18 *************** *** 17,21 **** } cycleobject; ! PyTypeObject cycle_type; static PyObject * --- 17,21 ---- } cycleobject; ! static PyTypeObject cycle_type; static PyObject * *************** *** 112,116 **** Then repeat the sequence indefinitely."); ! PyTypeObject cycle_type = { PyObject_HEAD_INIT(NULL) 0, /* ob_size */ --- 112,116 ---- Then repeat the sequence indefinitely."); ! static PyTypeObject cycle_type = { PyObject_HEAD_INIT(NULL) 0, /* ob_size */ *************** *** 167,171 **** } dropwhileobject; ! PyTypeObject dropwhile_type; static PyObject * --- 167,171 ---- } dropwhileobject; ! static PyTypeObject dropwhile_type; static PyObject * *************** *** 261,265 **** Afterwards, return every element until the iterable is exhausted."); ! PyTypeObject dropwhile_type = { PyObject_HEAD_INIT(NULL) 0, /* ob_size */ --- 261,265 ---- Afterwards, return every element until the iterable is exhausted."); ! static PyTypeObject dropwhile_type = { PyObject_HEAD_INIT(NULL) 0, /* ob_size */ *************** *** 316,320 **** } takewhileobject; ! PyTypeObject takewhile_type; static PyObject * --- 316,320 ---- } takewhileobject; ! static PyTypeObject takewhile_type; static PyObject * *************** *** 409,413 **** predicate evaluates to true for each entry."); ! PyTypeObject takewhile_type = { PyObject_HEAD_INIT(NULL) 0, /* ob_size */ --- 409,413 ---- predicate evaluates to true for each entry."); ! static PyTypeObject takewhile_type = { PyObject_HEAD_INIT(NULL) 0, /* ob_size */ *************** *** 466,470 **** } isliceobject; ! PyTypeObject islice_type; static PyObject * --- 466,470 ---- } isliceobject; ! static PyTypeObject islice_type; static PyObject * *************** *** 599,603 **** but returns an iterator."); ! PyTypeObject islice_type = { PyObject_HEAD_INIT(NULL) 0, /* ob_size */ --- 599,603 ---- but returns an iterator."); ! static PyTypeObject islice_type = { PyObject_HEAD_INIT(NULL) 0, /* ob_size */ *************** *** 653,657 **** } starmapobject; ! PyTypeObject starmap_type; static PyObject * --- 653,657 ---- } starmapobject; ! static PyTypeObject starmap_type; static PyObject * *************** *** 738,742 **** with a argument tuple taken from the given sequence."); ! PyTypeObject starmap_type = { PyObject_HEAD_INIT(NULL) 0, /* ob_size */ --- 738,742 ---- with a argument tuple taken from the given sequence."); ! static PyTypeObject starmap_type = { PyObject_HEAD_INIT(NULL) 0, /* ob_size */ *************** *** 792,796 **** } imapobject; ! PyTypeObject imap_type; static PyObject * --- 792,796 ---- } imapobject; ! static PyTypeObject imap_type; static PyObject * *************** *** 925,929 **** iterables."); ! PyTypeObject imap_type = { PyObject_HEAD_INIT(NULL) 0, /* ob_size */ --- 925,929 ---- iterables."); ! static PyTypeObject imap_type = { PyObject_HEAD_INIT(NULL) 0, /* ob_size */ *************** *** 980,984 **** } chainobject; ! PyTypeObject chain_type; static PyObject * --- 980,984 ---- } chainobject; ! static PyTypeObject chain_type; static PyObject * *************** *** 1062,1066 **** iterable, until all of the iterables are exhausted."); ! PyTypeObject chain_type = { PyObject_HEAD_INIT(NULL) 0, /* ob_size */ --- 1062,1066 ---- iterable, until all of the iterables are exhausted."); ! static PyTypeObject chain_type = { PyObject_HEAD_INIT(NULL) 0, /* ob_size */ *************** *** 1116,1120 **** } ifilterobject; ! PyTypeObject ifilter_type; static PyObject * --- 1116,1120 ---- } ifilterobject; ! static PyTypeObject ifilter_type; static PyObject * *************** *** 1211,1215 **** If function is None, return the items that are true."); ! PyTypeObject ifilter_type = { PyObject_HEAD_INIT(NULL) 0, /* ob_size */ --- 1211,1215 ---- If function is None, return the items that are true."); ! static PyTypeObject ifilter_type = { PyObject_HEAD_INIT(NULL) 0, /* ob_size */ *************** *** 1265,1269 **** } ifilterfalseobject; ! PyTypeObject ifilterfalse_type; static PyObject * --- 1265,1269 ---- } ifilterfalseobject; ! static PyTypeObject ifilterfalse_type; static PyObject * *************** *** 1360,1364 **** If function is None, return the items that are false."); ! PyTypeObject ifilterfalse_type = { PyObject_HEAD_INIT(NULL) 0, /* ob_size */ --- 1360,1364 ---- If function is None, return the items that are false."); ! static PyTypeObject ifilterfalse_type = { PyObject_HEAD_INIT(NULL) 0, /* ob_size */ *************** *** 1413,1417 **** } countobject; ! PyTypeObject count_type; static PyObject * --- 1413,1417 ---- } countobject; ! static PyTypeObject count_type; static PyObject * *************** *** 1445,1449 **** integers starting from zero or, if specified, from firstval."); ! PyTypeObject count_type = { PyObject_HEAD_INIT(NULL) 0, /* ob_size */ --- 1445,1449 ---- integers starting from zero or, if specified, from firstval."); ! static PyTypeObject count_type = { PyObject_HEAD_INIT(NULL) 0, /* ob_size */ *************** *** 1500,1504 **** } izipobject; ! PyTypeObject izip_type; static PyObject * --- 1500,1504 ---- } izipobject; ! static PyTypeObject izip_type; static PyObject * *************** *** 1638,1642 **** a list."); ! PyTypeObject izip_type = { PyObject_HEAD_INIT(NULL) 0, /* ob_size */ --- 1638,1642 ---- a list."); ! static PyTypeObject izip_type = { PyObject_HEAD_INIT(NULL) 0, /* ob_size */ *************** *** 1692,1696 **** } repeatobject; ! PyTypeObject repeat_type; static PyObject * --- 1692,1696 ---- } repeatobject; ! static PyTypeObject repeat_type; static PyObject * *************** *** 1748,1752 **** endlessly."); ! PyTypeObject repeat_type = { PyObject_HEAD_INIT(NULL) 0, /* ob_size */ --- 1748,1752 ---- endlessly."); ! static PyTypeObject repeat_type = { PyObject_HEAD_INIT(NULL) 0, /* ob_size */ From rhettinger@users.sourceforge.net Mon Jul 14 09:15:49 2003 From: rhettinger@users.sourceforge.net (rhettinger@users.sourceforge.net) Date: Mon, 14 Jul 2003 01:15:49 -0700 Subject: [Python-checkins] python/dist/src/Doc/lib libhtmllib.tex,1.25,1.26 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/lib In directory sc8-pr-cvs1:/tmp/cvs-serv12724 Modified Files: libhtmllib.tex Log Message: SF bug #738090: Section 13.3: htmllib.HTMLParser constructor definition amendment Add a clarifying cross-reference to the formatter module. Index: libhtmllib.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/libhtmllib.tex,v retrieving revision 1.25 retrieving revision 1.26 diff -C2 -d -r1.25 -r1.26 *** libhtmllib.tex 16 Apr 2003 13:21:06 -0000 1.25 --- libhtmllib.tex 14 Jul 2003 08:15:47 -0000 1.26 *************** *** 71,74 **** --- 71,77 ---- \begin{seealso} + \seemodule{formatter}{Interface definition for transforming an + abstract flow of formatting events into + specific output events on writer objects.} \seemodule{HTMLParser}{Alternate HTML parser that offers a slightly lower-level view of the input, but is From montanaro@users.sourceforge.net Mon Jul 14 13:12:39 2003 From: montanaro@users.sourceforge.net (montanaro@users.sourceforge.net) Date: Mon, 14 Jul 2003 05:12:39 -0700 Subject: [Python-checkins] python/dist/src/Doc/lib libdumbdbm.tex,NONE,1.1 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/lib In directory sc8-pr-cvs1:/tmp/cvs-serv15601 Added Files: libdumbdbm.tex Log Message: minimal dumdbm module doc --- NEW FILE: libdumbdbm.tex --- \section{\module{dumbdbm} --- Simple ``database'' interface written in Python} \declaremodule{builtin}{dumbdbm} \modulesynopsis{A dbm-style module available on all platforms.} \index{databases} \note{The \module{dumbdbm} module is intended as a last resort fallback for the \module{anydbm} module when no other more robust module is available. The \module{dumbdbm} module is not written for speed and is not nearly as heavily used as the other database modules.} The \module{dumbdbm} module provides a persisten dictionary-like interface which is written entirely in Python. Unlike other modules such as {}\module{gdbm} and \module{bsddb}, no external library is required. As with other persistent mappings, the keys and values must always be strings. The module defines the following: \begin{excdesc}{error} Raised on dumbdbm-specific errors, such as I/O errors. \exception{KeyError} is raised for general mapping errors like specifying an incorrect key. \end{excdesc} \begin{funcdesc}{open}{filename\optional{, flag\optional{, mode}}} Open a dumbdbm database and return a dumbdbm object. The \var{filename} argument is the basename of the database file (without any specific extensions). When a dumbdbm database is created, files with \code{.dat} and \code{.dir} extensions are created. The optional \var{flag} argument is currently ignored. The optional \var{mode} argument is the \UNIX{} mode of the file, used only when the database has to be created. It defaults to octal \code{0666}. \end{funcdesc} \subsection{Dumbdbm Objects \label{dumbdbm-objects}} In addition to the methods provided by the \class{UserDict.DictMixin} class, \class{dumbdbm} objects provide the following methods. \begin{methoddesc}{sync}{} Synchronize the on-disk directory and data files. This method is called by the \method{sync} method of \class{Shelve} objects. \end{methoddesc} \begin{seealso} \seemodule{anydbm}{Generic interface to \code{dbm}-style databases.} \seemodule{dbm}{Similar interface to the DBM/NDBM library.} \seemodule{gdbm}{Similar interface to the GNU GDBM library.} \seemodule{shelve}{Persistence module which stores non-string data.} \seemodule{whichdb}{Utility module used to determine the type of an existing database.} \end{seealso} From montanaro@users.sourceforge.net Mon Jul 14 13:12:58 2003 From: montanaro@users.sourceforge.net (montanaro@users.sourceforge.net) Date: Mon, 14 Jul 2003 05:12:58 -0700 Subject: [Python-checkins] python/dist/src/Doc Makefile.deps,1.109,1.110 Message-ID: Update of /cvsroot/python/python/dist/src/Doc In directory sc8-pr-cvs1:/tmp/cvs-serv15631 Modified Files: Makefile.deps Log Message: + libdumbdbm Index: Makefile.deps =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/Makefile.deps,v retrieving revision 1.109 retrieving revision 1.110 diff -C2 -d -r1.109 -r1.110 *** Makefile.deps 28 Jun 2003 13:27:57 -0000 1.109 --- Makefile.deps 14 Jul 2003 12:12:56 -0000 1.110 *************** *** 231,234 **** --- 231,235 ---- lib/libanydbm.tex \ lib/libbsddb.tex \ + lib/libdumbdbm.tex \ lib/libdbhash.tex \ lib/librandom.tex \ From montanaro@users.sourceforge.net Mon Jul 14 13:13:29 2003 From: montanaro@users.sourceforge.net (montanaro@users.sourceforge.net) Date: Mon, 14 Jul 2003 05:13:29 -0700 Subject: [Python-checkins] python/dist/src/Doc/lib lib.tex,1.222,1.223 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/lib In directory sc8-pr-cvs1:/tmp/cvs-serv15698 Modified Files: lib.tex Log Message: + libdumdbm Index: lib.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/lib.tex,v retrieving revision 1.222 retrieving revision 1.223 diff -C2 -d -r1.222 -r1.223 *** lib.tex 28 May 2003 11:57:51 -0000 1.222 --- lib.tex 14 Jul 2003 12:13:27 -0000 1.223 *************** *** 179,182 **** --- 179,183 ---- \input{libwhichdb} \input{libbsddb} + \input{libdumbdbm} \input{libzlib} \input{libgzip} From montanaro@users.sourceforge.net Mon Jul 14 13:15:17 2003 From: montanaro@users.sourceforge.net (montanaro@users.sourceforge.net) Date: Mon, 14 Jul 2003 05:15:17 -0700 Subject: [Python-checkins] python/dist/src/Lib dumbdbm.py,1.28,1.29 Message-ID: Update of /cvsroot/python/python/dist/src/Lib In directory sc8-pr-cvs1:/tmp/cvs-serv15952 Modified Files: dumbdbm.py Log Message: Give dumbdbm a sync() method which Shelve can call. Should solve some database corruption problems with Spambayes. Index: dumbdbm.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/dumbdbm.py,v retrieving revision 1.28 retrieving revision 1.29 diff -C2 -d -r1.28 -r1.29 *** dumbdbm.py 13 Jul 2003 17:21:09 -0000 1.28 --- dumbdbm.py 14 Jul 2003 12:15:15 -0000 1.29 *************** *** 111,114 **** --- 111,116 ---- f.close() + sync = _commit + def __getitem__(self, key): pos, siz = self._index[key] # may raise KeyError From montanaro@users.sourceforge.net Mon Jul 14 18:04:52 2003 From: montanaro@users.sourceforge.net (montanaro@users.sourceforge.net) Date: Mon, 14 Jul 2003 10:04:52 -0700 Subject: [Python-checkins] python/dist/src/Doc/lib librobotparser.tex,1.5,1.6 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/lib In directory sc8-pr-cvs1:/tmp/cvs-serv15526 Modified Files: librobotparser.tex Log Message: update norobots link Index: librobotparser.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/librobotparser.tex,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** librobotparser.tex 5 Apr 2002 02:21:09 -0000 1.5 --- librobotparser.tex 14 Jul 2003 17:04:50 -0000 1.6 *************** *** 16,20 **** the Web site that published the \file{robots.txt} file. For more details on the structure of \file{robots.txt} files, see ! \url{http://info.webcrawler.com/mak/projects/robots/norobots.html}. \begin{classdesc}{RobotFileParser}{} --- 16,20 ---- the Web site that published the \file{robots.txt} file. For more details on the structure of \file{robots.txt} files, see ! \url{http://www.robotstxt.org/wc/norobots.html}. \begin{classdesc}{RobotFileParser}{} From montanaro@users.sourceforge.net Mon Jul 14 18:05:21 2003 From: montanaro@users.sourceforge.net (montanaro@users.sourceforge.net) Date: Mon, 14 Jul 2003 10:05:21 -0700 Subject: [Python-checkins] python/dist/src/Doc/lib librobotparser.tex,1.4,1.4.8.1 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/lib In directory sc8-pr-cvs1:/tmp/cvs-serv15658 Modified Files: Tag: release22-maint librobotparser.tex Log Message: correct link Index: librobotparser.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/librobotparser.tex,v retrieving revision 1.4 retrieving revision 1.4.8.1 diff -C2 -d -r1.4 -r1.4.8.1 *** librobotparser.tex 6 Nov 2001 22:14:35 -0000 1.4 --- librobotparser.tex 14 Jul 2003 17:05:19 -0000 1.4.8.1 *************** *** 16,20 **** the Web site that published the \file{robots.txt} file. For more details on the structure of \file{robots.txt} files, see ! \url{http://info.webcrawler.com/mak/projects/robots/norobots.html}. \begin{classdesc}{RobotFileParser}{} --- 16,20 ---- the Web site that published the \file{robots.txt} file. For more details on the structure of \file{robots.txt} files, see ! \url{http://www.robotstxt.org/wc/norobots.html}. \begin{classdesc}{RobotFileParser}{} From rhettinger@users.sourceforge.net Mon Jul 14 19:24:28 2003 From: rhettinger@users.sourceforge.net (rhettinger@users.sourceforge.net) Date: Mon, 14 Jul 2003 11:24:28 -0700 Subject: [Python-checkins] python/dist/src/Doc/lib libprofile.tex,1.40,1.41 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/lib In directory sc8-pr-cvs1:/tmp/cvs-serv1123 Modified Files: libprofile.tex Log Message: Fix missing parenthesis Index: libprofile.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/libprofile.tex,v retrieving revision 1.40 retrieving revision 1.41 diff -C2 -d -r1.40 -r1.41 *** libprofile.tex 14 May 2003 14:29:27 -0000 1.40 --- libprofile.tex 14 Jul 2003 18:24:26 -0000 1.41 *************** *** 464,468 **** The order of the printing is based on the last \method{sort_stats()} operation done on the object (subject to caveats in \method{add()} and ! \method{strip_dirs()}. The arguments provided (if any) can be used to limit the list down to --- 464,468 ---- The order of the printing is based on the last \method{sort_stats()} operation done on the object (subject to caveats in \method{add()} and ! \method{strip_dirs()}). The arguments provided (if any) can be used to limit the list down to From rhettinger@users.sourceforge.net Mon Jul 14 19:36:49 2003 From: rhettinger@users.sourceforge.net (rhettinger@users.sourceforge.net) Date: Mon, 14 Jul 2003 11:36:49 -0700 Subject: [Python-checkins] python/dist/src/Doc/lib libal.tex,1.14,1.15 libcurses.tex,1.41,1.42 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/lib In directory sc8-pr-cvs1:/tmp/cvs-serv4343 Modified Files: libal.tex libcurses.tex Log Message: Fix unbalanced parenthesis in text. Index: libal.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/libal.tex,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** libal.tex 20 Oct 2001 04:24:09 -0000 1.14 --- libal.tex 14 Jul 2003 18:36:47 -0000 1.15 *************** *** 63,67 **** \subsection{Configuration Objects \label{al-config-objects}} ! Configuration objects (returned by \function{newconfig()} have the following methods: --- 63,67 ---- \subsection{Configuration Objects \label{al-config-objects}} ! Configuration objects returned by \function{newconfig()} have the following methods: Index: libcurses.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/libcurses.tex,v retrieving revision 1.41 retrieving revision 1.42 diff -C2 -d -r1.41 -r1.42 *** libcurses.tex 12 Jan 2003 14:56:19 -0000 1.41 --- libcurses.tex 14 Jul 2003 18:36:47 -0000 1.42 *************** *** 998,1002 **** \begin{methoddesc}[window]{timeout}{delay} Sets blocking or non-blocking read behavior for the window. If ! \var{delay} is negative, blocking read is used, which will wait indefinitely for input). If \var{delay} is zero, then non-blocking read is used, and -1 will be returned by \method{getch()} if no input --- 998,1002 ---- \begin{methoddesc}[window]{timeout}{delay} Sets blocking or non-blocking read behavior for the window. If ! \var{delay} is negative, blocking read is used (which will wait indefinitely for input). If \var{delay} is zero, then non-blocking read is used, and -1 will be returned by \method{getch()} if no input From fdrake@users.sourceforge.net Mon Jul 14 21:53:59 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Mon, 14 Jul 2003 13:53:59 -0700 Subject: [Python-checkins] python/dist/src/Doc/lib liburllib2.tex,1.11,1.12 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/lib In directory sc8-pr-cvs1:/tmp/cvs-serv30878 Modified Files: liburllib2.tex Log Message: Added missing markup. Index: liburllib2.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/liburllib2.tex,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** liburllib2.tex 12 Jul 2003 07:33:31 -0000 1.11 --- liburllib2.tex 14 Jul 2003 20:53:57 -0000 1.12 *************** *** 457,460 **** --- 457,462 ---- The same as \method{http_error_301()}, but called for the `temporary redirect' response. + \end{methoddesc} + \subsection{ProxyHandler Objects \label{proxy-handler}} From fdrake@users.sourceforge.net Mon Jul 14 22:07:07 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Mon, 14 Jul 2003 14:07:07 -0700 Subject: [Python-checkins] python/dist/src/Doc/lib liburllib2.tex,1.12,1.13 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/lib In directory sc8-pr-cvs1:/tmp/cvs-serv1796 Modified Files: liburllib2.tex Log Message: Markup consistency nits. Index: liburllib2.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/liburllib2.tex,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** liburllib2.tex 14 Jul 2003 20:53:57 -0000 1.12 --- liburllib2.tex 14 Jul 2003 21:07:05 -0000 1.13 *************** *** 51,65 **** front of the \var{handler}s, unless the \var{handler}s contain them, instances of them or subclasses of them: ! ! \code{ProxyHandler, UnknownHandler, HTTPHandler, HTTPDefaultErrorHandler, ! HTTPRedirectHandler, FTPHandler, FileHandler} If the Python installation has SSL support (\function{socket.ssl()} exists), \class{HTTPSHandler} will also be added. ! Beginning in Python 2.3, a \class{BaseHandler} subclass may also change its ! \var{handler_order} member variable to modify its position in the handlers ! list. Besides \class{ProxyHandler}, which has \var{handler_order} of ! \code{100}, all handlers currently have it set to \code{500}. \end{funcdesc} --- 51,66 ---- front of the \var{handler}s, unless the \var{handler}s contain them, instances of them or subclasses of them: ! \class{ProxyHandler}, \class{UnknownHandler}, \class{HTTPHandler}, ! \class{HTTPDefaultErrorHandler}, \class{HTTPRedirectHandler}, ! \class{FTPHandler}, \class{FileHandler} If the Python installation has SSL support (\function{socket.ssl()} exists), \class{HTTPSHandler} will also be added. ! Beginning in Python 2.3, a \class{BaseHandler} subclass may also ! change its \member{handler_order} member variable to modify its ! position in the handlers list. Besides \class{ProxyHandler}, which has ! \member{handler_order} of \code{100}, all handlers currently have it ! set to \code{500}. \end{funcdesc} *************** *** 417,434 **** Return a \class{Request} or \code{None} in response to a redirect. This is called by the default implementations of the ! \code{http_error_30x()} methods when a redirection is received from ! the server. If a redirection should take place, return a new ! \class{Request} to allow \code{http_error_30x()} to perform the redirect. Otherwise, raise \exception{HTTPError} if no other \class{Handler} should try to handle this URL, or return \code{None} if you can't but another \class{Handler} might. ! \note{The default implementation of this method does not strictly ! follow \rfc{2616}, which says that 301 and 302 responses to POST requests must not be automatically redirected without confirmation by the user. In reality, browsers do allow automatic redirection of ! these responses, changing the POST to a GET, and the default ! implementation reproduces this behaviour.} ! \end{methoddesc} --- 418,436 ---- Return a \class{Request} or \code{None} in response to a redirect. This is called by the default implementations of the ! \method{http_error_30*()} methods when a redirection is received ! from the server. If a redirection should take place, return a new ! \class{Request} to allow \method{http_error_30*()} to perform the redirect. Otherwise, raise \exception{HTTPError} if no other \class{Handler} should try to handle this URL, or return \code{None} if you can't but another \class{Handler} might. ! \begin{notice} ! The default implementation of this method does not strictly ! follow \rfc{2616}, which says that 301 and 302 responses to \code{POST} requests must not be automatically redirected without confirmation by the user. In reality, browsers do allow automatic redirection of ! these responses, changing the POST to a \code{GET}, and the default ! implementation reproduces this behavior. ! \end{notice} \end{methoddesc} From fdrake@users.sourceforge.net Mon Jul 14 22:37:19 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Mon, 14 Jul 2003 14:37:19 -0700 Subject: [Python-checkins] python/dist/src/Lib/test test_weakref.py,1.27,1.28 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/test In directory sc8-pr-cvs1:/tmp/cvs-serv7881 Modified Files: test_weakref.py Log Message: stylistic nits: - wrap some long lines - shorten others - fix indentation Index: test_weakref.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/test/test_weakref.py,v retrieving revision 1.27 retrieving revision 1.28 diff -C2 -d -r1.27 -r1.28 *** test_weakref.py 30 Jun 2003 04:18:48 -0000 1.27 --- test_weakref.py 14 Jul 2003 21:37:17 -0000 1.28 *************** *** 169,173 **** self.assertEqual(len(L), 2) self.assertEqual(len(p), 2) ! self.failUnless(3 in p, "proxy didn't support __contains__() properly") p[1] = 5 self.assertEqual(L[1], 5) --- 169,174 ---- self.assertEqual(len(L), 2) self.assertEqual(len(p), 2) ! self.failUnless(3 in p, ! "proxy didn't support __contains__() properly") p[1] = 5 self.assertEqual(L[1], 5) *************** *** 399,403 **** for v in dict.itervalues(): values.remove(v) ! self.assert_(len(values) == 0, "itervalues() did not touch all values") def test_make_weak_keyed_dict_from_dict(self): --- 400,405 ---- for v in dict.itervalues(): values.remove(v) ! self.assert_(len(values) == 0, ! "itervalues() did not touch all values") def test_make_weak_keyed_dict_from_dict(self): *************** *** 590,594 **** class WeakValueDictionaryTestCase(TestMappingProtocol): ! """Check that WeakValueDictionary class conforms to the mapping protocol""" __ref = {"key1":Object(1), "key2":Object(2), "key3":Object(3)} _tested_class = weakref.WeakValueDictionary --- 592,596 ---- class WeakValueDictionaryTestCase(TestMappingProtocol): ! """Check that WeakValueDictionary conforms to the mapping protocol""" __ref = {"key1":Object(1), "key2":Object(2), "key3":Object(3)} _tested_class = weakref.WeakValueDictionary *************** *** 597,601 **** class WeakKeyDictionaryTestCase(TestMappingProtocol): ! """Check that WeakKeyDictionary class conforms to the mapping protocol""" __ref = {Object("key1"):1, Object("key2"):2, Object("key3"):3} _tested_class = weakref.WeakKeyDictionary --- 599,603 ---- class WeakKeyDictionaryTestCase(TestMappingProtocol): ! """Check that WeakKeyDictionary conforms to the mapping protocol""" __ref = {Object("key1"):1, Object("key2"):2, Object("key3"):3} _tested_class = weakref.WeakKeyDictionary *************** *** 608,613 **** MappingTestCase, WeakValueDictionaryTestCase, ! WeakKeyDictionaryTestCase ! ) --- 610,615 ---- MappingTestCase, WeakValueDictionaryTestCase, ! WeakKeyDictionaryTestCase, ! ) From fdrake@users.sourceforge.net Mon Jul 14 22:46:25 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Mon, 14 Jul 2003 14:46:25 -0700 Subject: [Python-checkins] python/dist/src/Objects weakrefobject.c,1.12,1.13 Message-ID: Update of /cvsroot/python/python/dist/src/Objects In directory sc8-pr-cvs1:/tmp/cvs-serv9803 Modified Files: weakrefobject.c Log Message: Remove proxy_print(), since that caused an inconsistency between "print repr(proxy(a))" and "proxy(a)" at an interactive prompt. Closes SF bug #722763. Index: weakrefobject.c =================================================================== RCS file: /cvsroot/python/python/dist/src/Objects/weakrefobject.c,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** weakrefobject.c 30 Jun 2003 04:18:48 -0000 1.12 --- weakrefobject.c 14 Jul 2003 21:46:23 -0000 1.13 *************** *** 265,276 **** WRAP_TERNARY(proxy_call, PyEval_CallObjectWithKeywords) - static int - proxy_print(PyWeakReference *proxy, FILE *fp, int flags) - { - if (!proxy_checkref(proxy)) - return -1; - return PyObject_Print(PyWeakref_GET_OBJECT(proxy), fp, flags); - } - static PyObject * proxy_repr(PyWeakReference *proxy) --- 265,268 ---- *************** *** 480,484 **** /* methods */ (destructor)weakref_dealloc, /* tp_dealloc */ ! (printfunc)proxy_print, /* tp_print */ 0, /* tp_getattr */ 0, /* tp_setattr */ --- 472,476 ---- /* methods */ (destructor)weakref_dealloc, /* tp_dealloc */ ! 0, /* tp_print */ 0, /* tp_getattr */ 0, /* tp_setattr */ *************** *** 515,519 **** /* methods */ (destructor)weakref_dealloc, /* tp_dealloc */ ! (printfunc)proxy_print, /* tp_print */ 0, /* tp_getattr */ 0, /* tp_setattr */ --- 507,511 ---- /* methods */ (destructor)weakref_dealloc, /* tp_dealloc */ ! 0, /* tp_print */ 0, /* tp_getattr */ 0, /* tp_setattr */ From doerwalter@users.sourceforge.net Tue Jul 15 11:34:04 2003 From: doerwalter@users.sourceforge.net (doerwalter@users.sourceforge.net) Date: Tue, 15 Jul 2003 03:34:04 -0700 Subject: [Python-checkins] python/dist/src/Lib trace.py,1.11,1.12 Message-ID: Update of /cvsroot/python/python/dist/src/Lib In directory sc8-pr-cvs1:/tmp/cvs-serv32174/Lib Modified Files: trace.py Log Message: Make the prefix 7 spaces long, so the lines are properly aligned. Index: trace.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/trace.py,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** trace.py 7 Jul 2003 16:08:47 -0000 1.11 --- trace.py 15 Jul 2003 10:34:02 -0000 1.12 *************** *** 310,314 **** n_lines += 1 elif rx_blank.match(line): ! outfile.write(" ") else: # lines preceded by no marks weren't hit --- 310,314 ---- n_lines += 1 elif rx_blank.match(line): ! outfile.write(" ") else: # lines preceded by no marks weren't hit From akuchling@users.sourceforge.net Tue Jul 15 13:37:48 2003 From: akuchling@users.sourceforge.net (akuchling@users.sourceforge.net) Date: Tue, 15 Jul 2003 05:37:48 -0700 Subject: [Python-checkins] python/dist/src/Modules mmapmodule.c,2.45,2.46 Message-ID: Update of /cvsroot/python/python/dist/src/Modules In directory sc8-pr-cvs1:/tmp/cvs-serv18396 Modified Files: mmapmodule.c Log Message: [Patch #708374] Only apply the check for file size if the file is a regular file, not a character or block device. Index: mmapmodule.c =================================================================== RCS file: /cvsroot/python/python/dist/src/Modules/mmapmodule.c,v retrieving revision 2.45 retrieving revision 2.46 diff -C2 -d -r2.45 -r2.46 *** mmapmodule.c 3 May 2003 09:14:53 -0000 2.45 --- mmapmodule.c 15 Jul 2003 12:37:46 -0000 2.46 *************** *** 902,906 **** fsync(fd); # endif ! if (fstat(fd, &st) == 0 && (size_t)map_size > st.st_size) { PyErr_SetString(PyExc_ValueError, "mmap length is greater than file size"); --- 902,907 ---- fsync(fd); # endif ! if (fstat(fd, &st) == 0 && S_ISREG(st.st_mode) && ! (size_t)map_size > st.st_size) { PyErr_SetString(PyExc_ValueError, "mmap length is greater than file size"); From akuchling@users.sourceforge.net Tue Jul 15 14:00:48 2003 From: akuchling@users.sourceforge.net (akuchling@users.sourceforge.net) Date: Tue, 15 Jul 2003 06:00:48 -0700 Subject: [Python-checkins] python/dist/src/Modules mmapmodule.c,2.35.6.5,2.35.6.6 Message-ID: Update of /cvsroot/python/python/dist/src/Modules In directory sc8-pr-cvs1:/tmp/cvs-serv22275 Modified Files: Tag: release22-maint mmapmodule.c Log Message: [Patch #708374] Only apply the check for file size if the file is a regular file, not a character or block device. Index: mmapmodule.c =================================================================== RCS file: /cvsroot/python/python/dist/src/Modules/mmapmodule.c,v retrieving revision 2.35.6.5 retrieving revision 2.35.6.6 diff -C2 -d -r2.35.6.5 -r2.35.6.6 *** mmapmodule.c 7 Feb 2003 19:46:44 -0000 2.35.6.5 --- mmapmodule.c 15 Jul 2003 13:00:45 -0000 2.35.6.6 *************** *** 898,902 **** #ifdef HAVE_FSTAT ! if (fstat(fd, &st) == 0 && (size_t)map_size > st.st_size) { PyErr_SetString(PyExc_ValueError, "mmap length is greater than file size"); --- 898,903 ---- #ifdef HAVE_FSTAT ! if (fstat(fd, &st) == 0 && S_ISREG(st.st_mode) && ! (size_t)map_size > st.st_size) { PyErr_SetString(PyExc_ValueError, "mmap length is greater than file size"); From doerwalter@users.sourceforge.net Tue Jul 15 19:47:29 2003 From: doerwalter@users.sourceforge.net (doerwalter@users.sourceforge.net) Date: Tue, 15 Jul 2003 11:47:29 -0700 Subject: [Python-checkins] python/dist/src/Lib/test test_complex.py,1.11,1.12 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/test In directory sc8-pr-cvs1:/tmp/cvs-serv14985/Lib/test Modified Files: test_complex.py Log Message: Add various test cases from SF patch 543867. Index: test_complex.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/test/test_complex.py,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** test_complex.py 29 Jun 2003 05:46:54 -0000 1.11 --- test_complex.py 15 Jul 2003 18:47:27 -0000 1.12 *************** *** 1,3 **** ! import unittest from test import test_support --- 1,3 ---- ! import unittest, os from test import test_support *************** *** 107,110 **** --- 107,118 ---- self.assertRaises(ZeroDivisionError, (1+1j).__mod__, 0+0j) + a = 3.33+4.43j + try: + a % 0 + except ZeroDivisionError: + pass + else: + self.fail("modulo parama can't be 0") + def test_divmod(self): self.assertRaises(ZeroDivisionError, divmod, 1+1j, 0+0j) *************** *** 118,121 **** --- 126,160 ---- self.assertRaises(ValueError, pow, 1+1j, 1+1j, 1+1j) + a = 3.33+4.43j + self.assertEqual(a ** 0j, 1) + self.assertEqual(a ** 0.+0.j, 1) + + self.assertEqual(3j ** 0j, 1) + self.assertEqual(3j ** 0, 1) + + try: + 0j ** a + except ZeroDivisionError: + pass + else: + self.fail("should fail 0.0 to negative or complex power") + + try: + 0j ** (3-2j) + except ZeroDivisionError: + pass + else: + self.fail("should fail 0.0 to negative or complex power") + + # The following is used to exercise certain code paths + self.assertEqual(a ** 105, a ** 105) + self.assertEqual(a ** -105, a ** -105) + self.assertEqual(a ** -30, a ** -30) + + self.assertEqual(0.0j ** 0, 1) + + b = 5.1+2.3j + self.assertRaises(ValueError, pow, a, b, 0) + def test_boolcontext(self): for i in xrange(100): *************** *** 244,247 **** --- 283,304 ---- self.assertEqual(-(1+6j), -1-6j) + def test_file(self): + a = 3.33+4.43j + b = 5.1+2.3j + + fo = None + try: + fo = open(test_support.TESTFN, "wb") + print >>fo, a, b + fo.close() + fo = open(test_support.TESTFN, "rb") + self.assertEqual(fo.read(), "%s %s\n" % (a, b)) + finally: + if (fo is not None) and (not fo.closed): + fo.close() + try: + os.remove(test_support.TESTFN) + except (OSError, IOError): + pass def test_main(): From loewis@users.sourceforge.net Tue Jul 15 20:12:56 2003 From: loewis@users.sourceforge.net (loewis@users.sourceforge.net) Date: Tue, 15 Jul 2003 12:12:56 -0700 Subject: [Python-checkins] python/dist/src/Modules _bsddb.c,1.16,1.17 Message-ID: Update of /cvsroot/python/python/dist/src/Modules In directory sc8-pr-cvs1:/tmp/cvs-serv18854/Modules Modified Files: _bsddb.c Log Message: heck environment closed status before closing a cursors. Fixes #763928. Index: _bsddb.c =================================================================== RCS file: /cvsroot/python/python/dist/src/Modules/_bsddb.c,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** _bsddb.c 9 Jul 2003 04:45:59 -0000 1.16 --- _bsddb.c 15 Jul 2003 19:12:54 -0000 1.17 *************** *** 775,779 **** if (self->dbc != NULL) { MYDB_BEGIN_ALLOW_THREADS; ! if (self->mydb->db != NULL) err = self->dbc->c_close(self->dbc); self->dbc = NULL; --- 775,786 ---- if (self->dbc != NULL) { MYDB_BEGIN_ALLOW_THREADS; ! /* If the underlying database has been closed, we don't ! need to do anything. If the environment has been closed ! we need to leak, as BerkeleyDB will crash trying to access ! the environment. There was an exception when the ! user closed the environment even though there still was ! a database open. */ ! if (self->mydb->db && self->mydb->myenvobj && ! !self->mydb->myenvobj->closed) err = self->dbc->c_close(self->dbc); self->dbc = NULL; From jhylton@users.sourceforge.net Tue Jul 15 21:23:28 2003 From: jhylton@users.sourceforge.net (jhylton@users.sourceforge.net) Date: Tue, 15 Jul 2003 13:23:28 -0700 Subject: [Python-checkins] python/dist/src/Python compile.c,2.290,2.291 Message-ID: Update of /cvsroot/python/python/dist/src/Python In directory sc8-pr-cvs1:/tmp/cvs-serv31506 Modified Files: compile.c Log Message: SF patch 763201: handling of SyntaxErrors in symbol table build Fixes for three related bugs, including errors that caused a script to be ignored without printing an error message. The key problem was a bad interaction between syntax warnings and syntax errors. If an exception was already set when a warning was issued, the warning could clobber the exception. The PyErr_Occurred() check in issue_warning() isn't entirely satisfying (the caller should know whether there was already an error), but a better solution isn't immediately obvious. Bug fix candidate. Index: compile.c =================================================================== RCS file: /cvsroot/python/python/dist/src/Python/compile.c,v retrieving revision 2.290 retrieving revision 2.291 diff -C2 -d -r2.290 -r2.291 *** compile.c 20 Jun 2003 16:13:17 -0000 2.290 --- compile.c 15 Jul 2003 20:23:26 -0000 2.291 *************** *** 687,691 **** /* symtable operations */ ! static int symtable_build(struct compiling *, node *); static int symtable_load_symbols(struct compiling *); static struct symtable *symtable_init(void); --- 687,692 ---- /* symtable operations */ ! static struct symtable *symtable_build(node *, PyFutureFeatures *, ! const char *filename); static int symtable_load_symbols(struct compiling *); static struct symtable *symtable_init(void); *************** *** 4251,4274 **** if (ff == NULL) return NULL; ! ! st = symtable_init(); if (st == NULL) { PyObject_FREE((void *)ff); return NULL; } - st->st_future = ff; - symtable_enter_scope(st, TOP, TYPE(n), n->n_lineno); - if (st->st_errors > 0) - goto fail; - symtable_node(st, n); - if (st->st_errors > 0) - goto fail; - return st; - fail: - PyObject_FREE((void *)ff); - st->st_future = NULL; - PySymtable_Free(st); - return NULL; } --- 4252,4261 ---- if (ff == NULL) return NULL; ! st = symtable_build(n, ff, filename); if (st == NULL) { PyObject_FREE((void *)ff); return NULL; } return st; } *************** *** 4320,4327 **** flags->cf_flags = merged; } ! if (symtable_build(&sc, n) < 0) { com_free(&sc); return NULL; } } co = NULL; --- 4307,4318 ---- flags->cf_flags = merged; } ! sc.c_symtable = symtable_build(n, sc.c_future, sc.c_filename); ! if (sc.c_symtable == NULL) { com_free(&sc); return NULL; } + /* reset symbol table for second pass */ + sc.c_symtable->st_nscopes = 1; + sc.c_symtable->st_pass = 2; } co = NULL; *************** *** 4444,4447 **** --- 4435,4447 ---- issue_warning(const char *msg, const char *filename, int lineno) { + if (PyErr_Occurred()) { + /* This can happen because symtable_node continues + processing even after raising a SyntaxError. + Calling PyErr_WarnExplicit now would clobber the + pending exception; instead we fail and let that + exception propagate. + */ + return -1; + } if (PyErr_WarnExplicit(PyExc_SyntaxWarning, msg, filename, lineno, NULL, NULL) < 0) { *************** *** 4467,4487 **** /* Helper function for setting lineno and filename */ ! static int ! symtable_build(struct compiling *c, node *n) { ! if ((c->c_symtable = symtable_init()) == NULL) ! return -1; ! c->c_symtable->st_future = c->c_future; ! c->c_symtable->st_filename = c->c_filename; ! symtable_enter_scope(c->c_symtable, TOP, TYPE(n), n->n_lineno); ! if (c->c_symtable->st_errors > 0) ! return -1; ! symtable_node(c->c_symtable, n); ! if (c->c_symtable->st_errors > 0) ! return -1; ! /* reset for second pass */ ! c->c_symtable->st_nscopes = 1; ! c->c_symtable->st_pass = 2; ! return 0; } --- 4467,4501 ---- /* Helper function for setting lineno and filename */ ! static struct symtable * ! symtable_build(node *n, PyFutureFeatures *ff, const char *filename) { ! struct symtable *st; ! ! st = symtable_init(); ! if (st == NULL) ! return NULL; ! st->st_future = ff; ! st->st_filename = filename; ! symtable_enter_scope(st, TOP, TYPE(n), n->n_lineno); ! if (st->st_errors > 0) ! goto fail; ! symtable_node(st, n); ! if (st->st_errors > 0) ! goto fail; ! return st; ! fail: ! if (!PyErr_Occurred()) { ! /* This could happen because after a syntax error is ! detected, the symbol-table-building continues for ! a while, and PyErr_Clear() might erroneously be ! called during that process. One such case has been ! fixed, but there might be more (now or later). ! */ ! PyErr_SetString(PyExc_SystemError, "lost exception"); ! } ! st->st_future = NULL; ! st->st_filename = NULL; ! PySymtable_Free(st); ! return NULL; } From jhylton@users.sourceforge.net Tue Jul 15 21:24:29 2003 From: jhylton@users.sourceforge.net (jhylton@users.sourceforge.net) Date: Tue, 15 Jul 2003 13:24:29 -0700 Subject: [Python-checkins] python/dist/src/Lib/test test_symtable.py,1.4,1.5 test_syntax.py,1.2,1.3 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/test In directory sc8-pr-cvs1:/tmp/cvs-serv31672/test Modified Files: test_symtable.py test_syntax.py Log Message: SF patch 763201: handling of SyntaxErrors in symbol table build Bug fix candidate. Index: test_symtable.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/test/test_symtable.py,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** test_symtable.py 23 Jul 2002 19:04:05 -0000 1.4 --- test_symtable.py 15 Jul 2003 20:24:27 -0000 1.5 *************** *** 1,3 **** ! from test.test_support import verify import _symtable --- 1,3 ---- ! from test.test_support import vereq, TestFailed import _symtable *************** *** 5,8 **** symbols = _symtable.symtable("def f(x): return x", "?", "exec") ! verify(symbols[0].name == "global") ! verify(len([ste for ste in symbols.values() if ste.name == "f"]) == 1) --- 5,20 ---- symbols = _symtable.symtable("def f(x): return x", "?", "exec") ! vereq(symbols[0].name, "global") ! vereq(len([ste for ste in symbols.values() if ste.name == "f"]), 1) ! ! # Bug tickler: SyntaxError file name correct whether error raised ! # while parsing or building symbol table. ! def checkfilename(brokencode): ! try: ! _symtable.symtable(brokencode, "spam", "exec") ! except SyntaxError, e: ! vereq(e.filename, "spam") ! else: ! raise TestFailed("no SyntaxError for %r" % (brokencode,)) ! checkfilename("def f(x): foo)(") # parse-time ! checkfilename("def f(x): global x") # symtable-build-time Index: test_syntax.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/test/test_syntax.py,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** test_syntax.py 23 Jul 2002 19:04:06 -0000 1.2 --- test_syntax.py 15 Jul 2003 20:24:27 -0000 1.3 *************** *** 1,4 **** --- 1,5 ---- import re import unittest + import warnings from test import test_support *************** *** 27,30 **** --- 28,45 ---- def test_assign_del(self): self._check_error("del f()", "delete") + + def test_global_err_then_warn(self): + # Bug tickler: The SyntaxError raised for one global statement + # shouldn't be clobbered by a SyntaxWarning issued for a later one. + source = re.sub('(?m)^ *:', '', """\ + :def error(a): + : global a # SyntaxError + :def warning(): + : b = 1 + : global b # SyntaxWarning + :""") + warnings.filterwarnings(action='ignore', category=SyntaxWarning) + self._check_error(source, "global") + warnings.filters.pop(0) def test_main(): From fdrake@users.sourceforge.net Tue Jul 15 21:45:20 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Tue, 15 Jul 2003 13:45:20 -0700 Subject: [Python-checkins] python/dist/src/Doc/ref ref3.tex,1.108,1.109 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/ref In directory sc8-pr-cvs1:/tmp/cvs-serv2829 Modified Files: ref3.tex Log Message: Discuss calling new-style types. Closes SF bug #453683. Index: ref3.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/ref/ref3.tex,v retrieving revision 1.108 retrieving revision 1.109 diff -C2 -d -r1.108 -r1.109 *** ref3.tex 29 Jun 2003 04:53:23 -0000 1.108 --- ref3.tex 15 Jul 2003 20:45:16 -0000 1.109 *************** *** 581,585 **** \indexii{built-in}{method} ! \item[Classes] Class objects are described below. When a class object is called, a new class instance (also described below) is created and --- 581,593 ---- \indexii{built-in}{method} ! \item[Class Types] ! Class types, or ``new-style classes,'' are callable. These objects ! normally act as factories for new instances of themselves, but ! variations are possible for class types that override ! \method{__new__()}. The arguments of the call are passed to ! \method{__new__()} and, in the typical case, to \method{__init__()} to ! initialize the new instance. ! ! \item[Classic Classes] Class objects are described below. When a class object is called, a new class instance (also described below) is created and From rhettinger@users.sourceforge.net Tue Jul 15 21:57:37 2003 From: rhettinger@users.sourceforge.net (rhettinger@users.sourceforge.net) Date: Tue, 15 Jul 2003 13:57:37 -0700 Subject: [Python-checkins] python/dist/src/Lib/test test_future3.py,1.3,1.4 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/test In directory sc8-pr-cvs1:/tmp/cvs-serv4988 Modified Files: test_future3.py Log Message: Fixed test and converted to unittest format. Checking // would call floor division but did not test that true division had become the default with 'from __future__ import division'. Index: test_future3.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/test/test_future3.py,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** test_future3.py 20 Aug 2001 21:18:56 -0000 1.3 --- test_future3.py 15 Jul 2003 20:57:35 -0000 1.4 *************** *** 1,11 **** from __future__ import nested_scopes from __future__ import division - from __future__ import nested_scopes ! def f(x): ! def g(y): ! return y // x ! return g ! print f(2)(5) --- 1,30 ---- from __future__ import nested_scopes from __future__ import division ! import unittest ! from test import test_support ! ! x = 2 ! def nester(): ! x = 3 ! def inner(): ! return x ! return inner() ! class TestFuture(unittest.TestCase): ! ! def test_floor_div_operator(self): ! self.assertEqual(7 // 2, 3) ! ! def test_true_div_as_default(self): ! self.assertAlmostEqual(7 / 2, 3.5) ! ! def test_nested_scopes(self): ! self.assertEqual(nester(), 3) ! ! def test_main(): ! test_support.run_unittest(TestFuture) ! ! if __name__ == "__main__": ! test_main() From rhettinger@users.sourceforge.net Tue Jul 15 22:03:15 2003 From: rhettinger@users.sourceforge.net (rhettinger@users.sourceforge.net) Date: Tue, 15 Jul 2003 14:03:15 -0700 Subject: [Python-checkins] python/dist/src/Lib/test/output test_future,1.3,1.4 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/test/output In directory sc8-pr-cvs1:/tmp/cvs-serv6400/output Modified Files: test_future Log Message: Fixed test and converted to unittest format. Checking // would call floor division but did not test that true division had become the default with 'from __future__ import division'. Index: test_future =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/test/output/test_future,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** test_future 20 Aug 2001 20:33:42 -0000 1.3 --- test_future 15 Jul 2003 21:03:13 -0000 1.4 *************** *** 2,6 **** 6 6 - 2 SyntaxError badsyntax_future3 3 SyntaxError badsyntax_future4 3 --- 2,5 ---- From fdrake@users.sourceforge.net Tue Jul 15 22:38:00 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Tue, 15 Jul 2003 14:38:00 -0700 Subject: [Python-checkins] python/dist/src/Doc/ref ref6.tex,1.66,1.67 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/ref In directory sc8-pr-cvs1:/tmp/cvs-serv12078 Modified Files: ref6.tex Log Message: Try to clean up some indexing relevant to the import statement. Pertains to SF bug #518989. Index: ref6.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/ref/ref6.tex,v retrieving revision 1.66 retrieving revision 1.67 diff -C2 -d -r1.66 -r1.67 *** ref6.tex 18 Jun 2003 01:32:24 -0000 1.66 --- ref6.tex 15 Jul 2003 21:37:58 -0000 1.67 *************** *** 613,616 **** --- 613,619 ---- \section{The \keyword{import} statement \label{import}} \stindex{import} + \index{module!importing} + \indexii{name}{binding} + \kwindex{from} \begin{productionlist} *************** *** 632,638 **** identifier in the list. The form with \keyword{from} performs step (1) once, and then performs step (2) repeatedly. - \indexii{importing}{module} - \indexii{name}{binding} - \kwindex{from} In this context, to ``initialize'' a built-in or extension module means to --- 635,638 ---- From fdrake@users.sourceforge.net Tue Jul 15 23:00:41 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Tue, 15 Jul 2003 15:00:41 -0700 Subject: [Python-checkins] python/dist/src/Doc/perl python.perl,1.135,1.136 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/perl In directory sc8-pr-cvs1:/tmp/cvs-serv16828 Modified Files: python.perl Log Message: process_commands_wrap_deferred: - fix comment describing what this is for - add lots of indexing macros to this call Closes SF bug #518989. Index: python.perl =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/perl/python.perl,v retrieving revision 1.135 retrieving revision 1.136 diff -C2 -d -r1.135 -r1.136 *** python.perl 10 Jul 2003 17:04:45 -0000 1.135 --- python.perl 15 Jul 2003 22:00:36 -0000 1.136 *************** *** 1944,1952 **** ! # I don't recall exactly why this was needed, but it was very much needed. ! # We'll see if anything breaks when I move the "code" line out -- some ! # things broke with it in. ! ! #code # {} process_commands_wrap_deferred(<<_RAW_ARG_DEFERRED_CMDS_); declaremodule # [] # {} # {} --- 1944,1951 ---- ! # Commands listed here have process-order dependencies; these often ! # are related to indexing operations. ! # XXX Not sure why funclineni, methodlineni, and samp are here. ! # process_commands_wrap_deferred(<<_RAW_ARG_DEFERRED_CMDS_); declaremodule # [] # {} # {} *************** *** 1957,1960 **** --- 1956,1968 ---- methodlineni # [] # {} # {} modulesynopsis # {} + bifuncindex # {} + exindex # {} + indexii # {} # {} + indexiii # {} # {} # {} + indexiv # {} # {} # {} # {} + kwindex # {} + obindex # {} + opindex # {} + stindex # {} platform # {} samp # {} From fdrake@users.sourceforge.net Tue Jul 15 23:02:28 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Tue, 15 Jul 2003 15:02:28 -0700 Subject: [Python-checkins] python/dist/src/Doc/ref ref6.tex,1.67,1.68 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/ref In directory sc8-pr-cvs1:/tmp/cvs-serv17124 Modified Files: ref6.tex Log Message: Indexing is a mess; try to get the link targets closer to the relevant text. There needs to be a better way. Index: ref6.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/ref/ref6.tex,v retrieving revision 1.67 retrieving revision 1.68 diff -C2 -d -r1.67 -r1.68 *** ref6.tex 15 Jul 2003 21:37:58 -0000 1.67 --- ref6.tex 15 Jul 2003 22:02:21 -0000 1.68 *************** *** 661,676 **** \indexiii{module}{search}{path} ! If a built-in module is found, its built-in initialization code is ! executed and step (1) is finished. If no matching file is found, ! \exception{ImportError} is raised. If a file is found, it is parsed, yielding an executable code block. If a syntax error occurs, ! \exception{SyntaxError} is raised. Otherwise, an empty module of the given ! name is created and inserted in the module table, and then the code ! block is executed in the context of this module. Exceptions during ! this execution terminate step (1). ! \indexii{module}{initialization} ! \exindex{SyntaxError} ! \exindex{ImportError} ! \index{code block} When step (1) finishes without raising an exception, step (2) can --- 661,674 ---- \indexiii{module}{search}{path} ! If a built-in module is found,\indexii{module}{initialization} its ! built-in initialization code is executed and step (1) is finished. If ! no matching file is found, ! \exception{ImportError}\exindex{ImportError} is raised. ! \index{code block}If a file is found, it is parsed, yielding an executable code block. If a syntax error occurs, ! \exception{SyntaxError}\exindex{SyntaxError} is raised. Otherwise, an ! empty module of the given name is created and inserted in the module ! table, and then the code block is executed in the context of this ! module. Exceptions during this execution terminate step (1). When step (1) finishes without raising an exception, step (2) can From fdrake@users.sourceforge.net Tue Jul 15 23:03:02 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Tue, 15 Jul 2003 15:03:02 -0700 Subject: [Python-checkins] python/dist/src/Doc/ref ref3.tex,1.109,1.110 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/ref In directory sc8-pr-cvs1:/tmp/cvs-serv17217 Modified Files: ref3.tex Log Message: Indexing is a mess; try to get the link targets closer to the relevant text. There needs to be a better way. Index: ref3.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/ref/ref3.tex,v retrieving revision 1.109 retrieving revision 1.110 diff -C2 -d -r1.109 -r1.110 *** ref3.tex 15 Jul 2003 20:45:16 -0000 1.109 --- ref3.tex 15 Jul 2003 22:03:00 -0000 1.110 *************** *** 611,615 **** \item[Modules] Modules are imported by the \keyword{import} statement (see ! section~\ref{import}, ``The \keyword{import} statement''). A module object has a namespace implemented by a dictionary object (this is the dictionary referenced by the func_globals attribute of --- 611,616 ---- \item[Modules] Modules are imported by the \keyword{import} statement (see ! section~\ref{import}, ``The \keyword{import} statement'').% ! \stindex{import}\obindex{module} A module object has a namespace implemented by a dictionary object (this is the dictionary referenced by the func_globals attribute of *************** *** 620,625 **** initialize the module (since it isn't needed once the initialization is done). - \stindex{import} - \obindex{module} Attribute assignment updates the module's namespace dictionary, --- 621,624 ---- From mhammond@users.sourceforge.net Wed Jul 16 00:03:58 2003 From: mhammond@users.sourceforge.net (mhammond@users.sourceforge.net) Date: Tue, 15 Jul 2003 16:03:58 -0700 Subject: [Python-checkins] python/dist/src/Python pythonrun.c,2.193,2.194 errors.c,2.77,2.78 Message-ID: Update of /cvsroot/python/python/dist/src/Python In directory sc8-pr-cvs1:/tmp/cvs-serv27430 Modified Files: pythonrun.c errors.c Log Message: Fix [ 771097 ] frozen programs fail due to implicit import of "warnings". If the initial import of warnings fails, clear the error. When the module is actually needed, if the original import failed, see if it has managed to find its way to sys.modules yet and if so, remember it. Index: pythonrun.c =================================================================== RCS file: /cvsroot/python/python/dist/src/Python/pythonrun.c,v retrieving revision 2.193 retrieving revision 2.194 diff -C2 -d -r2.193 -r2.194 *** pythonrun.c 22 Apr 2003 11:18:00 -0000 2.193 --- pythonrun.c 15 Jul 2003 23:03:55 -0000 2.194 *************** *** 70,76 **** /* Reference to 'warnings' module, to avoid importing it ! on the fly when the import lock may be held. See 683658 */ ! PyObject *PyModule_WarningsModule = NULL; static int initialized = 0; --- 70,105 ---- /* Reference to 'warnings' module, to avoid importing it ! on the fly when the import lock may be held. See 683658/771097 */ ! static PyObject *warnings_module = NULL; ! ! /* Returns a borrowed reference to the 'warnings' module, or NULL. ! If the module is returned, it is guaranteed to have been obtained ! without acquiring the import lock ! */ ! PyObject *PyModule_GetWarningsModule() ! { ! PyObject *typ, *val, *tb; ! PyObject *all_modules; ! /* If we managed to get the module at init time, just use it */ ! if (warnings_module) ! return warnings_module; ! /* If it wasn't available at init time, it may be available ! now in sys.modules (common scenario is frozen apps: import ! at init time fails, but the frozen init code sets up sys.path ! correctly, then does an implicit import of warnings for us ! */ ! /* Save and restore any exceptions */ ! PyErr_Fetch(&typ, &val, &tb); ! ! all_modules = PySys_GetObject("__modules__"); ! if (all_modules) { ! warnings_module = PyDict_GetItemString(all_modules, "warnings"); ! /* We keep a ref in the global */ ! Py_XINCREF(warnings_module); ! } ! PyErr_Restore(typ, val, tb); ! return warnings_module; ! } static int initialized = 0; *************** *** 191,195 **** #endif /* WITH_THREAD */ ! PyModule_WarningsModule = PyImport_ImportModule("warnings"); #if defined(Py_USING_UNICODE) && defined(HAVE_LANGINFO_H) && defined(CODESET) --- 220,226 ---- #endif /* WITH_THREAD */ ! warnings_module = PyImport_ImportModule("warnings"); ! if (!warnings_module) ! PyErr_Clear(); #if defined(Py_USING_UNICODE) && defined(HAVE_LANGINFO_H) && defined(CODESET) *************** *** 263,268 **** /* drop module references we saved */ ! Py_XDECREF(PyModule_WarningsModule); ! PyModule_WarningsModule = NULL; /* Collect garbage. This may call finalizers; it's nice to call these --- 294,299 ---- /* drop module references we saved */ ! Py_XDECREF(warnings_module); ! warnings_module = NULL; /* Collect garbage. This may call finalizers; it's nice to call these Index: errors.c =================================================================== RCS file: /cvsroot/python/python/dist/src/Python/errors.c,v retrieving revision 2.77 retrieving revision 2.78 diff -C2 -d -r2.77 -r2.78 *** errors.c 10 Apr 2003 20:29:48 -0000 2.77 --- errors.c 15 Jul 2003 23:03:55 -0000 2.78 *************** *** 600,604 **** } ! extern PyObject *PyModule_WarningsModule; /* Function to issue a warning message; may raise an exception. */ --- 600,604 ---- } ! extern PyObject *PyModule_GetWarningsModule(); /* Function to issue a warning message; may raise an exception. */ *************** *** 607,613 **** { PyObject *dict, *func = NULL; ! if (PyModule_WarningsModule != NULL) { ! dict = PyModule_GetDict(PyModule_WarningsModule); func = PyDict_GetItemString(dict, "warn"); } --- 607,614 ---- { PyObject *dict, *func = NULL; + PyObject *warnings_module = PyModule_GetWarningsModule(); ! if (warnings_module != NULL) { ! dict = PyModule_GetDict(warnings_module); func = PyDict_GetItemString(dict, "warn"); } From rhettinger@users.sourceforge.net Wed Jul 16 00:16:03 2003 From: rhettinger@users.sourceforge.net (rhettinger@users.sourceforge.net) Date: Tue, 15 Jul 2003 16:16:03 -0700 Subject: [Python-checkins] python/dist/src/Doc/tut tut.tex,1.195,1.196 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/tut In directory sc8-pr-cvs1:/tmp/cvs-serv29482/tut Modified Files: tut.tex Log Message: Nits. Index: tut.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/tut/tut.tex,v retrieving revision 1.195 retrieving revision 1.196 diff -C2 -d -r1.195 -r1.196 *** tut.tex 12 Jul 2003 01:05:37 -0000 1.195 --- tut.tex 15 Jul 2003 23:16:01 -0000 1.196 *************** *** 3331,3335 **** ... except Exception, inst: ... print type(inst) # the exception instance ! ... print inst.args # arguments stored in .args ... print inst # __str__ allows args to printed directly ... x, y = inst # __getitem__ allows args to be unpacked directly --- 3331,3335 ---- ... except Exception, inst: ... print type(inst) # the exception instance ! ... print inst.args # arguments stored in .args ... print inst # __str__ allows args to printed directly ... x, y = inst # __getitem__ allows args to be unpacked directly *************** *** 4300,4304 **** created automatically. ! Another other key feature is that the local variables and execution state are automatically saved between calls. This made the function easier to write and much more clear than an approach using class variables like --- 4300,4304 ---- created automatically. ! Another key feature is that the local variables and execution state are automatically saved between calls. This made the function easier to write and much more clear than an approach using class variables like From mhammond@users.sourceforge.net Wed Jul 16 02:54:41 2003 From: mhammond@users.sourceforge.net (mhammond@users.sourceforge.net) Date: Tue, 15 Jul 2003 18:54:41 -0700 Subject: [Python-checkins] python/dist/src/Python pythonrun.c,2.194,2.195 Message-ID: Update of /cvsroot/python/python/dist/src/Python In directory sc8-pr-cvs1:/tmp/cvs-serv22038 Modified Files: pythonrun.c Log Message: Correct previous patch looking for warnings module: sys.modules, not sys.__modules__. Index: pythonrun.c =================================================================== RCS file: /cvsroot/python/python/dist/src/Python/pythonrun.c,v retrieving revision 2.194 retrieving revision 2.195 diff -C2 -d -r2.194 -r2.195 *** pythonrun.c 15 Jul 2003 23:03:55 -0000 2.194 --- pythonrun.c 16 Jul 2003 01:54:38 -0000 2.195 *************** *** 93,97 **** PyErr_Fetch(&typ, &val, &tb); ! all_modules = PySys_GetObject("__modules__"); if (all_modules) { warnings_module = PyDict_GetItemString(all_modules, "warnings"); --- 93,97 ---- PyErr_Fetch(&typ, &val, &tb); ! all_modules = PySys_GetObject("modules"); if (all_modules) { warnings_module = PyDict_GetItemString(all_modules, "warnings"); From rhettinger@users.sourceforge.net Wed Jul 16 03:59:34 2003 From: rhettinger@users.sourceforge.net (rhettinger@users.sourceforge.net) Date: Tue, 15 Jul 2003 19:59:34 -0700 Subject: [Python-checkins] python/dist/src/Lib/test test_support.py,1.56,1.57 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/test In directory sc8-pr-cvs1:/tmp/cvs-serv31277 Modified Files: test_support.py Log Message: run_unittest() to support TestCase instances as well as classes. Helps with doctests. Index: test_support.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/test/test_support.py,v retrieving revision 1.56 retrieving revision 1.57 diff -C2 -d -r1.56 -r1.57 *** test_support.py 17 May 2003 01:59:57 -0000 1.56 --- test_support.py 16 Jul 2003 02:59:32 -0000 1.57 *************** *** 252,256 **** suite = unittest.TestSuite() for cls in classes: ! suite.addTest(unittest.makeSuite(cls)) if len(classes)==1: testclass = classes[0] --- 252,259 ---- suite = unittest.TestSuite() for cls in classes: ! if isinstance(cls, unittest.TestCase): ! suite.addTest(cls) ! else: ! suite.addTest(unittest.makeSuite(cls)) if len(classes)==1: testclass = classes[0] From kbk@users.sourceforge.net Wed Jul 16 04:10:45 2003 From: kbk@users.sourceforge.net (kbk@users.sourceforge.net) Date: Tue, 15 Jul 2003 20:10:45 -0700 Subject: [Python-checkins] python/dist/src/Lib/idlelib CREDITS.txt,1.9,1.10 NEWS.txt,1.20,1.21 config-extensions.def,1.11,1.12 extend.txt,1.3,1.4 help.txt,1.9,1.10 idlever.py,1.12,1.13 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/idlelib In directory sc8-pr-cvs1:/tmp/cvs-serv32222 Modified Files: CREDITS.txt NEWS.txt config-extensions.def extend.txt help.txt idlever.py Log Message: Update to reflect the current status of the configuration system. Extensions must still be configured manually and there is currently one set of extension key bindings for all platforms. Bring NEWS.txt up to date. Update CREDITS.txt and idlever.py for release. M NEWS.txt M config-extensions.def M extend.txt M help.txt M idlever.py Index: CREDITS.txt =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/idlelib/CREDITS.txt,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** CREDITS.txt 15 Jun 2003 22:28:05 -0000 1.9 --- CREDITS.txt 16 Jul 2003 03:10:43 -0000 1.10 *************** *** 23,29 **** integration and persistent breakpoints). ! Hernan Foffani, Christos Georgiou, Martin v. Löwis, Jason Orendorff, Noam ! Raphael, Josh Robb, Nigel Rowe, and Bruce Sherwood have submitted useful ! patches. Thanks, guys! For additional details refer to NEWS.txt and Changelog. --- 23,29 ---- integration and persistent breakpoints). ! Scott David Daniels, Hernan Foffani, Christos Georgiou, Martin v. Löwis, ! Jason Orendorff, Noam Raphael, Josh Robb, Nigel Rowe, and Bruce Sherwood have ! submitted useful patches. Thanks, guys! For additional details refer to NEWS.txt and Changelog. Index: NEWS.txt =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/idlelib/NEWS.txt,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** NEWS.txt 14 Jun 2003 02:51:05 -0000 1.20 --- NEWS.txt 16 Jul 2003 03:10:43 -0000 1.21 *************** *** 1,6 **** ! What's New in IDLE 0.9b1+? =================================== ! *Release date: XX-XXX-2003* - (Created the .../Lib/idlelib directory in the Python CVS, which is a clone of --- 1,27 ---- ! What's New in IDLE 1.0rc1? =================================== ! *Release date: 17-Jul-2003* ! ! - Updated extend.txt, help.txt, and config-extensions.def to correctly ! reflect the current status of the configuration system. Python Bug 768469 ! ! - Fixed: Call Tip Trimming May Loop Forever. Python Patch 769142 (Daniels) ! ! - Replaced apply(f, args, kwds) with f(*args, **kwargs) to improve performance ! Python Patch 768187 ! ! - Break or continue statements outside a loop were causing IDLE crash ! Python Bug 767794 ! ! - Convert Unicode strings from readline to IOBinding.encoding. Also set ! sys.std{in|out|err}.encoding, for both the local and the subprocess case. ! SF IDLEfork patch 682347. ! ! ! What's New in IDLE 1.0b2? ! =================================== ! ! *Release date: 29-Jun-2003* - (Created the .../Lib/idlelib directory in the Python CVS, which is a clone of Index: config-extensions.def =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/idlelib/config-extensions.def,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** config-extensions.def 18 May 2003 02:21:55 -0000 1.11 --- config-extensions.def 16 Jul 2003 03:10:43 -0000 1.12 *************** *** 1,4 **** # IDLE reads several config files to determine user preferences. This ! # file is the default config file for idle extensions settings. # # Each extension must have at least one section, named after the extension --- 1,4 ---- # IDLE reads several config files to determine user preferences. This ! # file is the default configuration file for IDLE extensions settings. # # Each extension must have at least one section, named after the extension *************** *** 11,14 **** --- 11,18 ---- # present, ExtensionName_cfgBindings defines virtual event bindings for the # extension that may be sensibly re-configured. + + # Currently it is necessary to manually modify this file to change extension + # key bindings. Note: If a keybinding is already in use when the extension is + # loaded, the extension's virtual event's keybinding will be set to ''. # See config-keys.def for notes on specifying keys. Index: extend.txt =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/idlelib/extend.txt,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** extend.txt 14 Jul 2001 05:18:59 -0000 1.3 --- extend.txt 16 Jul 2003 03:10:43 -0000 1.4 *************** *** 1,3 **** --- 1,4 ---- Writing an IDLE extension + ========================= An IDLE extension can define new key bindings and menu entries for IDLE *************** *** 8,15 **** The list of extensions loaded at startup time is configured by editing ! the file config.txt; see below for details. An IDLE extension is defined by a class. Methods of the class define ! actions that are invoked by those bindings or menu entries. Class (or instance) variables define the bindings and menu additions; these are automatically applied by IDLE when the extension is linked to an edit --- 9,16 ---- The list of extensions loaded at startup time is configured by editing ! the file config-extensions.def. See below for details. An IDLE extension is defined by a class. Methods of the class define ! actions that are invoked by event bindings or menu entries. Class (or instance) variables define the bindings and menu additions; these are automatically applied by IDLE when the extension is linked to an edit *************** *** 27,65 **** (There are a few more, but they are rarely useful.) ! The extension class must not bind key events. Rather, it must define ! one or more virtual events, e.g. <>, and corresponding ! methods, e.g. zoom_height_event(), and have one or more class (or instance) ! variables that define mappings between virtual events and key sequences, ! e.g. . When the extension is loaded, these key sequences will ! be bound to the corresponding virtual events, and the virtual events ! will be bound to the corresponding methods. (This indirection is done ! so that the key bindings can easily be changed, and so that other ! sources of virtual events can exist, such as menu entries.) ! ! The following class or instance variables are used to define key ! bindings for virtual events: ! ! keydefs for all platforms ! mac_keydefs for Macintosh ! windows_keydefs for Windows ! unix_keydefs for Unix (and other platforms) ! Each of these variables, if it exists, must be a dictionary whose ! keys are virtual events, and whose values are lists of key sequences. ! An extension can define menu entries in a similar fashion. This is done ! with a class or instance variable named menudefs; it should be a list of ! pair, where each pair is a menu name (lowercase) and a list of menu ! entries. Each menu entry is either None (to insert a separator entry) or ! a pair of strings (menu_label, virtual_event). Here, menu_label is the ! label of the menu entry, and virtual_event is the virtual event to be ! generated when the entry is selected. An underscore in the menu label ! is removed; the character following the underscore is displayed ! underlined, to indicate the shortcut character (for Windows). ! At the moment, extensions cannot define whole new menus; they must ! define entries in existing menus. Some menus are not present on some ! windows; such entry definitions are then ignored, but the key bindings ! are still applied. (This should probably be refined in the future.) Here is a complete example example: --- 28,57 ---- (There are a few more, but they are rarely useful.) ! The extension class must not directly bind Window Manager (e.g. X) events. ! Rather, it must define one or more virtual events, e.g. <>, and ! corresponding methods, e.g. zoom_height_event(). The virtual events will be ! bound to the corresponding methods, and Window Manager events can then be bound ! to the virtual events. (This indirection is done so that the key bindings can ! easily be changed, and so that other sources of virtual events can exist, such ! as menu entries.) ! An extension can define menu entries. This is done with a class or instance ! variable named menudefs; it should be a list of pairs, where each pair is a ! menu name (lowercase) and a list of menu entries. Each menu entry is either ! None (to insert a separator entry) or a pair of strings (menu_label, ! virtual_event). Here, menu_label is the label of the menu entry, and ! virtual_event is the virtual event to be generated when the entry is selected. ! An underscore in the menu label is removed; the character following the ! underscore is displayed underlined, to indicate the shortcut character (for ! Windows). ! At the moment, extensions cannot define whole new menus; they must define ! entries in existing menus. Some menus are not present on some windows; such ! entry definitions are then ignored, but key bindings are still applied. (This ! should probably be refined in the future.) ! Extensions are not required to define menu entries for all the events they ! implement. (XXX KBK 15Jul03: But it appears they must have keybindings for each ! virtual event?) Here is a complete example example: *************** *** 74,84 **** ] - windows_keydefs = { - '<>': [''], - } - unix_keydefs = { - '<>': [''], - } - def __init__(self, editwin): self.editwin = editwin --- 66,69 ---- *************** *** 87,120 **** "...Do what you want here..." ! The final piece of the puzzle is the file "config.txt", which is used ! to to configure the loading of extensions. For each extension, ! you must include a section in config.txt (or in any of the other ! configuration files that are consulted at startup: config-unix.txt, ! config-win.txt, or ~/.idle). A section is headed by the module name ! in square brackets, e.g. ! ! [ZoomHeight] ! ! The section may be empty, or it may define configuration options for ! the extension. (See ParenMatch.py for an example.) A special option ! is 'enable': including ! ! enable = 0 ! ! in a section disables that extension. More than one configuration ! file may specify options for the same extension, so a user may disable ! an extension that is loaded by default, or enable an extension that is ! disabled by default. ! ! Extensions can define key bindings and menu entries that reference ! events they don't implement (including standard events); however this is ! not recommended (and may be forbidden in the future). ! Extensions are not required to define menu entries for all events they ! implement. ! Note: in order to change key bindings, you must currently edit the file ! keydefs. It contains two dictionaries named and formatted like the ! keydefs dictionaries described above, one for the Unix bindings and one ! for the Windows bindings. In the future, a better mechanism will be ! provided. --- 72,83 ---- "...Do what you want here..." ! The final piece of the puzzle is the file "config-extensions.def", which is ! used to to configure the loading of extensions and to establish key (or, more ! generally, event) bindings to the virtual events defined in the extensions. ! See the comments at the top of config-extensions.def for information. It's ! currently necessary to manually modify that file to change IDLE's extension ! loading or extension key bindings. ! For further information on binding refer to the Tkinter Resources web page at ! python.org and to the Tk Command "bind" man page. Index: help.txt =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/idlelib/help.txt,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** help.txt 15 May 2003 18:52:51 -0000 1.9 --- help.txt 16 Jul 2003 03:10:43 -0000 1.10 *************** *** 154,159 **** Python Shell window: ! ^C interrupts executing command ! ^D sends end-of-file; closes window if typed at >>> prompt Command history: --- 154,159 ---- Python Shell window: ! Control-c interrupts executing command ! Control-d sends end-of-file; closes window if typed at >>> prompt Command history: *************** *** 161,166 **** Alt-p retrieves previous command matching what you have typed Alt-n retrieves next ! Return while on any previous command retrieves that command ! Alt-/ (Expand word) is also useful here Syntax colors: --- 161,167 ---- Alt-p retrieves previous command matching what you have typed Alt-n retrieves next ! (These are Control-p, Control-n on the Mac) ! Return while cursor is on a previous command retrieves that command ! Expand word is also useful to reduce typing Syntax colors: Index: idlever.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/idlelib/idlever.py,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** idlever.py 15 Jun 2003 17:12:25 -0000 1.12 --- idlever.py 16 Jul 2003 03:10:43 -0000 1.13 *************** *** 1 **** ! IDLE_VERSION = "1.0b2" --- 1 ---- ! IDLE_VERSION = "1.0rc1" From fdrake@users.sourceforge.net Wed Jul 16 04:16:36 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Tue, 15 Jul 2003 20:16:36 -0700 Subject: [Python-checkins] python/dist/src/Doc/tools py2texi.el,1.5,1.6 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/tools In directory sc8-pr-cvs1:/tmp/cvs-serv1193 Modified Files: py2texi.el Log Message: Teach this script about \AA and \aa (the Scandanavian A-ring characters); \AA is used in whatsnew23.tex. Index: py2texi.el =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/tools/py2texi.el,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** py2texi.el 2 Jul 2003 14:44:08 -0000 1.5 --- py2texi.el 16 Jul 2003 03:16:34 -0000 1.6 *************** *** 201,205 **** (defconst py2texi-commands ! '(("ABC" 0 "ABC") ("appendix" 0 (progn (setq appendix t) "")) ("ASCII" 0 "ASCII") --- 201,207 ---- (defconst py2texi-commands ! '(("AA" 0 "@AA{}") ! ("aa" 0 "@aa{}") ! ("ABC" 0 "ABC") ("appendix" 0 (progn (setq appendix t) "")) ("ASCII" 0 "ASCII") From fdrake@users.sourceforge.net Wed Jul 16 04:26:33 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Tue, 15 Jul 2003 20:26:33 -0700 Subject: [Python-checkins] python/dist/src/Doc/whatsnew whatsnew23.tex,1.149,1.150 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/whatsnew In directory sc8-pr-cvs1:/tmp/cvs-serv2575 Modified Files: whatsnew23.tex Log Message: In the description of enumerate(), the indexing operators should not be included in the \var. This produced weird results in general, but broke the GNU info conversion. Index: whatsnew23.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/whatsnew/whatsnew23.tex,v retrieving revision 1.149 retrieving revision 1.150 diff -C2 -d -r1.149 -r1.150 *** whatsnew23.tex 12 Jul 2003 04:42:30 -0000 1.149 --- whatsnew23.tex 16 Jul 2003 03:26:31 -0000 1.150 *************** *** 384,389 **** certain loops a bit clearer. \code{enumerate(thing)}, where \var{thing} is either an iterator or a sequence, returns a iterator ! that will return \code{(0, \var{thing[0]})}, \code{(1, ! \var{thing[1]})}, \code{(2, \var{thing[2]})}, and so forth. Fairly often you'll see code to change every element of a list that --- 384,389 ---- certain loops a bit clearer. \code{enumerate(thing)}, where \var{thing} is either an iterator or a sequence, returns a iterator ! that will return \code{(0, \var{thing}[0])}, \code{(1, ! \var{thing}[1])}, \code{(2, \var{thing}[2])}, and so forth. Fairly often you'll see code to change every element of a list that From fdrake@users.sourceforge.net Wed Jul 16 04:35:44 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Tue, 15 Jul 2003 20:35:44 -0700 Subject: [Python-checkins] python/dist/src/Doc/tools py2texi.el,1.6,1.7 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/tools In directory sc8-pr-cvs1:/tmp/cvs-serv4036 Modified Files: py2texi.el Log Message: Simple support for the alltt environment. Index: py2texi.el =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/tools/py2texi.el,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** py2texi.el 16 Jul 2003 03:16:34 -0000 1.6 --- py2texi.el 16 Jul 2003 03:35:41 -0000 1.7 *************** *** 190,194 **** "@item \\3 @tab \\4 @tab \\5 @tab \\6 @tab \\7\n" "@item ------- @tab ------- @tab ------- @tab ------- @tab -------\n") ! "@end multitable\n")) "Associative list defining substitutions for environments. Each list item is of the form (ENVIRONMENT ARGNUM BEGIN END) where: --- 190,196 ---- "@item \\3 @tab \\4 @tab \\5 @tab \\6 @tab \\7\n" "@item ------- @tab ------- @tab ------- @tab ------- @tab -------\n") ! "@end multitable\n") ! ("alltt" 0 "@example" "@end example") ! ) "Associative list defining substitutions for environments. Each list item is of the form (ENVIRONMENT ARGNUM BEGIN END) where: From fdrake@users.sourceforge.net Wed Jul 16 04:44:50 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Tue, 15 Jul 2003 20:44:50 -0700 Subject: [Python-checkins] python/dist/src/Doc/tools py2texi.el,1.7,1.8 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/tools In directory sc8-pr-cvs1:/tmp/cvs-serv5672 Modified Files: py2texi.el Log Message: Map \envvar to the TeXinfo equivalent, @env. Index: py2texi.el =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/tools/py2texi.el,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** py2texi.el 16 Jul 2003 03:35:41 -0000 1.7 --- py2texi.el 16 Jul 2003 03:44:48 -0000 1.8 *************** *** 247,251 **** ("email" 1 "@email{\\1}") ("emph" 1 "@emph{\\1}") ! ("envvar" 1 "@samp{\\1}") ("exception" 1 "@code{\\1}") ("exindex" 1 (progn (setq obindex t) "@obindex{\\1}")) --- 247,251 ---- ("email" 1 "@email{\\1}") ("emph" 1 "@emph{\\1}") ! ("envvar" 1 "@env{\\1}") ("exception" 1 "@code{\\1}") ("exindex" 1 (progn (setq obindex t) "@obindex{\\1}")) From mhammond@users.sourceforge.net Wed Jul 16 04:46:40 2003 From: mhammond@users.sourceforge.net (mhammond@users.sourceforge.net) Date: Tue, 15 Jul 2003 20:46:40 -0700 Subject: [Python-checkins] python/dist/src/Lib/test test_pep277.py,1.6,1.7 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/test In directory sc8-pr-cvs1:/tmp/cvs-serv5887 Modified Files: test_pep277.py Log Message: Prevent failure on the mac, where "mbcs" is not the file system encoding. Use sys.getfilesystemencoding(). Index: test_pep277.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/test/test_pep277.py,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** test_pep277.py 1 May 2003 17:45:44 -0000 1.6 --- test_pep277.py 16 Jul 2003 03:46:38 -0000 1.7 *************** *** 1,5 **** # Test the Unicode versions of normal file functions # open, os.open, os.stat. os.listdir, os.rename, os.remove, os.mkdir, os.chdir, os.rmdir ! import os, unittest from test import test_support if not os.path.supports_unicode_filenames: --- 1,5 ---- # Test the Unicode versions of normal file functions # open, os.open, os.stat. os.listdir, os.rename, os.remove, os.mkdir, os.chdir, os.rmdir ! import sys, os, unittest from test import test_support if not os.path.supports_unicode_filenames: *************** *** 80,84 **** f1 = os.listdir(test_support.TESTFN) f1.sort() ! f2 = os.listdir(unicode(test_support.TESTFN,"mbcs")) f2.sort() print f1 --- 80,85 ---- f1 = os.listdir(test_support.TESTFN) f1.sort() ! f2 = os.listdir(unicode(test_support.TESTFN, ! sys.getfilesystemencoding())) f2.sort() print f1 From fdrake@users.sourceforge.net Wed Jul 16 05:00:19 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Tue, 15 Jul 2003 21:00:19 -0700 Subject: [Python-checkins] python/dist/src/Doc/whatsnew whatsnew23.tex,1.150,1.151 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/whatsnew In directory sc8-pr-cvs1:/tmp/cvs-serv8253 Modified Files: whatsnew23.tex Log Message: Adjust description of the internationalized domain name encoding to better accomodate the GNU info conversion. Index: whatsnew23.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/whatsnew/whatsnew23.tex,v retrieving revision 1.150 retrieving revision 1.151 diff -C2 -d -r1.150 -r1.151 *** whatsnew23.tex 16 Jul 2003 03:26:31 -0000 1.150 --- whatsnew23.tex 16 Jul 2003 04:00:14 -0000 1.151 *************** *** 1836,1840 **** \begin{alltt} ! >{}>{}> u"www.Alliancefran\c{c}aise.nu".encode("idna") 'www.xn--alliancefranaise-npb.nu' \end{alltt} --- 1836,1840 ---- \begin{alltt} ! >{}>{}> u"www.Alliancefran\c caise.nu".encode("idna") 'www.xn--alliancefranaise-npb.nu' \end{alltt} From fdrake@users.sourceforge.net Wed Jul 16 05:01:07 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Tue, 15 Jul 2003 21:01:07 -0700 Subject: [Python-checkins] python/dist/src/Doc Makefile,1.255,1.256 Message-ID: Update of /cvsroot/python/python/dist/src/Doc In directory sc8-pr-cvs1:/tmp/cvs-serv8483 Modified Files: Makefile Log Message: Pass along the selected "What's New" document to the make file for the GNU info conversion. Index: Makefile =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/Makefile,v retrieving revision 1.255 retrieving revision 1.256 diff -C2 -d -r1.255 -r1.256 *** Makefile 29 Jun 2003 02:17:28 -0000 1.255 --- Makefile 16 Jul 2003 04:01:04 -0000 1.256 *************** *** 294,298 **** info: ! cd $(INFODIR) && $(MAKE) EMACS=$(EMACS) # Targets to convert the manuals to HTML using Nikos Drakos' LaTeX to --- 294,298 ---- info: ! cd $(INFODIR) && $(MAKE) EMACS=$(EMACS) WHATSNEW=$(WHATSNEW) # Targets to convert the manuals to HTML using Nikos Drakos' LaTeX to From fdrake@users.sourceforge.net Wed Jul 16 05:03:01 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Tue, 15 Jul 2003 21:03:01 -0700 Subject: [Python-checkins] python/dist/src/Doc/info Makefile,1.10,1.11 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/info In directory sc8-pr-cvs1:/tmp/cvs-serv8803 Modified Files: Makefile Log Message: - update some comments - add support for the "What's New" document - add short aliases for individual documents; nice for debugging conversions Index: Makefile =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/info/Makefile,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** Makefile 2 Jul 2003 14:25:04 -0000 1.10 --- Makefile 16 Jul 2003 04:02:58 -0000 1.11 *************** *** 17,26 **** all: check-emacs-version \ ! python$(VERSION)-api.info python$(VERSION)-ext.info \ ! python$(VERSION)-lib.info python$(VERSION)-ref.info \ ! python$(VERSION)-tut.info python$(VERSION)-dist.info \ ! python$(VERSION)-mac.info ! # python$(VERSION)-doc.info python$(VERSION)-inst.info check-emacs-version: --- 17,35 ---- all: check-emacs-version \ ! api dist ext mac ref tut whatsnew \ ! lib ! # doc inst ! api: python$(VERSION)-api.info ! dist: python$(VERSION)-dist.info ! doc: python$(VERSION)-doc.info ! ext: python$(VERSION)-ext.info ! inst: python$(VERSION)-inst.info ! lib: python$(VERSION)-lib.info ! mac: python$(VERSION)-mac.info ! ref: python$(VERSION)-ref.info ! tut: python$(VERSION)-tut.info ! whatsnew: $(WHATSNEW) ! $(WHATSNEW): python$(VERSION)-$(WHATSNEW).info check-emacs-version: *************** *** 43,47 **** EMACS=$(EMACS) $(MKINFO) $< $*.texi $@ - # Not built by default; the conversion doesn't really handle it well. python$(VERSION)-mac.info: ../mac/mac.tex $(SCRIPTS) EMACS=$(EMACS) $(MKINFO) $< $*.texi $@ --- 52,55 ---- *************** *** 53,57 **** EMACS=$(EMACS) $(MKINFO) $< $*.texi $@ ! # Not built by default; the conversion doesn't handle it at all. python$(VERSION)-doc.info: ../doc/doc.tex $(SCRIPTS) EMACS=$(EMACS) $(MKINFO) $< $*.texi $@ --- 61,65 ---- EMACS=$(EMACS) $(MKINFO) $< $*.texi $@ ! # Not built by default; the conversion doesn't handle \p and \op python$(VERSION)-doc.info: ../doc/doc.tex $(SCRIPTS) EMACS=$(EMACS) $(MKINFO) $< $*.texi $@ *************** *** 60,65 **** EMACS=$(EMACS) $(MKINFO) $< $*.texi $@ ! # Not built by default; the conversion chokes on two @end multitable's python$(VERSION)-inst.info: ../inst/inst.tex $(SCRIPTS) EMACS=$(EMACS) $(MKINFO) $< $*.texi $@ --- 68,77 ---- EMACS=$(EMACS) $(MKINFO) $< $*.texi $@ ! # Not built by default; the conversion chokes on \installscheme python$(VERSION)-inst.info: ../inst/inst.tex $(SCRIPTS) + EMACS=$(EMACS) $(MKINFO) $< $*.texi $@ + + # "whatsnew20" doesn't currently work + python$(VERSION)-$(WHATSNEW).info: ../whatsnew/$(WHATSNEW).tex $(SCRIPTS) EMACS=$(EMACS) $(MKINFO) $< $*.texi $@ From rhettinger@users.sourceforge.net Wed Jul 16 05:29:44 2003 From: rhettinger@users.sourceforge.net (rhettinger@users.sourceforge.net) Date: Tue, 15 Jul 2003 21:29:44 -0700 Subject: [Python-checkins] python/dist/src/Lib/test test_support.py,1.57,1.58 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/test In directory sc8-pr-cvs1:/tmp/cvs-serv12603 Modified Files: test_support.py Log Message: Extend last change to cover TestSuites as well as TestCases. Index: test_support.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/test/test_support.py,v retrieving revision 1.57 retrieving revision 1.58 diff -C2 -d -r1.57 -r1.58 *** test_support.py 16 Jul 2003 02:59:32 -0000 1.57 --- test_support.py 16 Jul 2003 04:29:42 -0000 1.58 *************** *** 252,256 **** suite = unittest.TestSuite() for cls in classes: ! if isinstance(cls, unittest.TestCase): suite.addTest(cls) else: --- 252,256 ---- suite = unittest.TestSuite() for cls in classes: ! if isinstance(cls, (unittest.TestSuite, unittest.TestCase)): suite.addTest(cls) else: From rhettinger@users.sourceforge.net Wed Jul 16 05:32:34 2003 From: rhettinger@users.sourceforge.net (rhettinger@users.sourceforge.net) Date: Tue, 15 Jul 2003 21:32:34 -0700 Subject: [Python-checkins] python/dist/src/Lib difflib.py,1.15,1.16 Message-ID: Update of /cvsroot/python/python/dist/src/Lib In directory sc8-pr-cvs1:/tmp/cvs-serv12851 Modified Files: difflib.py Log Message: Fix faulty doctests. There is no results attribute. Note, these tests were not getting exercised because doctest skips over private functions. Index: difflib.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/difflib.py,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** difflib.py 1 Jul 2003 14:57:08 -0000 1.15 --- difflib.py 16 Jul 2003 04:32:32 -0000 1.16 *************** *** 916,921 **** >>> d = Differ() ! >>> d._fancy_replace(['abcDefghiJkl\n'], 0, 1, ['abcdefGhijkl\n'], 0, 1) ! >>> print ''.join(d.results), - abcDefghiJkl ? ^ ^ ^ --- 916,922 ---- >>> d = Differ() ! >>> results = d._fancy_replace(['abcDefghiJkl\n'], 0, 1, ! ... ['abcdefGhijkl\n'], 0, 1) ! >>> print ''.join(results), - abcDefghiJkl ? ^ ^ ^ *************** *** 1023,1029 **** >>> d = Differ() ! >>> d._qformat('\tabcDefghiJkl\n', '\t\tabcdefGhijkl\n', ! ... ' ^ ^ ^ ', '+ ^ ^ ^ ') ! >>> for line in d.results: print repr(line) ... '- \tabcDefghiJkl\n' --- 1024,1030 ---- >>> d = Differ() ! >>> results = d._qformat('\tabcDefghiJkl\n', '\t\tabcdefGhijkl\n', ! ... ' ^ ^ ^ ', '+ ^ ^ ^ ') ! >>> for line in results: print repr(line) ... '- \tabcDefghiJkl\n' From rhettinger@users.sourceforge.net Wed Jul 16 05:34:58 2003 From: rhettinger@users.sourceforge.net (rhettinger@users.sourceforge.net) Date: Tue, 15 Jul 2003 21:34:58 -0700 Subject: [Python-checkins] python/dist/src/Lib/test test_difflib.py,1.7,1.8 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/test In directory sc8-pr-cvs1:/tmp/cvs-serv13065 Modified Files: test_difflib.py Log Message: Exercise Jim Fulton's new doctest extension for running doctests in a unittest environment. Since his extension finds docstrings in private functions, it exposed a bug in the difflib doctests. Index: test_difflib.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/test/test_difflib.py,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** test_difflib.py 1 Jul 2003 15:03:49 -0000 1.7 --- test_difflib.py 16 Jul 2003 04:34:56 -0000 1.8 *************** *** 2,5 **** --- 2,6 ---- from test import test_support import unittest + import doctest class TestSFbugs(unittest.TestCase): *************** *** 12,15 **** self.assertEqual(s.real_quick_ratio(), 1) ! test_support.run_unittest(TestSFbugs) ! test_support.run_doctest(difflib) --- 13,18 ---- self.assertEqual(s.real_quick_ratio(), 1) ! Doctests = doctest.DocTestSuite(difflib) ! ! test_support.run_unittest(TestSFbugs, Doctests) ! From rhettinger@users.sourceforge.net Wed Jul 16 06:11:29 2003 From: rhettinger@users.sourceforge.net (rhettinger@users.sourceforge.net) Date: Tue, 15 Jul 2003 22:11:29 -0700 Subject: [Python-checkins] python/dist/src/Doc/lib libstdtypes.tex,1.128,1.129 libstring.tex,1.51,1.52 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/lib In directory sc8-pr-cvs1:/tmp/cvs-serv17826a Modified Files: libstdtypes.tex libstring.tex Log Message: Discussion of signatures for unicode.translate() and str.translate() were in the wrong file. Moved out of libstring.tex and into libstdtypes.tex. Index: libstdtypes.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/libstdtypes.tex,v retrieving revision 1.128 retrieving revision 1.129 diff -C2 -d -r1.128 -r1.129 *** libstdtypes.tex 25 Jun 2003 19:03:22 -0000 1.128 --- libstdtypes.tex 16 Jul 2003 05:11:27 -0000 1.129 *************** *** 741,744 **** --- 741,754 ---- characters have been mapped through the given translation table, which must be a string of length 256. + + For Unicode objects, the \method{translate()} method does not + accept the optional \var{deletechars} argument. Instead, it + returns a copy of the \var{s} where all characters have been mapped + through the given translation table which must be a mapping of + Unicode ordinals to Unicode ordinals, Unicode strings or \code{None}. + Unmapped characters are left untouched. Characters mapped to \code{None} + are deleted. Note, a more flexible approach is to create a custom + character mapping codec using the \refmodule{codecs} module (see + \module{encodings.cp1251} for an example). \end{methoddesc} Index: libstring.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/libstring.tex,v retrieving revision 1.51 retrieving revision 1.52 diff -C2 -d -r1.51 -r1.52 *** libstring.tex 13 Jul 2003 02:06:47 -0000 1.51 --- libstring.tex 16 Jul 2003 05:11:27 -0000 1.52 *************** *** 278,291 **** must be a 256-character string giving the translation for each character value, indexed by its ordinal. - - For Unicode objects, the \method{translate()} method does not - accept the optional \var{deletechars} argument. Instead, it - returns a copy of the \var{s} where all characters have been mapped - through the given translation table which must be a mapping of - Unicode ordinals to Unicode ordinals, Unicode strings or \code{None}. - Unmapped characters are left untouched. Characters mapped to \code{None} - are deleted. Note, a more flexible approach is to create a custom - character mapping codec using the \refmodule{codecs} module (see - \module{encodings.cp1251} for an example). \end{funcdesc} --- 278,281 ---- From fdrake@users.sourceforge.net Wed Jul 16 06:17:25 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Tue, 15 Jul 2003 22:17:25 -0700 Subject: [Python-checkins] python/dist/src/Doc/lib libcodecs.tex,1.21,1.22 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/lib In directory sc8-pr-cvs1:/tmp/cvs-serv18967 Modified Files: libcodecs.tex Log Message: A variety of markup-level adjustments. Index: libcodecs.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/libcodecs.tex,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** libcodecs.tex 18 Jun 2003 01:58:31 -0000 1.21 --- libcodecs.tex 16 Jul 2003 05:17:23 -0000 1.22 *************** *** 900,908 **** Applications) and \rfc{3492} (Nameprep: A Stringprep Profile for Internationalized Domain Names (IDN)). It builds upon the ! \code{punycode} encoding and \module{stringprep}. These RFCs together define a protocol to support non-\ASCII{} characters in domain names. A domain name containing non-\ASCII{} characters (such ! as ``www.Alliancefran\c{c}aise.nu'') is converted into an \ASCII-compatible encoding (ACE, such as ``www.xn--alliancefranaise-npb.nu''). The ACE form of the domain name --- 900,908 ---- Applications) and \rfc{3492} (Nameprep: A Stringprep Profile for Internationalized Domain Names (IDN)). It builds upon the ! \code{punycode} encoding and \refmodule{stringprep}. These RFCs together define a protocol to support non-\ASCII{} characters in domain names. A domain name containing non-\ASCII{} characters (such ! as ``www.Alliancefran\c caise.nu'') is converted into an \ASCII-compatible encoding (ACE, such as ``www.xn--alliancefranaise-npb.nu''). The ACE form of the domain name *************** *** 916,926 **** Python supports this conversion in several ways: The \code{idna} codec allows to convert between Unicode and the ACE. Furthermore, the ! \module{socket} module transparently converts Unicode host names to ACE, so that applications need not be concerned about converting host names themselves when they pass them to the socket module. On top of that, modules that have host names as function parameters, such as ! \module{httplib} and \module{ftplib}, accept Unicode host names ! (\module{httplib} then also transparently sends an IDNA hostname in ! the \code{Host:} field if it sends that field at all). When receiving host names from the wire (such as in reverse name --- 916,926 ---- Python supports this conversion in several ways: The \code{idna} codec allows to convert between Unicode and the ACE. Furthermore, the ! \refmodule{socket} module transparently converts Unicode host names to ACE, so that applications need not be concerned about converting host names themselves when they pass them to the socket module. On top of that, modules that have host names as function parameters, such as ! \refmodule{httplib} and \refmodule{ftplib}, accept Unicode host names ! (\refmodule{httplib} then also transparently sends an IDNA hostname in ! the \mailheader{Host} field if it sends that field at all). When receiving host names from the wire (such as in reverse name From aimacintyre@users.sourceforge.net Wed Jul 16 14:31:14 2003 From: aimacintyre@users.sourceforge.net (aimacintyre@users.sourceforge.net) Date: Wed, 16 Jul 2003 06:31:14 -0700 Subject: [Python-checkins] python/dist/src/PC/os2emx Makefile,1.13,1.14 README.os2emx,1.6,1.7 pyconfig.h,1.6,1.7 python23.def,1.7,1.8 Message-ID: Update of /cvsroot/python/python/dist/src/PC/os2emx In directory sc8-pr-cvs1:/tmp/cvs-serv28638 Modified Files: Makefile README.os2emx pyconfig.h python23.def Log Message: More pre-2.3 build tweaks for the OS/2 EMX port: - more clean up of the generated import library definiton (.DEF file) following checking of patch 770521, and tightening of the sed regexps. - use -O3 even with gcc 2.8.1 - worth nearly 10% with 2.3; worth nothing with 2.2.x. - clean up a couple of whitespace issues introduced by a cut'n'paste. Index: Makefile =================================================================== RCS file: /cvsroot/python/python/dist/src/PC/os2emx/Makefile,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** Makefile 13 Jul 2003 13:41:59 -0000 1.13 --- Makefile 16 Jul 2003 13:31:11 -0000 1.14 *************** *** 92,96 **** LDFLAGS+= -g else ! CFLAGS+= -s -O2 -fomit-frame-pointer LDFLAGS+= -s endif --- 92,96 ---- LDFLAGS+= -g else ! CFLAGS+= -s -O3 -fomit-frame-pointer LDFLAGS+= -s endif *************** *** 516,541 **** @echo EXPORTS >>$@ $(EXPLIB) -u $(PYTHON.LIB) |\ ! sed -e "/ .init.*/s/^ /; /" \ ! -e "/ .pcre_.*/s/^ /; /" \ ! -e "/ .array_methods/s/^ /; /" \ ! -e "/ .fast_save_leave/s/^ /; /" \ ! -e "/ .dlopen/s/^ /; /" \ ! -e "/ .dlsym/s/^ /; /" \ ! -e "/ .dlclose/s/^ /; /" \ ! -e "/ .dlerror/s/^ /; /" \ ! -e "/ .cycle_type/s/^ /; /" \ ! -e "/ .dropwhile_type/s/^ /; /" \ ! -e "/ .takewhile_type/s/^ /; /" \ ! -e "/ .islice_type/s/^ /; /" \ ! -e "/ .starmap_type/s/^ /; /" \ ! -e "/ .imap_type/s/^ /; /" \ ! -e "/ .chain_type/s/^ /; /" \ ! -e "/ .ifilter_type/s/^ /; /" \ ! -e "/ .ifilterfalse_type/s/^ /; /" \ ! -e "/ .count_type/s/^ /; /" \ ! -e "/ .izip_type/s/^ /; /" \ ! -e "/ .repeat_type/s/^ /; /" \ ! -e "/ ._Py_re_.*/s/^ /; /" \ ! -e "/ ._Py_MD5.*/s/^ /; /" >>$@ $(PYTHON.IMPLIB): $(PYTHON.DEF) --- 516,529 ---- @echo EXPORTS >>$@ $(EXPLIB) -u $(PYTHON.LIB) |\ ! sed -e "/^ .init.*/s/^ /; /" \ ! -e "/^ .pcre_.*/s/^ /; /" \ ! -e "/^ .array_methods/s/^ /; /" \ ! -e "/^ .fast_save_leave/s/^ /; /" \ ! -e "/^ .dlopen/s/^ /; /" \ ! -e "/^ .dlsym/s/^ /; /" \ ! -e "/^ .dlclose/s/^ /; /" \ ! -e "/^ .dlerror/s/^ /; /" \ ! -e "/^ ._Py_re_.*/s/^ /; /" \ ! -e "/^ ._Py_MD5.*/s/^ /; /" >>$@ $(PYTHON.IMPLIB): $(PYTHON.DEF) Index: README.os2emx =================================================================== RCS file: /cvsroot/python/python/dist/src/PC/os2emx/README.os2emx,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** README.os2emx 10 Jul 2003 12:55:30 -0000 1.6 --- README.os2emx 16 Jul 2003 13:31:11 -0000 1.7 *************** *** 555,562 **** v2.8.1. ! While gcc supports more aggressive optimisation than I use, a lot of ! benchmarking indicates that Python's performance is at best only ! marginally improved by more aggressive optimisation, at least on my ! hardware (AMD Athlon 1.4GHz, VIA C3 800MHz). 17. os.spawnv() and os.spawnve() expose EMX's library routines rather --- 555,567 ---- v2.8.1. ! This release sees the default optimisation change to ! "-O3 -fomit-frame-pointer". This works fine too for pgcc 2.95 but not ! for gcc 3.2.1. ! ! With gcc 3.2.1, -O3 causes 2 unexpected test failures: test_format and ! test_unicode. Both these tests pass if -O2 is instead of -O3 with this ! compiler, and the performance difference is negligible (in contrast to ! gcc 2.8.1 and pgcc 2.95, where the performance difference between the ! 2 optimisation settings approaches 10%). 17. os.spawnv() and os.spawnve() expose EMX's library routines rather Index: pyconfig.h =================================================================== RCS file: /cvsroot/python/python/dist/src/PC/os2emx/pyconfig.h,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** pyconfig.h 13 Jul 2003 13:41:59 -0000 1.6 --- pyconfig.h 16 Jul 2003 13:31:11 -0000 1.7 *************** *** 32,41 **** */ #ifdef Py_BUILD_CORE ! # define PyAPI_FUNC(RTYPE) RTYPE #else ! # define PyAPI_FUNC(RTYPE) extern RTYPE #endif ! #define PyAPI_DATA(RTYPE) extern RTYPE ! #define PyMODINIT_FUNC void /* Use OS/2 flavour of threads */ --- 32,41 ---- */ #ifdef Py_BUILD_CORE ! # define PyAPI_FUNC(RTYPE) RTYPE #else ! # define PyAPI_FUNC(RTYPE) extern RTYPE #endif ! #define PyAPI_DATA(RTYPE) extern RTYPE ! #define PyMODINIT_FUNC void /* Use OS/2 flavour of threads */ Index: python23.def =================================================================== RCS file: /cvsroot/python/python/dist/src/PC/os2emx/python23.def,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** python23.def 13 Jul 2003 13:41:59 -0000 1.7 --- python23.def 16 Jul 2003 13:31:11 -0000 1.8 *************** *** 1071,1086 **** ; From python23_s.lib(itertoolsmodule) ; "inititertools" - ; "cycle_type" - ; "dropwhile_type" - ; "takewhile_type" - ; "islice_type" - ; "starmap_type" - ; "imap_type" - ; "chain_type" - ; "ifilter_type" - ; "ifilterfalse_type" - ; "count_type" - ; "izip_type" - ; "repeat_type" ; From python23_s.lib(_localemodule) --- 1071,1074 ---- From fdrake@users.sourceforge.net Wed Jul 16 14:50:30 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Wed, 16 Jul 2003 06:50:30 -0700 Subject: [Python-checkins] python/dist/src/Doc/doc doc.tex,1.74,1.75 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/doc In directory sc8-pr-cvs1:/tmp/cvs-serv31760 Modified Files: doc.tex Log Message: Cygwin instructions: - added missing period - added markup so it's easier to tell which names are special Index: doc.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/doc/doc.tex,v retrieving revision 1.74 retrieving revision 1.75 diff -C2 -d -r1.74 -r1.75 *** doc.tex 11 Jul 2003 03:36:15 -0000 1.74 --- doc.tex 16 Jul 2003 13:50:28 -0000 1.75 *************** *** 1794,1803 **** Using the Cygwin installer, make sure your Cygwin installation includes Perl, Python, and the \TeX{} packages. Perl and Python ! are located under \menuselection{Interpreters} in the installer The \TeX{} packages are located in the \menuselection{Text} ! section; installing the tetex-beta, texmf, texmf-base, and ! texmf-extra ensures that all the required packages are available. ! (There may be a more minimal set, but I've not spent time trying ! to minimize the installation.) The netpbm package is used by \LaTeX2HTML, and \emph{must} be --- 1794,1803 ---- Using the Cygwin installer, make sure your Cygwin installation includes Perl, Python, and the \TeX{} packages. Perl and Python ! are located under \menuselection{Interpreters} in the installer. The \TeX{} packages are located in the \menuselection{Text} ! section; installing the \code{tetex-beta}, \code{texmf}, ! \code{texmf-base}, and \code{texmf-extra} ensures that all the ! required packages are available. (There may be a more minimal ! set, but I've not spent time trying to minimize the installation.) The netpbm package is used by \LaTeX2HTML, and \emph{must} be From fdrake@users.sourceforge.net Wed Jul 16 15:01:58 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Wed, 16 Jul 2003 07:01:58 -0700 Subject: [Python-checkins] python/dist/src/Doc/perl python.perl,1.136,1.137 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/perl In directory sc8-pr-cvs1:/tmp/cvs-serv1365/perl Modified Files: python.perl Log Message: Make it easier to figure out the where a menuselection starts and ends by controling the font. Index: python.perl =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/perl/python.perl,v retrieving revision 1.136 retrieving revision 1.137 diff -C2 -d -r1.136 -r1.137 *** python.perl 15 Jul 2003 22:00:36 -0000 1.136 --- python.perl 16 Jul 2003 14:01:56 -0000 1.137 *************** *** 96,100 **** sub do_cmd_infinity{ '∞' . $_[0]; } sub do_cmd_plusminus{ '±' . $_[0]; } ! sub do_cmd_menuselection{ $_[0]; } sub do_cmd_sub{ ' > ' . $_[0]; } --- 96,101 ---- sub do_cmd_infinity{ '∞' . $_[0]; } sub do_cmd_plusminus{ '±' . $_[0]; } ! sub do_cmd_menuselection{ ! return use_wrappers($_[0], '', ''); } sub do_cmd_sub{ ' > ' . $_[0]; } From fdrake@users.sourceforge.net Wed Jul 16 15:01:58 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Wed, 16 Jul 2003 07:01:58 -0700 Subject: [Python-checkins] python/dist/src/Doc/texinputs python.sty,1.101,1.102 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/texinputs In directory sc8-pr-cvs1:/tmp/cvs-serv1365/texinputs Modified Files: python.sty Log Message: Make it easier to figure out the where a menuselection starts and ends by controling the font. Index: python.sty =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/texinputs/python.sty,v retrieving revision 1.101 retrieving revision 1.102 diff -C2 -d -r1.101 -r1.102 *** python.sty 30 Dec 2002 20:51:27 -0000 1.101 --- python.sty 16 Jul 2003 14:01:56 -0000 1.102 *************** *** 823,827 **** \newcommand{\plusminus}{\ensuremath{\pm}} % \menuselection{Start \sub Programs \sub Python} ! \newcommand{\menuselection}[1]{{\def\sub{ \ensuremath{>} }#1}} % Also for consistency: spell Python "Python", not "python"! --- 823,827 ---- \newcommand{\plusminus}{\ensuremath{\pm}} % \menuselection{Start \sub Programs \sub Python} ! \newcommand{\menuselection}[1]{\textsf{\def\sub{ \ensuremath{>} }#1}} % Also for consistency: spell Python "Python", not "python"! From fdrake@users.sourceforge.net Wed Jul 16 15:01:58 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Wed, 16 Jul 2003 07:01:58 -0700 Subject: [Python-checkins] python/dist/src/Doc/html style.css,1.26,1.27 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/html In directory sc8-pr-cvs1:/tmp/cvs-serv1365/html Modified Files: style.css Log Message: Make it easier to figure out the where a menuselection starts and ends by controling the font. Index: style.css =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/html/style.css,v retrieving revision 1.26 retrieving revision 1.27 diff -C2 -d -r1.26 -r1.27 *** style.css 27 Jun 2003 16:32:27 -0000 1.26 --- style.css 16 Jul 2003 14:01:56 -0000 1.27 *************** *** 116,119 **** --- 116,120 ---- .url { font-family: avantgarde, sans-serif; } .file { font-family: avantgarde, sans-serif; } + .menuselection { font-family: avantgarde, sans-serif; } .tableheader { background-color: #99ccff; From akuchling@users.sourceforge.net Wed Jul 16 15:44:14 2003 From: akuchling@users.sourceforge.net (akuchling@users.sourceforge.net) Date: Wed, 16 Jul 2003 07:44:14 -0700 Subject: [Python-checkins] python/dist/src/Doc/whatsnew whatsnew23.tex,1.151,1.152 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/whatsnew In directory sc8-pr-cvs1:/tmp/cvs-serv9214 Modified Files: whatsnew23.tex Log Message: Minor text changes; update bug/patch count (quite a jump!) Index: whatsnew23.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/whatsnew/whatsnew23.tex,v retrieving revision 1.151 retrieving revision 1.152 diff -C2 -d -r1.151 -r1.152 *** whatsnew23.tex 16 Jul 2003 04:00:14 -0000 1.151 --- whatsnew23.tex 16 Jul 2003 14:44:12 -0000 1.152 *************** *** 18,26 **** {\large This article is a draft, and is currently up to date for ! Python 2.3beta1. Please send any additions, comments or errata to the author.} This article explains the new features in Python 2.3. The tentative ! release date of Python 2.3 is currently scheduled for mid-2003. This article doesn't attempt to provide a complete specification of --- 18,26 ---- {\large This article is a draft, and is currently up to date for ! Python 2.3rc1. Please send any additions, comments or errata to the author.} This article explains the new features in Python 2.3. The tentative ! release date of Python 2.3 is currently scheduled for August 2003. This article doesn't attempt to provide a complete specification of *************** *** 29,34 **** such as the \citetitle[../lib/lib.html]{Python Library Reference} and the \citetitle[../ref/ref.html]{Python Reference Manual}. If you want ! to understand the complete implementation and design rationale for a ! change, refer to the PEP for a particular new feature. --- 29,34 ---- such as the \citetitle[../lib/lib.html]{Python Library Reference} and the \citetitle[../ref/ref.html]{Python Reference Manual}. If you want ! to understand the complete implementation and design rationale, ! refer to the PEP for a particular new feature. *************** *** 62,67 **** The union and intersection of sets can be computed with the ! \method{union()} and \method{intersection()} methods or ! alternatively using the bitwise operators \code{\&} and \code{|}. Mutable sets also have in-place versions of these methods, \method{union_update()} and \method{intersection_update()}. --- 62,67 ---- The union and intersection of sets can be computed with the ! \method{union()} and \method{intersection()} methods; an alternative ! notation uses the bitwise operators \code{\&} and \code{|}. Mutable sets also have in-place versions of these methods, \method{union_update()} and \method{intersection_update()}. *************** *** 86,91 **** It's also possible to take the symmetric difference of two sets. This is the set of all elements in the union that aren't in the ! intersection. An alternative way of expressing the symmetric ! difference is that it contains all elements that are in exactly one set. Again, there's an alternative notation (\code{\^}), and an in-place version with the ungainly name --- 86,91 ---- It's also possible to take the symmetric difference of two sets. This is the set of all elements in the union that aren't in the ! intersection. Another way of putting it is that the symmetric ! difference contains all elements that are in exactly one set. Again, there's an alternative notation (\code{\^}), and an in-place version with the ungainly name *************** *** 287,292 **** Without such an encoding declaration, the default encoding used is ! 7-bit ASCII. Executing or importing modules containing string ! literals with 8-bit characters and no encoding declaration will result in a \exception{DeprecationWarning} being signalled by Python 2.3; in 2.4 this will be a syntax error. --- 287,292 ---- Without such an encoding declaration, the default encoding used is ! 7-bit ASCII. Executing or importing modules that contain string ! literals with 8-bit characters and have no encoding declaration will result in a \exception{DeprecationWarning} being signalled by Python 2.3; in 2.4 this will be a syntax error. *************** *** 347,354 **** The three major operating systems used today are Microsoft Windows, Apple's Macintosh OS, and the various \UNIX\ derivatives. A minor ! irritation is that these three platforms all use different characters to mark the ends of lines in text files. \UNIX\ uses the linefeed ! (ASCII character 10), while MacOS uses the carriage return (ASCII ! character 13), and Windows uses a two-character sequence containing a carriage return plus a newline. --- 347,355 ---- The three major operating systems used today are Microsoft Windows, Apple's Macintosh OS, and the various \UNIX\ derivatives. A minor ! irritation of cross-platform work ! is that these three platforms all use different characters to mark the ends of lines in text files. \UNIX\ uses the linefeed ! (ASCII character 10), MacOS uses the carriage return (ASCII ! character 13), and Windows uses a two-character sequence of a carriage return plus a newline. *************** *** 366,371 **** without needing to convert the line-endings. ! This feature can be disabled at compile-time by specifying ! \longprogramopt{without-universal-newlines} when running Python's \program{configure} script. --- 367,372 ---- without needing to convert the line-endings. ! This feature can be disabled when compiling Python by specifying ! the \longprogramopt{without-universal-newlines} switch when running Python's \program{configure} script. *************** *** 387,392 **** \var{thing}[1])}, \code{(2, \var{thing}[2])}, and so forth. ! Fairly often you'll see code to change every element of a list that ! looks like this: \begin{verbatim} --- 388,392 ---- \var{thing}[1])}, \code{(2, \var{thing}[2])}, and so forth. ! A common idiom to change every element of a list looks like this: \begin{verbatim} *************** *** 2213,2217 **** As usual, there were a bunch of other improvements and bugfixes scattered throughout the source tree. A search through the CVS change ! logs finds there were 121 patches applied and 103 bugs fixed between Python 2.2 and 2.3. Both figures are likely to be underestimates. --- 2213,2217 ---- As usual, there were a bunch of other improvements and bugfixes scattered throughout the source tree. A search through the CVS change ! logs finds there were 523 patches applied and 514 bugs fixed between Python 2.2 and 2.3. Both figures are likely to be underestimates. From jhylton@users.sourceforge.net Wed Jul 16 17:08:25 2003 From: jhylton@users.sourceforge.net (jhylton@users.sourceforge.net) Date: Wed, 16 Jul 2003 09:08:25 -0700 Subject: [Python-checkins] python/dist/src/Objects typeobject.c,2.239,2.240 Message-ID: Update of /cvsroot/python/python/dist/src/Objects In directory sc8-pr-cvs1:/tmp/cvs-serv26984 Modified Files: typeobject.c Log Message: Remove unnecessary check in tests for slots allowed. The !PyType_Check(base) check snuck in as part of rev 2.215, but was unrelated to the SF patch that is mentioned in the checkin comment. The test is currently unnecessary because base is set to the return value of best_bases(), which returns a type or NULL. Index: typeobject.c =================================================================== RCS file: /cvsroot/python/python/dist/src/Objects/typeobject.c,v retrieving revision 2.239 retrieving revision 2.240 diff -C2 -d -r2.239 -r2.240 *** typeobject.c 27 Jun 2003 17:38:27 -0000 2.239 --- typeobject.c 16 Jul 2003 16:08:23 -0000 2.240 *************** *** 1654,1658 **** /* Are slots allowed? */ nslots = PyTuple_GET_SIZE(slots); ! if (nslots > 0 && base->tp_itemsize != 0 && !PyType_Check(base)) { /* for the special case of meta types, allow slots */ PyErr_Format(PyExc_TypeError, --- 1654,1658 ---- /* Are slots allowed? */ nslots = PyTuple_GET_SIZE(slots); ! if (nslots > 0 && base->tp_itemsize != 0) { /* for the special case of meta types, allow slots */ PyErr_Format(PyExc_TypeError, From jhylton@users.sourceforge.net Wed Jul 16 17:18:00 2003 From: jhylton@users.sourceforge.net (jhylton@users.sourceforge.net) Date: Wed, 16 Jul 2003 09:18:00 -0700 Subject: [Python-checkins] python/dist/src/Objects typeobject.c,2.240,2.241 Message-ID: Update of /cvsroot/python/python/dist/src/Objects In directory sc8-pr-cvs1:/tmp/cvs-serv28914 Modified Files: typeobject.c Log Message: Remove stray comments. Index: typeobject.c =================================================================== RCS file: /cvsroot/python/python/dist/src/Objects/typeobject.c,v retrieving revision 2.240 retrieving revision 2.241 diff -C2 -d -r2.240 -r2.241 *** typeobject.c 16 Jul 2003 16:08:23 -0000 2.240 --- typeobject.c 16 Jul 2003 16:17:57 -0000 2.241 *************** *** 1655,1659 **** nslots = PyTuple_GET_SIZE(slots); if (nslots > 0 && base->tp_itemsize != 0) { - /* for the special case of meta types, allow slots */ PyErr_Format(PyExc_TypeError, "nonempty __slots__ " --- 1655,1658 ---- From fdrake@users.sourceforge.net Wed Jul 16 17:19:11 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Wed, 16 Jul 2003 09:19:11 -0700 Subject: [Python-checkins] python/dist/src/Doc/lib libre.tex,1.100,1.101 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/lib In directory sc8-pr-cvs1:/tmp/cvs-serv29101 Modified Files: libre.tex Log Message: Remove \versionchanged; the text was too complex for the GNU info conversion to support. Keep the content as normal content, with a note that this applies starting in Python 2.3. Index: libre.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/libre.tex,v retrieving revision 1.100 retrieving revision 1.101 diff -C2 -d -r1.100 -r1.101 *** libre.tex 13 May 2003 14:40:24 -0000 1.100 --- libre.tex 16 Jul 2003 16:19:08 -0000 1.101 *************** *** 917,923 **** You can often restructure your regular expression to avoid recursion. ! \versionchanged[Simple uses of the \regexp{*?} pattern are now special-cased to avoid recursion. Thus, the above regular expression ! can avoid recursion by being recast as \regexp{Begin [a-zA-Z0-9_ ]*?end}. ! As a further benefit, such regular expressions will run faster than ! their recursive equivalents.]{2.3} --- 917,923 ---- You can often restructure your regular expression to avoid recursion. ! Starting with Python 2.3, simple uses of the \regexp{*?} pattern are special-cased to avoid recursion. Thus, the above regular expression ! can avoid recursion by being recast as ! \regexp{Begin [a-zA-Z0-9_ ]*?end}. As a further benefit, such regular ! expressions will run faster than their recursive equivalents. From fdrake@users.sourceforge.net Wed Jul 16 18:58:41 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Wed, 16 Jul 2003 10:58:41 -0700 Subject: [Python-checkins] python/dist/src/Doc/lib liboptparse.tex,1.9,1.10 libpdb.tex,1.36,1.37 librfc822.tex,1.43,1.44 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/lib In directory sc8-pr-cvs1:/tmp/cvs-serv17452/lib Modified Files: liboptparse.tex libpdb.tex librfc822.tex Log Message: Lots of markup cleanups to avoid warnings from the GNU info generation; these make sense even without that processing chain. Index: liboptparse.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/liboptparse.tex,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** liboptparse.tex 10 May 2003 03:35:37 -0000 1.9 --- liboptparse.tex 16 Jul 2003 17:58:38 -0000 1.10 *************** *** 83,94 **** shell passes to \cfunction{execl()} or \cfunction{execv()}. In Python, arguments are elements of ! \var{sys.argv[1:]}. (\var{sys.argv[0]} is the name of the program being executed; in the context of parsing arguments, it's not very important.) \UNIX{} shells also use the term ``word''. It is occasionally desirable to use an argument list other than ! \var{sys.argv[1:]}, so you should read ``argument'' as ``an element of ! \var{sys.argv[1:]}, or of some other list provided as a substitute for ! \var{sys.argv[1:]}''. \term{option} --- 83,94 ---- shell passes to \cfunction{execl()} or \cfunction{execv()}. In Python, arguments are elements of ! \code{sys.argv[1:]}. (\code{sys.argv[0]} is the name of the program being executed; in the context of parsing arguments, it's not very important.) \UNIX{} shells also use the term ``word''. It is occasionally desirable to use an argument list other than ! \code{sys.argv[1:]}, so you should read ``argument'' as ``an element of ! \code{sys.argv[1:]}, or of some other list provided as a substitute for ! \code{sys.argv[1:]}''. \term{option} *************** *** 307,314 **** (Note that if you don't pass an argument list to ! \function{parse_args()}, it automatically uses \var{sys.argv[1:]}.) When \module{optparse} sees the \programopt{-f}, it consumes the next ! argument---\code{foo.txt}---and stores it in the \var{filename} attribute of a special object. That object is the first return value from \function{parse_args()}, so: --- 307,314 ---- (Note that if you don't pass an argument list to ! \function{parse_args()}, it automatically uses \code{sys.argv[1:]}.) When \module{optparse} sees the \programopt{-f}, it consumes the next ! argument---\code{foo.txt}---and stores it in the \member{filename} attribute of a special object. That object is the first return value from \function{parse_args()}, so: *************** *** 355,361 **** sensible default from the option strings: if the first long option string is \longprogramopt{foo-bar}, then the default destination is ! \var{foo_bar}. If there are no long option strings, \module{optparse} looks at the first short option: the default ! destination for \programopt{-f} is \var{f}. Adding types is fairly easy; please refer to --- 355,361 ---- sensible default from the option strings: if the first long option string is \longprogramopt{foo-bar}, then the default destination is ! \member{foo_bar}. If there are no long option strings, \module{optparse} looks at the first short option: the default ! destination for \programopt{-f} is \member{f}. Adding types is fairly easy; please refer to *************** *** 381,386 **** When \module{optparse} sees \programopt{-v} on the command line, it sets ! \var{options.verbose} to \code{True}; when it sees \programopt{-q}, it ! sets \var{options.verbose} to \code{False}. \subsubsection{Setting default values\label{optparse-setting-default-values}} --- 381,386 ---- When \module{optparse} sees \programopt{-v} on the command line, it sets ! \code{options.verbose} to \code{True}; when it sees \programopt{-q}, it ! sets \code{options.verbose} to \code{False}. \subsubsection{Setting default values\label{optparse-setting-default-values}} *************** *** 395,399 **** First, consider the verbose/quiet example. If we want ! \module{optparse} to set \var{verbose} to \code{True} unless \programopt{-q} is seen, then we can do this: --- 395,399 ---- First, consider the verbose/quiet example. If we want ! \module{optparse} to set \member{verbose} to \code{True} unless \programopt{-q} is seen, then we can do this: *************** *** 412,416 **** Those are equivalent because you're supplying a default value for the option's \emph{destination}, and these two options happen to have the same ! destination (the \var{verbose} variable). Consider this: --- 412,416 ---- Those are equivalent because you're supplying a default value for the option's \emph{destination}, and these two options happen to have the same ! destination (the \member{verbose} variable). Consider this: *************** *** 421,425 **** \end{verbatim} ! Again, the default value for \var{verbose} will be \code{True}: the last default value supplied for any particular destination is the one that counts. --- 421,425 ---- \end{verbatim} ! Again, the default value for \member{verbose} will be \code{True}: the last default value supplied for any particular destination is the one that counts. *************** *** 429,433 **** The last feature that you will use in every script is \module{optparse}'s ability to generate help messages. All you have ! to do is supply a \var{help} value when you add an option. Let's create a new parser and populate it with user-friendly (documented) options: --- 429,433 ---- The last feature that you will use in every script is \module{optparse}'s ability to generate help messages. All you have ! to do is supply a \var{help} argument when you add an option. Let's create a new parser and populate it with user-friendly (documented) options: *************** *** 739,743 **** one of the first things \module{optparse} does is create a ! \var{values} object: \begin{verbatim} --- 739,743 ---- one of the first things \module{optparse} does is create a ! \code{values} object: \begin{verbatim} *************** *** 787,791 **** line; all will be converted according to \var{type} and stored to \var{dest} as a tuple. See section~\ref{optparse-option-types}, ! ``Option types'' below. If \var{choices} (a sequence of strings) is supplied, the type --- 787,791 ---- line; all will be converted according to \var{type} and stored to \var{dest} as a tuple. See section~\ref{optparse-option-types}, ! ``Option types,'' below. If \var{choices} (a sequence of strings) is supplied, the type *************** *** 796,802 **** If \var{dest} is not supplied, \module{optparse} derives a destination from the first long option strings (e.g., ! \longprogramopt{foo-bar} becomes \var{foo_bar}). If there are no long option strings, \module{optparse} derives a destination from the first ! short option string (e.g., \programopt{-f} becomes \var{f}). Example: --- 796,802 ---- If \var{dest} is not supplied, \module{optparse} derives a destination from the first long option strings (e.g., ! \longprogramopt{foo-bar} becomes \member{foo_bar}). If there are no long option strings, \module{optparse} derives a destination from the first ! short option string (e.g., \programopt{-f} becomes \member{f}). Example: *************** *** 1218,1222 **** is the option string seen on the command-line that's triggering the callback. (If an abbreviated long option was used, \var{opt} will be ! the full, canonical option string---e.g. if the user puts \longprogramopt{foo} on the command-line as an abbreviation for \longprogramopt{foobar}, then \var{opt} will be --- 1218,1222 ---- is the option string seen on the command-line that's triggering the callback. (If an abbreviated long option was used, \var{opt} will be ! the full, canonical option string---for example, if the user puts \longprogramopt{foo} on the command-line as an abbreviation for \longprogramopt{foobar}, then \var{opt} will be *************** *** 1677,1681 **** command-line syntax implemented by \module{optparse}. In this case, you'd leave the whole machinery of option actions and types alone, but ! rewrite the code that processes \var{sys.argv}. You'll need to subclass \class{OptionParser} in any case; depending on how radical a rewrite you want, you'll probably need to override one or all of --- 1677,1681 ---- command-line syntax implemented by \module{optparse}. In this case, you'd leave the whole machinery of option actions and types alone, but ! rewrite the code that processes \code{sys.argv}. You'll need to subclass \class{OptionParser} in any case; depending on how radical a rewrite you want, you'll probably need to override one or all of Index: libpdb.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/libpdb.tex,v retrieving revision 1.36 retrieving revision 1.37 diff -C2 -d -r1.36 -r1.37 *** libpdb.tex 18 Dec 2002 02:07:14 -0000 1.36 --- libpdb.tex 16 Jul 2003 17:58:38 -0000 1.37 *************** *** 266,270 **** of a \keyword{finally} clause. ! \item[l(ist) \optional{\var{first\optional{, last}}}] List source code for the current file. Without arguments, list 11 --- 266,270 ---- of a \keyword{finally} clause. ! \item[l(ist) \optional{\var{first}\optional{, \var{last}}}] List source code for the current file. Without arguments, list 11 Index: librfc822.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/librfc822.tex,v retrieving revision 1.43 retrieving revision 1.44 diff -C2 -d -r1.43 -r1.44 *** librfc822.tex 9 Oct 2002 22:33:23 -0000 1.43 --- librfc822.tex 16 Jul 2003 17:58:38 -0000 1.44 *************** *** 256,263 **** \code{\var{m}.getheader(name)} but raises \exception{KeyError} if there is no matching header; and \code{len(\var{m})}, ! \code{\var{m}.get(\var{name}\optional{\var{, default}})}, \code{\var{m}.has_key(\var{name})}, \code{\var{m}.keys()}, \code{\var{m}.values()} \code{\var{m}.items()}, and ! \code{\var{m}.setdefault(\var{name}\optional{\var{, default}})} act as expected, with the one difference that \method{setdefault()} uses an empty string as the default value. \class{Message} instances --- 256,263 ---- \code{\var{m}.getheader(name)} but raises \exception{KeyError} if there is no matching header; and \code{len(\var{m})}, ! \code{\var{m}.get(\var{name}\optional{, \var{default}})}, \code{\var{m}.has_key(\var{name})}, \code{\var{m}.keys()}, \code{\var{m}.values()} \code{\var{m}.items()}, and ! \code{\var{m}.setdefault(\var{name}\optional{, \var{default}})} act as expected, with the one difference that \method{setdefault()} uses an empty string as the default value. \class{Message} instances From rhettinger@users.sourceforge.net Wed Jul 16 20:25:24 2003 From: rhettinger@users.sourceforge.net (rhettinger@users.sourceforge.net) Date: Wed, 16 Jul 2003 12:25:24 -0700 Subject: [Python-checkins] python/dist/src/Misc NEWS,1.812,1.813 Message-ID: Update of /cvsroot/python/python/dist/src/Misc In directory sc8-pr-cvs1:/tmp/cvs-serv32010/Misc Modified Files: NEWS Log Message: Doctest now examines all docstrings by default. Previously, it would skip over functions with private names (as indicated by the underscore naming convention). The old default created too much of a risk that user tests were being skipped inadvertently. Note, this change could break code in the unlikely case that someone had intentionally put failing tests in the docstrings of private functions. The breakage is easily fixable by specifying the old behavior when calling testmod() or Tester(). The more likely case is that the silent failure was unintended and that the user needed to be informed so the test could be fixed. Index: NEWS =================================================================== RCS file: /cvsroot/python/python/dist/src/Misc/NEWS,v retrieving revision 1.812 retrieving revision 1.813 diff -C2 -d -r1.812 -r1.813 *** NEWS 13 Jul 2003 17:21:10 -0000 1.812 --- NEWS 16 Jul 2003 19:25:22 -0000 1.813 *************** *** 39,42 **** --- 39,51 ---- ------- + - doctest now examines all docstrings by default. Previously, it would + skip over functions with private names (as indicated by the underscore + naming convention). The old default created too much of a risk that + user tests were being skipped inadvertently. Note, this change could + break code in the unlikely case that someone had intentionally put + failing tests in the docstrings of private functions. The breakage + is easily fixable by specifying the old behavior when calling testmod() + or Tester(). + - Closing a dumbdbm database more than once is now harmless (it used to raise a nuisance exception on the second close). From rhettinger@users.sourceforge.net Wed Jul 16 20:25:24 2003 From: rhettinger@users.sourceforge.net (rhettinger@users.sourceforge.net) Date: Wed, 16 Jul 2003 12:25:24 -0700 Subject: [Python-checkins] python/dist/src/Lib doctest.py,1.29,1.30 Message-ID: Update of /cvsroot/python/python/dist/src/Lib In directory sc8-pr-cvs1:/tmp/cvs-serv32010/Lib Modified Files: doctest.py Log Message: Doctest now examines all docstrings by default. Previously, it would skip over functions with private names (as indicated by the underscore naming convention). The old default created too much of a risk that user tests were being skipped inadvertently. Note, this change could break code in the unlikely case that someone had intentionally put failing tests in the docstrings of private functions. The breakage is easily fixable by specifying the old behavior when calling testmod() or Tester(). The more likely case is that the silent failure was unintended and that the user needed to be informed so the test could be fixed. Index: doctest.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/doctest.py,v retrieving revision 1.29 retrieving revision 1.30 diff -C2 -d -r1.29 -r1.30 *** doctest.py 11 Jul 2003 22:36:52 -0000 1.29 --- doctest.py 16 Jul 2003 19:25:22 -0000 1.30 *************** *** 49,56 **** + f.__doc__ for all functions f in M.__dict__.values(), except those ! with private names and those defined in other modules. ! + C.__doc__ for all classes C in M.__dict__.values(), except those with ! private names and those defined in other modules. + If M.__test__ exists and "is true", it must be a dict, and --- 49,56 ---- + f.__doc__ for all functions f in M.__dict__.values(), except those ! defined in other modules. ! + C.__doc__ for all classes C in M.__dict__.values(), except those ! defined in other modules. + If M.__test__ exists and "is true", it must be a dict, and *************** *** 63,73 **** Any classes found are recursively searched similarly, to test docstrings in ! their contained methods and nested classes. Private names reached from M's ! globals are skipped, but all names reached from M.__test__ are searched. ! By default, a name is considered to be private if it begins with an ! underscore (like "_my_func") but doesn't both begin and end with (at least) ! two underscores (like "__init__"). You can change the default by passing ! your own "isprivate" function to testmod. If you want to test docstrings in objects with private names too, stuff --- 63,76 ---- Any classes found are recursively searched similarly, to test docstrings in ! their contained methods and nested classes. All names reached from ! M.__test__ are searched. ! Optionally, functions with private names can be skipped (unless listed in ! M.__test__) by supplying a function to the "isprivate" argument that will ! identify private functions. For convenience, one such function is ! supplied. docttest.is_private considers a name to be private if it begins ! with an underscore (like "_my_func") but doesn't both begin and end with ! (at least) two underscores (like "__init__"). By supplying this function ! or your own "isprivate" function to testmod, the behavior can be customized. If you want to test docstrings in objects with private names too, stuff *************** *** 672,677 **** Optional keyword arg "isprivate" specifies a function used to determine ! whether a name is private. The default function is doctest.is_private; ! see its docs for details. See doctest.testmod docs for the meaning of optionflags. --- 675,682 ---- Optional keyword arg "isprivate" specifies a function used to determine ! whether a name is private. The default function is to assume that ! no functions are private. The "isprivate" arg may be set to ! doctest.is_private in order to skip over functions marked as private ! using an underscore naming convention; see its docs for details. See doctest.testmod docs for the meaning of optionflags. *************** *** 692,697 **** self.verbose = verbose if isprivate is None: ! isprivate = is_private self.isprivate = isprivate --- 697,703 ---- self.verbose = verbose + # By default, assume that nothing is private if isprivate is None: ! isprivate = lambda prefix, base: 0 self.isprivate = isprivate *************** *** 862,872 **** Tests that objects outside m1 are excluded: ! >>> t = Tester(globs={}, verbose=0) >>> t.rundict(m1.__dict__, "rundict_test", m1) # _f, f2 and g2 and h2 skipped (0, 3) ! Again, but with a custom isprivate function allowing _f: ! >>> t = Tester(globs={}, verbose=0, isprivate=lambda x,y: 0) >>> t.rundict(m1.__dict__, "rundict_test_pvt", m1) # Only f2, g2 and h2 skipped (0, 4) --- 868,878 ---- Tests that objects outside m1 are excluded: ! >>> t = Tester(globs={}, verbose=0, isprivate=is_private) >>> t.rundict(m1.__dict__, "rundict_test", m1) # _f, f2 and g2 and h2 skipped (0, 3) ! Again, but with the default isprivate function allowing _f: ! >>> t = Tester(globs={}, verbose=0) >>> t.rundict(m1.__dict__, "rundict_test_pvt", m1) # Only f2, g2 and h2 skipped (0, 4) *************** *** 874,878 **** And once more, not excluding stuff outside m1: ! >>> t = Tester(globs={}, verbose=0, isprivate=lambda x,y: 0) >>> t.rundict(m1.__dict__, "rundict_test_pvt") # None are skipped. (0, 8) --- 880,884 ---- And once more, not excluding stuff outside m1: ! >>> t = Tester(globs={}, verbose=0) >>> t.rundict(m1.__dict__, "rundict_test_pvt") # None are skipped. (0, 8) *************** *** 881,885 **** meant to be invoked automagically by testmod. ! >>> testmod(m1) (0, 3) --- 887,891 ---- meant to be invoked automagically by testmod. ! >>> testmod(m1, isprivate=is_private) (0, 3) *************** *** 1071,1075 **** Test examples in docstrings in functions and classes reachable from module m (or the current module if m is not supplied), starting ! with m.__doc__. Private names are skipped. Also test examples reachable from dict m.__test__ if it exists and is --- 1077,1082 ---- Test examples in docstrings in functions and classes reachable from module m (or the current module if m is not supplied), starting ! with m.__doc__. Unless isprivate is specified, private names ! are not skipped. Also test examples reachable from dict m.__test__ if it exists and is *************** *** 1095,1099 **** Optional keyword arg "isprivate" specifies a function used to determine whether a name is private. The default function is ! doctest.is_private; see its docs for details. Optional keyword arg "report" prints a summary at the end when true, --- 1102,1108 ---- Optional keyword arg "isprivate" specifies a function used to determine whether a name is private. The default function is ! treat all functions as public. Optionally, "isprivate" can be ! set to doctest.is_private to skip over functions marked as private ! using the underscore naming convention; see its docs for details. Optional keyword arg "report" prints a summary at the end when true, From rhettinger@users.sourceforge.net Wed Jul 16 20:25:24 2003 From: rhettinger@users.sourceforge.net (rhettinger@users.sourceforge.net) Date: Wed, 16 Jul 2003 12:25:24 -0700 Subject: [Python-checkins] python/dist/src/Doc/lib libdoctest.tex,1.13,1.14 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/lib In directory sc8-pr-cvs1:/tmp/cvs-serv32010/Doc/lib Modified Files: libdoctest.tex Log Message: Doctest now examines all docstrings by default. Previously, it would skip over functions with private names (as indicated by the underscore naming convention). The old default created too much of a risk that user tests were being skipped inadvertently. Note, this change could break code in the unlikely case that someone had intentionally put failing tests in the docstrings of private functions. The breakage is easily fixable by specifying the old behavior when calling testmod() or Tester(). The more likely case is that the silent failure was unintended and that the user needed to be informed so the test could be fixed. Index: libdoctest.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/libdoctest.tex,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** libdoctest.tex 11 Jul 2003 22:32:18 -0000 1.13 --- libdoctest.tex 16 Jul 2003 19:25:22 -0000 1.14 *************** *** 191,203 **** See \file{docstring.py} for all the details. They're unsurprising: the module docstring, and all function, class and method docstrings are ! searched, with the exception of docstrings attached to objects with private ! names. Objects imported into the module are not searched. In addition, if \code{M.__test__} exists and "is true", it must be a dict, and each entry maps a (string) name to a function object, class object, or string. Function and class object docstrings found from ! \code{M.__test__} are searched even if the name is private, and ! strings are searched directly as if they were docstrings. In output, ! a key \code{K} in \code{M.__test__} appears with name \begin{verbatim} --- 191,204 ---- See \file{docstring.py} for all the details. They're unsurprising: the module docstring, and all function, class and method docstrings are ! searched. Optionally, the tester can be directed to exclude ! docstrings attached to objects with private names. ! Objects imported into the module are not searched. In addition, if \code{M.__test__} exists and "is true", it must be a dict, and each entry maps a (string) name to a function object, class object, or string. Function and class object docstrings found from ! \code{M.__test__} are searched even if the the tester has been ! directly to skip over private names in the rest of the module. ! In output, a key \code{K} in \code{M.__test__} appears with name \begin{verbatim} *************** *** 207,211 **** Any classes found are recursively searched similarly, to test docstrings in their contained methods and nested classes. While private names reached ! from \module{M}'s globals are skipped, all names reached from \code{M.__test__} are searched. --- 208,212 ---- Any classes found are recursively searched similarly, to test docstrings in their contained methods and nested classes. While private names reached ! from \module{M}'s globals can be optionally skipped, all names reached from \code{M.__test__} are searched. From rhettinger@users.sourceforge.net Wed Jul 16 20:40:25 2003 From: rhettinger@users.sourceforge.net (rhettinger@users.sourceforge.net) Date: Wed, 16 Jul 2003 12:40:25 -0700 Subject: [Python-checkins] python/dist/src/Doc/ref ref3.tex,1.110,1.111 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/ref In directory sc8-pr-cvs1:/tmp/cvs-serv2906 Modified Files: ref3.tex Log Message: Clarify the lack of relationship between rich comparison operators. Prompted by a discussion on comp.lang.python. Index: ref3.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/ref/ref3.tex,v retrieving revision 1.110 retrieving revision 1.111 diff -C2 -d -r1.110 -r1.111 *** ref3.tex 15 Jul 2003 22:03:00 -0000 1.110 --- ref3.tex 16 Jul 2003 19:40:23 -0000 1.111 *************** *** 1090,1093 **** --- 1090,1098 ---- By convention, \code{False} is used for false and \code{True} for true. + There are no implied relationships among the comparison operators. + The truth of {\var{x}==\var{y}} does not imply that \code{\var{x}!=\var{y}} + is false. Accordingly, when defining \method{__eq__}, one should also + define \method{__ne__} so that the operators will behave as expected. + There are no reflected (swapped-argument) versions of these methods (to be used when the left argument does not support the operation but From montanaro@users.sourceforge.net Wed Jul 16 20:46:09 2003 From: montanaro@users.sourceforge.net (montanaro@users.sourceforge.net) Date: Wed, 16 Jul 2003 12:46:09 -0700 Subject: [Python-checkins] python/dist/src/Doc/lib libdatetime.tex,1.47,1.48 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/lib In directory sc8-pr-cvs1:/tmp/cvs-serv5023 Modified Files: libdatetime.tex Log Message: expose the C API subsection which was hidden from LaTeX in a comment. In the info conversion the \comment LaTeX macro mapped to a Texinfo @ignore macro. Unfortunately, py2texi.el is not smart enough to avoid generating links to the @ignore'd section, which causes makeinfo to croak. Exposing this text is probably not the most correct thing to do, as this documentation really belongs in the C API manual. This does get the info files generated, however, which is a more practical goal considering the impending release of 2.3rc1. Index: libdatetime.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/libdatetime.tex,v retrieving revision 1.47 retrieving revision 1.48 diff -C2 -d -r1.47 -r1.48 *** libdatetime.tex 2 Jul 2003 14:44:55 -0000 1.47 --- libdatetime.tex 16 Jul 2003 19:46:07 -0000 1.48 *************** *** 1401,1410 **** - \begin{comment} - \subsection{C API} Struct typedefs: PyDateTime_Date PyDateTime_DateTime --- 1401,1409 ---- \subsection{C API} Struct typedefs: + \begin{verbatim} PyDateTime_Date PyDateTime_DateTime *************** *** 1412,1418 **** --- 1411,1419 ---- PyDateTime_Delta PyDateTime_TZInfo + \end{verbatim} Type-check macros: + \begin{verbatim} PyDate_Check(op) PyDate_CheckExact(op) *************** *** 1429,1454 **** PyTZInfo_Check(op) PyTZInfo_CheckExact(op) Accessor macros: All objects are immutable, so accessors are read-only. All macros ! return ints: ! ! For \class{date} and \class{datetime} instances: ! PyDateTime_GET_YEAR(o) ! PyDateTime_GET_MONTH(o) ! PyDateTime_GET_DAY(o) ! For \class{datetime} instances: ! PyDateTime_DATE_GET_HOUR(o) ! PyDateTime_DATE_GET_MINUTE(o) ! PyDateTime_DATE_GET_SECOND(o) ! PyDateTime_DATE_GET_MICROSECOND(o) ! For \class{time} instances: ! PyDateTime_TIME_GET_HOUR(o) ! PyDateTime_TIME_GET_MINUTE(o) ! PyDateTime_TIME_GET_SECOND(o) ! PyDateTime_TIME_GET_MICROSECOND(o) - \end{comment} --- 1430,1459 ---- PyTZInfo_Check(op) PyTZInfo_CheckExact(op) + \end{verbatim} Accessor macros: All objects are immutable, so accessors are read-only. All macros ! return ints. For \class{date} and \class{datetime} instances: ! \begin{verbatim} ! PyDateTime_GET_YEAR(o) ! PyDateTime_GET_MONTH(o) ! PyDateTime_GET_DAY(o) ! \end{verbatim} ! For \class{datetime} instances: ! \begin{verbatim} ! PyDateTime_DATE_GET_HOUR(o) ! PyDateTime_DATE_GET_MINUTE(o) ! PyDateTime_DATE_GET_SECOND(o) ! PyDateTime_DATE_GET_MICROSECOND(o) ! \end{verbatim} ! For \class{time} instances: ! \begin{verbatim} ! PyDateTime_TIME_GET_HOUR(o) ! PyDateTime_TIME_GET_MINUTE(o) ! PyDateTime_TIME_GET_SECOND(o) ! PyDateTime_TIME_GET_MICROSECOND(o) ! \end{verbatim} From akuchling@users.sourceforge.net Wed Jul 16 21:11:36 2003 From: akuchling@users.sourceforge.net (akuchling@users.sourceforge.net) Date: Wed, 16 Jul 2003 13:11:36 -0700 Subject: [Python-checkins] python/dist/src/Misc NEWS,1.813,1.814 Message-ID: Update of /cvsroot/python/python/dist/src/Misc In directory sc8-pr-cvs1:/tmp/cvs-serv10283 Modified Files: NEWS Log Message: Add mmap bugfix; typo and grammar fixes Index: NEWS =================================================================== RCS file: /cvsroot/python/python/dist/src/Misc/NEWS,v retrieving revision 1.813 retrieving revision 1.814 diff -C2 -d -r1.813 -r1.814 *** NEWS 16 Jul 2003 19:25:22 -0000 1.813 --- NEWS 16 Jul 2003 20:11:34 -0000 1.814 *************** *** 33,36 **** --- 33,38 ---- - SSL no longer crashes the interpreter when the remote side disconnects. + - On Unix the mmap module can again be used to map device files. + - time.strptime now exclusively uses the Python implementation contained within the _strptime module. *************** *** 142,146 **** tuple. By default, the iterators now access data elements directly instead of going through __getitem__. If __getitem__ access is ! preferred, then __iter__ can be overriden. - Creating an attribute on a module (i.e. a global variable created by --- 144,148 ---- tuple. By default, the iterators now access data elements directly instead of going through __getitem__. If __getitem__ access is ! preferred, then __iter__ can be overridden. - Creating an attribute on a module (i.e. a global variable created by *************** *** 291,295 **** ----- ! - Setting DESTDIR during 'make install' now allows to specify a different root directory. --- 293,297 ---- ----- ! - Setting DESTDIR during 'make install' now allows specifying a different root directory. *************** *** 490,494 **** #705836. ! - New function time.tzset() provides access to the C library tzet() function, if supported. (SF patch #675422.) --- 492,496 ---- #705836. ! - New function time.tzset() provides access to the C library tzset() function, if supported. (SF patch #675422.) From akuchling@users.sourceforge.net Wed Jul 16 21:12:36 2003 From: akuchling@users.sourceforge.net (akuchling@users.sourceforge.net) Date: Wed, 16 Jul 2003 13:12:36 -0700 Subject: [Python-checkins] python/dist/src/Doc/whatsnew whatsnew23.tex,1.152,1.153 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/whatsnew In directory sc8-pr-cvs1:/tmp/cvs-serv10443 Modified Files: whatsnew23.tex Log Message: Add reminder list of things to document; mention sys.getcheckinterval() and socket.timeout exception Index: whatsnew23.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/whatsnew/whatsnew23.tex,v retrieving revision 1.152 retrieving revision 1.153 diff -C2 -d -r1.152 -r1.153 *** whatsnew23.tex 16 Jul 2003 14:44:12 -0000 1.152 --- whatsnew23.tex 16 Jul 2003 20:12:33 -0000 1.153 *************** *** 13,16 **** --- 13,22 ---- % To do: + % PYTHONINSPECT + % list.index + % file.encoding + % doctest extensions + % new version of IDLE + % XML-RPC nil extension % MacOS framework-related changes (section of its own, probably) *************** *** 1202,1205 **** --- 1208,1213 ---- by setting the limit back to a lower number using \function{sys.setcheckinterval(\var{N})}. + The limit can be retrieved with the new + \function{sys.getcheckinterval()} function. \item One minor but far-reaching change is that the names of extension *************** *** 1618,1622 **** set a timeout of \var{t} seconds. Subsequent socket operations that take longer than \var{t} seconds to complete will abort and raise a ! \exception{socket.error} exception. The original timeout implementation was by Tim O'Malley. Michael --- 1626,1630 ---- set a timeout of \var{t} seconds. Subsequent socket operations that take longer than \var{t} seconds to complete will abort and raise a ! \exception{socket.timeout} exception. The original timeout implementation was by Tim O'Malley. Michael From akuchling@users.sourceforge.net Wed Jul 16 21:37:28 2003 From: akuchling@users.sourceforge.net (akuchling@users.sourceforge.net) Date: Wed, 16 Jul 2003 13:37:28 -0700 Subject: [Python-checkins] python/dist/src/Doc/whatsnew whatsnew23.tex,1.153,1.154 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/whatsnew In directory sc8-pr-cvs1:/tmp/cvs-serv14535 Modified Files: whatsnew23.tex Log Message: Mention list.index; more small textual changes Index: whatsnew23.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/whatsnew/whatsnew23.tex,v retrieving revision 1.153 retrieving revision 1.154 diff -C2 -d -r1.153 -r1.154 *** whatsnew23.tex 16 Jul 2003 20:12:33 -0000 1.153 --- whatsnew23.tex 16 Jul 2003 20:37:26 -0000 1.154 *************** *** 14,18 **** % To do: % PYTHONINSPECT - % list.index % file.encoding % doctest extensions --- 14,17 ---- *************** *** 425,434 **** A standard package for writing logs, \module{logging}, has been added to Python 2.3. It provides a powerful and flexible mechanism for ! components to generate logging output which can then be filtered and ! processed in various ways. A standard configuration file format can ! be used to control the logging behavior of a program. Python's ! standard library includes handlers that will write log records to standard error or to a file or socket, send them to the system log, or ! even e-mail them to a particular address, and of course it's also possible to write your own handler classes. --- 424,433 ---- A standard package for writing logs, \module{logging}, has been added to Python 2.3. It provides a powerful and flexible mechanism for ! generating logging output which can then be filtered and processed in ! various ways. A configuration file written in a standard format can ! be used to control the logging behavior of a program. Python ! includes handlers that will write log records to standard error or to a file or socket, send them to the system log, or ! even e-mail them to a particular address; of course, it's also possible to write your own handler classes. *************** *** 470,474 **** In the default configuration, informational and debugging messages are suppressed and the output is sent to standard error. You can enable ! the display of information and debugging messages by calling the \method{setLevel()} method on the root logger. --- 469,473 ---- In the default configuration, informational and debugging messages are suppressed and the output is sent to standard error. You can enable ! the display of informational and debugging messages by calling the \method{setLevel()} method on the root logger. *************** *** 554,558 **** \constant{False}. (\constant{True} and \constant{False} constants were added to the built-ins ! in Python 2.2.1, but the 2.2.1 versions simply have integer values of 1 and 0 and aren't a different type.) --- 553,557 ---- \constant{False}. (\constant{True} and \constant{False} constants were added to the built-ins ! in Python 2.2.1, but the 2.2.1 versions are simply set to integer values of 1 and 0 and aren't a different type.) *************** *** 597,604 **** prevent you performing arithmetic with Booleans, and would require that the expression in an \keyword{if} statement always evaluate to a ! Boolean. Python is not this strict, and it never will be, as \pep{285} explicitly says. This means you can still use any expression in an \keyword{if} statement, even ones that evaluate to a ! list or tuple or some random object, and the Boolean type is a subclass of the \class{int} class so that arithmetic using a Boolean still works. --- 596,603 ---- prevent you performing arithmetic with Booleans, and would require that the expression in an \keyword{if} statement always evaluate to a ! Boolean result. Python is not this strict and never will be, as \pep{285} explicitly says. This means you can still use any expression in an \keyword{if} statement, even ones that evaluate to a ! list or tuple or some random object. The Boolean type is a subclass of the \class{int} class so that arithmetic using a Boolean still works. *************** *** 643,647 **** Python now has a flexible framework to add different processing strategies. New error handlers can be added with ! \function{codecs.register_error}. Codecs then can access the error handler with \function{codecs.lookup_error}. An equivalent C API has been added for codecs written in C. The error handler gets the --- 642,646 ---- Python now has a flexible framework to add different processing strategies. New error handlers can be added with ! \function{codecs.register_error}, and codecs then can access the error handler with \function{codecs.lookup_error}. An equivalent C API has been added for codecs written in C. The error handler gets the *************** *** 681,685 **** 8467 1 file amk@nyman:~/src/python$ ./python ! Python 2.3a0 (#1, Dec 30 2002, 19:54:32) >>> import sys >>> sys.path.insert(0, '/tmp/example.zip') # Add .zip file to front of path --- 680,684 ---- 8467 1 file amk@nyman:~/src/python$ ./python ! Python 2.3 (#1, Aug 1 2003, 19:54:32) >>> import sys >>> sys.path.insert(0, '/tmp/example.zip') # Add .zip file to front of path *************** *** 722,730 **** appearance in 2.3. ! The core component is the new Distutils \command{register} command. Running \code{python setup.py register} will collect the metadata describing a package, such as its name, version, maintainer, description, \&c., and send it to a central catalog server. The ! catalog is available from \url{http://www.python.org/pypi}. To make the catalog a bit more useful, a new optional --- 721,729 ---- appearance in 2.3. ! The heart of the catalog is the new Distutils \command{register} command. Running \code{python setup.py register} will collect the metadata describing a package, such as its name, version, maintainer, description, \&c., and send it to a central catalog server. The ! resulting catalog is available from \url{http://www.python.org/pypi}. To make the catalog a bit more useful, a new optional *************** *** 846,850 **** from databases and spreadsheets. Python 2.3 adds a parser for comma-separated files. ! The format is deceptively simple at first glance: \begin{verbatim} --- 845,850 ---- from databases and spreadsheets. Python 2.3 adds a parser for comma-separated files. ! ! Comma-separated format is deceptively simple at first glance: \begin{verbatim} *************** *** 877,881 **** Different dialects of comma-separated files can be defined and ! registered; currently there are two, both for Microsoft Excel. A separate \class{csv.writer} class will generate comma-separated files from a succession of tuples or lists, quoting strings that contain the --- 877,881 ---- Different dialects of comma-separated files can be defined and ! registered; currently there are two dialects, both used by Microsoft Excel. A separate \class{csv.writer} class will generate comma-separated files from a succession of tuples or lists, quoting strings that contain the *************** *** 903,910 **** \function{pickle.dumps()} function has supported a text-or-binary flag for a long time. In 2.3, this flag is redefined from a Boolean to an ! integer; 0 is the old text-mode pickle format, 1 is the old binary ! format, and now 2 is a new 2.3-specific format. (A new constant, \constant{pickle.HIGHEST_PROTOCOL}, can be used to select the fanciest ! protocol available.) Unpickling is no longer considered a safe operation. 2.2's --- 903,910 ---- \function{pickle.dumps()} function has supported a text-or-binary flag for a long time. In 2.3, this flag is redefined from a Boolean to an ! integer: 0 is the old text-mode pickle format, 1 is the old binary ! format, and now 2 is a new 2.3-specific format. A new constant, \constant{pickle.HIGHEST_PROTOCOL}, can be used to select the fanciest ! protocol available. Unpickling is no longer considered a safe operation. 2.2's *************** *** 943,947 **** the developers of Numerical Python, which uses the third argument extensively. However, Python's built-in list, tuple, and string ! sequence types have never supported this feature, and you got a \exception{TypeError} if you tried it. Michael Hudson contributed a patch to fix this shortcoming. --- 943,947 ---- the developers of Numerical Python, which uses the third argument extensively. However, Python's built-in list, tuple, and string ! sequence types have never supported this feature, raising a \exception{TypeError} if you tried it. Michael Hudson contributed a patch to fix this shortcoming. *************** *** 989,993 **** Extended slices aren't this flexible. When assigning to an extended ! slice the list on the right hand side of the statement must contain the same number of items as the slice it is replacing: --- 989,993 ---- Extended slices aren't this flexible. When assigning to an extended ! slice, the list on the right hand side of the statement must contain the same number of items as the slice it is replacing: *************** *** 1095,1099 **** adds up the numeric items in the iterable object and returns their sum. \function{sum()} only accepts numbers, meaning that you can't use it ! to concatenate a bunch of strings, for example. (Contributed by Alex Martelli.) --- 1095,1099 ---- adds up the numeric items in the iterable object and returns their sum. \function{sum()} only accepts numbers, meaning that you can't use it ! to concatenate a bunch of strings. (Contributed by Alex Martelli.) *************** *** 1104,1107 **** --- 1104,1112 ---- before the last element, and so forth. + \item \code{list.index(\var{value})}, which searches for \var{value} + within the list and returns its index, now takes optional + \var{start} and \var{stop} arguments to limit the search to + only part of the list. + \item Dictionaries have a new method, \method{pop(\var{key}\optional{, \var{default}})}, that returns the value corresponding to \var{key} *************** *** 1187,1192 **** \item The method resolution order used by new-style classes has changed, though you'll only notice the difference if you have a really ! complicated inheritance hierarchy. (Classic classes are unaffected by ! this change.) Python 2.2 originally used a topological sort of a class's ancestors, but 2.3 now uses the C3 algorithm as described in the paper \ulink{``A Monotonic Superclass Linearization for --- 1192,1197 ---- \item The method resolution order used by new-style classes has changed, though you'll only notice the difference if you have a really ! complicated inheritance hierarchy. Classic classes are unaffected by ! this change. Python 2.2 originally used a topological sort of a class's ancestors, but 2.3 now uses the C3 algorithm as described in the paper \ulink{``A Monotonic Superclass Linearization for *************** *** 1262,1267 **** Note that this doesn't tell you where the substring starts; if you ! need that information, you must use the \method{find()} method ! instead. \item The \method{strip()}, \method{lstrip()}, and \method{rstrip()} --- 1267,1271 ---- Note that this doesn't tell you where the substring starts; if you ! need that information, use the \method{find()} string method. \item The \method{strip()}, \method{lstrip()}, and \method{rstrip()} From montanaro@users.sourceforge.net Wed Jul 16 22:14:37 2003 From: montanaro@users.sourceforge.net (montanaro@users.sourceforge.net) Date: Wed, 16 Jul 2003 14:14:37 -0700 Subject: [Python-checkins] python/dist/src/Doc/lib libdatetime.tex,1.48,1.49 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/lib In directory sc8-pr-cvs1:/tmp/cvs-serv22490 Modified Files: libdatetime.tex Log Message: Zap the C API subsection altogether for now. It's not actually usable from C yet anyway. Index: libdatetime.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/libdatetime.tex,v retrieving revision 1.48 retrieving revision 1.49 diff -C2 -d -r1.48 -r1.49 *** libdatetime.tex 16 Jul 2003 19:46:07 -0000 1.48 --- libdatetime.tex 16 Jul 2003 21:14:35 -0000 1.49 *************** *** 1400,1459 **** cannot be used. - - \subsection{C API} - - Struct typedefs: - - \begin{verbatim} - PyDateTime_Date - PyDateTime_DateTime - PyDateTime_Time - PyDateTime_Delta - PyDateTime_TZInfo - \end{verbatim} - - Type-check macros: - - \begin{verbatim} - PyDate_Check(op) - PyDate_CheckExact(op) - - PyDateTime_Check(op) - PyDateTime_CheckExact(op) - - PyTime_Check(op) - PyTime_CheckExact(op) - - PyDelta_Check(op) - PyDelta_CheckExact(op) - - PyTZInfo_Check(op) - PyTZInfo_CheckExact(op) - \end{verbatim} - - Accessor macros: - - All objects are immutable, so accessors are read-only. All macros - return ints. For \class{date} and \class{datetime} instances: - \begin{verbatim} - PyDateTime_GET_YEAR(o) - PyDateTime_GET_MONTH(o) - PyDateTime_GET_DAY(o) - \end{verbatim} - - For \class{datetime} instances: - \begin{verbatim} - PyDateTime_DATE_GET_HOUR(o) - PyDateTime_DATE_GET_MINUTE(o) - PyDateTime_DATE_GET_SECOND(o) - PyDateTime_DATE_GET_MICROSECOND(o) - \end{verbatim} - - For \class{time} instances: - \begin{verbatim} - PyDateTime_TIME_GET_HOUR(o) - PyDateTime_TIME_GET_MINUTE(o) - PyDateTime_TIME_GET_SECOND(o) - PyDateTime_TIME_GET_MICROSECOND(o) - \end{verbatim} - --- 1400,1401 ---- From nascheme@users.sourceforge.net Wed Jul 16 23:04:14 2003 From: nascheme@users.sourceforge.net (nascheme@users.sourceforge.net) Date: Wed, 16 Jul 2003 15:04:14 -0700 Subject: [Python-checkins] python/dist/src/Objects moduleobject.c,2.46,2.47 Message-ID: Update of /cvsroot/python/python/dist/src/Objects In directory sc8-pr-cvs1:/tmp/cvs-serv31523/Objects Modified Files: moduleobject.c Log Message: Remove code that tried to warn about shadowing builtin names after a module had been compiled. It gives too many spurious warnings. Index: moduleobject.c =================================================================== RCS file: /cvsroot/python/python/dist/src/Objects/moduleobject.c,v retrieving revision 2.46 retrieving revision 2.47 diff -C2 -d -r2.46 -r2.47 *** moduleobject.c 9 Jun 2003 18:41:54 -0000 2.46 --- moduleobject.c 16 Jul 2003 22:04:11 -0000 2.47 *************** *** 199,267 **** } - static PyObject * - find_builtin_names(void) - { - PyObject *builtins, *names, *key, *value; - int pos = 0; - builtins = PyEval_GetBuiltins(); - if (builtins == NULL || !PyDict_Check(builtins)) { - PyErr_SetString(PyExc_SystemError, "no builtins dict!"); - return NULL; - } - names = PyDict_New(); - if (names == NULL) - return NULL; - while (PyDict_Next(builtins, &pos, &key, &value)) { - if (PyString_Check(key) && - PyString_Size(key) > 0 && - PyString_AS_STRING(key)[0] != '_') { - if (PyDict_SetItem(names, key, Py_None) < 0) { - Py_DECREF(names); - return NULL; - } - } - } - return names; - } - - /* returns 0 or 1 (and -1 on error) */ - static int - shadows_builtin(PyObject *globals, PyObject *name) - { - static PyObject *builtin_names = NULL; - if (builtin_names == NULL) { - builtin_names = find_builtin_names(); - if (builtin_names == NULL) - return -1; - } - if (!PyString_Check(name)) - return 0; - if (PyDict_GetItem(globals, name) == NULL && - PyDict_GetItem(builtin_names, name) != NULL) { - return 1; - } - else { - return 0; - } - } - - static int - module_setattr(PyObject *m, PyObject *name, PyObject *value) - { - PyObject *globals = ((PyModuleObject *)m)->md_dict; - PyObject *builtins = PyEval_GetBuiltins(); - if (globals != NULL && globals != builtins) { - int shadows = shadows_builtin(globals, name); - if (shadows == 1) { - if (PyErr_Warn(PyExc_DeprecationWarning, - "assignment shadows builtin") < 0) - return -1; - } - else if (shadows == -1) - return -1; - } - return PyObject_GenericSetAttr(m, name, value); - } - /* We only need a traverse function, no clear function: If the module is in a cycle, md_dict will be cleared as well, which will break --- 199,202 ---- *************** *** 300,304 **** 0, /* tp_str */ PyObject_GenericGetAttr, /* tp_getattro */ ! module_setattr, /* tp_setattro */ 0, /* tp_as_buffer */ Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | --- 235,239 ---- 0, /* tp_str */ PyObject_GenericGetAttr, /* tp_getattro */ ! PyObject_GenericSetAttr, /* tp_setattro */ 0, /* tp_as_buffer */ Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | From nascheme@users.sourceforge.net Wed Jul 16 23:19:27 2003 From: nascheme@users.sourceforge.net (nascheme@users.sourceforge.net) Date: Wed, 16 Jul 2003 15:19:27 -0700 Subject: [Python-checkins] python/dist/src/Misc NEWS,1.814,1.815 Message-ID: Update of /cvsroot/python/python/dist/src/Misc In directory sc8-pr-cvs1:/tmp/cvs-serv1033/Misc Modified Files: NEWS Log Message: Remove code that tried to warn about shadowing builtin names after a module had been compiled. It gives too many spurious warnings. Index: NEWS =================================================================== RCS file: /cvsroot/python/python/dist/src/Misc/NEWS,v retrieving revision 1.814 retrieving revision 1.815 diff -C2 -d -r1.814 -r1.815 *** NEWS 16 Jul 2003 20:11:34 -0000 1.814 --- NEWS 16 Jul 2003 22:19:24 -0000 1.815 *************** *** 146,155 **** preferred, then __iter__ can be overridden. - - Creating an attribute on a module (i.e. a global variable created by - __setattr__) that causes a builtin name to be shadowed now raises a - DeprecationWarning. In future versions of Python the effect may be - undefined (in order to allow for optimization of global and builtin - name lookups). - - SF bug 735247: The staticmethod and super types participate in garbage collection. Before this change, it was possible for leaks to --- 146,149 ---- From fdrake@users.sourceforge.net Thu Jul 17 05:15:37 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Wed, 16 Jul 2003 21:15:37 -0700 Subject: [Python-checkins] python/dist/src/Doc/texinputs howto.cls,1.13,1.14 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/texinputs In directory sc8-pr-cvs1:/tmp/cvs-serv19697 Modified Files: howto.cls Log Message: Make the howto document class work properly with the pypaper.sty paper-size hook. SF patch #772550. Index: howto.cls =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/texinputs/howto.cls,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** howto.cls 15 Mar 2002 22:38:16 -0000 1.13 --- howto.cls 17 Jul 2003 04:15:35 -0000 1.14 *************** *** 12,16 **** % is where to add things like "a4paper" or "10pt". % ! \LoadClass[twoside]{article} \setcounter{secnumdepth}{1} --- 12,16 ---- % is where to add things like "a4paper" or "10pt". % ! \LoadClass[\py@paper,\py@ptsize,twoside]{article} \setcounter{secnumdepth}{1} From fdrake@users.sourceforge.net Thu Jul 17 05:22:46 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Wed, 16 Jul 2003 21:22:46 -0700 Subject: [Python-checkins] python/dist/src/Doc/lib libsys.tex,1.67,1.68 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/lib In directory sc8-pr-cvs1:/tmp/cvs-serv20725 Modified Files: libsys.tex Log Message: Note that Unicode strings are now supported in sys.path. SF patch #764594. Index: libsys.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/libsys.tex,v retrieving revision 1.67 retrieving revision 1.68 diff -C2 -d -r1.67 -r1.68 *** libsys.tex 7 Jul 2003 14:11:53 -0000 1.67 --- libsys.tex 17 Jul 2003 04:22:44 -0000 1.68 *************** *** 365,368 **** --- 365,370 ---- A program is free to modify this list for its own purposes. + + \versionchanged[Unicode strings are no longer ignored.]{2.3} \end{datadesc} From fdrake@users.sourceforge.net Thu Jul 17 06:26:55 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Wed, 16 Jul 2003 22:26:55 -0700 Subject: [Python-checkins] python/dist/src/Doc/ref ref3.tex,1.111,1.112 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/ref In directory sc8-pr-cvs1:/tmp/cvs-serv29052 Modified Files: ref3.tex Log Message: - improve the description of how user-defined method objects get made - improve the description of attribute retrieval from classes and class instances - add brief documentation of static method and class method objects. Index: ref3.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/ref/ref3.tex,v retrieving revision 1.111 retrieving revision 1.112 diff -C2 -d -r1.111 -r1.112 *** ref3.tex 16 Jul 2003 19:40:23 -0000 1.111 --- ref3.tex 17 Jul 2003 05:26:53 -0000 1.112 *************** *** 500,519 **** function attributes on the underlying function object. ! User-defined method objects are created in two ways: when getting an ! attribute of a class that is a user-defined function object, or when ! getting an attribute of a class instance that is a user-defined ! function object defined by the class of the instance. In the former ! case (class attribute), the \member{im_self} attribute is \code{None}, ! and the method object is said to be unbound; in the latter case ! (instance attribute), \method{im_self} is the instance, and the method ! object is said to be bound. For ! instance, when \class{C} is a class which has a method ! \method{f()}, \code{C.f} does not yield the function object ! \code{f}; rather, it yields an unbound method object \code{m} where ! \code{m.im_class} is \class{C}, \code{m.im_func} is \method{f()}, and ! \code{m.im_self} is \code{None}. When \code{x} is a \class{C} ! instance, \code{x.f} yields a bound method object \code{m} where ! \code{m.im_class} is \code{C}, \code{m.im_func} is \method{f()}, and ! \code{m.im_self} is \code{x}. \withsubitem{(method attribute)}{ \ttindex{im_class}\ttindex{im_func}\ttindex{im_self}} --- 500,538 ---- function attributes on the underlying function object. ! User-defined method objects may be created when getting an attribute ! of a class (perhaps via an instance of that class), if that attribute ! is a user-defined function object, an unbound user-defined method object, ! or a class method object. ! When the attribute is a user-defined method object, a new ! method object is only created if the class from which it is being ! retrieved is the same as, or a derived class of, the class stored ! in the original method object; otherwise, the original method object ! is used as it is. ! ! When a user-defined method object is created by retrieving ! a user-defined function object from a class, its \member{im_self} ! attribute is \code{None} and the method object is said to be unbound. ! When one is created by retrieving a user-defined function object ! from a class via one of its instances, its \member{im_self} attribute ! is the instance, and the method object is said to be bound. ! In either case, the new method's \member{im_class} attribute ! is the class from which the retrieval takes place, and ! its \member{im_func} attribute is the original function object. ! \withsubitem{(method attribute)}{ ! \ttindex{im_class}\ttindex{im_func}\ttindex{im_self}} ! ! When a user-defined method object is created by retrieving another ! method object from a class or instance, the behaviour is the same ! as for a function object, except that the \member{im_func} attribute ! of the new instance is not the original method object but its ! \member{im_func} attribute. ! \withsubitem{(method attribute)}{ ! \ttindex{im_func}} ! ! When a user-defined method object is created by retrieving a ! class method object from a class or instance, its \member{im_self} ! attribute is the class itself (the same as the \member{im_class} ! attribute), and its \member{im_func} attribute is the function ! object underlying the class method. \withsubitem{(method attribute)}{ \ttindex{im_class}\ttindex{im_func}\ttindex{im_self}} *************** *** 531,534 **** --- 550,559 ---- \code{x.f(1)} is equivalent to calling \code{C.f(x, 1)}. + When a user-defined method object is derived from a class method object, + the ``class instance'' stored in \member{im_self} will actually be the + class itself, so that calling either \code{x.f(1)} or \code{C.f(1)} is + equivalent to calling \code{f(C,1)} where \code{f} is the underlying + function. + Note that the transformation from function object to (unbound or bound) method object happens each time the attribute is retrieved from *************** *** 655,662 **** is depth-first, left-to-right in the order of occurrence in the base class list. ! When a class attribute reference would yield a user-defined function ! object, it is transformed into an unbound user-defined method object ! (see above). The \member{im_class} attribute of this method object is the ! class for which the attribute reference was initiated. \obindex{class} \obindex{class instance} --- 680,696 ---- is depth-first, left-to-right in the order of occurrence in the base class list. ! ! When a class attribute reference (for class \class{C}, say) ! would yield a user-defined function object or ! an unbound user-defined method object whose associated class is either ! \class{C} or one of its base classes, it is transformed into an unbound ! user-defined method object whose \member{im_class} attribute is~\class{C}. ! When it would yield a class method object, it is transformed into ! a bound user-defined method object whose \member{im_class} and ! \member{im_self} attributes are both~\class{C}. When it would yield ! a static method object, it is transformed into the object wrapped ! by the static method object. See section~\ref{descriptors} for another ! way in which attributes retrieved from a class may differ from those ! actually contained in its \member{__dict__}. \obindex{class} \obindex{class instance} *************** *** 696,704 **** there, and the instance's class has an attribute by that name, the search continues with the class attributes. If a class attribute ! is found that is a user-defined function object (and in no other ! case), it is transformed into an unbound user-defined method object ! (see above). The \member{im_class} attribute of this method object is ! the ! class of the instance for which the attribute reference was initiated. If no class attribute is found, and the object's class has a \method{__getattr__()} method, that is called to satisfy the lookup. --- 730,745 ---- there, and the instance's class has an attribute by that name, the search continues with the class attributes. If a class attribute ! is found that is a user-defined function object or an unbound ! user-defined method object whose associated class is the class ! (call it~\class{C}) of the instance for which the attribute reference ! was initiated or one of its bases, ! it is transformed into a bound user-defined method object whose ! \member{im_class} attribute is~\class{C} whose \member{im_self} attribute ! is the instance. Static method and class method objects are also ! transformed, as if they had been retrieved from class~\class{C}; ! see above under ``Classes''. See section~\ref{descriptors} for ! another way in which attributes of a class retrieved via its ! instances may differ from the objects actually stored in the ! class's \member{__dict__}. If no class attribute is found, and the object's class has a \method{__getattr__()} method, that is called to satisfy the lookup. *************** *** 938,941 **** --- 979,1001 ---- \versionadded{2.3} \end{methoddesc} + + \item[Static method objects] + Static method objects provide a way of defeating the transformation + of function objects to method objects described above. A static method + object is a wrapper around any other object, usually a user-defined + method object. When a static method object is retrieved from a class + or a class instance, the object actually returned is the wrapped object, + which is not subject to any further transformation. Static method + objects are not themselves callable, although the objects they + wrap usually are. Static method objects are created by the built-in + \function{staticmethod()} constructor. + + \item[Class method objects] + A class method object, like a static method object, is a wrapper + around another object that alters the way in which that object + is retrieved from classes and class instances. The behaviour of + class method objects upon such retrieval is described above, + under ``User-defined methods''. Class method objects are created + by the built-in \function{classmethod()} constructor. \end{description} % Internal types From fdrake@users.sourceforge.net Thu Jul 17 06:30:40 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Wed, 16 Jul 2003 22:30:40 -0700 Subject: [Python-checkins] python/dist/src/Doc Makefile,1.256,1.257 Message-ID: Update of /cvsroot/python/python/dist/src/Doc In directory sc8-pr-cvs1:/tmp/cvs-serv29506 Modified Files: Makefile Log Message: Bump version numbers. Index: Makefile =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/Makefile,v retrieving revision 1.256 retrieving revision 1.257 diff -C2 -d -r1.256 -r1.257 *** Makefile 16 Jul 2003 04:01:04 -0000 1.256 --- Makefile 17 Jul 2003 05:30:38 -0000 1.257 *************** *** 67,71 **** # This is the *documentation* release, and is used to construct the file # names of the downloadable tarballs. ! RELEASE=2.3b2 PYTHON= python --- 67,71 ---- # This is the *documentation* release, and is used to construct the file # names of the downloadable tarballs. ! RELEASE=2.3c1 PYTHON= python From fdrake@users.sourceforge.net Thu Jul 17 06:30:41 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Wed, 16 Jul 2003 22:30:41 -0700 Subject: [Python-checkins] python/dist/src/Doc/texinputs boilerplate.tex,1.81,1.82 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/texinputs In directory sc8-pr-cvs1:/tmp/cvs-serv29506/texinputs Modified Files: boilerplate.tex Log Message: Bump version numbers. Index: boilerplate.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/texinputs/boilerplate.tex,v retrieving revision 1.81 retrieving revision 1.82 diff -C2 -d -r1.81 -r1.82 *** boilerplate.tex 30 Jun 2003 13:38:38 -0000 1.81 --- boilerplate.tex 17 Jul 2003 05:30:38 -0000 1.82 *************** *** 8,11 **** \date{\today} % XXX update before final release! \release{2.3} % software release, not documentation ! \setreleaseinfo{b2+} % empty for final release \setshortversion{2.3} % major.minor only for software --- 8,11 ---- \date{\today} % XXX update before final release! \release{2.3} % software release, not documentation ! \setreleaseinfo{c1} % empty for final release \setshortversion{2.3} % major.minor only for software From fdrake@users.sourceforge.net Thu Jul 17 06:36:21 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Wed, 16 Jul 2003 22:36:21 -0700 Subject: [Python-checkins] python/dist/src/Doc/info python.dir,1.4,1.5 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/info In directory sc8-pr-cvs1:/tmp/cvs-serv30282 Modified Files: python.dir Log Message: - update the list of documents for which GNU info is built - convert tabs to spaces Index: python.dir =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/info/python.dir,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** python.dir 3 May 2002 04:50:51 -0000 1.4 --- python.dir 17 Jul 2003 05:36:19 -0000 1.5 *************** *** 2,12 **** Python Standard Documentation ! * Python Library: (python-lib). Python Library Reference ! * Python Mac Modules: (python-mac). Python Macintosh Modules ! * Python Reference: (python-ref). Python Reference Manual ! * Python API: (python-api). Python/C API Reference Manual ! * Python Extending: (python-ext). Extending & Embedding Python ! * Python Tutorial: (python-tut). Python Tutorial ! * Documenting Python: (python-doc). Documenting Python ! * Installing Modules: (python-inst). Installing Python Modules ! * Distributing Modules: (python-dist). Distributing Python Modules --- 2,11 ---- Python Standard Documentation ! * What's New: (python-whatsnew23). What's New in Python 2.3? ! * Python Library: (python-lib). Python Library Reference ! * Python Mac Modules: (python-mac). Python Macintosh Modules ! * Python Reference: (python-ref). Python Reference Manual ! * Python API: (python-api). Python/C API Reference Manual ! * Python Extending: (python-ext). Extending & Embedding Python ! * Python Tutorial: (python-tut). Python Tutorial ! * Distributing Modules: (python-dist). Distributing Python Modules From fdrake@users.sourceforge.net Thu Jul 17 12:55:20 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Thu, 17 Jul 2003 04:55:20 -0700 Subject: [Python-checkins] python/dist/src/Doc Makefile,1.257,1.258 Message-ID: Update of /cvsroot/python/python/dist/src/Doc In directory sc8-pr-cvs1:/tmp/cvs-serv22106 Modified Files: Makefile Log Message: - put the GNU info packages in the same place as everything else - add a convenience target to create the package list directly Index: Makefile =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/Makefile,v retrieving revision 1.257 retrieving revision 1.258 diff -C2 -d -r1.257 -r1.258 *** Makefile 17 Jul 2003 05:30:38 -0000 1.257 --- Makefile 17 Jul 2003 11:55:18 -0000 1.258 *************** *** 529,537 **** info-$(RELEASE).tgz: info cd $(INFODIR) && tar cf - README python.dir python-*.info* \ ! | gzip -9 >$@ info-$(RELEASE).tar.bz2: info cd $(INFODIR) && tar cf - README python.dir python-*.info* \ ! | bzip2 -9 >$@ latex-$(RELEASE).tgz: --- 529,537 ---- info-$(RELEASE).tgz: info cd $(INFODIR) && tar cf - README python.dir python-*.info* \ ! | gzip -9 >../$@ info-$(RELEASE).tar.bz2: info cd $(INFODIR) && tar cf - README python.dir python-*.info* \ ! | bzip2 -9 >../$@ latex-$(RELEASE).tgz: *************** *** 654,657 **** --- 654,660 ---- paperdist: distpdf distps edist: disthtml zipisilo + + pkglist: + $(TOOLSDIR)/mkpkglist >pkglist.html distfiles: paperdist edist From just@letterror.com Thu Jul 17 13:39:14 2003 From: just@letterror.com (Just van Rossum) Date: Thu, 17 Jul 2003 07:39:14 -0500 Subject: [Python-checkins] python/dist/src/Modules bz2module.c,1.19,1.20 readline.c,2.62,2.63 Message-ID: nnorwitz@users.sourceforge.net wrote: > Index: readline.c > =================================================================== > RCS file: /cvsroot/python/python/dist/src/Modules/readline.c,v > retrieving revision 2.62 > retrieving revision 2.63 > diff -C2 -d -r2.62 -r2.63 > *** readline.c 1 Mar 2003 15:19:41 -0000 2.62 > --- readline.c 1 Jul 2003 20:15:21 -0000 2.63 > *************** > *** 33,38 **** > > /* Pointers needed from outside (but not declared in a header file). */ > ! extern DL_IMPORT(int) (*PyOS_InputHook)(void); > ! extern DL_IMPORT(char) *(*PyOS_ReadlineFunctionPointer)(FILE *, FILE *,char *); > > > --- 33,38 ---- > > /* Pointers needed from outside (but not declared in a header file). */ > ! PyAPI_FUNC(int) (*PyOS_InputHook)(void); > ! PyAPI_FUNC(char) *(*PyOS_ReadlineFunctionPointer)(FILE *, FILE *,char *); Somehow this change breaks readline support in the interactive interpreter on OSX. Can someone back it out? Just From jhylton@users.sourceforge.net Thu Jul 17 15:41:10 2003 From: jhylton@users.sourceforge.net (jhylton@users.sourceforge.net) Date: Thu, 17 Jul 2003 07:41:10 -0700 Subject: [Python-checkins] python/dist/src/Lib/distutils msvccompiler.py,1.56,1.57 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/distutils In directory sc8-pr-cvs1:/tmp/cvs-serv16972/Lib/distutils Modified Files: msvccompiler.py Log Message: Patch from John Anderson to enable VC 7.1 support. I tested against VC 7.0 and it caused no problems there. Index: msvccompiler.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/distutils/msvccompiler.py,v retrieving revision 1.56 retrieving revision 1.57 diff -C2 -d -r1.56 -r1.57 *** msvccompiler.py 14 May 2003 19:48:57 -0000 1.56 --- msvccompiler.py 17 Jul 2003 14:41:07 -0000 1.57 *************** *** 46,49 **** --- 46,53 ---- except ImportError: + log.info("Warning: Can't read registry to find the " + "necessary compiler setting\n" + "Make sure that Python modules _winreg, " + "win32api or win32con are installed.") pass *************** *** 116,125 **** def load_macros(self, version): ! vsbase = r"Software\Microsoft\VisualStudio\%s.0" % version self.set_macro("VCInstallDir", vsbase + r"\Setup\VC", "productdir") self.set_macro("VSInstallDir", vsbase + r"\Setup\VS", "productdir") net = r"Software\Microsoft\.NETFramework" self.set_macro("FrameworkDir", net, "installroot") ! self.set_macro("FrameworkSDKDir", net, "sdkinstallroot") p = r"Software\Microsoft\NET Framework Setup\Product" --- 120,132 ---- def load_macros(self, version): ! vsbase = r"Software\Microsoft\VisualStudio\%0.1f" % version self.set_macro("VCInstallDir", vsbase + r"\Setup\VC", "productdir") self.set_macro("VSInstallDir", vsbase + r"\Setup\VS", "productdir") net = r"Software\Microsoft\.NETFramework" self.set_macro("FrameworkDir", net, "installroot") ! if version > 7.0: ! self.set_macro("FrameworkSDKDir", net, "sdkinstallrootv1.1") ! else: ! self.set_macro("FrameworkSDKDir", net, "sdkinstallroot") p = r"Software\Microsoft\NET Framework Setup\Product" *************** *** 151,159 **** i = i + len(prefix) s, rest = sys.version[i:].split(" ", 1) ! n = int(s[:-2]) ! if n == 12: ! return 6 ! elif n == 13: ! return 7 # else we don't know what version of the compiler this is return None --- 158,168 ---- i = i + len(prefix) s, rest = sys.version[i:].split(" ", 1) ! majorVersion = int(s[:-2]) - 6 ! minorVersion = int(s[2:3]) / 10.0 ! # I don't think paths are affected by minor version in version 6 ! if majorVersion == 6: ! minorVersion = 0 ! if majorVersion >= 6: ! return majorVersion + minorVersion # else we don't know what version of the compiler this is return None *************** *** 193,197 **** CCompiler.__init__ (self, verbose, dry_run, force) self.__version = get_build_version() ! if self.__version == 7: self.__root = r"Software\Microsoft\VisualStudio" self.__macros = MacroExpander(self.__version) --- 202,206 ---- CCompiler.__init__ (self, verbose, dry_run, force) self.__version = get_build_version() ! if self.__version >= 7: self.__root = r"Software\Microsoft\VisualStudio" self.__macros = MacroExpander(self.__version) *************** *** 200,203 **** --- 209,218 ---- self.__paths = self.get_msvc_paths("path") + if len (self.__paths) == 0: + raise DistutilsPlatformError, \ + ("Python was built with version %s of Visual Studio, " + "and extensions need to be built with the same " + "version of the compiler, but it isn't installed." % self.__version) + self.cc = self.find_exe("cl.exe") self.linker = self.find_exe("link.exe") *************** *** 519,525 **** path = path + " dirs" ! if self.__version == 7: ! key = (r"%s\7.0\VC\VC_OBJECTS_PLATFORM_INFO\Win32\Directories" ! % (self.__root,)) else: key = (r"%s\6.0\Build System\Components\Platforms" --- 534,540 ---- path = path + " dirs" ! if self.__version >= 7: ! key = (r"%s\%0.1f\VC\VC_OBJECTS_PLATFORM_INFO\Win32\Directories" ! % (self.__root, self.__version)) else: key = (r"%s\6.0\Build System\Components\Platforms" *************** *** 529,533 **** d = read_values(base, key) if d: ! if self.__version == 7: return string.split(self.__macros.sub(d[path]), ";") else: --- 544,548 ---- d = read_values(base, key) if d: ! if self.__version >= 7: return string.split(self.__macros.sub(d[path]), ";") else: From rhettinger@users.sourceforge.net Thu Jul 17 15:47:14 2003 From: rhettinger@users.sourceforge.net (rhettinger@users.sourceforge.net) Date: Thu, 17 Jul 2003 07:47:14 -0700 Subject: [Python-checkins] python/dist/src/Doc/ref ref3.tex,1.112,1.113 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/ref In directory sc8-pr-cvs1:/tmp/cvs-serv18009/ref Modified Files: ref3.tex Log Message: Minor corrections. Index: ref3.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/ref/ref3.tex,v retrieving revision 1.112 retrieving revision 1.113 diff -C2 -d -r1.112 -r1.113 *** ref3.tex 17 Jul 2003 05:26:53 -0000 1.112 --- ref3.tex 17 Jul 2003 14:47:12 -0000 1.113 *************** *** 1151,1155 **** There are no implied relationships among the comparison operators. ! The truth of {\var{x}==\var{y}} does not imply that \code{\var{x}!=\var{y}} is false. Accordingly, when defining \method{__eq__}, one should also define \method{__ne__} so that the operators will behave as expected. --- 1151,1155 ---- There are no implied relationships among the comparison operators. ! The truth of \code{\var{x}==\var{y}} does not imply that \code{\var{x}!=\var{y}} is false. Accordingly, when defining \method{__eq__}, one should also define \method{__ne__} so that the operators will behave as expected. From rhettinger@users.sourceforge.net Thu Jul 17 15:47:14 2003 From: rhettinger@users.sourceforge.net (rhettinger@users.sourceforge.net) Date: Thu, 17 Jul 2003 07:47:14 -0700 Subject: [Python-checkins] python/dist/src/Doc/lib libdoctest.tex,1.14,1.15 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/lib In directory sc8-pr-cvs1:/tmp/cvs-serv18009/lib Modified Files: libdoctest.tex Log Message: Minor corrections. Index: libdoctest.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/libdoctest.tex,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** libdoctest.tex 16 Jul 2003 19:25:22 -0000 1.14 --- libdoctest.tex 17 Jul 2003 14:47:12 -0000 1.15 *************** *** 194,197 **** --- 194,200 ---- docstrings attached to objects with private names. Objects imported into the module are not searched. + \versionchanged[Previously, the tester defaulted to skipping objects + with private names (to obtain version independence, explicitly specify + \var{isprivate} when launching doctests)]{2.3} In addition, if \code{M.__test__} exists and "is true", it must be a *************** *** 199,203 **** object, or string. Function and class object docstrings found from \code{M.__test__} are searched even if the the tester has been ! directly to skip over private names in the rest of the module. In output, a key \code{K} in \code{M.__test__} appears with name --- 202,206 ---- object, or string. Function and class object docstrings found from \code{M.__test__} are searched even if the the tester has been ! directed to skip over private names in the rest of the module. In output, a key \code{K} in \code{M.__test__} appears with name *************** *** 313,316 **** --- 316,322 ---- \versionadded{2.3} + \warning{\function{DocTestSuite()} does not current search \code{M.__test__} + and its search technique does not exactly match \function{testmod()} in + every detail. Future versions will bring the two into convergence.} \end{funcdesc} From tim_one@users.sourceforge.net Thu Jul 17 15:48:28 2003 From: tim_one@users.sourceforge.net (tim_one@users.sourceforge.net) Date: Thu, 17 Jul 2003 07:48:28 -0700 Subject: [Python-checkins] python/dist/src/Include patchlevel.h,2.69,2.70 Message-ID: Update of /cvsroot/python/python/dist/src/Include In directory sc8-pr-cvs1:/tmp/cvs-serv18186/python/Include Modified Files: patchlevel.h Log Message: Bump the release number to 2.3c1. Index: patchlevel.h =================================================================== RCS file: /cvsroot/python/python/dist/src/Include/patchlevel.h,v retrieving revision 2.69 retrieving revision 2.70 diff -C2 -d -r2.69 -r2.70 *** patchlevel.h 30 Jun 2003 02:14:28 -0000 2.69 --- patchlevel.h 17 Jul 2003 14:48:25 -0000 2.70 *************** *** 23,31 **** #define PY_MINOR_VERSION 3 #define PY_MICRO_VERSION 0 ! #define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_BETA ! #define PY_RELEASE_SERIAL 2 /* Version as a string */ ! #define PY_VERSION "2.3b2+" /* Version as a single 4-byte hex number, e.g. 0x010502B2 == 1.5.2b2. --- 23,31 ---- #define PY_MINOR_VERSION 3 #define PY_MICRO_VERSION 0 ! #define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_GAMMA ! #define PY_RELEASE_SERIAL 1 /* Version as a string */ ! #define PY_VERSION "2.3c1" /* Version as a single 4-byte hex number, e.g. 0x010502B2 == 1.5.2b2. From tim_one@users.sourceforge.net Thu Jul 17 15:48:28 2003 From: tim_one@users.sourceforge.net (tim_one@users.sourceforge.net) Date: Thu, 17 Jul 2003 07:48:28 -0700 Subject: [Python-checkins] python/dist/src/PC python_nt.rc,1.23,1.24 Message-ID: Update of /cvsroot/python/python/dist/src/PC In directory sc8-pr-cvs1:/tmp/cvs-serv18186/python/PC Modified Files: python_nt.rc Log Message: Bump the release number to 2.3c1. Index: python_nt.rc =================================================================== RCS file: /cvsroot/python/python/dist/src/PC/python_nt.rc,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -d -r1.23 -r1.24 *** python_nt.rc 29 Jun 2003 00:57:17 -0000 1.23 --- python_nt.rc 17 Jul 2003 14:48:26 -0000 1.24 *************** *** 34,45 **** * following comment and #define are output from PCbuild\field3.py: * ! * For 2.3b2, * PY_MICRO_VERSION = 0 ! * PY_RELEASE_LEVEL = 'beta' = 0xb ! * PY_RELEASE_SERIAL = 2 * ! * and 0*1000 + 11*10 + 2 = 112 */ ! #define FIELD3 112 /* e.g., 2.1a2 --- 34,45 ---- * following comment and #define are output from PCbuild\field3.py: * ! * For 2.3c1, * PY_MICRO_VERSION = 0 ! * PY_RELEASE_LEVEL = 'candidate' = 0xc ! * PY_RELEASE_SERIAL = 1 * ! * and 0*1000 + 12*10 + 1 = 121 */ ! #define FIELD3 121 /* e.g., 2.1a2 From tim_one@users.sourceforge.net Thu Jul 17 15:48:29 2003 From: tim_one@users.sourceforge.net (tim_one@users.sourceforge.net) Date: Thu, 17 Jul 2003 07:48:29 -0700 Subject: [Python-checkins] python/dist/src/PCbuild BUILDno.txt,1.47,1.48 python20.wse,1.128,1.129 pythoncore.dsp,1.45,1.46 Message-ID: Update of /cvsroot/python/python/dist/src/PCbuild In directory sc8-pr-cvs1:/tmp/cvs-serv18186/python/PCbuild Modified Files: BUILDno.txt python20.wse pythoncore.dsp Log Message: Bump the release number to 2.3c1. Index: BUILDno.txt =================================================================== RCS file: /cvsroot/python/python/dist/src/PCbuild/BUILDno.txt,v retrieving revision 1.47 retrieving revision 1.48 diff -C2 -d -r1.47 -r1.48 *** BUILDno.txt 27 Jun 2003 15:49:34 -0000 1.47 --- BUILDno.txt 17 Jul 2003 14:48:26 -0000 1.48 *************** *** 34,37 **** --- 34,39 ---- Windows Python BUILD numbers ---------------------------- + 44 2.3c1 + 17-Jul-2003 43 2.3b2 29-Jun-2003 Index: python20.wse =================================================================== RCS file: /cvsroot/python/python/dist/src/PCbuild/python20.wse,v retrieving revision 1.128 retrieving revision 1.129 diff -C2 -d -r1.128 -r1.129 *** python20.wse 10 Jul 2003 16:20:58 -0000 1.128 --- python20.wse 17 Jul 2003 14:48:26 -0000 1.129 *************** *** 2,6 **** item: Global Version=8.14 ! Title=Python 2.3 beta 2 Flags=00010100 Languages=65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 --- 2,6 ---- item: Global Version=8.14 ! Title=Python 2.3 release candidate 1 Flags=00010100 Languages=65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 *************** *** 19,25 **** Patch Threshold=85 Patch Memory=4000 ! EXE Filename=Python-2.3b2.exe Dialogs Version=8 ! Version File=2.3b2 Version Description=Python Programming Language Version Copyright=©2001-2003 Python Software Foundation --- 19,25 ---- Patch Threshold=85 Patch Memory=4000 ! EXE Filename=Python-2.3c1.exe Dialogs Version=8 ! Version File=2.3c1 Version Description=Python Programming Language Version Copyright=©2001-2003 Python Software Foundation *************** *** 67,71 **** item: Set Variable Variable=PYVER_STRING ! Value=2.3b2 end item: Remark --- 67,71 ---- item: Set Variable Variable=PYVER_STRING ! Value=2.3c1 end item: Remark Index: pythoncore.dsp =================================================================== RCS file: /cvsroot/python/python/dist/src/PCbuild/pythoncore.dsp,v retrieving revision 1.45 retrieving revision 1.46 diff -C2 -d -r1.45 -r1.46 *** pythoncore.dsp 27 Jun 2003 15:49:35 -0000 1.45 --- pythoncore.dsp 17 Jul 2003 14:48:26 -0000 1.46 *************** *** 259,263 **** SOURCE=..\Modules\getbuildinfo.c ! # ADD CPP /D BUILD=43 # End Source File # Begin Source File --- 259,263 ---- SOURCE=..\Modules\getbuildinfo.c ! # ADD CPP /D BUILD=44 # End Source File # Begin Source File From jvr@users.sourceforge.net Thu Jul 17 16:11:51 2003 From: jvr@users.sourceforge.net (jvr@users.sourceforge.net) Date: Thu, 17 Jul 2003 08:11:51 -0700 Subject: [Python-checkins] python/dist/src/Lib posixpath.py,1.61,1.62 Message-ID: Update of /cvsroot/python/python/dist/src/Lib In directory sc8-pr-cvs1:/tmp/cvs-serv22228/Lib Modified Files: posixpath.py Log Message: back out the darwin supports_unicode_filenames patch; it causes deep problems with the tests Index: posixpath.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/posixpath.py,v retrieving revision 1.61 retrieving revision 1.62 diff -C2 -d -r1.61 -r1.62 *** posixpath.py 11 Jul 2003 07:36:49 -0000 1.61 --- posixpath.py 17 Jul 2003 15:11:49 -0000 1.62 *************** *** 418,423 **** return filename ! if sys.platform == "darwin": ! supports_unicode_filenames = True ! else: ! supports_unicode_filenames = False --- 418,420 ---- return filename ! supports_unicode_filenames = False From fdrake@users.sourceforge.net Thu Jul 17 16:22:49 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Thu, 17 Jul 2003 08:22:49 -0700 Subject: [Python-checkins] python/dist/src/Doc/lib libdoctest.tex,1.15,1.16 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/lib In directory sc8-pr-cvs1:/tmp/cvs-serv24106 Modified Files: libdoctest.tex Log Message: - remove mention of the isprivate flag, since that isn't directly documented here, and according to Tim, should never have been there - misc. cleanups for consistency Index: libdoctest.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/libdoctest.tex,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** libdoctest.tex 17 Jul 2003 14:47:12 -0000 1.15 --- libdoctest.tex 17 Jul 2003 15:22:47 -0000 1.16 *************** *** 174,179 **** \end{verbatim} ! and a detailed report of all examples tried is printed to \code{stdout}, ! along with assorted summaries at the end. You can force verbose mode by passing \code{verbose=1} to --- 174,179 ---- \end{verbatim} ! and a detailed report of all examples tried is printed to standard ! output, along with assorted summaries at the end. You can force verbose mode by passing \code{verbose=1} to *************** *** 189,200 **** \subsection{Which Docstrings Are Examined?} ! See \file{docstring.py} for all the details. They're unsurprising: the ! module docstring, and all function, class and method docstrings are ! searched. Optionally, the tester can be directed to exclude ! docstrings attached to objects with private names. ! Objects imported into the module are not searched. ! \versionchanged[Previously, the tester defaulted to skipping objects ! with private names (to obtain version independence, explicitly specify ! \var{isprivate} when launching doctests)]{2.3} In addition, if \code{M.__test__} exists and "is true", it must be a --- 189,197 ---- \subsection{Which Docstrings Are Examined?} ! See the docstrings in \file{doctest.py} for all the details. They're ! unsurprising: the module docstring, and all function, class and method ! docstrings are searched. Optionally, the tester can be directed to ! exclude docstrings attached to objects with private names. Objects ! imported into the module are not searched. In addition, if \code{M.__test__} exists and "is true", it must be a *************** *** 206,210 **** \begin{verbatim} ! .__test__.K \end{verbatim} --- 203,207 ---- \begin{verbatim} ! .__test__.K \end{verbatim} *************** *** 260,264 **** The doctest examples are extracted (see function \function{testsource()}), and written to a temporary file. The Python debugger, \refmodule{pdb}, ! is then invoked on that file. \versionadded{2.3} \end{funcdesc} --- 257,261 ---- The doctest examples are extracted (see function \function{testsource()}), and written to a temporary file. The Python debugger, \refmodule{pdb}, ! is then invoked on that file. \versionadded{2.3} \end{funcdesc} *************** *** 271,275 **** To get finer control than \function{testmod()} offers, create an instance ! of \class{Tester} with custom policies and run the methods of \code{master} directly. See \code{Tester.__doc__} for details. \end{funcdesc} --- 268,272 ---- To get finer control than \function{testmod()} offers, create an instance ! of \class{Tester} with custom policies, or run methods of \code{master} directly. See \code{Tester.__doc__} for details. \end{funcdesc} *************** *** 300,304 **** The optional \var{module} argument provides the module to be tested. It can be a module object or a (possibly dotted) module name. If not ! specified, the module calling \function{DocTestSuite()} is used. Example using one of the many ways that the \refmodule{unittest} module --- 297,301 ---- The optional \var{module} argument provides the module to be tested. It can be a module object or a (possibly dotted) module name. If not ! specified, the module calling this function is used. Example using one of the many ways that the \refmodule{unittest} module *************** *** 316,320 **** \versionadded{2.3} ! \warning{\function{DocTestSuite()} does not current search \code{M.__test__} and its search technique does not exactly match \function{testmod()} in every detail. Future versions will bring the two into convergence.} --- 313,317 ---- \versionadded{2.3} ! \warning{This function does not currently search \code{M.__test__} and its search technique does not exactly match \function{testmod()} in every detail. Future versions will bring the two into convergence.} From fdrake@users.sourceforge.net Thu Jul 17 16:29:19 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Thu, 17 Jul 2003 08:29:19 -0700 Subject: [Python-checkins] python/dist/src/Doc Makefile,1.258,1.259 Message-ID: Update of /cvsroot/python/python/dist/src/Doc In directory sc8-pr-cvs1:/tmp/cvs-serv25281 Modified Files: Makefile Log Message: Include the GNU info format in the edist target since we're now building a fair portion of the documentation as info. Index: Makefile =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/Makefile,v retrieving revision 1.258 retrieving revision 1.259 diff -C2 -d -r1.258 -r1.259 *** Makefile 17 Jul 2003 11:55:18 -0000 1.258 --- Makefile 17 Jul 2003 15:29:16 -0000 1.259 *************** *** 653,657 **** paperdist: distpdf distps ! edist: disthtml zipisilo pkglist: --- 653,657 ---- paperdist: distpdf distps ! edist: disthtml distinfo zipisilo pkglist: From jhylton@users.sourceforge.net Thu Jul 17 16:56:10 2003 From: jhylton@users.sourceforge.net (jhylton@users.sourceforge.net) Date: Thu, 17 Jul 2003 08:56:10 -0700 Subject: [Python-checkins] python/dist/src/Modules zipimport.c,1.14,1.15 Message-ID: Update of /cvsroot/python/python/dist/src/Modules In directory sc8-pr-cvs1:/tmp/cvs-serv30047/Modules Modified Files: zipimport.c Log Message: Remove unused variable. Index: zipimport.c =================================================================== RCS file: /cvsroot/python/python/dist/src/Modules/zipimport.c,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** zipimport.c 10 May 2003 07:36:55 -0000 1.14 --- zipimport.c 17 Jul 2003 15:56:07 -0000 1.15 *************** *** 656,660 **** FILE *fp; long compress, crc, data_size, file_size, file_offset, date, time; ! long header_offset, name_size, header_size, header_end; long i, l, length, count; char path[MAXPATHLEN + 5]; --- 656,660 ---- FILE *fp; long compress, crc, data_size, file_size, file_offset, date, time; ! long header_offset, name_size, header_size; long i, l, length, count; char path[MAXPATHLEN + 5]; *************** *** 676,680 **** } fseek(fp, -22, SEEK_END); - header_end = ftell(fp); if (fread(endof_central_dir, 1, 22, fp) != 22) { fclose(fp); --- 676,679 ---- From fdrake@users.sourceforge.net Thu Jul 17 17:00:03 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Thu, 17 Jul 2003 09:00:03 -0700 Subject: [Python-checkins] python/dist/src/Doc/lib libdoctest.tex,1.16,1.17 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/lib In directory sc8-pr-cvs1:/tmp/cvs-serv30668 Modified Files: libdoctest.tex Log Message: more markup chages Index: libdoctest.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/libdoctest.tex,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** libdoctest.tex 17 Jul 2003 15:22:47 -0000 1.16 --- libdoctest.tex 17 Jul 2003 16:00:01 -0000 1.17 *************** *** 86,91 **** \end{verbatim} ! If you run \file{example.py} directly from the command line, doctest works ! its magic: \begin{verbatim} --- 86,91 ---- \end{verbatim} ! If you run \file{example.py} directly from the command line, ! \module{doctest} works its magic: \begin{verbatim} *************** *** 94,100 **** \end{verbatim} ! There's no output! That's normal, and it means all the examples worked. ! Pass \programopt{-v} to the script, and doctest prints a detailed log ! of what it's trying, and prints a summary at the end: \begin{verbatim} --- 94,101 ---- \end{verbatim} ! There's no output! That's normal, and it means all the examples ! worked. Pass \programopt{-v} to the script, and \module{doctest} ! prints a detailed log of what it's trying, and prints a summary at the ! end: \begin{verbatim} *************** *** 136,142 **** \end{verbatim} ! That's all you need to know to start making productive use of doctest! Jump ! in. The docstrings in doctest.py contain detailed information about all ! aspects of doctest, and we'll just cover the more important points here. \subsection{Normal Usage} --- 137,144 ---- \end{verbatim} ! That's all you need to know to start making productive use of ! \module{doctest}! Jump in. The docstrings in \file{doctest.py} contain ! detailed information about all aspects of \module{doctest}, and we'll ! just cover the more important points here. \subsection{Normal Usage} *************** *** 286,291 **** \begin{funcdesc}{DocTestSuite}{\optional{module}} ! Convert doctest tests for a module to a \refmodule{unittest} ! \class{TestSuite}. The returned \class{TestSuite} is to be run by the unittest framework --- 288,293 ---- \begin{funcdesc}{DocTestSuite}{\optional{module}} ! Convert doctest tests for a module to a ! \class{\refmodule{unittest}.TestSuite}. The returned \class{TestSuite} is to be run by the unittest framework *************** *** 321,328 **** \subsection{How are Docstring Examples Recognized?} ! In most cases a copy-and-paste of an interactive console session works fine ! --- just make sure the leading whitespace is rigidly consistent (you can mix ! tabs and spaces if you're too lazy to do it right, but doctest is not in ! the business of guessing what you think a tab means). \begin{verbatim} --- 323,331 ---- \subsection{How are Docstring Examples Recognized?} ! In most cases a copy-and-paste of an interactive console session works ! fine---just make sure the leading whitespace is rigidly consistent ! (you can mix tabs and spaces if you're too lazy to do it right, but ! \module{doctest} is not in the business of guessing what you think a tab ! means). \begin{verbatim} *************** *** 487,509 **** \subsection{Soapbox} ! The first word in doctest is "doc", and that's why the author wrote ! doctest: to keep documentation up to date. It so happens that doctest ! makes a pleasant unit testing environment, but that's not its primary ! purpose. ! Choose docstring examples with care. There's an art to this that needs to ! be learned --- it may not be natural at first. Examples should add genuine ! value to the documentation. A good example can often be worth many words. ! If possible, show just a few normal cases, show endcases, show interesting ! subtle cases, and show an example of each kind of exception that can be ! raised. You're probably testing for endcases and subtle cases anyway in an ! interactive shell: doctest wants to make it as easy as possible to capture ! those sessions, and will verify they continue to work as designed forever ! after. ! If done with care, the examples will be invaluable for your users, and will ! pay back the time it takes to collect them many times over as the years go ! by and "things change". I'm still amazed at how often one of my doctest ! examples stops working after a "harmless" change. For exhaustive testing, or testing boring cases that add no value to the --- 490,514 ---- \subsection{Soapbox} ! The first word in ``doctest'' is ``doc,'' and that's why the author ! wrote \refmodule{doctest}: to keep documentation up to date. It so ! happens that \refmodule{doctest} makes a pleasant unit testing ! environment, but that's not its primary purpose. ! Choose docstring examples with care. There's an art to this that ! needs to be learned---it may not be natural at first. Examples should ! add genuine value to the documentation. A good example can often be ! worth many words. If possible, show just a few normal cases, show ! endcases, show interesting subtle cases, and show an example of each ! kind of exception that can be raised. You're probably testing for ! endcases and subtle cases anyway in an interactive shell: ! \refmodule{doctest} wants to make it as easy as possible to capture ! those sessions, and will verify they continue to work as designed ! forever after. ! If done with care, the examples will be invaluable for your users, and ! will pay back the time it takes to collect them many times over as the ! years go by and things change. I'm still amazed at how often one of ! my \refmodule{doctest} examples stops working after a ``harmless'' ! change. For exhaustive testing, or testing boring cases that add no value to the From mwh@users.sourceforge.net Thu Jul 17 17:27:00 2003 From: mwh@users.sourceforge.net (mwh@users.sourceforge.net) Date: Thu, 17 Jul 2003 09:27:00 -0700 Subject: [Python-checkins] python/dist/src/Modules readline.c,2.63,2.64 Message-ID: Update of /cvsroot/python/python/dist/src/Modules In directory sc8-pr-cvs1:/tmp/cvs-serv2549/Modules Modified Files: readline.c Log Message: Remove inaccurate (and it turns out, entirely superfluous) declarations of PyOS_InputHook and PyOS_ReadlineFunctionPointer). The inaccuracies were causing problems in framework builds on Mac OS X. Index: readline.c =================================================================== RCS file: /cvsroot/python/python/dist/src/Modules/readline.c,v retrieving revision 2.63 retrieving revision 2.64 diff -C2 -d -r2.63 -r2.64 *** readline.c 1 Jul 2003 20:15:21 -0000 2.63 --- readline.c 17 Jul 2003 16:26:58 -0000 2.64 *************** *** 32,39 **** #endif - /* Pointers needed from outside (but not declared in a header file). */ - PyAPI_FUNC(int) (*PyOS_InputHook)(void); - PyAPI_FUNC(char) *(*PyOS_ReadlineFunctionPointer)(FILE *, FILE *,char *); - /* Exported function to send one line to readline's init file parser */ --- 32,35 ---- From jhylton@users.sourceforge.net Thu Jul 17 17:31:02 2003 From: jhylton@users.sourceforge.net (jhylton@users.sourceforge.net) Date: Thu, 17 Jul 2003 09:31:02 -0700 Subject: [Python-checkins] python/dist/src/Lib/test test_urllibnet.py,1.5,1.6 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/test In directory sc8-pr-cvs1:/tmp/cvs-serv3615 Modified Files: test_urllibnet.py Log Message: Reflow long line. Index: test_urllibnet.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/test/test_urllibnet.py,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** test_urllibnet.py 15 Jun 2003 23:26:30 -0000 1.5 --- test_urllibnet.py 17 Jul 2003 16:31:00 -0000 1.6 *************** *** 116,121 **** FILE = file(file_location) try: ! self.assert_(FILE.read(), "reading from the file location returned " ! "by urlretrieve failed") finally: FILE.close() --- 116,121 ---- FILE = file(file_location) try: ! self.assert_(FILE.read(), "reading from the file location returned" ! " by urlretrieve failed") finally: FILE.close() From montanaro@users.sourceforge.net Thu Jul 17 17:45:45 2003 From: montanaro@users.sourceforge.net (montanaro@users.sourceforge.net) Date: Thu, 17 Jul 2003 09:45:45 -0700 Subject: [Python-checkins] python/dist/src/Tools/scripts which.py,1.11,1.12 Message-ID: Update of /cvsroot/python/python/dist/src/Tools/scripts In directory sc8-pr-cvs1:/tmp/cvs-serv6161 Modified Files: which.py Log Message: fix for bug 773020 - splitting PATH should use os.pathsep Index: which.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Tools/scripts/which.py,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** which.py 13 May 2003 18:14:25 -0000 1.11 --- which.py 17 Jul 2003 16:45:43 -0000 1.12 *************** *** 14,18 **** sys.stderr.write(str + '\n') ! pathlist = os.environ['PATH'].split(':') sts = 0 --- 14,18 ---- sys.stderr.write(str + '\n') ! pathlist = os.environ['PATH'].split(os.pathsep) sts = 0 From jhylton@users.sourceforge.net Thu Jul 17 17:58:50 2003 From: jhylton@users.sourceforge.net (jhylton@users.sourceforge.net) Date: Thu, 17 Jul 2003 09:58:50 -0700 Subject: [Python-checkins] python/dist/src/Modules socketmodule.c,1.270,1.271 Message-ID: Update of /cvsroot/python/python/dist/src/Modules In directory sc8-pr-cvs1:/tmp/cvs-serv8093 Modified Files: socketmodule.c Log Message: Get socketmodule compiling on IRIX 6.5.10. I don't think the fix here is very good, but I'm not sure what would be better. In particular, we should not be defining _SGIAPI, but lots of things break if we remove it. Index: socketmodule.c =================================================================== RCS file: /cvsroot/python/python/dist/src/Modules/socketmodule.c,v retrieving revision 1.270 retrieving revision 1.271 diff -C2 -d -r1.270 -r1.271 *** socketmodule.c 9 Jul 2003 04:57:46 -0000 1.270 --- socketmodule.c 17 Jul 2003 16:58:48 -0000 1.271 *************** *** 186,195 **** #endif ! #if defined(__sgi)&&_COMPILER_VERSION>700 && !_SGIAPI /* make sure that the reentrant (gethostbyaddr_r etc) functions are declared correctly if compiling with MIPSPro 7.x in ANSI C mode (default) */ #define _SGIAPI 1 ! #include "netdb.h" #endif --- 186,204 ---- #endif ! #if defined(__sgi) && _COMPILER_VERSION>700 && !_SGIAPI /* make sure that the reentrant (gethostbyaddr_r etc) functions are declared correctly if compiling with MIPSPro 7.x in ANSI C mode (default) */ + + /* XXX Using _SGIAPI is the wrong thing, + but I don't know what the right thing is. */ #define _SGIAPI 1 ! ! #ifndef ENABLE_IPV6 ! #define INET_ADDRSTRLEN 16 ! #endif ! ! #define HAVE_INET_PTON ! #include #endif From jhylton@users.sourceforge.net Thu Jul 17 18:23:32 2003 From: jhylton@users.sourceforge.net (jhylton@users.sourceforge.net) Date: Thu, 17 Jul 2003 10:23:32 -0700 Subject: [Python-checkins] python/dist/src/Misc ACKS,1.241,1.242 Message-ID: Update of /cvsroot/python/python/dist/src/Misc In directory sc8-pr-cvs1:/tmp/cvs-serv12219 Modified Files: ACKS Log Message: SF bug 770601. Index: ACKS =================================================================== RCS file: /cvsroot/python/python/dist/src/Misc/ACKS,v retrieving revision 1.241 retrieving revision 1.242 diff -C2 -d -r1.241 -r1.242 *** ACKS 29 Jun 2003 03:27:45 -0000 1.241 --- ACKS 17 Jul 2003 17:23:30 -0000 1.242 *************** *** 134,137 **** --- 134,138 ---- Jonathan Dasteel John DeGood + Vincent Delft Roger Dev Toby Dickenson From jhylton@users.sourceforge.net Thu Jul 17 18:58:01 2003 From: jhylton@users.sourceforge.net (jhylton@users.sourceforge.net) Date: Thu, 17 Jul 2003 10:58:01 -0700 Subject: [Python-checkins] python/dist/src/Misc NEWS,1.815,1.816 Message-ID: Update of /cvsroot/python/python/dist/src/Misc In directory sc8-pr-cvs1:/tmp/cvs-serv20576/Misc Modified Files: NEWS Log Message: Partial progress on NEWS. Index: NEWS =================================================================== RCS file: /cvsroot/python/python/dist/src/Misc/NEWS,v retrieving revision 1.815 retrieving revision 1.816 diff -C2 -d -r1.815 -r1.816 *** NEWS 16 Jul 2003 22:19:24 -0000 1.815 --- NEWS 17 Jul 2003 17:57:58 -0000 1.816 *************** *** 5,10 **** (editors: check NEWS.help for information about editing NEWS using ReST.) ! What's New in Python 2.3 release candidate? ! =========================================== Core and builtins --- 5,10 ---- (editors: check NEWS.help for information about editing NEWS using ReST.) ! What's New in Python 2.3 release candidate 1? ! ============================================= Core and builtins *************** *** 25,28 **** --- 25,47 ---- is raised now. + - Several bugs in the symbol table phase of the compiler have been + fixed. Errors could be lost and compilation could fail without + reporting an error. SF patch #763201. + + - The interpreter is now more robust about importing the warnings + module. In an executable generated by freeze or similar programs, + earlier versions of 2.3 would fail if the warnings module could + not be found on the file system. Fixes SF bug #771097. + + - A warning about assignments to module attributes that shadow + builtins, present in earlier releases of 2.3, has been removed. + + - It is not possible to create subclasses of builtin types like str + and tuple that define an itemsize. Earlier releases of Python 2.3 + allowed this by mistake, leading to crashes and other problems. + + - The thread_id is now initialized to 0 in a non-thread build. SF bug + #770247. + Extension modules ----------------- *************** *** 38,44 **** --- 57,74 ---- contained within the _strptime module. + - bsddb3 no longer crashes if an environment is closed before a + cursor. SF bug #763298. + + - The print slot of weakref proxy objects was removed, because it was + not consistent with the object's repr slot. + + - The mmap module only checks file size for regular files, not + character or block devices. SF patch #708374. + Library ------- + - distutils now supports MSVC 7.1 + - doctest now examines all docstrings by default. Previously, it would skip over functions with private names (as indicated by the underscore *************** *** 50,63 **** or Tester(). ! - Closing a dumbdbm database more than once is now harmless (it used to ! raise a nuisance exception on the second close). ! - It's vital that a dumbdbm database be closed properly, else the ! on-disk data and directory files can be left in mutually inconsistent ! states. dumbdbm.py's _Database.__del__() method attempted to close ! the database properly, but a shutdown race in _Database._commit() ! could prevent this from working, so that a program trusting __del__() ! to get the on-disk files in synch could be badly surprised. The race ! has been repaired. - The classes in threading.py are now new-style classes. That they --- 80,94 ---- or Tester(). ! - There were several fixes to the way dumbdbms are closed. It's vital ! that a dumbdbm database be closed properly, else the on-disk data ! and directory files can be left in mutually inconsistent states. ! dumbdbm.py's _Database.__del__() method attempted to close the ! database properly, but a shutdown race in _Database._commit() could ! prevent this from working, so that a program trusting __del__() to ! get the on-disk files in synch could be badly surprised. The race ! has been repaired. A sync() method was also added so that shelve ! can guarantee data is written to disk. ! The close() method can now be called more than once without complaint. - The classes in threading.py are now new-style classes. That they *************** *** 70,73 **** --- 101,109 ---- which could occur with Tk 8.4 + - SF bug 770601: CGIHTTPServer.py now passes the entire environment + to child processes. + + - SF bug 765238: Add filter to fnmatch's __all__. + Tools/Demos ----------- *************** *** 75,80 **** --- 111,124 ---- - SF bug 753592: webchecker/wsgui now handles user supplied directories. + - See Lib/idlelib/NEWS.txt for IDLE news. + Build ----- + + - The socket module compiles on IRIX 6.5.10. + + - An irix64 system is treated the same way as an irix6 system. SF + patch #764560. + C API From jhylton@users.sourceforge.net Thu Jul 17 18:58:40 2003 From: jhylton@users.sourceforge.net (jhylton@users.sourceforge.net) Date: Thu, 17 Jul 2003 10:58:40 -0700 Subject: [Python-checkins] python/dist/src README,1.174,1.175 Message-ID: Update of /cvsroot/python/python/dist/src In directory sc8-pr-cvs1:/tmp/cvs-serv20699 Modified Files: README Log Message: Update version label Index: README =================================================================== RCS file: /cvsroot/python/python/dist/src/README,v retrieving revision 1.174 retrieving revision 1.175 diff -C2 -d -r1.174 -r1.175 *** README 14 Jun 2003 05:29:27 -0000 1.174 --- README 17 Jul 2003 17:58:38 -0000 1.175 *************** *** 1,4 **** ! This is Python version 2.3 beta 1 ! ================================= Copyright (c) 2001, 2002, 2003 Python Software Foundation. --- 1,4 ---- ! This is Python version 2.3 release candidate 1 ! ============================================== Copyright (c) 2001, 2002, 2003 Python Software Foundation. From jhylton@users.sourceforge.net Thu Jul 17 20:18:52 2003 From: jhylton@users.sourceforge.net (jhylton@users.sourceforge.net) Date: Thu, 17 Jul 2003 12:18:52 -0700 Subject: [Python-checkins] python/dist/src/Misc ACKS,1.242,1.243 Message-ID: Update of /cvsroot/python/python/dist/src/Misc In directory sc8-pr-cvs1:/tmp/cvs-serv4379 Modified Files: ACKS Log Message: SF patch 764470 Index: ACKS =================================================================== RCS file: /cvsroot/python/python/dist/src/Misc/ACKS,v retrieving revision 1.242 retrieving revision 1.243 diff -C2 -d -r1.242 -r1.243 *** ACKS 17 Jul 2003 17:23:30 -0000 1.242 --- ACKS 17 Jul 2003 19:18:50 -0000 1.243 *************** *** 423,426 **** --- 423,427 ---- Chris Petrilli Geoff Philbrick + Gavrie Philipson Adrian Phillips Christopher J. Phoenix From jhylton@users.sourceforge.net Thu Jul 17 20:19:08 2003 From: jhylton@users.sourceforge.net (jhylton@users.sourceforge.net) Date: Thu, 17 Jul 2003 12:19:08 -0700 Subject: [Python-checkins] python/dist/src/Misc NEWS,1.816,1.817 Message-ID: Update of /cvsroot/python/python/dist/src/Misc In directory sc8-pr-cvs1:/tmp/cvs-serv4444 Modified Files: NEWS Log Message: The rest of the news. Index: NEWS =================================================================== RCS file: /cvsroot/python/python/dist/src/Misc/NEWS,v retrieving revision 1.816 retrieving revision 1.817 diff -C2 -d -r1.816 -r1.817 *** NEWS 17 Jul 2003 17:57:58 -0000 1.816 --- NEWS 17 Jul 2003 19:19:05 -0000 1.817 *************** *** 14,36 **** by sys.setcheckinterval(). - - The Windows implementation of PyThread_start_new_thread() never - checked error returns from Windows functions correctly. As a result, - it could claim to start a new thread even when the Microsoft - _beginthread() function failed (due to "too many threads" -- this is - on the order of thousands when it happens). In these cases, the - Python exception :: - - thread.error: can't start new thread - - is raised now. - - Several bugs in the symbol table phase of the compiler have been fixed. Errors could be lost and compilation could fail without ! reporting an error. SF patch #763201. - The interpreter is now more robust about importing the warnings module. In an executable generated by freeze or similar programs, earlier versions of 2.3 would fail if the warnings module could ! not be found on the file system. Fixes SF bug #771097. - A warning about assignments to module attributes that shadow --- 14,25 ---- by sys.setcheckinterval(). - Several bugs in the symbol table phase of the compiler have been fixed. Errors could be lost and compilation could fail without ! reporting an error. SF patch 763201. - The interpreter is now more robust about importing the warnings module. In an executable generated by freeze or similar programs, earlier versions of 2.3 would fail if the warnings module could ! not be found on the file system. Fixes SF bug 771097. - A warning about assignments to module attributes that shadow *************** *** 42,46 **** - The thread_id is now initialized to 0 in a non-thread build. SF bug ! #770247. Extension modules --- 31,37 ---- - The thread_id is now initialized to 0 in a non-thread build. SF bug ! 770247. ! ! - SF bug 762891: "del p[key]" on proxy object no longer raises SystemError. Extension modules *************** *** 57,68 **** contained within the _strptime module. - - bsddb3 no longer crashes if an environment is closed before a - cursor. SF bug #763298. - - The print slot of weakref proxy objects was removed, because it was not consistent with the object's repr slot. - The mmap module only checks file size for regular files, not ! character or block devices. SF patch #708374. Library --- 48,72 ---- contained within the _strptime module. - The print slot of weakref proxy objects was removed, because it was not consistent with the object's repr slot. - The mmap module only checks file size for regular files, not ! character or block devices. SF patch 708374. ! ! - The cPickle Pickler garbage collection support was fixed to traverse ! the find_class attribute, if present. ! ! - There are several fixes for the bsddb3 wrapper module. ! ! bsddb3 no longer crashes if an environment is closed before a cursor ! (SF bug 763298). ! ! The DB and DBEnv set_get_returns_none function was extended to take ! a level instead of a boolean flag. The new level 2 mans return None ! instead of raising an exception. This applies to set methods. ! ! A typo was fixed in DBCursor.join_item(), preventing a crash. ! ! - The time module Library *************** *** 95,98 **** --- 99,105 ---- weren't before was an oversight. + - The urllib2 digest authentication handlers now define the correct + auth_header. The earlier versions would fail at runtime. + - SF bug 763023: fix uncaught ZeroDivisionError in difflib ratio methods when there are no lines. *************** *** 104,134 **** to child processes. ! - SF bug 765238: Add filter to fnmatch's __all__. Tools/Demos ----------- - SF bug 753592: webchecker/wsgui now handles user supplied directories. ! - See Lib/idlelib/NEWS.txt for IDLE news. Build ----- - The socket module compiles on IRIX 6.5.10. ! - An irix64 system is treated the same way as an irix6 system. SF ! patch #764560. C API ----- Windows ------- Mac --- What's New in Python 2.3 beta 2? --- 111,199 ---- to child processes. ! - SF bug 765238: add filter to fnmatch's __all__. ! ! - SF bug 748201: make time.strptime() error messages more helpful. ! ! - SF patch 764470: Do not dump the args attribute of a Fault object in ! xmlrpclib. ! ! - SF patch 549151: urllib and urllib2 now redirect POSTs on 301 ! responses. ! ! - SF patch 766650: The whichdb module was fixed to recognize dbm files ! generated by gdbm on OS/2 EMX. ! ! - SF bugs 763047 and 763052: fixes bug of timezone value being left as ! -1 when ``time.tzname[0] == time.tzname[1] and not time.daylight`` ! is true when it should only when time.daylight is true. ! ! - SF bug 764548: re now allows subclasses of str and unicode to be ! used as patterns. ! ! - SF bug 763637: In Tkinter, change after_cancel() to handle tuples ! of varying sizes. Tk 8.4 returns a different number of values ! than Tk 8.3. ! ! - SF bug 763023: difflib.ratio() did not catch zero division. ! ! - The Queue module now has an __all__ attribute. Tools/Demos ----------- + - See Lib/idlelib/NEWS.txt for IDLE news. + - SF bug 753592: webchecker/wsgui now handles user supplied directories. ! - The trace.py script has been removed. It is now in the standard library. Build ----- + - Python now compiles with -fno-strict-aliasing if possible (SF bug 766696). + - The socket module compiles on IRIX 6.5.10. ! - An irix64 system is treated the same way as an irix6 system (SF ! patch 764560). + - Several definitions were missing on FreeBSD 5.x unless the + __BSD_VISIBLE symbol was defined. configure now defines it as + needed. C API ----- + - Unicode objects now support mbcs as a built-in encoding, so the C + API can use it without deferring to the encodings package. + Windows ------- + - The Windows implementation of PyThread_start_new_thread() never + checked error returns from Windows functions correctly. As a result, + it could claim to start a new thread even when the Microsoft + _beginthread() function failed (due to "too many threads" -- this is + on the order of thousands when it happens). In these cases, the + Python exception :: + + thread.error: can't start new thread + + is raised now. + + - SF bug 766669: Prevent a GPF on interpreter exit when sockets are in + use. The interpreter now calls WSACleanup() from Py_Finalize() + instead of from DLL teardown. + Mac --- + - Bundlebuilder now inherits default values in the right way. It was + previously possible for app bundles to et a type of "BNDL" instead + of "APPL." Other improvements include, a --build-id option to + specify the CFBundleIdentifier and using the --python option to set + the executable in the bundle. + + - Fixed two bugs in MacOSX framework handling. What's New in Python 2.3 beta 2? From akuchling@users.sourceforge.net Fri Jul 18 00:57:00 2003 From: akuchling@users.sourceforge.net (akuchling@users.sourceforge.net) Date: Thu, 17 Jul 2003 16:57:00 -0700 Subject: [Python-checkins] python/dist/src/Doc/whatsnew whatsnew23.tex,1.154,1.155 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/whatsnew In directory sc8-pr-cvs1:/tmp/cvs-serv3136 Modified Files: whatsnew23.tex Log Message: Complete the rewrite pass; add a few more items; bump version number to 0.90; remove comment about draft status Index: whatsnew23.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/whatsnew/whatsnew23.tex,v retrieving revision 1.154 retrieving revision 1.155 diff -C2 -d -r1.154 -r1.155 *** whatsnew23.tex 16 Jul 2003 20:37:26 -0000 1.154 --- whatsnew23.tex 17 Jul 2003 23:56:58 -0000 1.155 *************** *** 4,8 **** \title{What's New in Python 2.3} ! \release{0.11} \author{A.M.\ Kuchling} \authoraddress{\email{amk@amk.ca}} --- 4,8 ---- \title{What's New in Python 2.3} ! \release{0.90} \author{A.M.\ Kuchling} \authoraddress{\email{amk@amk.ca}} *************** *** 14,18 **** % To do: % PYTHONINSPECT - % file.encoding % doctest extensions % new version of IDLE --- 14,17 ---- *************** *** 22,29 **** %\section{Introduction \label{intro}} - {\large This article is a draft, and is currently up to date for - Python 2.3rc1. Please send any additions, comments or errata to the - author.} - This article explains the new features in Python 2.3. The tentative release date of Python 2.3 is currently scheduled for August 2003. --- 21,24 ---- *************** *** 1190,1193 **** --- 1185,1197 ---- \code{None} may finally become a keyword. + \item The \method{xreadlines()} method of file objects, introduced in + Python 2.1, is no longer necessary because files now behave as their + own iterator. \method{xreadlines()} was originally introduced as a + faster way to loop over all the lines in a file, but now you can + simply write \code{for line in file_obj}. File objects also have a + new read-only \member{encoding} attribute that gives the encoding used + by the file; Unicode strings written to the file will be automatically + converted to bytes using the given encoding. + \item The method resolution order used by new-style classes has changed, though you'll only notice the difference if you have a really *************** *** 1289,1293 **** \item The \method{startswith()} and \method{endswith()} ! string methods now accept negative numbers for the start and end parameters. --- 1293,1297 ---- \item The \method{startswith()} and \method{endswith()} ! string methods now accept negative numbers for the \var{start} and \var{end} parameters. *************** *** 1315,1319 **** can't create \class{basestring} instances. ! \item Interned strings are no longer immortal, and will now be garbage-collected in the usual way when the only reference to them is from the internal dictionary of interned strings. (Implemented by --- 1319,1323 ---- can't create \class{basestring} instances. ! \item Interned strings are no longer immortal and will now be garbage-collected in the usual way when the only reference to them is from the internal dictionary of interned strings. (Implemented by *************** *** 1351,1360 **** \item A number of small rearrangements have been made in various ! hotspots to improve performance, inlining a function here, removing ! some code there. (Implemented mostly by GvR, but lots of people have ! contributed single changes.) \end{itemize} %====================================================================== --- 1355,1367 ---- \item A number of small rearrangements have been made in various ! hotspots to improve performance, such as inlining a function or removing ! some code. (Implemented mostly by GvR, but lots of people have ! contributed single changes.) \end{itemize} + The net result of the 2.3 optimizations is that Python 2.3 runs the + pystone benchmark around 25\% faster than Python 2.2. + %====================================================================== *************** *** 1380,1383 **** --- 1387,1391 ---- providing a more complete interface to the transactional features of the BerkeleyDB library. + The old version of the module has been renamed to \module{bsddb185} and is no longer built automatically; you'll *************** *** 1385,1402 **** \module{bsddb} package is intended to be compatible with the old module, so be sure to file bugs if you discover any ! incompatibilities. When upgrading to Python 2.3, if you also change the underlying BerkeleyDB library, you will almost certainly have to convert your database files to the new version. You can do this fairly easily with the new scripts \file{db2pickle.py} and \file{pickle2db.py} which you will find in the distribution's ! Tools/scripts directory. If you've already been using the PyBSDDB package and importing it as \module{bsddb3}, you will have to change your ! \code{import} statements. \item The new \module{bz2} module is an interface to the bz2 data ! compression library. bz2 usually produces output that's smaller than ! the compressed output from the \module{zlib} module, meaning that it ! compresses data more highly. (Contributed by Gustavo Niemeyer.) \item The Distutils \class{Extension} class now supports an extra constructor argument named \var{depends} for listing --- 1393,1413 ---- \module{bsddb} package is intended to be compatible with the old module, so be sure to file bugs if you discover any ! incompatibilities. When upgrading to Python 2.3, if the new interpreter is compiled ! with a new version of the underlying BerkeleyDB library, you will almost certainly have to convert your database files to the new version. You can do this fairly easily with the new scripts \file{db2pickle.py} and \file{pickle2db.py} which you will find in the distribution's ! \file{Tools/scripts} directory. If you've already been using the PyBSDDB package and importing it as \module{bsddb3}, you will have to change your ! \code{import} statements to import it as \module{bsddb}. \item The new \module{bz2} module is an interface to the bz2 data ! compression library. bz2-compressed data is usually smaller than ! corresponding \module{zlib}-compressed data. (Contributed by Gustavo Niemeyer.) + \item A set of standard date/type types has been added in the new \module{datetime} + module. See the following section for more details. + \item The Distutils \class{Extension} class now supports an extra constructor argument named \var{depends} for listing *************** *** 1422,1425 **** --- 1433,1442 ---- by Robert Weber). + \item Previously the \module{doctest} module would only search the + docstrings of public methods and functions for test cases, but it now + also examines private ones as well. The \function{DocTestSuite(} + function creates a \class{unittest.TestSuite} object from a set of + \module{doctest} tests. + \item The new \function{gc.get_referents(\var{object})} function returns a list of all the objects referenced by \var{object}. *************** *** 1467,1471 **** \function{heappop()} functions for adding and removing items while maintaining the heap property on top of some other mutable Python ! sequence type. For example: \begin{verbatim} --- 1484,1488 ---- \function{heappop()} functions for adding and removing items while maintaining the heap property on top of some other mutable Python ! sequence type. Here's an example that uses a Python list: \begin{verbatim} *************** *** 1511,1515 **** Hettinger.) ! \item Several new functions (\function{getpgid()}, \function{killpg()}, \function{lchown()}, \function{loadavg()}, \function{major()}, \function{makedev()}, \function{minor()}, and \function{mknod()}) were added to the --- 1528,1532 ---- Hettinger.) ! \item Several new POSIX functions (\function{getpgid()}, \function{killpg()}, \function{lchown()}, \function{loadavg()}, \function{major()}, \function{makedev()}, \function{minor()}, and \function{mknod()}) were added to the *************** *** 1517,1523 **** (Contributed by Gustavo Niemeyer, Geert Jansen, and Denis S. Otkidach.) ! \item In the \module{os} module, the \function{*stat()} family of functions can now report ! fractions of a second in a timestamp. Such time stamps are ! represented as floats, similar to \function{time.time()}. During testing, it was found that some applications will break if time --- 1534,1541 ---- (Contributed by Gustavo Niemeyer, Geert Jansen, and Denis S. Otkidach.) ! \item In the \module{os} module, the \function{*stat()} family of ! functions can now report fractions of a second in a timestamp. Such ! time stamps are represented as floats, similar to ! the value returned by \function{time.time()}. During testing, it was found that some applications will break if time *************** *** 1545,1548 **** --- 1563,1571 ---- per-use basis. + \item The \module{optparse} module contains a new parser for command-line arguments + that can convert option values to a particular Python type + and will automatically generate a usage message. See the following section for + more details. + \item The old and never-documented \module{linuxaudiodev} module has been deprecated, and a new version named \module{ossaudiodev} has been *************** *** 1555,1559 **** that try to determine various properties of the platform you're running on. There are functions for getting the architecture, CPU ! type, the Windows OS version, and even the Linux distribution version. (Contributed by Marc-Andr\'e Lemburg.) --- 1578,1582 ---- that try to determine various properties of the platform you're running on. There are functions for getting the architecture, CPU ! type, the Windows OS version, and even the Linux distribution version. (Contributed by Marc-Andr\'e Lemburg.) *************** *** 1565,1574 **** \item The \function{sample(\var{population}, \var{k})} function was ! added to the \module{random} module. \var{population} is a sequence ! or \class{xrange} object containing the elements of a population, and ! \function{sample()} ! chooses \var{k} elements from the population without replacing chosen ! elements. \var{k} can be any value up to \code{len(\var{population})}. ! For example: \begin{verbatim} --- 1588,1596 ---- \item The \function{sample(\var{population}, \var{k})} function was ! added to the \module{random} module. \var{population} is a sequence or ! \class{xrange} object containing the elements of a population, and ! \function{sample()} chooses \var{k} elements from the population without ! replacing chosen elements. \var{k} can be any value up to ! \code{len(\var{population})}. For example: \begin{verbatim} *************** *** 1698,1709 **** \end{verbatim} ! Code can then call functions and use classes in \module{_threading} ! whether or not threads are supported, avoiding an \keyword{if} ! statement and making the code slightly clearer. This module will not ! magically make multithreaded code run without threads; code that waits ! for another thread to return or to do something will simply hang ! forever. (In this example, \module{_threading} is used as the module ! name to make it clear that the module being used is not necessarily ! the actual \module{threading} module.) \item The \module{time} module's \function{strptime()} function has --- 1720,1731 ---- \end{verbatim} ! In this example, \module{_threading} is used as the module name to make ! it clear that the module being used is not necessarily the actual ! \module{threading} module. Code can call functions and use classes in ! \module{_threading} whether or not threads are supported, avoiding an ! \keyword{if} statement and making the code slightly clearer. This ! module will not magically make multithreaded code run without threads; ! code that waits for another thread to return or to do something will ! simply hang forever. \item The \module{time} module's \function{strptime()} function has *************** *** 1737,1793 **** \end{verbatim} - - \item The \module{UserDict} module has a new \class{DictMixin} class which - defines all dictionary methods for classes that already have a minimum - mapping interface. This greatly simplifies writing classes that need - to be substitutable for dictionaries, such as the classes in - the \module{shelve} module. - - Adding the mixin as a superclass provides the full dictionary - interface whenever the class defines \method{__getitem__}, - \method{__setitem__}, \method{__delitem__}, and \method{keys}. - For example: - - \begin{verbatim} - >>> import UserDict - >>> class SeqDict(UserDict.DictMixin): - """Dictionary lookalike implemented with lists.""" - def __init__(self): - self.keylist = [] - self.valuelist = [] - def __getitem__(self, key): - try: - i = self.keylist.index(key) - except ValueError: - raise KeyError - return self.valuelist[i] - def __setitem__(self, key, value): - try: - i = self.keylist.index(key) - self.valuelist[i] = value - except ValueError: - self.keylist.append(key) - self.valuelist.append(value) - def __delitem__(self, key): - try: - i = self.keylist.index(key) - except ValueError: - raise KeyError - self.keylist.pop(i) - self.valuelist.pop(i) - def keys(self): - return list(self.keylist) - - >>> s = SeqDict() - >>> dir(s) # See that other dictionary methods are implemented - ['__cmp__', '__contains__', '__delitem__', '__doc__', '__getitem__', - '__init__', '__iter__', '__len__', '__module__', '__repr__', - '__setitem__', 'clear', 'get', 'has_key', 'items', 'iteritems', - 'iterkeys', 'itervalues', 'keylist', 'keys', 'pop', 'popitem', - 'setdefault', 'update', 'valuelist', 'values'] - \end{verbatim} - - (Contributed by Raymond Hettinger.) - \item The \module{Tix} module has received various bug fixes and updates for the current version of the Tix package. --- 1759,1762 ---- *************** *** 1802,1806 **** results. Other interfaces can't be handled automatically but \module{Tkinter} will now raise an exception on such an access so that ! at least you can find out about the problem. See \url{http://mail.python.org/pipermail/python-dev/2002-December/031107.html} % for a more detailed explanation of this change. (Implemented by --- 1771,1775 ---- results. Other interfaces can't be handled automatically but \module{Tkinter} will now raise an exception on such an access so that ! you can at least find out about the problem. See \url{http://mail.python.org/pipermail/python-dev/2002-December/031107.html} % for a more detailed explanation of this change. (Implemented by *************** *** 1830,1833 **** --- 1799,1855 ---- Any breakage caused by this change should be reported as a bug. + \item The \module{UserDict} module has a new \class{DictMixin} class which + defines all dictionary methods for classes that already have a minimum + mapping interface. This greatly simplifies writing classes that need + to be substitutable for dictionaries, such as the classes in + the \module{shelve} module. + + Adding the mix-in as a superclass provides the full dictionary + interface whenever the class defines \method{__getitem__}, + \method{__setitem__}, \method{__delitem__}, and \method{keys}. + For example: + + \begin{verbatim} + >>> import UserDict + >>> class SeqDict(UserDict.DictMixin): + ... """Dictionary lookalike implemented with lists.""" + ... def __init__(self): + ... self.keylist = [] + ... self.valuelist = [] + ... def __getitem__(self, key): + ... try: + ... i = self.keylist.index(key) + ... except ValueError: + ... raise KeyError + ... return self.valuelist[i] + ... def __setitem__(self, key, value): + ... try: + ... i = self.keylist.index(key) + ... self.valuelist[i] = value + ... except ValueError: + ... self.keylist.append(key) + ... self.valuelist.append(value) + ... def __delitem__(self, key): + ... try: + ... i = self.keylist.index(key) + ... except ValueError: + ... raise KeyError + ... self.keylist.pop(i) + ... self.valuelist.pop(i) + ... def keys(self): + ... return list(self.keylist) + ... + >>> s = SeqDict() + >>> dir(s) # See that other dictionary methods are implemented + ['__cmp__', '__contains__', '__delitem__', '__doc__', '__getitem__', + '__init__', '__iter__', '__len__', '__module__', '__repr__', + '__setitem__', 'clear', 'get', 'has_key', 'items', 'iteritems', + 'iterkeys', 'itervalues', 'keylist', 'keys', 'pop', 'popitem', + 'setdefault', 'update', 'valuelist', 'values'] + \end{verbatim} + + (Contributed by Raymond Hettinger.) + + \item The DOM implementation in \module{xml.dom.minidom} can now generate XML output in a *************** *** 1861,1866 **** is ASCII only. ! To implement this change, the module \module{stringprep}, the tool ! \code{mkstringprep} and the \code{punycode} encoding have been added. \end{itemize} --- 1883,1888 ---- is ASCII only. ! To implement this change, the \module{stringprep} module, the ! \code{mkstringprep} tool and the \code{punycode} encoding have been added. \end{itemize} *************** *** 1905,1909 **** The \method{replace()} method allows modifying one or more fields ! of a \class{date} or \class{datetime} instance: \begin{verbatim} --- 1927,1931 ---- The \method{replace()} method allows modifying one or more fields ! of a \class{date} or \class{datetime} instance, returning a new instance: \begin{verbatim} *************** *** 1920,1924 **** \class{datetime} instances can be subtracted from each other, and added to \class{timedelta} instances. The largest missing feature is ! that there's no support for parsing strings and getting back a \class{date} or \class{datetime}. --- 1942,1946 ---- \class{datetime} instances can be subtracted from each other, and added to \class{timedelta} instances. The largest missing feature is ! that there's no standard library support for parsing strings and getting back a \class{date} or \class{datetime}. *************** *** 1957,1968 **** \begin{verbatim} ! import optparse ! ! options, args = optparse.parse_args(sys.argv[1:]) print options print args \end{verbatim} ! This returns an object containing all of the option values, and a list of strings containing the remaining arguments. --- 1979,1988 ---- \begin{verbatim} ! options, args = op.parse_args(sys.argv[1:]) print options print args \end{verbatim} ! This returns an object containing all of the option values, and a list of strings containing the remaining arguments. *************** *** 2046,2050 **** Memory allocated with one family must not be manipulated with functions from the other family. There is one family for allocating ! chunks of memory, and another family of functions specifically for allocating Python objects. --- 2066,2070 ---- Memory allocated with one family must not be manipulated with functions from the other family. There is one family for allocating ! chunks of memory and another family of functions specifically for allocating Python objects. *************** *** 2095,2101 **** \begin{itemize} ! \item The C-level interface to the garbage collector has been changed, to make it easier to write extension types that support garbage ! collection, and to make it easier to debug misuses of the functions. Various functions have slightly different semantics, so a bunch of functions had to be renamed. Extensions that use the old API will --- 2115,2121 ---- \begin{itemize} ! \item The C-level interface to the garbage collector has been changed to make it easier to write extension types that support garbage ! collection and to debug misuses of the functions. Various functions have slightly different semantics, so a bunch of functions had to be renamed. Extensions that use the old API will *************** *** 2123,2127 **** \item The cycle detection implementation used by the garbage collection ! has proven to be stable, so it's now being made mandatory; you can no longer compile Python without it, and the \longprogramopt{with-cycle-gc} switch to \program{configure} has been removed. --- 2143,2147 ---- \item The cycle detection implementation used by the garbage collection ! has proven to be stable, so it's now been made mandatory. You can no longer compile Python without it, and the \longprogramopt{with-cycle-gc} switch to \program{configure} has been removed. *************** *** 2156,2169 **** \item A new function, \cfunction{PyObject_DelItemString(\var{mapping}, ! char *\var{key})} was added ! as shorthand for \code{PyObject_DelItem(\var{mapping}, PyString_New(\var{key}))}. - \item The \method{xreadlines()} method of file objects, introduced in - Python 2.1, is no longer necessary because files now behave as their - own iterator. \method{xreadlines()} was originally introduced as a - faster way to loop over all the lines in a file, but now you can - simply write \code{for line in file_obj}. - \item File objects now manage their internal string buffer differently, increasing it exponentially when needed. This results in --- 2176,2182 ---- \item A new function, \cfunction{PyObject_DelItemString(\var{mapping}, ! char *\var{key})} was added as shorthand for \code{PyObject_DelItem(\var{mapping}, PyString_New(\var{key}))}. \item File objects now manage their internal string buffer differently, increasing it exponentially when needed. This results in *************** *** 2315,2321 **** \item The Distutils \function{setup()} function has gained various new keyword arguments such as \var{depends}. Old versions of the ! Distutils will abort if passed unknown keywords. The fix is to check for the presence of the new \function{get_distutil_options()} function ! in your \file{setup.py} if you want to only support the new keywords with a version of the Distutils that supports them: --- 2328,2334 ---- \item The Distutils \function{setup()} function has gained various new keyword arguments such as \var{depends}. Old versions of the ! Distutils will abort if passed unknown keywords. A solution is to check for the presence of the new \function{get_distutil_options()} function ! in your \file{setup.py} and only uses the new keywords with a version of the Distutils that supports them: From akuchling@users.sourceforge.net Fri Jul 18 02:15:53 2003 From: akuchling@users.sourceforge.net (akuchling@users.sourceforge.net) Date: Thu, 17 Jul 2003 18:15:53 -0700 Subject: [Python-checkins] python/dist/src/Doc/whatsnew whatsnew23.tex,1.155,1.156 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/whatsnew In directory sc8-pr-cvs1:/tmp/cvs-serv26238 Modified Files: whatsnew23.tex Log Message: Add a few more items Index: whatsnew23.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/whatsnew/whatsnew23.tex,v retrieving revision 1.155 retrieving revision 1.156 diff -C2 -d -r1.155 -r1.156 *** whatsnew23.tex 17 Jul 2003 23:56:58 -0000 1.155 --- whatsnew23.tex 18 Jul 2003 01:15:51 -0000 1.156 *************** *** 13,20 **** % To do: - % PYTHONINSPECT - % doctest extensions - % new version of IDLE - % XML-RPC nil extension % MacOS framework-related changes (section of its own, probably) --- 13,16 ---- *************** *** 1504,1507 **** --- 1500,1511 ---- (Contributed by Kevin O'Connor.) + \item The IDLE integrated development environment has been updated + using the code from the IDLEfork project + (\url{http://idlefork.sf.net}). The most notable feature is that the + code being developed is now executed in a subprocess, meaning that + there's no longer any need for manual \code{reload()} operations. + IDLE's core code has been incorporated into the standard library as the + \module{idlelib} package. + \item The \module{imaplib} module now supports IMAP over SSL. (Contributed by Piers Lauder and Tino Lange.) *************** *** 1851,1855 **** (Contributed by Raymond Hettinger.) - \item The DOM implementation in \module{xml.dom.minidom} can now generate XML output in a --- 1855,1858 ---- *************** *** 1857,1860 **** --- 1860,1870 ---- the \method{toxml()} and \method{toprettyxml()} methods of DOM nodes. + \item The \module{xmlrpclib} module now supports an XML-RPC extension + for handling nil data values such as Python's \code{None}. Nil values + are always supported on unmarshalling an XML-RPC response. To + generate requests containing \code{None}, you must supply a true value + for the \var{allow_none} parameter when creating a \class{Marshaller} + instance. + \item The new \module{DocXMLRPCServer} module allows writing self-documenting XML-RPC servers. Run it in demo mode (as a program) *************** *** 2244,2247 **** --- 2254,2264 ---- \begin{itemize} + + \item If the \envvar{PYTHONINSPECT} environment variable is set, the + Python interpreter will enter the interactive prompt after running a + Python program, as if Python had been invoked with the \programopt{-i} + option. The environment variable can be set before running the Python + interpreter, or it can be set by the Python program as part of its + execution. \item The \file{regrtest.py} script now provides a way to allow ``all From akuchling@users.sourceforge.net Fri Jul 18 03:12:18 2003 From: akuchling@users.sourceforge.net (akuchling@users.sourceforge.net) Date: Thu, 17 Jul 2003 19:12:18 -0700 Subject: [Python-checkins] python/dist/src/Doc/whatsnew whatsnew23.tex,1.156,1.157 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/whatsnew In directory sc8-pr-cvs1:/tmp/cvs-serv8394 Modified Files: whatsnew23.tex Log Message: Add introductory paragraphs Remove comment about MacOS changes; I'm not going to have time to figure out what they are Move PEP 273 section into numeric order Index: whatsnew23.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/whatsnew/whatsnew23.tex,v retrieving revision 1.156 retrieving revision 1.157 diff -C2 -d -r1.156 -r1.157 *** whatsnew23.tex 18 Jul 2003 01:15:51 -0000 1.156 --- whatsnew23.tex 18 Jul 2003 02:12:16 -0000 1.157 *************** *** 12,22 **** \tableofcontents ! % To do: ! % MacOS framework-related changes (section of its own, probably) ! %\section{Introduction \label{intro}} ! This article explains the new features in Python 2.3. The tentative ! release date of Python 2.3 is currently scheduled for August 2003. This article doesn't attempt to provide a complete specification of --- 12,34 ---- \tableofcontents ! This article explains the new features in Python 2.3. The ! release date of Python 2.3 is currently scheduled for August 2003. ! The main themes for Python 2.3 are polishing some of the features ! added in 2.2, adding various small but useful enhancements to the core ! language, and expanding the standard library. The new object model ! introduced in the previous version has benefited from 18 months of ! bugfixes and from optimization efforts that have improved the ! performance of new-style classes. A few new built-in functions have ! been added such as \function{sum()} and \function{enumerate()}. The ! \keyword{in} operator can now be used for substring searches (e.g. ! \code{"ab" in "abc"} returns \constant{True}). ! Some of the many new library features include Boolean, set, heap, and ! date/time data types, the ability to import modules from ZIP-format ! archives, metadata support for the long-awaited Python catalog, an ! updated version of IDLE, and modules for logging messages, wrapping ! text, parsing CSV files, processing command-line options, using BerkeleyDB ! databases... the list of new and enhanced modules is lengthy. This article doesn't attempt to provide a complete specification of *************** *** 304,307 **** --- 316,370 ---- %====================================================================== + \section{PEP 273: Importing Modules from Zip Archives} + + The new \module{zipimport} module adds support for importing + modules from a ZIP-format archive. You don't need to import the + module explicitly; it will be automatically imported if a ZIP + archive's filename is added to \code{sys.path}. For example: + + \begin{verbatim} + amk@nyman:~/src/python$ unzip -l /tmp/example.zip + Archive: /tmp/example.zip + Length Date Time Name + -------- ---- ---- ---- + 8467 11-26-02 22:30 jwzthreading.py + -------- ------- + 8467 1 file + amk@nyman:~/src/python$ ./python + Python 2.3 (#1, Aug 1 2003, 19:54:32) + >>> import sys + >>> sys.path.insert(0, '/tmp/example.zip') # Add .zip file to front of path + >>> import jwzthreading + >>> jwzthreading.__file__ + '/tmp/example.zip/jwzthreading.py' + >>> + \end{verbatim} + + An entry in \code{sys.path} can now be the filename of a ZIP archive. + The ZIP archive can contain any kind of files, but only files named + \file{*.py}, \file{*.pyc}, or \file{*.pyo} can be imported. If an + archive only contains \file{*.py} files, Python will not attempt to + modify the archive by adding the corresponding \file{*.pyc} file, meaning + that if a ZIP archive doesn't contain \file{*.pyc} files, importing may be + rather slow. + + A path within the archive can also be specified to only import from a + subdirectory; for example, the path \file{/tmp/example.zip/lib/} + would only import from the \file{lib/} subdirectory within the + archive. + + \begin{seealso} + + \seepep{273}{Import Modules from Zip Archives}{Written by James C. Ahlstrom, + who also provided an implementation. + Python 2.3 follows the specification in \pep{273}, + but uses an implementation written by Just van~Rossum + that uses the import hooks described in \pep{302}. + See section~\ref{section-pep302} for a description of the new import hooks. + } + + \end{seealso} + + %====================================================================== \section{PEP 277: Unicode file name support for Windows NT} *************** *** 653,707 **** \end{seealso} - - %====================================================================== - \section{PEP 273: Importing Modules from Zip Archives} - - The new \module{zipimport} module adds support for importing - modules from a ZIP-format archive. You don't need to import the - module explicitly; it will be automatically imported if a ZIP - archive's filename is added to \code{sys.path}. For example: - - \begin{verbatim} - amk@nyman:~/src/python$ unzip -l /tmp/example.zip - Archive: /tmp/example.zip - Length Date Time Name - -------- ---- ---- ---- - 8467 11-26-02 22:30 jwzthreading.py - -------- ------- - 8467 1 file - amk@nyman:~/src/python$ ./python - Python 2.3 (#1, Aug 1 2003, 19:54:32) - >>> import sys - >>> sys.path.insert(0, '/tmp/example.zip') # Add .zip file to front of path - >>> import jwzthreading - >>> jwzthreading.__file__ - '/tmp/example.zip/jwzthreading.py' - >>> - \end{verbatim} - - An entry in \code{sys.path} can now be the filename of a ZIP archive. - The ZIP archive can contain any kind of files, but only files named - \file{*.py}, \file{*.pyc}, or \file{*.pyo} can be imported. If an - archive only contains \file{*.py} files, Python will not attempt to - modify the archive by adding the corresponding \file{*.pyc} file, meaning - that if a ZIP archive doesn't contain \file{*.pyc} files, importing may be - rather slow. - - A path within the archive can also be specified to only import from a - subdirectory; for example, the path \file{/tmp/example.zip/lib/} - would only import from the \file{lib/} subdirectory within the - archive. - - \begin{seealso} - - \seepep{273}{Import Modules from Zip Archives}{Written by James C. Ahlstrom, - who also provided an implementation. - Python 2.3 follows the specification in \pep{273}, - but uses an implementation written by Just van~Rossum - that uses the import hooks described in \pep{302}. - See section~\ref{section-pep302} for a description of the new import hooks. - } - - \end{seealso} %====================================================================== --- 716,719 ---- From montanaro@users.sourceforge.net Fri Jul 18 03:45:30 2003 From: montanaro@users.sourceforge.net (montanaro@users.sourceforge.net) Date: Thu, 17 Jul 2003 19:45:30 -0700 Subject: [Python-checkins] python/dist/src/Lib/encodings rot_13.py,1.2,1.2.20.1 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/encodings In directory sc8-pr-cvs1:/tmp/cvs-serv14113 Modified Files: Tag: release22-maint rot_13.py Log Message: make #! line more liberal Index: rot_13.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/encodings/rot_13.py,v retrieving revision 1.2 retrieving revision 1.2.20.1 diff -C2 -d -r1.2 -r1.2.20.1 *** rot_13.py 16 May 2001 09:41:45 -0000 1.2 --- rot_13.py 18 Jul 2003 02:45:27 -0000 1.2.20.1 *************** *** 1,3 **** ! #!/usr/local/bin/python2.1 """ Python Character Mapping Codec for ROT13. --- 1,3 ---- ! #!/usr/bin/env python """ Python Character Mapping Codec for ROT13. From jhylton@users.sourceforge.net Fri Jul 18 04:19:23 2003 From: jhylton@users.sourceforge.net (jhylton@users.sourceforge.net) Date: Thu, 17 Jul 2003 20:19:23 -0700 Subject: [Python-checkins] python/dist/src/Lib/test test_logging.py,1.9,1.10 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/test In directory sc8-pr-cvs1:/tmp/cvs-serv19084/test Modified Files: test_logging.py Log Message: Restore the locale to "C" on exit. If this doesn't happen, it leaves the locale in a state that can cause other tests to fail. For example, running test_strptime, test_logging, and test_time in that order. Index: test_logging.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/test/test_logging.py,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** test_logging.py 27 Jun 2003 21:43:39 -0000 1.9 --- test_logging.py 18 Jul 2003 03:19:20 -0000 1.10 *************** *** 31,39 **** try: ! locale.setlocale(locale.LC_ALL, '') except (ValueError, locale.Error): # this happens on a Solaris box which only supports "C" locale # or a Mac OS X box which supports very little locale stuff at all ! pass BANNER = "-- %-10s %-6s ---------------------------------------------------\n" --- 31,39 ---- try: ! cur_locale = locale.setlocale(locale.LC_ALL, '') except (ValueError, locale.Error): # this happens on a Solaris box which only supports "C" locale # or a Mac OS X box which supports very little locale stuff at all ! cur_locale = None BANNER = "-- %-10s %-6s ---------------------------------------------------\n" *************** *** 474,477 **** --- 474,480 ---- banner("logrecv output", "end") sys.stdout.flush() + + if cur_locale: + locale.setlocale(locale.LC_ALL, "C") if __name__ == "__main__": From jhylton@users.sourceforge.net Fri Jul 18 16:13:39 2003 From: jhylton@users.sourceforge.net (jhylton@users.sourceforge.net) Date: Fri, 18 Jul 2003 08:13:39 -0700 Subject: [Python-checkins] python/dist/src/Lib/test test_mimetypes.py,1.6,1.7 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/test In directory sc8-pr-cvs1:/tmp/cvs-serv28585/test Modified Files: test_mimetypes.py Log Message: Make sure mimetypes is reinitialized before running the tests. If some other test comes along and uses mimetypes, it will be initialized from the system files. Index: test_mimetypes.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/test/test_mimetypes.py,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** test_mimetypes.py 9 Jun 2003 22:27:41 -0000 1.6 --- test_mimetypes.py 18 Jul 2003 15:13:37 -0000 1.7 *************** *** 7,10 **** --- 7,11 ---- # Tell it we don't know about external files: mimetypes.knownfiles = [] + mimetypes.inited = False From jvr@users.sourceforge.net Fri Jul 18 16:31:42 2003 From: jvr@users.sourceforge.net (jvr@users.sourceforge.net) Date: Fri, 18 Jul 2003 08:31:42 -0700 Subject: [Python-checkins] python/dist/src/Lib modulefinder.py,1.6,1.7 Message-ID: Update of /cvsroot/python/python/dist/src/Lib In directory sc8-pr-cvs1:/tmp/cvs-serv31344 Modified Files: modulefinder.py Log Message: up the b/w compatibility requirement to 2.2 Index: modulefinder.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/modulefinder.py,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** modulefinder.py 5 Mar 2003 17:23:48 -0000 1.6 --- modulefinder.py 18 Jul 2003 15:31:40 -0000 1.7 *************** *** 1,5 **** """Find modules used by a script, using introspection.""" ! # This module should be kept compatible with Python 1.5.2, see PEP 291. import dis --- 1,5 ---- """Find modules used by a script, using introspection.""" ! # This module should be kept compatible with Python 2.2, see PEP 291. import dis From jvr@users.sourceforge.net Fri Jul 18 16:32:48 2003 From: jvr@users.sourceforge.net (jvr@users.sourceforge.net) Date: Fri, 18 Jul 2003 08:32:48 -0700 Subject: [Python-checkins] python/nondist/peps pep-0291.txt,1.5,1.6 Message-ID: Update of /cvsroot/python/python/nondist/peps In directory sc8-pr-cvs1:/tmp/cvs-serv31447 Modified Files: pep-0291.txt Log Message: list modulefinder for 2.2 compatibility Index: pep-0291.txt =================================================================== RCS file: /cvsroot/python/python/nondist/peps/pep-0291.txt,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** pep-0291.txt 2 Jul 2003 21:07:42 -0000 1.5 --- pep-0291.txt 18 Jul 2003 15:32:46 -0000 1.6 *************** *** 77,80 **** --- 77,82 ---- xml (PyXML) Martin v. Loewis 2.0 xmlrpclib Fredrik Lundh 1.5.2 + modulefinder Thomas Heller, Just van Rossum + 2.2 From jhylton@users.sourceforge.net Fri Jul 18 18:24:09 2003 From: jhylton@users.sourceforge.net (jhylton@users.sourceforge.net) Date: Fri, 18 Jul 2003 10:24:09 -0700 Subject: [Python-checkins] python/dist/src/Lib site.py,1.51,1.52 Message-ID: Update of /cvsroot/python/python/dist/src/Lib In directory sc8-pr-cvs1:/tmp/cvs-serv18915 Modified Files: site.py Log Message: SF patch 773476: NameError when there are no prefixes. Index: site.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/site.py,v retrieving revision 1.51 retrieving revision 1.52 diff -C2 -d -r1.51 -r1.52 *** site.py 3 Jun 2003 10:55:35 -0000 1.51 --- site.py 18 Jul 2003 17:24:07 -0000 1.52 *************** *** 92,100 **** if (os.name == "posix" and sys.path and os.path.basename(sys.path[-1]) == "Modules"): ! from distutils.util import get_platform ! s = "build/lib.%s-%.3s" % (get_platform(), sys.version) s = os.path.join(os.path.dirname(sys.path[-1]), s) sys.path.append(s) ! del get_platform, s def _init_pathinfo(): --- 92,105 ---- if (os.name == "posix" and sys.path and os.path.basename(sys.path[-1]) == "Modules"): ! s = "build/lib.%s-%.3s" % ("linux-i686", sys.version) s = os.path.join(os.path.dirname(sys.path[-1]), s) sys.path.append(s) ! ##if (os.name == "posix" and sys.path and ! ## os.path.basename(sys.path[-1]) == "Modules"): ! ## from distutils.util import get_platform ! ## s = "build/lib.%s-%.3s" % (get_platform(), sys.version) ! ## s = os.path.join(os.path.dirname(sys.path[-1]), s) ! ## sys.path.append(s) ! ## del get_platform, s def _init_pathinfo(): *************** *** 159,162 **** --- 164,168 ---- prefixes = [sys.prefix] + sitedir = None # make sure sitedir is initialized because of later 'del' if sys.exec_prefix != sys.prefix: prefixes.append(sys.exec_prefix) From jhylton@users.sourceforge.net Fri Jul 18 18:45:35 2003 From: jhylton@users.sourceforge.net (jhylton@users.sourceforge.net) Date: Fri, 18 Jul 2003 10:45:35 -0700 Subject: [Python-checkins] python/dist/src/Lib site.py,1.52,1.53 Message-ID: Update of /cvsroot/python/python/dist/src/Lib In directory sc8-pr-cvs1:/tmp/cvs-serv22117 Modified Files: site.py Log Message: Repair operator error. Index: site.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/site.py,v retrieving revision 1.52 retrieving revision 1.53 diff -C2 -d -r1.52 -r1.53 *** site.py 18 Jul 2003 17:24:07 -0000 1.52 --- site.py 18 Jul 2003 17:45:33 -0000 1.53 *************** *** 92,105 **** if (os.name == "posix" and sys.path and os.path.basename(sys.path[-1]) == "Modules"): ! s = "build/lib.%s-%.3s" % ("linux-i686", sys.version) s = os.path.join(os.path.dirname(sys.path[-1]), s) sys.path.append(s) ! ##if (os.name == "posix" and sys.path and ! ## os.path.basename(sys.path[-1]) == "Modules"): ! ## from distutils.util import get_platform ! ## s = "build/lib.%s-%.3s" % (get_platform(), sys.version) ! ## s = os.path.join(os.path.dirname(sys.path[-1]), s) ! ## sys.path.append(s) ! ## del get_platform, s def _init_pathinfo(): --- 92,100 ---- if (os.name == "posix" and sys.path and os.path.basename(sys.path[-1]) == "Modules"): ! from distutils.util import get_platform ! s = "build/lib.%s-%.3s" % (get_platform(), sys.version) s = os.path.join(os.path.dirname(sys.path[-1]), s) sys.path.append(s) ! del get_platform, s def _init_pathinfo(): From jhylton@users.sourceforge.net Fri Jul 18 21:10:05 2003 From: jhylton@users.sourceforge.net (jhylton@users.sourceforge.net) Date: Fri, 18 Jul 2003 13:10:05 -0700 Subject: [Python-checkins] python/dist/src/Misc NEWS,1.817,1.818 Message-ID: Update of /cvsroot/python/python/dist/src/Misc In directory sc8-pr-cvs1:/tmp/cvs-serv14859 Modified Files: NEWS Log Message: Forgot the release date. Index: NEWS =================================================================== RCS file: /cvsroot/python/python/dist/src/Misc/NEWS,v retrieving revision 1.817 retrieving revision 1.818 diff -C2 -d -r1.817 -r1.818 *** NEWS 17 Jul 2003 19:19:05 -0000 1.817 --- NEWS 18 Jul 2003 20:10:02 -0000 1.818 *************** *** 8,11 **** --- 8,13 ---- ============================================= + *Release date: 18-Jul-2003* + Core and builtins ----------------- From jhylton@users.sourceforge.net Fri Jul 18 21:57:07 2003 From: jhylton@users.sourceforge.net (jhylton@users.sourceforge.net) Date: Fri, 18 Jul 2003 13:57:07 -0700 Subject: [Python-checkins] python/dist/src/Misc NEWS,1.818,1.819 Message-ID: Update of /cvsroot/python/python/dist/src/Misc In directory sc8-pr-cvs1:/tmp/cvs-serv24161 Modified Files: NEWS Log Message: Oh, well. Index: NEWS =================================================================== RCS file: /cvsroot/python/python/dist/src/Misc/NEWS,v retrieving revision 1.818 retrieving revision 1.819 diff -C2 -d -r1.818 -r1.819 *** NEWS 18 Jul 2003 20:10:02 -0000 1.818 --- NEWS 18 Jul 2003 20:57:04 -0000 1.819 *************** *** 70,75 **** A typo was fixed in DBCursor.join_item(), preventing a crash. - - The time module - Library ------- --- 70,73 ---- From tim_one@users.sourceforge.net Fri Jul 18 22:11:39 2003 From: tim_one@users.sourceforge.net (tim_one@users.sourceforge.net) Date: Fri, 18 Jul 2003 14:11:39 -0700 Subject: [Python-checkins] python/dist/src/PCbuild python20.wse,1.129,1.130 Message-ID: Update of /cvsroot/python/python/dist/src/PCbuild In directory sc8-pr-cvs1:/tmp/cvs-serv27106/PCbuild Modified Files: python20.wse Log Message: For my convenience in building installers, added a makes-sense-on-my-box choice to the list of places MS redistributables might be found. Index: python20.wse =================================================================== RCS file: /cvsroot/python/python/dist/src/PCbuild/python20.wse,v retrieving revision 1.129 retrieving revision 1.130 diff -C2 -d -r1.129 -r1.130 *** python20.wse 17 Jul 2003 14:48:26 -0000 1.129 --- python20.wse 18 Jul 2003 21:11:36 -0000 1.130 *************** *** 26,30 **** Version Company=PythonLabs at Zope Corporation Crystal Format=10111100101100000010001001001001 ! Step View=&All Variable Name1=_WISE_ Variable Description1=WISE root directory --- 26,30 ---- Version Company=PythonLabs at Zope Corporation Crystal Format=10111100101100000010001001001001 ! Step View=&Properties Variable Name1=_WISE_ Variable Description1=WISE root directory *************** *** 46,49 **** --- 46,50 ---- Variable Values4=C:\Windows\System Variable Values4=C:\WINNT\System32 + Variable Values4=C:\Code\MSDLLs Variable Flags4=00000010 Variable Name5=_PYMAJOR_ From tim_one@users.sourceforge.net Fri Jul 18 22:12:23 2003 From: tim_one@users.sourceforge.net (tim_one@users.sourceforge.net) Date: Fri, 18 Jul 2003 14:12:23 -0700 Subject: [Python-checkins] python/dist/src/PCbuild BUILDno.txt,1.48,1.49 Message-ID: Update of /cvsroot/python/python/dist/src/PCbuild In directory sc8-pr-cvs1:/tmp/cvs-serv27364/PCbuild Modified Files: BUILDno.txt Log Message: Corrected release date for 2.3c1. Index: BUILDno.txt =================================================================== RCS file: /cvsroot/python/python/dist/src/PCbuild/BUILDno.txt,v retrieving revision 1.48 retrieving revision 1.49 diff -C2 -d -r1.48 -r1.49 *** BUILDno.txt 17 Jul 2003 14:48:26 -0000 1.48 --- BUILDno.txt 18 Jul 2003 21:12:21 -0000 1.49 *************** *** 35,39 **** ---------------------------- 44 2.3c1 ! 17-Jul-2003 43 2.3b2 29-Jun-2003 --- 35,39 ---- ---------------------------- 44 2.3c1 ! 18-Jul-2003 43 2.3b2 29-Jun-2003 From tim_one@users.sourceforge.net Sat Jul 19 22:44:34 2003 From: tim_one@users.sourceforge.net (tim_one@users.sourceforge.net) Date: Sat, 19 Jul 2003 14:44:34 -0700 Subject: [Python-checkins] python/dist/src/Modules parsermodule.c,2.79,2.79.6.1 Message-ID: Update of /cvsroot/python/python/dist/src/Modules In directory sc8-pr-cvs1:/tmp/cvs-serv6580/Modules Modified Files: Tag: r23c1-branch parsermodule.c Log Message: The parser module's initialization left the refcount on parser_error too small. Fixed. Fiddled NEWS to reflect my belief that we're going to need an r23c2 release. Index: parsermodule.c =================================================================== RCS file: /cvsroot/python/python/dist/src/Modules/parsermodule.c,v retrieving revision 2.79 retrieving revision 2.79.6.1 diff -C2 -d -r2.79 -r2.79.6.1 *** parsermodule.c 9 Apr 2003 17:53:22 -0000 2.79 --- parsermodule.c 19 Jul 2003 21:44:32 -0000 2.79.6.1 *************** *** 107,111 **** (void) addelem(v, i+1, w); } ! if (TYPE(n) == encoding_decl) (void) addelem(v, i+1, PyString_FromString(STR(n))); --- 107,111 ---- (void) addelem(v, i+1, w); } ! if (TYPE(n) == encoding_decl) (void) addelem(v, i+1, PyString_FromString(STR(n))); *************** *** 2905,2913 **** parser_error = PyErr_NewException("parser.ParserError", NULL, NULL); ! if ((parser_error == 0) ! || (PyModule_AddObject(module, "ParserError", parser_error) != 0)) { /* caller will check PyErr_Occurred() */ return; ! } Py_INCREF(&PyST_Type); PyModule_AddObject(module, "ASTType", (PyObject*)&PyST_Type); --- 2905,2921 ---- parser_error = PyErr_NewException("parser.ParserError", NULL, NULL); ! if (parser_error == 0) /* caller will check PyErr_Occurred() */ return; ! /* CAUTION: The code next used to skip bumping the refcount on ! * parser_error. That's a disaster if initparser() gets called more ! * than once. By incref'ing, we ensure that each module dict that ! * gets created owns its reference to the shared parser_error object, ! * and the file static parser_error vrbl owns a reference too. ! */ ! Py_INCREF(parser_error); ! if (PyModule_AddObject(module, "ParserError", parser_error) != 0) ! return; ! Py_INCREF(&PyST_Type); PyModule_AddObject(module, "ASTType", (PyObject*)&PyST_Type); From tim_one@users.sourceforge.net Sat Jul 19 22:44:34 2003 From: tim_one@users.sourceforge.net (tim_one@users.sourceforge.net) Date: Sat, 19 Jul 2003 14:44:34 -0700 Subject: [Python-checkins] python/dist/src/Misc NEWS,1.819,1.819.2.1 Message-ID: Update of /cvsroot/python/python/dist/src/Misc In directory sc8-pr-cvs1:/tmp/cvs-serv6580/Misc Modified Files: Tag: r23c1-branch NEWS Log Message: The parser module's initialization left the refcount on parser_error too small. Fixed. Fiddled NEWS to reflect my belief that we're going to need an r23c2 release. Index: NEWS =================================================================== RCS file: /cvsroot/python/python/dist/src/Misc/NEWS,v retrieving revision 1.819 retrieving revision 1.819.2.1 diff -C2 -d -r1.819 -r1.819.2.1 *** NEWS 18 Jul 2003 20:57:04 -0000 1.819 --- NEWS 19 Jul 2003 21:44:32 -0000 1.819.2.1 *************** *** 5,8 **** --- 5,42 ---- (editors: check NEWS.help for information about editing NEWS using ReST.) + What's New in Python 2.3 release candidate 2? + ============================================= + + *Release date: DD-MMM-YYYY* + + Core and builtins + ----------------- + + Extension modules + ----------------- + + - A longstanding bug in the parser module's initialization could cause + fatal internal refcount confusion when the module got initialized more + than once. This has been fixed. + + Library + ------- + + Tools/Demos + ----------- + + Build + ----- + + C API + ----- + + Windows + ------- + + Mac + --- + + What's New in Python 2.3 release candidate 1? ============================================= *************** *** 27,31 **** - A warning about assignments to module attributes that shadow builtins, present in earlier releases of 2.3, has been removed. ! - It is not possible to create subclasses of builtin types like str and tuple that define an itemsize. Earlier releases of Python 2.3 --- 61,65 ---- - A warning about assignments to module attributes that shadow builtins, present in earlier releases of 2.3, has been removed. ! - It is not possible to create subclasses of builtin types like str and tuple that define an itemsize. Earlier releases of Python 2.3 *************** *** 59,63 **** the find_class attribute, if present. ! - There are several fixes for the bsddb3 wrapper module. bsddb3 no longer crashes if an environment is closed before a cursor --- 93,97 ---- the find_class attribute, if present. ! - There are several fixes for the bsddb3 wrapper module. bsddb3 no longer crashes if an environment is closed before a cursor From rhettinger@users.sourceforge.net Sun Jul 20 02:10:17 2003 From: rhettinger@users.sourceforge.net (rhettinger@users.sourceforge.net) Date: Sat, 19 Jul 2003 18:10:17 -0700 Subject: [Python-checkins] python/dist/src/Doc/lib libsocket.tex,1.75,1.76 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/lib In directory sc8-pr-cvs1:/tmp/cvs-serv3155 Modified Files: libsocket.tex Log Message: SF bug #774411: Typo in socket documentation Index: libsocket.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/libsocket.tex,v retrieving revision 1.75 retrieving revision 1.76 diff -C2 -d -r1.75 -r1.76 *** libsocket.tex 29 Jun 2003 04:55:59 -0000 1.75 --- libsocket.tex 20 Jul 2003 01:10:15 -0000 1.76 *************** *** 605,609 **** Some notes on socket blocking and timeouts: A socket object can be in ! one of three modes: blocking, non-blocking, or timout. Sockets are always created in blocking mode. In blocking mode, operations block until complete. In non-blocking mode, operations fail (with an error --- 605,609 ---- Some notes on socket blocking and timeouts: A socket object can be in ! one of three modes: blocking, non-blocking, or timeout. Sockets are always created in blocking mode. In blocking mode, operations block until complete. In non-blocking mode, operations fail (with an error From tim_one@users.sourceforge.net Sun Jul 20 03:49:00 2003 From: tim_one@users.sourceforge.net (tim_one@users.sourceforge.net) Date: Sat, 19 Jul 2003 19:49:00 -0700 Subject: [Python-checkins] python/nondist/peps pep-0283.txt,1.38,1.39 Message-ID: Update of /cvsroot/python/python/nondist/peps In directory sc8-pr-cvs1:/tmp/cvs-serv13625/peps Modified Files: pep-0283.txt Log Message: Updated release schedule. Reworded various stuff for parallelsim and conformance to reality. Index: pep-0283.txt =================================================================== RCS file: /cvsroot/python/python/nondist/peps/pep-0283.txt,v retrieving revision 1.38 retrieving revision 1.39 diff -C2 -d -r1.38 -r1.39 *** pep-0283.txt 9 Jul 2003 14:49:49 -0000 1.38 --- pep-0283.txt 20 Jul 2003 02:48:58 -0000 1.39 *************** *** 23,43 **** least one week apart (excepting again blunder corrections). ! The schedule so far has had longer gaps than planned: ! ! alpha 1 -- December 31, 2002 ! alpha 2 -- February 19, 2003 ! beta 1 -- April 25, 2003 ! beta 2 -- June 29, 2003 Here is the schedule for the remaining releases: ! July 17, 2003 -- rc 1 ! July 24, 2003 -- rc 2 if necessary, otherwise final ! July 31, 2003 -- final (if rc 2) Release Manager ! Barry Warsaw, Jeremy Hylton --- 23,41 ---- least one week apart (excepting again blunder corrections). ! alpha 1 -- 31 Dec 2002 ! alpha 2 -- 19 Feb 2003 ! beta 1 -- 25 April 2003 ! beta 2 -- 29 Jun 2003 ! candidate 1 -- 18 Jul 2003 Here is the schedule for the remaining releases: ! candidate 2 -- 24 Jul 2003 ! final -- 31 Jul 2003 Release Manager ! Barry Warsaw, Jeremy Hylton, Tim Peters *************** *** 91,95 **** - Warn when an extension type's tp_compare returns anything except ! -1, 0 or 1. http://www.python.org/sf/472523 - Warn for assignment to None (in various forms). --- 89,93 ---- - Warn when an extension type's tp_compare returns anything except ! -1, 0 or 1. http://www.python.org/sf/472523 - Warn for assignment to None (in various forms). *************** *** 155,159 **** Heller did this work.) ! - A new version of IDLE was imported from the IDLEfork project (http://idlefork.sf.net). The code now lives in the idlelib package in the standard library and the idle script is installed --- 153,157 ---- Heller did this work.) ! - A new version of IDLE was imported from the IDLEfork project (http://idlefork.sf.net). The code now lives in the idlelib package in the standard library and the idle script is installed *************** *** 162,175 **** Planned features for 2.3 ! Here are a few PEPs and other ideas under consideration, with ! comments in "parade of the PEPs" style. Not all of these will be ! part of the final 2.3 release; we'll update the list as decisions ! crystallize. ! ! This is pretty much an unordered laundry list. Please send ! feedback to python-dev@python.org; I hope to maintain this for the ! life of the 2.3 development process. ! ! - The import lock could use some redesign. (SF 683658.) --- 160,164 ---- Planned features for 2.3 ! Too late for anything more to get done here. *************** *** 210,217 **** release). For example: ! - TBD ! Features unlikely to make it into Python 2.3 - Set API issues; is the sets module perfect? --- 199,211 ---- release). For example: ! - As of release candidate 1, a raft of mysterious problems ! cropped up seemingly unique to Cygwin. If these are really due ! to the Python core (too soon to guess), it could dely the final ! release arbitrarily long. ! Features that did not make it into Python 2.3 ! ! - The import lock could use some redesign. (SF 683658.) - Set API issues; is the sets module perfect? From tim_one@users.sourceforge.net Sun Jul 20 04:02:25 2003 From: tim_one@users.sourceforge.net (tim_one@users.sourceforge.net) Date: Sat, 19 Jul 2003 20:02:25 -0700 Subject: [Python-checkins] python/nondist/peps pep-0283.txt,1.39,1.40 Message-ID: Update of /cvsroot/python/python/nondist/peps In directory sc8-pr-cvs1:/tmp/cvs-serv15475 Modified Files: pep-0283.txt Log Message: Hmm. Do we still store PEPs on SF? Checkins don't seem to have any effect. Index: pep-0283.txt =================================================================== RCS file: /cvsroot/python/python/nondist/peps/pep-0283.txt,v retrieving revision 1.39 retrieving revision 1.40 diff -C2 -d -r1.39 -r1.40 *** pep-0283.txt 20 Jul 2003 02:48:58 -0000 1.39 --- pep-0283.txt 20 Jul 2003 03:02:22 -0000 1.40 *************** *** 25,29 **** alpha 1 -- 31 Dec 2002 alpha 2 -- 19 Feb 2003 ! beta 1 -- 25 April 2003 beta 2 -- 29 Jun 2003 candidate 1 -- 18 Jul 2003 --- 25,29 ---- alpha 1 -- 31 Dec 2002 alpha 2 -- 19 Feb 2003 ! beta 1 -- 25 Apr 2003 beta 2 -- 29 Jun 2003 candidate 1 -- 18 Jul 2003 From python@rcn.com Sun Jul 20 04:03:51 2003 From: python@rcn.com (Raymond Hettinger) Date: Sat, 19 Jul 2003 23:03:51 -0400 Subject: [Python-checkins] python/nondist/peps pep-0283.txt,1.39,1.40 References: Message-ID: <003b01c34e6b$8c9be500$125ffea9@oemcomputer> > Hmm. Do we still store PEPs on SF? Checkins don't seem to have any > effect. In theory, a cron job comes along a bit later and updates the html for www.python.org/peps . Raymond From tim.one@comcast.net Sun Jul 20 04:22:21 2003 From: tim.one@comcast.net (Tim Peters) Date: Sat, 19 Jul 2003 23:22:21 -0400 Subject: [Python-checkins] python/nondist/peps pep-0283.txt,1.39,1.40 In-Reply-To: <003b01c34e6b$8c9be500$125ffea9@oemcomputer> Message-ID: >> Hmm. Do we still store PEPs on SF? Checkins don't seem to have any >> effect. [Raymond Hettinger] > In theory, a cron job comes along a bit later and updates the html > for www.python.org/peps . I hope so, but I was concerned about something more basic than that: the checkins I made to pep-0283.txt aren't showing up at: http://cvs.sf.net/cgi-bin/viewcvs.cgi/python/python/nondist/peps/ According to that, the source for PEP 283 was last changed 10 days ago by Barry, at rev 1.38. Maybe that's in a time warp too. From python@rcn.com Sun Jul 20 05:07:53 2003 From: python@rcn.com (Raymond Hettinger) Date: Sun, 20 Jul 2003 00:07:53 -0400 Subject: [Python-checkins] python/nondist/peps pep-0283.txt,1.39,1.40 References: Message-ID: <000001c34e75$49f2e0a0$28b69d8d@oemcomputer> [Tim, self-appointed release manager a.k.a. the only guy still around] > >> Hmm. Do we still store PEPs on SF? Checkins don't seem to have any > >> effect. > > [Raymond Hettinger] > > In theory, a cron job comes along a bit later and updates the html > > for www.python.org/peps . > > I hope so, but I was concerned about something more basic than that: the > checkins I made to pep-0283.txt aren't showing up at: > > http://cvs.sf.net/cgi-bin/viewcvs.cgi/python/python/nondist/peps/ Heck, why didn't you just say so ;-) > According to that, the source for PEP 283 was last changed 10 days ago by > Barry, at rev 1.38. Maybe that's in a time warp too. Yep! See the message at: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/python/python/nondist/ It says: """ NOTE: ViewCVS is currently running against the backup CVS server; data shown may be up to 24 hours old. """ Running "cvs up", "cvs diff", or "cvs log" shows that your changes did take. It is just ViewCVS that is sleeping on the job. Raymond Hettinger ################################################################# ################################################################# ################################################################# ##### ##### ##### ################################################################# ################################################################# ################################################################# From tim.one@comcast.net Sun Jul 20 05:35:00 2003 From: tim.one@comcast.net (Tim Peters) Date: Sun, 20 Jul 2003 00:35:00 -0400 Subject: [Python-checkins] python/nondist/peps pep-0283.txt,1.39,1.40 In-Reply-To: <000001c34e75$49f2e0a0$28b69d8d@oemcomputer> Message-ID: >> ...but I was concerned about something more basic than that: >> the checkins I made to pep-0283.txt aren't showing up at: >> >> http://cvs.sf.net/cgi-bin/viewcvs.cgi/python/python/nondist/peps/ [Raymond Hettinger] > Heck, why didn't you just say so ;-) I didn't want to write a novel <0.5 wink>. I also regenerated HTML and uploaded that to SF, but the new HTML wasn't showing up either. That used to work. I take it that's because we serve the HTML from python.org instead now. I hate change, because nothing ever works anyway . >> ... Maybe that's in a time warp too. > Yep! See the message at: > > http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/python/python/nondist/ > > It says: > """ NOTE: ViewCVS is currently running against the backup CVS > server; data shown may be up to 24 hours old. """ Heh. If I had bothered to scroll to the bottom of the page at the original link, it says that there too. > Running "cvs up", "cvs diff", or "cvs log" shows that your changes > did take. It is just ViewCVS that is sleeping on the job. Thanks for confirming it! > Raymond Hettinger > > ################################################################# > ################################################################# > ################################################################# > ##### > ##### > ##### > ################################################################# > ################################################################# > ################################################################# > > ################################################################# > ################################################################# > ################################################################# > ##### > ##### > ##### > ################################################################# > ################################################################# > ################################################################# Aha! So you often get one giant ASCII Art C when posting to python-dev, but two when posting to python-checkins. I'm holding up 2.3 final until the cause for this is known! You sure have your work cut out for you. From goodger@python.org Sun Jul 20 16:34:03 2003 From: goodger@python.org (David Goodger) Date: Sun, 20 Jul 2003 11:34:03 -0400 Subject: [Python-checkins] Re: python/nondist/peps pep-0283.txt,1.39,1.40 In-Reply-To: References: Message-ID: <3F1AB66B.9020300@python.org> tim_one@users.sourceforge.net wrote: > Hmm. Do we still store PEPs on SF? No, they all (should) redirect to www.python.org/peps/. I've fixed the ones that don't, so now they do. I also removed all pep-*.txt files from python.sf.net/peps/; obsolete. > Checkins don't seem to have any effect. There is a cron job (Fred's account, I believe), but it accesses the backup CVS server, which is currently way behind (much more than 24 hours from my experience). The procedure is to publish using "pep2html.py -i" from your own machine after a "cvs up": cd nondist/peps cvs up ./pep2html.py -i 283 I've updated all PEP HTML on creosote. -- David Goodger, PEP warden From bwarsaw@users.sourceforge.net Sun Jul 20 19:00:57 2003 From: bwarsaw@users.sourceforge.net (bwarsaw@users.sourceforge.net) Date: Sun, 20 Jul 2003 11:00:57 -0700 Subject: [Python-checkins] python/dist/src/Misc NEWS,1.819,1.820 Message-ID: Update of /cvsroot/python/python/dist/src/Misc In directory sc8-pr-cvs1:/tmp/cvs-serv9452 Modified Files: NEWS Log Message: Minor typo Index: NEWS =================================================================== RCS file: /cvsroot/python/python/dist/src/Misc/NEWS,v retrieving revision 1.819 retrieving revision 1.820 diff -C2 -d -r1.819 -r1.820 *** NEWS 18 Jul 2003 20:57:04 -0000 1.819 --- NEWS 20 Jul 2003 18:00:54 -0000 1.820 *************** *** 65,70 **** The DB and DBEnv set_get_returns_none function was extended to take ! a level instead of a boolean flag. The new level 2 mans return None ! instead of raising an exception. This applies to set methods. A typo was fixed in DBCursor.join_item(), preventing a crash. --- 65,71 ---- The DB and DBEnv set_get_returns_none function was extended to take ! a level instead of a boolean flag. The new level 2 means that in ! addition, cursor.set()/.get() methods return None instead of raising ! an exception. A typo was fixed in DBCursor.join_item(), preventing a crash. From tim.one@comcast.net Sun Jul 20 22:04:40 2003 From: tim.one@comcast.net (Tim Peters) Date: Sun, 20 Jul 2003 17:04:40 -0400 Subject: [Python-checkins] Re: python/nondist/peps pep-0283.txt,1.39,1.40 In-Reply-To: <3F1AB66B.9020300@python.org> Message-ID: [Tim] >> Hmm. Do we still store PEPs on SF? [David Goodger] > No, they all (should) redirect to www.python.org/peps/. I've fixed > the ones that don't, so now they do. I also removed all pep-*.txt > files from python.sf.net/peps/; obsolete. I'm not following. If the *.txt source still lives in SourceForge's CVS repository, then we still the store the PEP (source) on SF. > ... > The procedure is to publish using "pep2html.py -i" from your own > machine after a "cvs up": > > cd nondist/peps > cvs up > ./pep2html.py -i 283 That just results in Permission denied. lost connection Permission denied. for me, so good thing Fred has a cron job . From goodger@python.org Sun Jul 20 22:59:24 2003 From: goodger@python.org (David Goodger) Date: Sun, 20 Jul 2003 17:59:24 -0400 Subject: [Python-checkins] Re: python/nondist/peps pep-0283.txt,1.39,1.40 In-Reply-To: References: Message-ID: <3F1B10BC.9080708@python.org> [Tim] >>> Hmm. Do we still store PEPs on SF? [David Goodger] >> No, they all (should) redirect to www.python.org/peps/. I've fixed >> the ones that don't, so now they do. I also removed all pep-*.txt >> files from python.sf.net/peps/; obsolete. [Tim] > I'm not following. If the *.txt source still lives in SourceForge's > CVS repository, then we still the store the PEP (source) on SF. Yes, PEP source is stored in CVS on SF. But the web-accessible files are now stored at http://www.python.org/peps/, and no longer at http://python.sf.net/peps/. The pep2html.py program installs .txt and .html versions of PEPs on creosote. >> The procedure is to publish using "pep2html.py -i" from your own >> machine after a "cvs up": >> >> cd nondist/peps >> cvs up >> ./pep2html.py -i 283 > > That just results in > > Permission denied. > lost connection > Permission denied. > > for me, so good thing Fred has a cron job . You may have to use "-u tim" if your creosote and local machine account names differ. I usually log in to creosote and install from there with "-l" (local install); avoids account/password issues. -- David Goodger http://starship.python.net/~goodger For hire: http://starship.python.net/~goodger/cv Docutils: http://docutils.sourceforge.net/ (includes reStructuredText: http://docutils.sf.net/rst.html) From akuchling@users.sourceforge.net Mon Jul 21 13:49:48 2003 From: akuchling@users.sourceforge.net (akuchling@users.sourceforge.net) Date: Mon, 21 Jul 2003 05:49:48 -0700 Subject: [Python-checkins] python/dist/src/Doc/whatsnew whatsnew23.tex,1.157,1.158 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/whatsnew In directory sc8-pr-cvs1:/tmp/cvs-serv6179 Modified Files: whatsnew23.tex Log Message: Change \code to \verb, because TeX merges the two dashes into a hyphen, resulting in the output '-list-classifiers', not the correct '--list-classifiers'. I've verified that the line is now correct in the DVI, PDF, HTML, and ASCII versions. Index: whatsnew23.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/whatsnew/whatsnew23.tex,v retrieving revision 1.157 retrieving revision 1.158 diff -C2 -d -r1.157 -r1.158 *** whatsnew23.tex 18 Jul 2003 02:12:16 -0000 1.157 --- whatsnew23.tex 21 Jul 2003 12:49:46 -0000 1.158 *************** *** 758,762 **** The full list of classifiers can be obtained by running ! \code{python setup.py register --list-classifiers}. \begin{seealso} --- 758,762 ---- The full list of classifiers can be obtained by running ! \verb|python setup.py register --list-classifiers|. \begin{seealso} From fdrake@acm.org Mon Jul 21 13:51:42 2003 From: fdrake@acm.org (Fred L. Drake, Jr.) Date: Mon, 21 Jul 2003 08:51:42 -0400 Subject: [Python-checkins] python/nondist/peps pep-0283.txt,1.39,1.40 In-Reply-To: <003b01c34e6b$8c9be500$125ffea9@oemcomputer> References: <003b01c34e6b$8c9be500$125ffea9@oemcomputer> Message-ID: <16155.57822.484472.632722@grendel.zope.com> Raymond Hettinger writes: > In theory, a cron job comes along a bit later and updates the html > for www.python.org/peps . Yes. It runs every 6 hours. Unfortunately, given the frequently unavailable anonymous CVS access to SourceForge, the script fails about half the time. I get a (short) email for each of those times. -Fred -- Fred L. Drake, Jr. PythonLabs at Zope Corporation From theller@python.net Mon Jul 21 14:11:14 2003 From: theller@python.net (Thomas Heller) Date: Mon, 21 Jul 2003 15:11:14 +0200 Subject: [Python-checkins] python/nondist/peps pep-0283.txt,1.39,1.40 In-Reply-To: <16155.57822.484472.632722@grendel.zope.com> (Fred L. Drake, Jr.'s message of "Mon, 21 Jul 2003 08:51:42 -0400") References: <003b01c34e6b$8c9be500$125ffea9@oemcomputer> <16155.57822.484472.632722@grendel.zope.com> Message-ID: "Fred L. Drake, Jr." writes: > Raymond Hettinger writes: > > In theory, a cron job comes along a bit later and updates the html > > for www.python.org/peps . > > Yes. It runs every 6 hours. > > Unfortunately, given the frequently unavailable anonymous CVS access > to SourceForge, the script fails about half the time. I get a (short) > email for each of those times. I don't know if this helps or not, but running anon cvs on SF's shell server (in a cron job on SF) uses the 'normal' CVS server with current data, not the backup one with the delay. I've also never noticed a failure (although it only runs once a day). I've used this to create up-to-data cvs snapshots of another project hosted on sourceforge. Thomas From barry@python.org Mon Jul 21 15:11:00 2003 From: barry@python.org (Barry Warsaw) Date: 21 Jul 2003 10:11:00 -0400 Subject: [Python-checkins] Re: python/nondist/peps pep-0283.txt,1.39,1.40 In-Reply-To: <3F1B10BC.9080708@python.org> References: <3F1B10BC.9080708@python.org> Message-ID: <1058796660.2036.0.camel@yyz> On Sun, 2003-07-20 at 17:59, David Goodger wrote: > > That just results in > > > > Permission denied. > > lost connection > > Permission denied. > > > > for me, so good thing Fred has a cron job . > > You may have to use "-u tim" if your creosote and local machine account > names differ. I usually log in to creosote and install from there with > "-l" (local install); avoids account/password issues. Tim's had trouble ssh'ing into creosote for a while now. It might be an ssh1/ssh2 compatibility problem. -Barry From tim_one@users.sourceforge.net Mon Jul 21 15:25:25 2003 From: tim_one@users.sourceforge.net (tim_one@users.sourceforge.net) Date: Mon, 21 Jul 2003 07:25:25 -0700 Subject: [Python-checkins] python/dist/src/Modules parsermodule.c,2.79,2.80 Message-ID: Update of /cvsroot/python/python/dist/src/Modules In directory sc8-pr-cvs1:/tmp/cvs-serv22033/Modules Modified Files: parsermodule.c Log Message: Merge 23c1-branch back into the head. Barry will send email about the New Plan (releases to be made off the head, ongoing random 2.4 stuff to be done on a short-lived branch, provided anyone is motivated enough to create one). Index: parsermodule.c =================================================================== RCS file: /cvsroot/python/python/dist/src/Modules/parsermodule.c,v retrieving revision 2.79 retrieving revision 2.80 diff -C2 -d -r2.79 -r2.80 *** parsermodule.c 9 Apr 2003 17:53:22 -0000 2.79 --- parsermodule.c 21 Jul 2003 14:25:23 -0000 2.80 *************** *** 107,111 **** (void) addelem(v, i+1, w); } ! if (TYPE(n) == encoding_decl) (void) addelem(v, i+1, PyString_FromString(STR(n))); --- 107,111 ---- (void) addelem(v, i+1, w); } ! if (TYPE(n) == encoding_decl) (void) addelem(v, i+1, PyString_FromString(STR(n))); *************** *** 2905,2913 **** parser_error = PyErr_NewException("parser.ParserError", NULL, NULL); ! if ((parser_error == 0) ! || (PyModule_AddObject(module, "ParserError", parser_error) != 0)) { /* caller will check PyErr_Occurred() */ return; ! } Py_INCREF(&PyST_Type); PyModule_AddObject(module, "ASTType", (PyObject*)&PyST_Type); --- 2905,2921 ---- parser_error = PyErr_NewException("parser.ParserError", NULL, NULL); ! if (parser_error == 0) /* caller will check PyErr_Occurred() */ return; ! /* CAUTION: The code next used to skip bumping the refcount on ! * parser_error. That's a disaster if initparser() gets called more ! * than once. By incref'ing, we ensure that each module dict that ! * gets created owns its reference to the shared parser_error object, ! * and the file static parser_error vrbl owns a reference too. ! */ ! Py_INCREF(parser_error); ! if (PyModule_AddObject(module, "ParserError", parser_error) != 0) ! return; ! Py_INCREF(&PyST_Type); PyModule_AddObject(module, "ASTType", (PyObject*)&PyST_Type); From tim_one@users.sourceforge.net Mon Jul 21 15:25:25 2003 From: tim_one@users.sourceforge.net (tim_one@users.sourceforge.net) Date: Mon, 21 Jul 2003 07:25:25 -0700 Subject: [Python-checkins] python/dist/src/Misc NEWS,1.820,1.821 Message-ID: Update of /cvsroot/python/python/dist/src/Misc In directory sc8-pr-cvs1:/tmp/cvs-serv22033/Misc Modified Files: NEWS Log Message: Merge 23c1-branch back into the head. Barry will send email about the New Plan (releases to be made off the head, ongoing random 2.4 stuff to be done on a short-lived branch, provided anyone is motivated enough to create one). Index: NEWS =================================================================== RCS file: /cvsroot/python/python/dist/src/Misc/NEWS,v retrieving revision 1.820 retrieving revision 1.821 diff -C2 -d -r1.820 -r1.821 *** NEWS 20 Jul 2003 18:00:54 -0000 1.820 --- NEWS 21 Jul 2003 14:25:23 -0000 1.821 *************** *** 5,8 **** --- 5,42 ---- (editors: check NEWS.help for information about editing NEWS using ReST.) + What's New in Python 2.3 release candidate 2? + ============================================= + + *Release date: DD-MMM-YYYY* + + Core and builtins + ----------------- + + Extension modules + ----------------- + + - A longstanding bug in the parser module's initialization could cause + fatal internal refcount confusion when the module got initialized more + than once. This has been fixed. + + Library + ------- + + Tools/Demos + ----------- + + Build + ----- + + C API + ----- + + Windows + ------- + + Mac + --- + + What's New in Python 2.3 release candidate 1? ============================================= *************** *** 27,31 **** - A warning about assignments to module attributes that shadow builtins, present in earlier releases of 2.3, has been removed. ! - It is not possible to create subclasses of builtin types like str and tuple that define an itemsize. Earlier releases of Python 2.3 --- 61,65 ---- - A warning about assignments to module attributes that shadow builtins, present in earlier releases of 2.3, has been removed. ! - It is not possible to create subclasses of builtin types like str and tuple that define an itemsize. Earlier releases of Python 2.3 *************** *** 59,63 **** the find_class attribute, if present. ! - There are several fixes for the bsddb3 wrapper module. bsddb3 no longer crashes if an environment is closed before a cursor --- 93,97 ---- the find_class attribute, if present. ! - There are several fixes for the bsddb3 wrapper module. bsddb3 no longer crashes if an environment is closed before a cursor From jackjansen@users.sourceforge.net Mon Jul 21 15:55:25 2003 From: jackjansen@users.sourceforge.net (jackjansen@users.sourceforge.net) Date: Mon, 21 Jul 2003 07:55:25 -0700 Subject: [Python-checkins] python/dist/src/Lib/plat-mac pimp.py,1.26,1.26.4.1 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/plat-mac In directory sc8-pr-cvs1:/tmp/cvs-serv27590 Modified Files: Tag: r23c1-branch pimp.py Log Message: Pimp crashed if you tried to install a non-installable package, in stead of printing a decent error message. Fixes #773450.. Index: pimp.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/plat-mac/pimp.py,v retrieving revision 1.26 retrieving revision 1.26.4.1 diff -C2 -d -r1.26 -r1.26.4.1 *** pimp.py 29 Jun 2003 00:09:18 -0000 1.26 --- pimp.py 21 Jul 2003 14:55:22 -0000 1.26.4.1 *************** *** 586,591 **** will receive a log of what happened.""" ! if not self._dict['Download-URL']: ! return "%s: This package needs to be installed manually (no Download-URL field)" % _fmtpackagename(self) msg = self.downloadPackageOnly(output) if msg: --- 586,591 ---- will receive a log of what happened.""" ! if not self._dict.get('Download-URL'): ! return "%s: This package needs to be installed manually (no Download-URL field)" % self.fullname() msg = self.downloadPackageOnly(output) if msg: From fdrake@users.sourceforge.net Mon Jul 21 16:30:17 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Mon, 21 Jul 2003 08:30:17 -0700 Subject: [Python-checkins] python/dist/src/Doc/lib libanydbm.tex,1.20,1.21 libdumbdbm.tex,1.1,1.2 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/lib In directory sc8-pr-cvs1:/tmp/cvs-serv2590 Modified Files: libanydbm.tex libdumbdbm.tex Log Message: Merge the old dumbdbm documetation into the new docs that have been added. Make some module references hyperlinks. Index: libanydbm.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/libanydbm.tex,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** libanydbm.tex 7 Dec 2001 21:56:13 -0000 1.20 --- libanydbm.tex 21 Jul 2003 15:30:15 -0000 1.21 *************** *** 58,96 **** existing database.} \end{seealso} - - - \section{\module{dumbdbm} --- - Portable DBM implementation} - - \declaremodule{standard}{dumbdbm} - \modulesynopsis{Portable implementation of the simple DBM interface.} - - - A simple and slow database implemented entirely in Python. This - should only be used when no other DBM-style database is available. - - - \begin{funcdesc}{open}{filename\optional{, flag\optional{, mode}}} - Open the database file \var{filename} and return a corresponding - object. The \var{flag} argument, used to control how the database is - opened in the other DBM implementations, is ignored in - \module{dumbdbm}; the database is always opened for update, and will - be created if it does not exist. - - The optional \var{mode} argument is the \UNIX{} mode of the file, used - only when the database has to be created. It defaults to octal - \code{0666} (and will be modified by the prevailing umask). - \versionchanged[The \var{mode} argument was ignored in earlier - versions]{2.2} - \end{funcdesc} - - \begin{excdesc}{error} - Raised for errors not reported as \exception{KeyError} errors. - \end{excdesc} - - - \begin{seealso} - \seemodule{anydbm}{Generic interface to \code{dbm}-style databases.} - \seemodule{whichdb}{Utility module used to determine the type of an - existing database.} - \end{seealso} --- 58,59 ---- Index: libdumbdbm.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/libdumbdbm.tex,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** libdumbdbm.tex 14 Jul 2003 12:12:37 -0000 1.1 --- libdumbdbm.tex 21 Jul 2003 15:30:15 -0000 1.2 *************** *** 1,18 **** \section{\module{dumbdbm} --- ! Simple ``database'' interface written in Python} ! \declaremodule{builtin}{dumbdbm} ! \modulesynopsis{A dbm-style module available on all platforms.} \index{databases} ! \note{The \module{dumbdbm} module is intended as a last resort fallback for ! the \module{anydbm} module when no other more robust module is available. The \module{dumbdbm} module is not written for speed and is not nearly as ! heavily used as the other database modules.} ! The \module{dumbdbm} module provides a persisten dictionary-like interface which is written entirely in Python. Unlike other modules such as ! {}\module{gdbm} and \module{bsddb}, no external library is required. As with other persistent mappings, the keys and values must always be strings. --- 1,20 ---- \section{\module{dumbdbm} --- ! Portable DBM implementation} ! \declaremodule{standard}{dumbdbm} ! \modulesynopsis{Portable implementation of the simple DBM interface.} \index{databases} ! \begin{notice} ! The \module{dumbdbm} module is intended as a last resort fallback for ! the \refmodule{anydbm} module when no more robust module is available. The \module{dumbdbm} module is not written for speed and is not nearly as ! heavily used as the other database modules. ! \end{notice} ! The \module{dumbdbm} module provides a persistent dictionary-like interface which is written entirely in Python. Unlike other modules such as ! \refmodule{gdbm} and \refmodule{bsddb}, no external library is required. As with other persistent mappings, the keys and values must always be strings. *************** *** 25,50 **** \begin{funcdesc}{open}{filename\optional{, flag\optional{, mode}}} - Open a dumbdbm database and return a dumbdbm object. The \var{filename} argument is the basename of the database file (without any specific ! extensions). When a dumbdbm database is created, files with \code{.dat} and ! \code{.dir} extensions are created. ! The optional \var{flag} argument is currently ignored. The optional \var{mode} argument is the \UNIX{} mode of the file, used only when the database has to be created. It defaults to octal ! \code{0666}. \end{funcdesc} - \subsection{Dumbdbm Objects \label{dumbdbm-objects}} - - In addition to the methods provided by the \class{UserDict.DictMixin} class, - \class{dumbdbm} objects provide the following methods. - - \begin{methoddesc}{sync}{} - Synchronize the on-disk directory and data files. This method is called by - the \method{sync} method of \class{Shelve} objects. - \end{methoddesc} \begin{seealso} --- 27,45 ---- \begin{funcdesc}{open}{filename\optional{, flag\optional{, mode}}} Open a dumbdbm database and return a dumbdbm object. The \var{filename} argument is the basename of the database file (without any specific ! extensions). When a dumbdbm database is created, files with \file{.dat} and ! \file{.dir} extensions are created. ! The optional \var{flag} argument is currently ignored; the database is ! always opened for update, and will be created if it does not exist. The optional \var{mode} argument is the \UNIX{} mode of the file, used only when the database has to be created. It defaults to octal ! \code{0666} (and will be modified by the prevailing umask). ! \versionchanged[The \var{mode} argument was ignored in earlier ! versions]{2.2} \end{funcdesc} \begin{seealso} *************** *** 56,57 **** --- 51,63 ---- existing database.} \end{seealso} + + + \subsection{Dumbdbm Objects \label{dumbdbm-objects}} + + In addition to the methods provided by the \class{UserDict.DictMixin} class, + \class{dumbdbm} objects provide the following methods. + + \begin{methoddesc}{sync}{} + Synchronize the on-disk directory and data files. This method is called by + the \method{sync} method of \class{Shelve} objects. + \end{methoddesc} From fdrake@acm.org Mon Jul 21 16:38:59 2003 From: fdrake@acm.org (Fred L. Drake, Jr.) Date: Mon, 21 Jul 2003 11:38:59 -0400 Subject: [Python-checkins] python/nondist/peps pep-0283.txt,1.39,1.40 In-Reply-To: References: <003b01c34e6b$8c9be500$125ffea9@oemcomputer> <16155.57822.484472.632722@grendel.zope.com> Message-ID: <16156.2323.326374.353174@grendel.zope.com> Thomas Heller writes: > I don't know if this helps or not, but running anon cvs on SF's shell > server (in a cron job on SF) uses the 'normal' CVS server with current > data, not the backup one with the delay. I've also never noticed a > failure (although it only runs once a day). That certainly does help! I could just use a CVS export of the PEPs generated on SF, and post-process somewhere else; I could automate that from my desktop machine so authentication isn't a problem. I won't get to it for a few days, though. -Fred -- Fred L. Drake, Jr. PythonLabs at Zope Corporation From fdrake@users.sourceforge.net Mon Jul 21 17:01:41 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Mon, 21 Jul 2003 09:01:41 -0700 Subject: [Python-checkins] python/dist/src README,1.175,1.176 Message-ID: Update of /cvsroot/python/python/dist/src In directory sc8-pr-cvs1:/tmp/cvs-serv9117 Modified Files: README Log Message: Clarify a statement regarding both shared and static library. Closes SF bug #774480. Index: README =================================================================== RCS file: /cvsroot/python/python/dist/src/README,v retrieving revision 1.175 retrieving revision 1.176 diff -C2 -d -r1.175 -r1.176 *** README 17 Jul 2003 17:58:38 -0000 1.175 --- README 21 Jul 2003 16:01:39 -0000 1.176 *************** *** 764,772 **** configure with --enable-shared. ! If you do so, a static library will be created in addition to the ! shared library, which uses the same object files as the shared library ! In particular, the library likely object files using ! position-independent code (PIC) if PIC flags are needed for the shared ! library. --- 764,771 ---- configure with --enable-shared. ! If you enable this feature, the same object files will be used to create ! a static library. In particular, the static library will contain object ! files using position-independent code (PIC) on platforms where PIC flags ! are needed for the shared library. From fdrake@users.sourceforge.net Mon Jul 21 18:05:58 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Mon, 21 Jul 2003 10:05:58 -0700 Subject: [Python-checkins] python/dist/src/Modules pyexpat.c,2.81,2.82 Message-ID: Update of /cvsroot/python/python/dist/src/Modules In directory sc8-pr-cvs1:/tmp/cvs-serv21537 Modified Files: pyexpat.c Log Message: Fix memory leak reported & discussed on the Python XML-SIG mailing list. This patch was provided by Jeremy Kloth, and corresponds to pyexpat.c 1.77 in the PyXML CVS. Index: pyexpat.c =================================================================== RCS file: /cvsroot/python/python/dist/src/Modules/pyexpat.c,v retrieving revision 2.81 retrieving revision 2.82 diff -C2 -d -r2.81 -r2.82 *** pyexpat.c 27 Jun 2003 16:13:17 -0000 2.81 --- pyexpat.c 21 Jul 2003 17:05:56 -0000 2.82 *************** *** 926,931 **** goto finally; ! if ((arg = PyTuple_New(1)) == NULL) goto finally; PyTuple_SET_ITEM(arg, 0, bytes); --- 926,933 ---- goto finally; ! if ((arg = PyTuple_New(1)) == NULL) { ! Py_DECREF(bytes); goto finally; + } PyTuple_SET_ITEM(arg, 0, bytes); *************** *** 947,951 **** "%i bytes requested, %i returned", buf_size, len); - Py_DECREF(str); goto finally; } --- 949,952 ---- *************** *** 988,993 **** int bytes_read; void *buf = XML_GetBuffer(self->itself, BUF_SIZE); ! if (buf == NULL) return PyErr_NoMemory(); if (fp) { --- 989,996 ---- int bytes_read; void *buf = XML_GetBuffer(self->itself, BUF_SIZE); ! if (buf == NULL) { ! Py_DECREF(readmethod); return PyErr_NoMemory(); + } if (fp) { *************** *** 1000,1013 **** else { bytes_read = readinst(buf, BUF_SIZE, readmethod); ! if (bytes_read < 0) return NULL; } rv = XML_ParseBuffer(self->itself, bytes_read, bytes_read == 0); ! if (PyErr_Occurred()) return NULL; if (!rv || bytes_read == 0) break; } return get_parse_result(self, rv); } --- 1003,1021 ---- else { bytes_read = readinst(buf, BUF_SIZE, readmethod); ! if (bytes_read < 0) { ! Py_DECREF(readmethod); return NULL; + } } rv = XML_ParseBuffer(self->itself, bytes_read, bytes_read == 0); ! if (PyErr_Occurred()) { ! Py_XDECREF(readmethod); return NULL; + } if (!rv || bytes_read == 0) break; } + Py_XDECREF(readmethod); return get_parse_result(self, rv); } From fdrake@users.sourceforge.net Mon Jul 21 18:17:12 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Mon, 21 Jul 2003 10:17:12 -0700 Subject: [Python-checkins] python/dist/src/Misc NEWS,1.821,1.822 Message-ID: Update of /cvsroot/python/python/dist/src/Misc In directory sc8-pr-cvs1:/tmp/cvs-serv24069 Modified Files: NEWS Log Message: Added note about the pyexpat memory leak fix. Index: NEWS =================================================================== RCS file: /cvsroot/python/python/dist/src/Misc/NEWS,v retrieving revision 1.821 retrieving revision 1.822 diff -C2 -d -r1.821 -r1.822 *** NEWS 21 Jul 2003 14:25:23 -0000 1.821 --- NEWS 21 Jul 2003 17:17:10 -0000 1.822 *************** *** 20,23 **** --- 20,28 ---- than once. This has been fixed. + - Fixed memory leak in pyexpat; using the parser's ParseFile() method + with open files that aren't instances of the standard file type + caused an instance of the bound .read() method to be leaked on every + call. + Library ------- From neal@metaslash.com Mon Jul 21 18:20:00 2003 From: neal@metaslash.com (Neal Norwitz) Date: Mon, 21 Jul 2003 13:20:00 -0400 Subject: [Python-checkins] python/dist/src/Modules pyexpat.c,2.81,2.82 In-Reply-To: References: Message-ID: <20030721172000.GV10306@epoch.metaslash.com> On Mon, Jul 21, 2003 at 10:05:58AM -0700, fdrake@users.sourceforge.net wrote: > > *************** > *** 988,993 **** > int bytes_read; > void *buf = XML_GetBuffer(self->itself, BUF_SIZE); > ! if (buf == NULL) > return PyErr_NoMemory(); > > if (fp) { > --- 989,996 ---- > int bytes_read; > void *buf = XML_GetBuffer(self->itself, BUF_SIZE); > ! if (buf == NULL) { > ! Py_DECREF(readmethod); > return PyErr_NoMemory(); > + } Doesn't that need to be Py_XDECREF(readmethod); instead of Py_DECREF()? readmethod is NULL if a PyFileObject is passed in. The other places below seem to handle this correctly. > *************** > *** 1000,1013 **** > else { > bytes_read = readinst(buf, BUF_SIZE, readmethod); > ! if (bytes_read < 0) > return NULL; > } > rv = XML_ParseBuffer(self->itself, bytes_read, bytes_read == 0); > ! if (PyErr_Occurred()) > return NULL; > > if (!rv || bytes_read == 0) > break; > } > return get_parse_result(self, rv); > } > --- 1003,1021 ---- > else { > bytes_read = readinst(buf, BUF_SIZE, readmethod); > ! if (bytes_read < 0) { > ! Py_DECREF(readmethod); > return NULL; > + } > } > rv = XML_ParseBuffer(self->itself, bytes_read, bytes_read == 0); > ! if (PyErr_Occurred()) { > ! Py_XDECREF(readmethod); > return NULL; > + } > > if (!rv || bytes_read == 0) > break; > } > + Py_XDECREF(readmethod); > return get_parse_result(self, rv); > } > > > > _______________________________________________ > Python-checkins mailing list > Python-checkins@python.org > http://mail.python.org/mailman/listinfo/python-checkins From fdrake@users.sourceforge.net Mon Jul 21 18:22:45 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Mon, 21 Jul 2003 10:22:45 -0700 Subject: [Python-checkins] python/dist/src/Modules pyexpat.c,2.82,2.83 Message-ID: Update of /cvsroot/python/python/dist/src/Modules In directory sc8-pr-cvs1:/tmp/cvs-serv25251 Modified Files: pyexpat.c Log Message: Repair mis-application of Jeremy's patch. Thanks, Neal! Index: pyexpat.c =================================================================== RCS file: /cvsroot/python/python/dist/src/Modules/pyexpat.c,v retrieving revision 2.82 retrieving revision 2.83 diff -C2 -d -r2.82 -r2.83 *** pyexpat.c 21 Jul 2003 17:05:56 -0000 2.82 --- pyexpat.c 21 Jul 2003 17:22:43 -0000 2.83 *************** *** 990,994 **** void *buf = XML_GetBuffer(self->itself, BUF_SIZE); if (buf == NULL) { ! Py_DECREF(readmethod); return PyErr_NoMemory(); } --- 990,994 ---- void *buf = XML_GetBuffer(self->itself, BUF_SIZE); if (buf == NULL) { ! Py_XDECREF(readmethod); return PyErr_NoMemory(); } From fdrake@acm.org Mon Jul 21 18:23:26 2003 From: fdrake@acm.org (Fred L. Drake, Jr.) Date: Mon, 21 Jul 2003 13:23:26 -0400 Subject: [Python-checkins] python/dist/src/Modules pyexpat.c,2.81,2.82 In-Reply-To: <20030721172000.GV10306@epoch.metaslash.com> References: <20030721172000.GV10306@epoch.metaslash.com> Message-ID: <16156.8590.751004.169104@grendel.zope.com> Neal Norwitz writes: > Doesn't that need to be Py_XDECREF(readmethod); instead of Py_DECREF()? > readmethod is NULL if a PyFileObject is passed in. > The other places below seem to handle this correctly. Yes; I managed to mis-apply Jeremy's patch. Now fixed. -Fred -- Fred L. Drake, Jr. PythonLabs at Zope Corporation From akuchling@users.sourceforge.net Mon Jul 21 18:34:10 2003 From: akuchling@users.sourceforge.net (akuchling@users.sourceforge.net) Date: Mon, 21 Jul 2003 10:34:10 -0700 Subject: [Python-checkins] python/nondist/peps pep-0101.txt,1.27,1.28 Message-ID: Update of /cvsroot/python/python/nondist/peps In directory sc8-pr-cvs1:/tmp/cvs-serv28011 Modified Files: pep-0101.txt Log Message: Add item: updating the first para. of the 'What's New' document Index: pep-0101.txt =================================================================== RCS file: /cvsroot/python/python/nondist/peps/pep-0101.txt,v retrieving revision 1.27 retrieving revision 1.28 diff -C2 -d -r1.27 -r1.28 *** pep-0101.txt 2 Jan 2003 17:24:01 -0000 1.27 --- pep-0101.txt 21 Jul 2003 17:34:07 -0000 1.28 *************** *** 146,149 **** --- 146,154 ---- file from the distribution. + ___ For a final release, edit the first paragraph of + Doc/whatsnew/whatsnewXX.tex to include the actual release date; + e.g. "Python 2.3 was released on August 1, 2003." + There's no need to edit this for alpha or beta releases. + ___ For the next few hours, selectively merge stuff from trunk into branch. For each change you see on the trunk (i.e. via the From bwarsaw@users.sourceforge.net Mon Jul 21 19:43:35 2003 From: bwarsaw@users.sourceforge.net (bwarsaw@users.sourceforge.net) Date: Mon, 21 Jul 2003 11:43:35 -0700 Subject: [Python-checkins] python/dist/src/Lib/bsddb/test test_join.py,1.5,1.6 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/bsddb/test In directory sc8-pr-cvs1:/tmp/cvs-serv10365 Modified Files: test_join.py Log Message: test01_join(): Fix a test failure when run with "python -O". The setting of sCursor happened in an assert. Index: test_join.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/bsddb/test/test_join.py,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** test_join.py 9 Jul 2003 05:33:14 -0000 1.5 --- test_join.py 21 Jul 2003 18:43:33 -0000 1.6 *************** *** 86,90 **** # lets look up all of the red Products sCursor = secDB.cursor() ! assert sCursor.set('red') # FIXME: jCursor doesn't properly hold a reference to its --- 86,93 ---- # lets look up all of the red Products sCursor = secDB.cursor() ! # Don't do the .set() in an assert, or you can get a bogus failure ! # when running python -O ! tmp = sCursor.set('red') ! assert tmp # FIXME: jCursor doesn't properly hold a reference to its From jackjansen@users.sourceforge.net Mon Jul 21 21:47:13 2003 From: jackjansen@users.sourceforge.net (jackjansen@users.sourceforge.net) Date: Mon, 21 Jul 2003 13:47:13 -0700 Subject: [Python-checkins] python/dist/src/Lib/plat-mac pimp.py,1.26,1.27 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/plat-mac In directory sc8-pr-cvs1:/tmp/cvs-serv32743 Modified Files: pimp.py Log Message: Backport from r23c1-branch: Pimp crashed if you tried to install a non-installable package, in stead of printing a decent error message. Fixes #773450.. Index: pimp.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/plat-mac/pimp.py,v retrieving revision 1.26 retrieving revision 1.27 diff -C2 -d -r1.26 -r1.27 *** pimp.py 29 Jun 2003 00:09:18 -0000 1.26 --- pimp.py 21 Jul 2003 20:47:11 -0000 1.27 *************** *** 586,591 **** will receive a log of what happened.""" ! if not self._dict['Download-URL']: ! return "%s: This package needs to be installed manually (no Download-URL field)" % _fmtpackagename(self) msg = self.downloadPackageOnly(output) if msg: --- 586,591 ---- will receive a log of what happened.""" ! if not self._dict.get('Download-URL'): ! return "%s: This package needs to be installed manually (no Download-URL field)" % self.fullname() msg = self.downloadPackageOnly(output) if msg: From jackjansen@users.sourceforge.net Mon Jul 21 23:03:17 2003 From: jackjansen@users.sourceforge.net (jackjansen@users.sourceforge.net) Date: Mon, 21 Jul 2003 15:03:17 -0700 Subject: [Python-checkins] python/dist/src/Mac/Tools/IDE PackageManager.py,1.12,1.13 Message-ID: Update of /cvsroot/python/python/dist/src/Mac/Tools/IDE In directory sc8-pr-cvs1:/tmp/cvs-serv18649 Modified Files: PackageManager.py Log Message: Because plistlib doesn't catch all possible errors that can happen while parsing a plistfile feeding an ill-formatted file to pimp may cause an exception. As a stopgap we use an unqualified except and print an error message "Unspecified error, probably ill-formatted database". Fixes #765621. Index: PackageManager.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Mac/Tools/IDE/PackageManager.py,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** PackageManager.py 1 Jun 2003 20:03:43 -0000 1.12 --- PackageManager.py 21 Jul 2003 22:03:14 -0000 1.13 *************** *** 254,257 **** --- 254,262 ---- rv += "\nSee MacPython Package Manager help page." return rv + except: + rv = "Unspecified error while parsing database: %s\n" % url + rv += "Usually, this means the database is not correctly formatted.\n" + rv += "\nSee MacPython Package Manager help page." + return rv # Check whether we can write the installation directory. # If not, set to the per-user directory, possibly From jackjansen@users.sourceforge.net Mon Jul 21 23:11:10 2003 From: jackjansen@users.sourceforge.net (jackjansen@users.sourceforge.net) Date: Mon, 21 Jul 2003 15:11:10 -0700 Subject: [Python-checkins] python/dist/src/Mac/Tools/IDE PackageManager.py,1.13,1.14 Message-ID: Update of /cvsroot/python/python/dist/src/Mac/Tools/IDE In directory sc8-pr-cvs1:/tmp/cvs-serv20026 Modified Files: PackageManager.py Log Message: We erronuously re-used the pimpinstaller object if there were multiple installs. This lead to a duplication of error messages (and installs). Fixes #764615. Index: PackageManager.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Mac/Tools/IDE/PackageManager.py,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** PackageManager.py 21 Jul 2003 22:03:14 -0000 1.13 --- PackageManager.py 21 Jul 2003 22:11:07 -0000 1.14 *************** *** 245,249 **** self.pimpprefs = pimp.PimpPreferences() self.pimpdb = pimp.PimpDatabase(self.pimpprefs) - self.pimpinstaller = pimp.PimpInstaller(self.pimpdb) if not url: url = self.pimpprefs.pimpDatabase --- 245,248 ---- *************** *** 272,276 **** self.pimpprefs = None self.pimpdb = None - self.pimpinstaller = None self.packages = [] --- 271,274 ---- *************** *** 321,328 **** def installpackage(self, sel, output, recursive, force): pkg = self.packages[sel] ! list, messages = self.pimpinstaller.prepareInstall(pkg, force, recursive) if messages: return messages ! messages = self.pimpinstaller.install(list, output) return messages --- 319,327 ---- def installpackage(self, sel, output, recursive, force): pkg = self.packages[sel] ! pimpinstaller = pimp.PimpInstaller(self.pimpdb) ! list, messages = pimpinstaller.prepareInstall(pkg, force, recursive) if messages: return messages ! messages = pimpinstaller.install(list, output) return messages From bwarsaw@users.sourceforge.net Tue Jul 22 00:01:36 2003 From: bwarsaw@users.sourceforge.net (bwarsaw@users.sourceforge.net) Date: Mon, 21 Jul 2003 16:01:36 -0700 Subject: [Python-checkins] python/dist/src/Lib/bsddb/test test_thread.py,1.6,1.7 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/bsddb/test In directory sc8-pr-cvs1:/tmp/cvs-serv28579 Modified Files: test_thread.py Log Message: readerThread(): Add max_retries to both DeadlockWrap() calls. This may cause some tests to fail but it prevents them from hanging. Index: test_thread.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/bsddb/test/test_thread.py,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** test_thread.py 28 May 2003 08:26:43 -0000 1.6 --- test_thread.py 21 Jul 2003 23:01:34 -0000 1.7 *************** *** 268,277 **** c = d.cursor() count = 0 ! rec = dbutils.DeadlockWrap(c.first) while rec: count += 1 key, data = rec self.assertEqual(self.makeData(key), data) ! rec = dbutils.DeadlockWrap(c.next) if verbose: print "%s: found %d records" % (name, count) --- 268,277 ---- c = d.cursor() count = 0 ! rec = dbutils.DeadlockWrap(c.first, max_retries=10) while rec: count += 1 key, data = rec self.assertEqual(self.makeData(key), data) ! rec = dbutils.DeadlockWrap(c.next, max_retries=10) if verbose: print "%s: found %d records" % (name, count) From fdrake@users.sourceforge.net Tue Jul 22 01:49:13 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Mon, 21 Jul 2003 17:49:13 -0700 Subject: [Python-checkins] python/dist/src/Doc/lib libgettext.tex,1.19,1.20 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/lib In directory sc8-pr-cvs1:/tmp/cvs-serv12947 Modified Files: libgettext.tex Log Message: Avoid a 301 permanent redirect. Part of SF patch #773007. Index: libgettext.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/libgettext.tex,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** libgettext.tex 2 Jul 2003 12:27:43 -0000 1.19 --- libgettext.tex 22 Jul 2003 00:49:11 -0000 1.20 *************** *** 443,447 **** \program{xpot} which does a similar job. It is available as part of his \program{po-utils} package at ! \url{http://www.iro.umontreal.ca/contrib/po-utils/HTML}.} program scans all your Python source code looking for the strings you previously marked as translatable. It is similar to the GNU --- 443,447 ---- \program{xpot} which does a similar job. It is available as part of his \program{po-utils} package at ! \url{http://www.iro.umontreal.ca/contrib/po-utils/HTML/}.} program scans all your Python source code looking for the strings you previously marked as translatable. It is similar to the GNU From fdrake@users.sourceforge.net Tue Jul 22 01:52:45 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Mon, 21 Jul 2003 17:52:45 -0700 Subject: [Python-checkins] python/dist/src/Doc/whatsnew whatsnew21.tex,1.30,1.31 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/whatsnew In directory sc8-pr-cvs1:/tmp/cvs-serv13533 Modified Files: whatsnew21.tex Log Message: Avoid a few 301 permanent redirects. Part of SF patch #773007. Index: whatsnew21.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/whatsnew/whatsnew21.tex,v retrieving revision 1.30 retrieving revision 1.31 diff -C2 -d -r1.30 -r1.31 *** whatsnew21.tex 13 May 2003 14:26:54 -0000 1.30 --- whatsnew21.tex 22 Jul 2003 00:52:42 -0000 1.31 *************** *** 577,581 **** A common complaint from Python users is that there's no single catalog of all the Python modules in existence. T.~Middleton's Vaults of ! Parnassus at \url{http://www.vex.net/parnassus} are the largest catalog of Python modules, but registering software at the Vaults is optional, and many people don't bother. --- 577,581 ---- A common complaint from Python users is that there's no single catalog of all the Python modules in existence. T.~Middleton's Vaults of ! Parnassus at \url{http://www.vex.net/parnassus/} are the largest catalog of Python modules, but registering software at the Vaults is optional, and many people don't bother. *************** *** 600,604 **** Distutils includes the changes described in PEP 241, as well as various bugfixes and enhancements. It will be available from ! the Distutils SIG at \url{http://www.python.org/sigs/distutils-sig}. % XXX update when I actually release 1.0.2 --- 600,604 ---- Distutils includes the changes described in PEP 241, as well as various bugfixes and enhancements. It will be available from ! the Distutils SIG at \url{http://www.python.org/sigs/distutils-sig/}. % XXX update when I actually release 1.0.2 *************** *** 798,802 **** For a fuller discussion of the line I/O changes, see the python-dev summary for January 1-15, 2001 at ! \url{http://www.amk.ca/python/dev/2001-01-1.html}. \item A new method, \method{popitem()}, was added to dictionaries to --- 798,802 ---- For a fuller discussion of the line I/O changes, see the python-dev summary for January 1-15, 2001 at ! \url{http://www.python.org/dev/summary/2001-01-1.html}. \item A new method, \method{popitem()}, was added to dictionaries to From fdrake@users.sourceforge.net Tue Jul 22 02:09:24 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Mon, 21 Jul 2003 18:09:24 -0700 Subject: [Python-checkins] python/dist/src/Doc/mac libscrap.tex,1.1,1.2 toolbox.tex,1.7,1.8 using.tex,1.8,1.9 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/mac In directory sc8-pr-cvs1:/tmp/cvs-serv15906 Modified Files: libscrap.tex toolbox.tex using.tex Log Message: Avoid a 301 permanent redirect. Part of SF patch #773007. Index: libscrap.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/mac/libscrap.tex,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** libscrap.tex 8 Mar 2002 03:15:49 -0000 1.1 --- libscrap.tex 22 Jul 2003 01:09:22 -0000 1.2 *************** *** 36,40 **** \begin{seealso} ! \seetitle[http://developer.apple.com/techpubs/mac/MoreToolbox/MoreToolbox-109.html] {Scrap Manager}{Apple's documentation for the Scrap Manager gives a lot of useful information about using the Scrap --- 36,40 ---- \begin{seealso} ! \seetitle[http://developer.apple.com/documentation/mac/MoreToolbox/MoreToolbox-109.html] {Scrap Manager}{Apple's documentation for the Scrap Manager gives a lot of useful information about using the Scrap Index: toolbox.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/mac/toolbox.tex,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** toolbox.tex 12 Feb 2003 09:58:33 -0000 1.7 --- toolbox.tex 22 Jul 2003 01:09:22 -0000 1.8 *************** *** 11,15 **** functions have a \member{__doc__} string describing their arguments and return values, and for additional description you are referred to ! \citetitle[http://developer.apple.com/techpubs/macos8/mac8.html]{Inside Macintosh} or similar works. --- 11,15 ---- functions have a \member{__doc__} string describing their arguments and return values, and for additional description you are referred to ! \citetitle[http://developer.apple.com/documentation/macos8/mac8.html]{Inside Macintosh} or similar works. Index: using.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/mac/using.tex,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** using.tex 11 Apr 2003 15:35:28 -0000 1.8 --- using.tex 22 Jul 2003 01:09:22 -0000 1.9 *************** *** 3,7 **** Using Python on a Macintosh, especially on Mac OS 9 (MacPython-OSX ! includes a complete unix Python) can seem like something completely different than using it on a \UNIX-like or Windows system. Most of the Python documentation, both the ``official'' documentation and published --- 3,7 ---- Using Python on a Macintosh, especially on Mac OS 9 (MacPython-OSX ! includes a complete \UNIX{} Python) can seem like something completely different than using it on a \UNIX-like or Windows system. Most of the Python documentation, both the ``official'' documentation and published *************** *** 29,37 **** \item A \file{MacPython-2.3} folder in your \file{Applications} folder. In here you find the PythonIDE Integrated Development Environment; ! PythonLauncher, which handles double-clicking Python scripts from the Finder; and ! the Package Manager. ! \item A fairly standard unix commandline Python interpreter in ! \file{/usr/local/bin/python}, but without the usual \file{/usr/local/lib/python}. \item A framework \file{/Library/Frameworks/Python.framework}, where --- 29,38 ---- \item A \file{MacPython-2.3} folder in your \file{Applications} folder. In here you find the PythonIDE Integrated Development Environment; ! PythonLauncher, which handles double-clicking Python scripts from ! the Finder; and the Package Manager. ! \item A fairly standard \UNIX{} commandline Python interpreter in ! \file{/usr/local/bin/python}, but without the usual ! \file{/usr/local/lib/python}. \item A framework \file{/Library/Frameworks/Python.framework}, where *************** *** 45,50 **** Python you should start reading the IDE introduction in that document. ! If you are familiar with Python on other unix platforms you should read the ! section on running Python scripts from the unix shell. \subsection{How to run a Python script} --- 46,51 ---- Python you should start reading the IDE introduction in that document. ! If you are familiar with Python on other \UNIX{} platforms you should ! read the section on running Python scripts from the \UNIX{} shell. \subsection{How to run a Python script} *************** *** 56,67 **** If you want to run Python scripts from the Terminal window command line or from the Finder you first need an editor to create your script. ! Mac OS X comes with a number of standard unix command line editors, \program{vi} and \program{emacs} among them. If you want a more Mac-like editor \program{BBEdit} or \program{TextWrangler} from Bare Bones Software ! (see \url{http://www.barebones.com}) are good choices. Their freeware ! \program{BBEdit Lite} is officially discontinued but still available. ! \program{AppleWorks} or any other word processor that can save files ! in ASCII is also a possibility, but \program{TextEdit} is not: it saves in .rtf ! format only. To run your script from the Terminal window you must make sure that --- 57,68 ---- If you want to run Python scripts from the Terminal window command line or from the Finder you first need an editor to create your script. ! Mac OS X comes with a number of standard \UNIX{} command line editors, \program{vi} and \program{emacs} among them. If you want a more Mac-like editor \program{BBEdit} or \program{TextWrangler} from Bare Bones Software ! (see \url{http://www.barebones.com/products/bbedit/index.shtml}) are ! good choices. Their freeware \program{BBEdit Lite} is officially ! discontinued but still available. \program{AppleWorks} or any other ! word processor that can save files in ASCII is also a possibility, but ! \program{TextEdit} is not: it saves in \file{.rtf} format only. To run your script from the Terminal window you must make sure that *************** *** 91,96 **** \subsection{configuration} ! MacPython honours all standard unix environment variables such as \envvar{PYTHONPATH}, ! but setting these variables for programs started from the Finder is non-standard as the Finder does not read your \file{.profile} or \file{.cshrc} at startup. You need to create a file \file{\textasciitilde /.MacOSX/environment.plist}. --- 92,98 ---- \subsection{configuration} ! MacPython honours all standard \UNIX{} environment variables such as ! \envvar{PYTHONPATH}, but setting these variables for programs started ! from the Finder is non-standard as the Finder does not read your \file{.profile} or \file{.cshrc} at startup. You need to create a file \file{\textasciitilde /.MacOSX/environment.plist}. *************** *** 104,108 **** The most recent release version as well as possible newer experimental versions are best found at the MacPython page maintained by Jack ! Jansen: \url{http://www.cwi.nl/\textasciitilde jack/macpython.html}. Please refer to the \file{README} included with your distribution for --- 106,110 ---- The most recent release version as well as possible newer experimental versions are best found at the MacPython page maintained by Jack ! Jansen: \url{http://homepages.cwi.nl/\textasciitilde jack/macpython.html}. Please refer to the \file{README} included with your distribution for From fdrake@acm.org Tue Jul 22 02:11:35 2003 From: fdrake@acm.org (Fred L. Drake, Jr.) Date: Mon, 21 Jul 2003 21:11:35 -0400 Subject: [Python-checkins] python/dist/src/Doc/mac libscrap.tex,1.1,1.2 toolbox.tex,1.7,1.8 using.tex,1.8,1.9 In-Reply-To: References: Message-ID: <16156.36679.497358.552505@grendel.zope.com> fdrake@users.sourceforge.net writes: > Modified Files: > libscrap.tex toolbox.tex using.tex > Log Message: > Avoid a 301 permanent redirect. > Part of SF patch #773007. Argh! I fixed a bunch of markup errors in using.tex as well, but was too quick with the commit to note it in the checkin message. I'll fix the message, but wanted to note that this was intentional. -Fred -- Fred L. Drake, Jr. PythonLabs at Zope Corporation From tim_one@users.sourceforge.net Tue Jul 22 03:50:03 2003 From: tim_one@users.sourceforge.net (tim_one@users.sourceforge.net) Date: Mon, 21 Jul 2003 19:50:03 -0700 Subject: [Python-checkins] python/dist/src/Lib tempfile.py,1.55,1.56 Message-ID: Update of /cvsroot/python/python/dist/src/Lib In directory sc8-pr-cvs1:/tmp/cvs-serv30780/Lib Modified Files: tempfile.py Log Message: Windows fix: When PYTHONCASEOK is set, or for any other reason imports are satisfied in a case-insensitive manner, the attempt to import (the non-existent) fcntl gets satisfied by FCNTL.py instead, and the tempfile module defines a Unix-specific _set_cloexec() function in that case. As a result, temp files can't be created then (blows up with an AttributeError trying to reference fcntl.fcntl). This just popped up in the spambayes project, where there is no apparent workaround (which is why I'm pushing this in now). Index: tempfile.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/tempfile.py,v retrieving revision 1.55 retrieving revision 1.56 diff -C2 -d -r1.55 -r1.56 *** tempfile.py 21 Mar 2003 12:55:10 -0000 1.55 --- tempfile.py 22 Jul 2003 02:50:01 -0000 1.56 *************** *** 39,42 **** --- 39,50 ---- try: import fcntl as _fcntl + # If PYTHONCASEOK is set on Windows, stinking FCNTL.py gets + # imported, and we don't get an ImportError then. Provoke + # an AttributeError instead in that case. + _fcntl.fcntl + except (ImportError, AttributeError): + def _set_cloexec(fd): + pass + else: def _set_cloexec(fd): flags = _fcntl.fcntl(fd, _fcntl.F_GETFD, 0) *************** *** 45,51 **** flags |= _fcntl.FD_CLOEXEC _fcntl.fcntl(fd, _fcntl.F_SETFD, flags) ! except (ImportError, AttributeError): ! def _set_cloexec(fd): ! pass try: --- 53,57 ---- flags |= _fcntl.FD_CLOEXEC _fcntl.fcntl(fd, _fcntl.F_SETFD, flags) ! try: From tim_one@users.sourceforge.net Tue Jul 22 03:50:03 2003 From: tim_one@users.sourceforge.net (tim_one@users.sourceforge.net) Date: Mon, 21 Jul 2003 19:50:03 -0700 Subject: [Python-checkins] python/dist/src/Misc NEWS,1.822,1.823 Message-ID: Update of /cvsroot/python/python/dist/src/Misc In directory sc8-pr-cvs1:/tmp/cvs-serv30780/Misc Modified Files: NEWS Log Message: Windows fix: When PYTHONCASEOK is set, or for any other reason imports are satisfied in a case-insensitive manner, the attempt to import (the non-existent) fcntl gets satisfied by FCNTL.py instead, and the tempfile module defines a Unix-specific _set_cloexec() function in that case. As a result, temp files can't be created then (blows up with an AttributeError trying to reference fcntl.fcntl). This just popped up in the spambayes project, where there is no apparent workaround (which is why I'm pushing this in now). Index: NEWS =================================================================== RCS file: /cvsroot/python/python/dist/src/Misc/NEWS,v retrieving revision 1.822 retrieving revision 1.823 diff -C2 -d -r1.822 -r1.823 *** NEWS 21 Jul 2003 17:17:10 -0000 1.822 --- NEWS 22 Jul 2003 02:50:01 -0000 1.823 *************** *** 40,43 **** --- 40,46 ---- ------- + - The tempfile module could do insane imports on Windows if PYTHONCASEOK + was set, making temp file creation impossible. Repaired. + Mac --- From rhettinger@users.sourceforge.net Tue Jul 22 07:33:15 2003 From: rhettinger@users.sourceforge.net (rhettinger@users.sourceforge.net) Date: Mon, 21 Jul 2003 23:33:15 -0700 Subject: [Python-checkins] python/dist/src/Doc/lib libitertools.tex,1.11,1.12 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/lib In directory sc8-pr-cvs1:/tmp/cvs-serv27397 Modified Files: libitertools.tex Log Message: Important usability fix in itertools documentation. Index: libitertools.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/libitertools.tex,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** libitertools.tex 28 Jun 2003 05:44:36 -0000 1.11 --- libitertools.tex 22 Jul 2003 06:33:13 -0000 1.12 *************** *** 349,361 **** >>> def all(pred, seq): ... "Returns True if pred(x) is True for every element in the iterable" ! ... return not nth(ifilterfalse(pred, seq), 0) >>> def some(pred, seq): ... "Returns True if pred(x) is True at least one element in the iterable" ! ... return bool(nth(ifilter(pred, seq), 0)) >>> def no(pred, seq): ... "Returns True if pred(x) is False for every element in the iterable" ! ... return not nth(ifilter(pred, seq), 0) >>> def padnone(seq): --- 349,361 ---- >>> def all(pred, seq): ... "Returns True if pred(x) is True for every element in the iterable" ! ... return False not in imap(pred, seq) >>> def some(pred, seq): ... "Returns True if pred(x) is True at least one element in the iterable" ! ... return True in imap(pred, seq) >>> def no(pred, seq): ... "Returns True if pred(x) is False for every element in the iterable" ! ... return True not in imap(pred, seq) >>> def padnone(seq): From fdrake@users.sourceforge.net Tue Jul 22 07:44:36 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Mon, 21 Jul 2003 23:44:36 -0700 Subject: [Python-checkins] python/dist/src/Doc/tools buildindex.py,1.13,1.13.12.1 mkmodindex,1.15,1.15.12.1 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/tools In directory sc8-pr-cvs1:/tmp/cvs-serv28811/tools Modified Files: Tag: indexing-cleanup-branch buildindex.py mkmodindex Log Message: First step in trying to clean up some of the support for index generation: Make the data files slightly less irregular. Start removing some of the formating from the data as well. (There is a loong way to go!) Index: buildindex.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/tools/buildindex.py,v retrieving revision 1.13 retrieving revision 1.13.12.1 diff -C2 -d -r1.13 -r1.13.12.1 *** buildindex.py 16 Oct 2002 15:27:01 -0000 1.13 --- buildindex.py 22 Jul 2003 06:44:34 -0000 1.13.12.1 *************** *** 48,57 **** return bang_join(self.key) - def dump(self): - return "%s\1%s###%s\n" \ - % ("\1".join(self.links), - bang_join(self.text), - self.seqno) - def cmp_part(s1, s2): --- 48,51 ---- *************** *** 102,109 **** def split_entry_text(str): - if '<' in str: - m = _rmtt.match(str) - if m: - str = null_join(m.group(1, 2, 3)) return split_entry(str, 1) --- 96,99 ---- *************** *** 111,123 **** def load(fp): nodes = [] - rx = re.compile("(.*)\1(.*)###(.*)$") while 1: line = fp.readline() if not line: break ! m = rx.match(line) ! if m: ! link, str, seqno = m.group(1, 2, 3) ! nodes.append(Node(link, str, seqno)) return nodes --- 101,111 ---- def load(fp): nodes = [] while 1: line = fp.readline() if not line: break ! parts = line.split("\1", 2) ! if len(parts) == 3: ! nodes.append(Node(*parts)) return nodes *************** *** 245,252 **** append("\n
    %s%s\n
    \n%s
    " % (term, extra, level * DL_LEVEL_INDENT)) ! append("\n%s
    %s%s" % (level * DL_LEVEL_INDENT, node.links[0], node.text[-1])) for link in node.links[1:]: ! append(",\n%s %s[Link]" % (level * DL_LEVEL_INDENT, link)) previous = current append("\n") --- 233,241 ---- append("\n
    %s%s\n
    \n%s
    " % (term, extra, level * DL_LEVEL_INDENT)) ! append('\n%s
    %s' % (level * DL_LEVEL_INDENT, node.links[0], node.text[-1])) for link in node.links[1:]: ! append(',\n%s [Link]' ! % (level * DL_LEVEL_INDENT, link)) previous = current append("\n") *************** *** 320,328 **** i = i + 1 prev = node - - - def dump(nodes, fp): - for node in nodes: - fp.write(node.dump()) --- 309,312 ---- Index: mkmodindex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/tools/mkmodindex,v retrieving revision 1.15 retrieving revision 1.15.12.1 diff -C2 -d -r1.15 -r1.15.12.1 *** mkmodindex 30 Oct 2002 21:32:39 -0000 1.15 --- mkmodindex 22 Jul 2003 06:44:34 -0000 1.15.12.1 *************** *** 123,127 **** has_plat_flag = has_plat_flag or platinfo linkfile = os.path.join(dirname, basename) ! nodes.append(Node('' % linkfile, modname, len(nodes), platinfo)) ifp.close() --- 123,127 ---- has_plat_flag = has_plat_flag or platinfo linkfile = os.path.join(dirname, basename) ! nodes.append(Node(linkfile, modname, len(nodes), platinfo)) ifp.close() From fdrake@users.sourceforge.net Tue Jul 22 07:44:36 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Mon, 21 Jul 2003 23:44:36 -0700 Subject: [Python-checkins] python/dist/src/Doc/perl l2hinit.perl,1.74,1.74.6.1 python.perl,1.137,1.137.4.1 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/perl In directory sc8-pr-cvs1:/tmp/cvs-serv28811/perl Modified Files: Tag: indexing-cleanup-branch l2hinit.perl python.perl Log Message: First step in trying to clean up some of the support for index generation: Make the data files slightly less irregular. Start removing some of the formating from the data as well. (There is a loong way to go!) Index: l2hinit.perl =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/perl/l2hinit.perl,v retrieving revision 1.74 retrieving revision 1.74.6.1 diff -C2 -d -r1.74 -r1.74.6.1 *** l2hinit.perl 27 Jun 2003 18:26:01 -0000 1.74 --- l2hinit.perl 22 Jul 2003 06:44:33 -0000 1.74.6.1 *************** *** 348,362 **** open(MODIDXFILE, '>modindex.dat') || die "\n$!\n"; foreach $key (keys %Modules) { ! # dump the line in the data file; just use a dummy seqno field ! my $nkey = $1; ! my $moditem = "$Modules{$key}"; my $plat = ''; - $key =~ s/([a-zA-Z0-9._]*)<\/tt>/$1/; if ($ModulePlatforms{$key} && !$allthesame) { $plat = (" ($ModulePlatforms{$key}" . ')'); } ! print MODIDXFILE $moditem . $IDXFILE_FIELD_SEP ! . "$key$plat###\n"; } close(MODIDXFILE); --- 348,362 ---- open(MODIDXFILE, '>modindex.dat') || die "\n$!\n"; foreach $key (keys %Modules) { ! # dump the line in the data file; just use an empty seqno field my $plat = ''; if ($ModulePlatforms{$key} && !$allthesame) { $plat = (" ($ModulePlatforms{$key}" . ')'); } ! my $s = "$Modules{$key}$IDXFILE_FIELD_SEP$key"; ! $s =~ s//$1/; ! print MODIDXFILE ("$s$plat" ! . $IDXFILE_FIELD_SEP ! . "\n"); } close(MODIDXFILE); Index: python.perl =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/perl/python.perl,v retrieving revision 1.137 retrieving revision 1.137.4.1 diff -C2 -d -r1.137 -r1.137.4.1 *** python.perl 16 Jul 2003 14:01:56 -0000 1.137 --- python.perl 22 Jul 2003 06:44:34 -0000 1.137.4.1 *************** *** 493,497 **** sub write_idxfile($$){ my($ahref, $str) = @_; ! print IDXFILE $ahref, $IDXFILE_FIELD_SEP, $str, "\n"; } --- 493,500 ---- sub write_idxfile($$){ my($ahref, $str) = @_; ! my $info = "$ahref$IDXFILE_FIELD_SEP$str\n"; ! $info =~ s//$1/; ! $info =~ s/###/$IDXFILE_FIELD_SEP/; ! print IDXFILE $info; } From jackjansen@users.sourceforge.net Tue Jul 22 14:45:28 2003 From: jackjansen@users.sourceforge.net (jackjansen@users.sourceforge.net) Date: Tue, 22 Jul 2003 06:45:28 -0700 Subject: [Python-checkins] python/dist/src/Mac/OSX/Dist/resources Welcome.txt,1.4,1.5 Message-ID: Update of /cvsroot/python/python/dist/src/Mac/OSX/Dist/resources In directory sc8-pr-cvs1:/tmp/cvs-serv23705/resources Modified Files: Welcome.txt Log Message: Files used for the 2.3rc1+ binary installer. This one has the size problem fixed. It also attempts to force boot-disk-only installs, but this seems to lead to a problem that you have to deselect and reselect the installation disk. If no-one comes up with a fix RSN I'll revert to the previous situation and explain in the readme that you cannot install on a non-system-disk. Index: Welcome.txt =================================================================== RCS file: /cvsroot/python/python/dist/src/Mac/OSX/Dist/resources/Welcome.txt,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** Welcome.txt 4 Jul 2003 11:06:36 -0000 1.4 --- Welcome.txt 22 Jul 2003 13:45:26 -0000 1.5 *************** *** 1,7 **** ! This program will install MacPython 2.3b2 for Mac OS X 10.2. Installation ! on 10.0, 10.1 or the 10.3 seed is explicitly discouraged. ! MacPython consists of the Python programming language interpreter, plus ! a set of programs to allow easy access to it for Mac users (an integrated development environment, a Python extension package manager), plus a set of pre-built extension modules that open up specific --- 1,9 ---- ! This package will install MacPython 2.3rc1+ for Mac OS X 10.2. ! Installation on 10.0, 10.1 or the Panther seed is explicitly discouraged. ! Installation requires approximately 20 MB of disk space, ignore the ! message that it will take zero bytes. ! MacPython consists of the Python programming language interpreter, ! plus a set of programs to allow easy access to it for Mac users (an integrated development environment, a Python extension package manager), plus a set of pre-built extension modules that open up specific From jackjansen@users.sourceforge.net Tue Jul 22 14:45:28 2003 From: jackjansen@users.sourceforge.net (jackjansen@users.sourceforge.net) Date: Tue, 22 Jul 2003 06:45:28 -0700 Subject: [Python-checkins] python/dist/src/Mac/OSX/Dist build,1.10,1.11 Message-ID: Update of /cvsroot/python/python/dist/src/Mac/OSX/Dist In directory sc8-pr-cvs1:/tmp/cvs-serv23705 Modified Files: build Log Message: Files used for the 2.3rc1+ binary installer. This one has the size problem fixed. It also attempts to force boot-disk-only installs, but this seems to lead to a problem that you have to deselect and reselect the installation disk. If no-one comes up with a fix RSN I'll revert to the previous situation and explain in the readme that you cannot install on a non-system-disk. Index: build =================================================================== RCS file: /cvsroot/python/python/dist/src/Mac/OSX/Dist/build,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** build 4 Jul 2003 11:06:36 -0000 1.10 --- build 22 Jul 2003 13:45:26 -0000 1.11 *************** *** 6,12 **** # Script configs ! PYVERSION=2.3b2 PYVER=2.3 ! BUILDNUM=2 DOCLEANUP=no --- 6,12 ---- # Script configs ! PYVERSION=2.3rc1plus PYVER=2.3 ! BUILDNUM=6 DOCLEANUP=no *************** *** 127,134 **** --InstallOnly="YES" \ --UseUserMask="NO" \ $INSTALLROOT \ $RESOURCEDIR - ## --RootVolumeOnly="YES" \ # ...and then make a disk image containing the package. --- 127,134 ---- --InstallOnly="YES" \ --UseUserMask="NO" \ + --RootVolumeOnly="YES" \ $INSTALLROOT \ $RESOURCEDIR # ...and then make a disk image containing the package. From jackjansen@users.sourceforge.net Tue Jul 22 15:31:36 2003 From: jackjansen@users.sourceforge.net (jackjansen@users.sourceforge.net) Date: Tue, 22 Jul 2003 07:31:36 -0700 Subject: [Python-checkins] python/dist/src/Mac/scripts buildpkg.py,1.3,1.4 Message-ID: Update of /cvsroot/python/python/dist/src/Mac/scripts In directory sc8-pr-cvs1:/tmp/cvs-serv32383 Modified Files: buildpkg.py Log Message: Various tweaks to make the packages work better. Still not 100%, though. Index: buildpkg.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Mac/scripts/buildpkg.py,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** buildpkg.py 1 Feb 2003 10:07:28 -0000 1.3 --- buildpkg.py 22 Jul 2003 14:31:34 -0000 1.4 *************** *** 61,65 **** Description DefaultLocation - Diskname DeleteWarning NeedsAuthorization --- 61,64 ---- *************** *** 72,75 **** --- 71,78 ---- RequiresReboot RootVolumeOnly + LongFilenames + LibrarySubdirectory + AllowBackRev + OverwritePermissions InstallFat\ """ *************** *** 139,143 **** 'Description': '', 'DefaultLocation': '/', - 'Diskname': '(null)', 'DeleteWarning': '', 'NeedsAuthorization': 'NO', --- 142,145 ---- *************** *** 150,154 **** 'RequiresReboot': 'NO', 'RootVolumeOnly' : 'NO', ! 'InstallFat': 'NO'} --- 152,161 ---- 'RequiresReboot': 'NO', 'RootVolumeOnly' : 'NO', ! 'InstallFat': 'NO', ! 'LongFilenames': 'YES', ! 'LibrarySubdirectory': 'Standard', ! 'AllowBackRev': 'YES', ! 'OverwritePermissions': 'NO', ! } *************** *** 202,205 **** --- 209,213 ---- self._addResources() self._addSizes() + self._addLoc() *************** *** 224,228 **** info = "" for f in string.split(PKG_INFO_FIELDS, "\n"): ! info = info + "%s %%(%s)s\n" % (f, f) info = info % self.packageInfo base = self.packageInfo["Title"] + ".info" --- 232,237 ---- info = "" for f in string.split(PKG_INFO_FIELDS, "\n"): ! if self.packageInfo.has_key(f): ! info = info + "%s %%(%s)s\n" % (f, f) info = info % self.packageInfo base = self.packageInfo["Title"] + ".info" *************** *** 352,355 **** --- 361,369 ---- f.write(format % (numFiles, installedSize, zippedSize)) + def _addLoc(self): + "Write .loc file." + base = self.packageInfo["Title"] + ".loc" + f = open(join(self.packageResourceFolder, base), "w") + f.write('/') # Shortcut function interface From montanaro@users.sourceforge.net Tue Jul 22 15:37:45 2003 From: montanaro@users.sourceforge.net (montanaro@users.sourceforge.net) Date: Tue, 22 Jul 2003 07:37:45 -0700 Subject: [Python-checkins] python/dist/src/Lib/encodings rot_13.py,1.3,1.4 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/encodings In directory sc8-pr-cvs1:/tmp/cvs-serv903 Modified Files: rot_13.py Log Message: more generic reference to python interpreter Index: rot_13.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/encodings/rot_13.py,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** rot_13.py 8 Aug 2002 20:19:19 -0000 1.3 --- rot_13.py 22 Jul 2003 14:37:42 -0000 1.4 *************** *** 1,3 **** ! #!/usr/local/bin/python2.1 """ Python Character Mapping Codec for ROT13. --- 1,3 ---- ! #!/usr/bin/env python """ Python Character Mapping Codec for ROT13. From jlt63@users.sourceforge.net Tue Jul 22 16:20:52 2003 From: jlt63@users.sourceforge.net (jlt63@users.sourceforge.net) Date: Tue, 22 Jul 2003 08:20:52 -0700 Subject: [Python-checkins] python/dist/src/Python thread_pthread.h,2.46,2.47 Message-ID: Update of /cvsroot/python/python/dist/src/Python In directory sc8-pr-cvs1:/tmp/cvs-serv8490/Python Modified Files: thread_pthread.h Log Message: Patch 775605: Cygwin pthread_sigmask() workaround patch Cygwin's pthread_sigmask() implementation appears to be buggy. This patch works around this problem by using sigprocmask() instead. This patch is implemented in a general way so it could be used by other platforms too. If this approach is deemed too risky, then I can work up a patch that just hacks Python/thread_pthread.h for Cygwin. Note that I tested this patch against 2.3c1 under Red Hat Linux 8.0 too. [snip] And finally, I need someone to regenerate pyconfig.h.in and configure with the same versions of the autotools that are normally used by Python. Neal kindly regenerated pyconfig.h.in and configure for me. Index: thread_pthread.h =================================================================== RCS file: /cvsroot/python/python/dist/src/Python/thread_pthread.h,v retrieving revision 2.46 retrieving revision 2.47 diff -C2 -d -r2.46 -r2.47 *** thread_pthread.h 19 Apr 2003 07:44:52 -0000 2.46 --- thread_pthread.h 22 Jul 2003 15:20:49 -0000 2.47 *************** *** 117,121 **** * pthread implementation. */ ! #ifdef HAVE_PTHREAD_SIGMASK # define SET_THREAD_SIGMASK pthread_sigmask #else --- 117,121 ---- * pthread implementation. */ ! #if defined(HAVE_PTHREAD_SIGMASK) && !defined(HAVE_BROKEN_PTHREAD_SIGMASK) # define SET_THREAD_SIGMASK pthread_sigmask #else From jlt63@users.sourceforge.net Tue Jul 22 16:20:52 2003 From: jlt63@users.sourceforge.net (jlt63@users.sourceforge.net) Date: Tue, 22 Jul 2003 08:20:52 -0700 Subject: [Python-checkins] python/dist/src configure,1.414,1.415 configure.in,1.425,1.426 pyconfig.h.in,1.82,1.83 Message-ID: Update of /cvsroot/python/python/dist/src In directory sc8-pr-cvs1:/tmp/cvs-serv8490 Modified Files: configure configure.in pyconfig.h.in Log Message: Patch 775605: Cygwin pthread_sigmask() workaround patch Cygwin's pthread_sigmask() implementation appears to be buggy. This patch works around this problem by using sigprocmask() instead. This patch is implemented in a general way so it could be used by other platforms too. If this approach is deemed too risky, then I can work up a patch that just hacks Python/thread_pthread.h for Cygwin. Note that I tested this patch against 2.3c1 under Red Hat Linux 8.0 too. [snip] And finally, I need someone to regenerate pyconfig.h.in and configure with the same versions of the autotools that are normally used by Python. Neal kindly regenerated pyconfig.h.in and configure for me. Index: configure =================================================================== RCS file: /cvsroot/python/python/dist/src/configure,v retrieving revision 1.414 retrieving revision 1.415 diff -C2 -d -r1.414 -r1.415 *** configure 13 Jul 2003 09:46:13 -0000 1.414 --- configure 22 Jul 2003 15:20:47 -0000 1.415 *************** *** 1,4 **** #! /bin/sh ! # From configure.in Revision: 1.424 . # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.53 for python 2.3. --- 1,4 ---- #! /bin/sh ! # From configure.in Revision: 1.425 . # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.53 for python 2.3. *************** *** 909,913 **** # absolute. ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` ! ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd` ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` --- 909,913 ---- # absolute. ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` ! ac_abs_top_builddir=`cd "$ac_dir" && cd $ac_top_builddir && pwd` ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` *************** *** 11786,11790 **** --- 11786,11798 ---- #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF + case $ac_sys_system in + CYGWIN*) + + cat >>confdefs.h <<\_ACEOF + #define HAVE_BROKEN_PTHREAD_SIGMASK 1 + _ACEOF + ;; + esac fi done *************** *** 18503,18507 **** # absolute. ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` ! ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd` ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` --- 18511,18515 ---- # absolute. ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` ! ac_abs_top_builddir=`cd "$ac_dir" && cd $ac_top_builddir && pwd` ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` Index: configure.in =================================================================== RCS file: /cvsroot/python/python/dist/src/configure.in,v retrieving revision 1.425 retrieving revision 1.426 diff -C2 -d -r1.425 -r1.426 *** configure.in 13 Jul 2003 09:46:13 -0000 1.425 --- configure.in 22 Jul 2003 15:20:49 -0000 1.426 *************** *** 1702,1706 **** AC_DEFINE(PTHREAD_SYSTEM_SCHED_SUPPORTED, 1, [Defined if PTHREAD_SCOPE_SYSTEM supported.]) fi ! AC_CHECK_FUNCS(pthread_sigmask) fi --- 1702,1712 ---- AC_DEFINE(PTHREAD_SYSTEM_SCHED_SUPPORTED, 1, [Defined if PTHREAD_SCOPE_SYSTEM supported.]) fi ! AC_CHECK_FUNCS(pthread_sigmask, ! [case $ac_sys_system in ! CYGWIN*) ! AC_DEFINE(HAVE_BROKEN_PTHREAD_SIGMASK, 1, ! [Define if pthread_sigmask() does not work on your system.]) ! ;; ! esac]) fi Index: pyconfig.h.in =================================================================== RCS file: /cvsroot/python/python/dist/src/pyconfig.h.in,v retrieving revision 1.82 retrieving revision 1.83 diff -C2 -d -r1.82 -r1.83 *** pyconfig.h.in 2 Jul 2003 13:53:25 -0000 1.82 --- pyconfig.h.in 22 Jul 2003 15:20:49 -0000 1.83 *************** *** 48,51 **** --- 48,54 ---- #undef HAVE_BROKEN_POSIX_SEMAPHORES + /* Define if pthread_sigmask() does not work on your system. */ + #undef HAVE_BROKEN_PTHREAD_SIGMASK + /* Define to 1 if you have the `chown' function. */ #undef HAVE_CHOWN *************** *** 830,836 **** #undef _NETBSD_SOURCE - /* Define on FreeBSD to activate all library features */ - #undef __BSD_VISIBLE - /* Define _OSF_SOURCE to get the makedev macro. */ #undef _OSF_SOURCE --- 833,836 ---- *************** *** 857,860 **** --- 857,863 ---- /* Define to activate Unix95-and-earlier features */ #undef _XOPEN_SOURCE_EXTENDED + + /* Define on FreeBSD to activate all library features */ + #undef __BSD_VISIBLE /* Define to 1 if type `char' is unsigned and you are not using gcc. */ From theller@users.sourceforge.net Tue Jul 22 19:10:04 2003 From: theller@users.sourceforge.net (theller@users.sourceforge.net) Date: Tue, 22 Jul 2003 11:10:04 -0700 Subject: [Python-checkins] python/dist/src/Lib/test test_zipimport.py,1.9,1.10 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/test In directory sc8-pr-cvs1:/tmp/cvs-serv9380 Modified Files: test_zipimport.py Log Message: Change the zipimport implementation to accept files containing arbitrary bytes before the actual zip compatible archive. Zipfiles containing comments at the end of the file are still not supported. Add a testcase to test_zipimport, and update NEWS. This closes sf #775637 and sf #669036. Index: test_zipimport.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/test/test_zipimport.py,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** test_zipimport.py 10 May 2003 07:36:55 -0000 1.9 --- test_zipimport.py 22 Jul 2003 18:10:02 -0000 1.10 *************** *** 50,54 **** ImportHooksBaseTestCase.setUp(self) ! def doTest(self, expected_ext, files, *modules): z = ZipFile(TEMP_ZIP, "w") try: --- 50,54 ---- ImportHooksBaseTestCase.setUp(self) ! def doTest(self, expected_ext, files, *modules, **kw): z = ZipFile(TEMP_ZIP, "w") try: *************** *** 58,61 **** --- 58,74 ---- z.writestr(zinfo, data) z.close() + + stuff = kw.get("stuff", None) + if stuff is not None: + # Prepend 'stuff' to the start of the zipfile + f = open(TEMP_ZIP, "rb") + data = f.read() + f.close() + + f = open(TEMP_ZIP, "wb") + f.write(stuff) + f.write(data) + f.close() + sys.path.insert(0, TEMP_ZIP) *************** *** 182,185 **** --- 195,204 ---- self.doTest(pyc_ext, files, TESTMOD) + def testImport_WithStuff(self): + # try importing from a zipfile which contains additional + # stuff at the beginning of the file + files = {TESTMOD + ".py": (NOW, test_src)} + self.doTest(".py", files, TESTMOD, + stuff="Some Stuff"*31) class CompressedZipImportTestCase(UncompressedZipImportTestCase): From theller@users.sourceforge.net Tue Jul 22 19:10:11 2003 From: theller@users.sourceforge.net (theller@users.sourceforge.net) Date: Tue, 22 Jul 2003 11:10:11 -0700 Subject: [Python-checkins] python/dist/src/Misc NEWS,1.823,1.824 Message-ID: Update of /cvsroot/python/python/dist/src/Misc In directory sc8-pr-cvs1:/tmp/cvs-serv9432 Modified Files: NEWS Log Message: Change the zipimport implementation to accept files containing arbitrary bytes before the actual zip compatible archive. Zipfiles containing comments at the end of the file are still not supported. Add a testcase to test_zipimport, and update NEWS. This closes sf #775637 and sf #669036. Index: NEWS =================================================================== RCS file: /cvsroot/python/python/dist/src/Misc/NEWS,v retrieving revision 1.823 retrieving revision 1.824 diff -C2 -d -r1.823 -r1.824 *** NEWS 22 Jul 2003 02:50:01 -0000 1.823 --- NEWS 22 Jul 2003 18:10:09 -0000 1.824 *************** *** 13,16 **** --- 13,20 ---- ----------------- + - It is now possible to import from zipfiles containing additional + data bytes before the zip compatible archive. Zipfiles containing a + comment at the end are still unsupported. + Extension modules ----------------- From theller@users.sourceforge.net Tue Jul 22 19:10:17 2003 From: theller@users.sourceforge.net (theller@users.sourceforge.net) Date: Tue, 22 Jul 2003 11:10:17 -0700 Subject: [Python-checkins] python/dist/src/Modules zipimport.c,1.15,1.16 Message-ID: Update of /cvsroot/python/python/dist/src/Modules In directory sc8-pr-cvs1:/tmp/cvs-serv9458 Modified Files: zipimport.c Log Message: Change the zipimport implementation to accept files containing arbitrary bytes before the actual zip compatible archive. Zipfiles containing comments at the end of the file are still not supported. Add a testcase to test_zipimport, and update NEWS. This closes sf #775637 and sf #669036. Index: zipimport.c =================================================================== RCS file: /cvsroot/python/python/dist/src/Modules/zipimport.c,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** zipimport.c 17 Jul 2003 15:56:07 -0000 1.15 --- zipimport.c 22 Jul 2003 18:10:15 -0000 1.16 *************** *** 656,664 **** FILE *fp; long compress, crc, data_size, file_size, file_offset, date, time; ! long header_offset, name_size, header_size; long i, l, length, count; char path[MAXPATHLEN + 5]; char name[MAXPATHLEN + 5]; char *p, endof_central_dir[22]; if (strlen(archive) > MAXPATHLEN) { --- 656,665 ---- FILE *fp; long compress, crc, data_size, file_size, file_offset, date, time; ! long header_offset, name_size, header_size, header_position; long i, l, length, count; char path[MAXPATHLEN + 5]; char name[MAXPATHLEN + 5]; char *p, endof_central_dir[22]; + long arc_offset; /* offset from beginning of file to start of zip-archive */ if (strlen(archive) > MAXPATHLEN) { *************** *** 676,679 **** --- 677,681 ---- } fseek(fp, -22, SEEK_END); + header_position = ftell(fp); if (fread(endof_central_dir, 1, 22, fp) != 22) { fclose(fp); *************** *** 690,694 **** --- 692,699 ---- } + header_size = get_long((unsigned char *)endof_central_dir + 12); header_offset = get_long((unsigned char *)endof_central_dir + 16); + arc_offset = header_position - header_offset - header_size; + header_offset += arc_offset; files = PyDict_New(); *************** *** 721,725 **** PyMarshal_ReadShortFromFile(fp); fseek(fp, header_offset + 42, 0); ! file_offset = PyMarshal_ReadLongFromFile(fp); if (name_size > MAXPATHLEN) name_size = MAXPATHLEN; --- 726,730 ---- PyMarshal_ReadShortFromFile(fp); fseek(fp, header_offset + 42, 0); ! file_offset = PyMarshal_ReadLongFromFile(fp) + arc_offset; if (name_size > MAXPATHLEN) name_size = MAXPATHLEN; From jlt63@users.sourceforge.net Tue Jul 22 19:36:01 2003 From: jlt63@users.sourceforge.net (jlt63@users.sourceforge.net) Date: Tue, 22 Jul 2003 11:36:01 -0700 Subject: [Python-checkins] python/dist/src/Lib/test regrtest.py,1.142,1.143 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/test In directory sc8-pr-cvs1:/tmp/cvs-serv14115 Modified Files: regrtest.py Log Message: Patch #775784: YA Cygwin expected regression test skip patch This patch just adds test_ioctl to the list of expected skips for Cygwin. Index: regrtest.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/test/regrtest.py,v retrieving revision 1.142 retrieving revision 1.143 diff -C2 -d -r1.142 -r1.143 *** regrtest.py 7 Jun 2003 20:01:37 -0000 1.142 --- regrtest.py 22 Jul 2003 18:35:58 -0000 1.143 *************** *** 869,872 **** --- 869,873 ---- test_gl test_imgfile + test_ioctl test_largefile test_linuxaudiodev From bcannon@users.sourceforge.net Tue Jul 22 20:32:42 2003 From: bcannon@users.sourceforge.net (bcannon@users.sourceforge.net) Date: Tue, 22 Jul 2003 12:32:42 -0700 Subject: [Python-checkins] python/dist/src/Python ast.c,1.1.2.29,1.1.2.30 Message-ID: Update of /cvsroot/python/python/dist/src/Python In directory sc8-pr-cvs1:/tmp/cvs-serv23644/Python Modified Files: Tag: ast-branch ast.c Log Message: Back out rev. 1.1.2.29 since it does not work. Also added note about how default arguments for functions do not work. Index: ast.c =================================================================== RCS file: /cvsroot/python/python/dist/src/Python/Attic/ast.c,v retrieving revision 1.1.2.29 retrieving revision 1.1.2.30 diff -C2 -d -r1.1.2.29 -r1.1.2.30 *** ast.c 1 Jul 2003 05:32:37 -0000 1.1.2.29 --- ast.c 22 Jul 2003 19:32:39 -0000 1.1.2.30 *************** *** 92,100 **** } ! /* Generate AST from concrete syntax tree ! */ ! ! mod_ty ! PyAST_FromNode(const node *n) { int i, j, num, total; --- 92,96 ---- } ! mod_ty PyAST_FromNode(const node *n) { int i, j, num, total; *************** *** 356,362 **** /* XXX TO DO check for invalid argument lists like normal after default - DONE; causes bus error since calls to this function do not check - for possible NULL result to signal an error. handle nested tuple arguments */ --- 352,357 ---- /* XXX TO DO check for invalid argument lists like normal after default handle nested tuple arguments + handle default arguments properly (might be problem somwhere else) */ *************** *** 369,377 **** identifier vararg = NULL, kwarg = NULL; node *ch; - /* Used to make sure that different kinds of arguments come in the proper - order */ - enum parameter_kinds - {fpdef_kind=1, defaults_kind=2, vararg_kind=3, kwarg_kind=4} - parameter_kind = fpdef_kind; if (TYPE(n) == parameters) { --- 364,367 ---- *************** *** 415,437 **** return NULL; } ! if (TYPE(CHILD(ch, 0)) == NAME) { ! if (parameter_kind > fpdef_kind) { ! fprintf(stderr, "Error in order of arg kinds\n"); ! PyErr_Occurred(); ! return NULL; ! } ! asdl_seq_APPEND(args, Name(NEW_IDENTIFIER(CHILD(ch, 0)), ! Param)); ! /* Don't need to set parameter_kind since that is the ! default */ ! } if (i + 1 < NCH(n) && TYPE(CHILD(n, i + 1)) == EQUAL) { - if (parameter_kind > defaults_kind) { - fprintf(stderr, "Error in order of arg kinds\n"); - PyErr_Occurred(); - return NULL; - } asdl_seq_APPEND(defaults, ast_for_expr(CHILD(n, i + 2))); - parameter_kind = defaults_kind; i += 2; } --- 405,413 ---- return NULL; } ! if (TYPE(CHILD(ch, 0)) == NAME) ! asdl_seq_APPEND(args, Name(NEW_IDENTIFIER(CHILD(ch, 0)), ! Param)); if (i + 1 < NCH(n) && TYPE(CHILD(n, i + 1)) == EQUAL) { asdl_seq_APPEND(defaults, ast_for_expr(CHILD(n, i + 2))); i += 2; } *************** *** 439,459 **** break; case STAR: - if (parameter_kind > vararg_kind) { - fprintf(stderr, "Error in order of arg kinds\n"); - PyErr_Occurred(); - return NULL; - } vararg = NEW_IDENTIFIER(CHILD(n, i+1)); - parameter_kind = vararg_kind; i += 3; break; case DOUBLESTAR: - if (parameter_kind > kwarg_kind) { - fprintf(stderr, "Error in order of arg kinds\n"); - PyErr_Occurred(); - return NULL; - } kwarg = NEW_IDENTIFIER(CHILD(n, i+1)); - parameter_kind = kwarg_kind; i += 3; break; --- 415,423 ---- From bcannon@users.sourceforge.net Tue Jul 22 22:07:18 2003 From: bcannon@users.sourceforge.net (bcannon@users.sourceforge.net) Date: Tue, 22 Jul 2003 14:07:18 -0700 Subject: [Python-checkins] python/dist/src/Lib/test test_strptime.py,1.17,1.18 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/test In directory sc8-pr-cvs1:/tmp/cvs-serv11117/Lib/test Modified Files: test_strptime.py Log Message: Fix error in test of not comparing against 0 item of a list Index: test_strptime.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/test/test_strptime.py,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** test_strptime.py 3 Jul 2003 19:59:57 -0000 1.17 --- test_strptime.py 22 Jul 2003 21:07:16 -0000 1.18 *************** *** 92,96 **** # Make sure lang is set self.failUnless(self.LT_ins.lang in (locale.getdefaultlocale()[0], ! locale.getlocale(locale.LC_TIME), ''), "Setting of lang failed") --- 92,96 ---- # Make sure lang is set self.failUnless(self.LT_ins.lang in (locale.getdefaultlocale()[0], ! locale.getlocale(locale.LC_TIME)[0], ''), "Setting of lang failed") From tim_one@users.sourceforge.net Wed Jul 23 01:05:09 2003 From: tim_one@users.sourceforge.net (tim_one@users.sourceforge.net) Date: Tue, 22 Jul 2003 17:05:09 -0700 Subject: [Python-checkins] python/dist/src/Lib/test test_logging.py,1.10,1.11 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/test In directory sc8-pr-cvs1:/tmp/cvs-serv10532/Lib/test Modified Files: test_logging.py Log Message: Fred wasn't kidding -- there really are docs for the locale module . Obtain the original locale in the documented way. This way actually works for me. Restore the original locale at the end, instead of forcing to "C". Move the locale fiddling into the test driver instead of doing it as a side effect of merely importing the module. I don't know why the test is mucking with locale (and also added a comment saying so), but it surely has no justification for doing that as an import side-effect. Now whenever the locale-changing code executes, the locale-restoring code will also get run. Index: test_logging.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/test/test_logging.py,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** test_logging.py 18 Jul 2003 03:19:20 -0000 1.10 --- test_logging.py 23 Jul 2003 00:05:07 -0000 1.11 *************** *** 27,40 **** import select import os, sys, string, struct, types, cPickle, cStringIO ! import socket, threading, time, locale import logging, logging.handlers, logging.config - try: - cur_locale = locale.setlocale(locale.LC_ALL, '') - except (ValueError, locale.Error): - # this happens on a Solaris box which only supports "C" locale - # or a Mac OS X box which supports very little locale stuff at all - cur_locale = None - BANNER = "-- %-10s %-6s ---------------------------------------------------\n" --- 27,33 ---- import select import os, sys, string, struct, types, cPickle, cStringIO ! import socket, threading, time import logging, logging.handlers, logging.config BANNER = "-- %-10s %-6s ---------------------------------------------------\n" *************** *** 408,412 **** sys.stdout.flush() ! def test_main(): rootLogger = logging.getLogger("") rootLogger.setLevel(logging.DEBUG) --- 401,405 ---- sys.stdout.flush() ! def test_main_inner(): rootLogger = logging.getLogger("") rootLogger.setLevel(logging.DEBUG) *************** *** 475,480 **** sys.stdout.flush() ! if cur_locale: ! locale.setlocale(locale.LC_ALL, "C") if __name__ == "__main__": --- 468,489 ---- sys.stdout.flush() ! def test_main(): ! import locale ! # Set the locale to the platform-dependent default. I have no idea ! # why the test does this, but in any case we save the current locale ! # first so we can restore it at the end. ! try: ! original_locale = locale.setlocale(locale.LC_ALL) ! locale.setlocale(locale.LC_ALL, '') ! except (ValueError, locale.Error): ! # this happens on a Solaris box which only supports "C" locale ! # or a Mac OS X box which supports very little locale stuff at all ! original_locale = None ! ! try: ! test_main_inner() ! finally: ! if original_locale: ! locale.setlocale(locale.LC_ALL, original_locale) if __name__ == "__main__": From tim_one@users.sourceforge.net Wed Jul 23 01:30:13 2003 From: tim_one@users.sourceforge.net (tim_one@users.sourceforge.net) Date: Tue, 22 Jul 2003 17:30:13 -0700 Subject: [Python-checkins] python/dist/src/Lib/test regrtest.py,1.143,1.144 test_logging.py,1.11,1.12 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/test In directory sc8-pr-cvs1:/tmp/cvs-serv15659/Lib/test Modified Files: regrtest.py test_logging.py Log Message: locale-restoration code: Don't leave comparison to None implicit. For all I know, the original locale may be '' (I don't think that's possible, but ...), and if so we would certainly want to restore it. Index: regrtest.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/test/regrtest.py,v retrieving revision 1.143 retrieving revision 1.144 diff -C2 -d -r1.143 -r1.144 *** regrtest.py 22 Jul 2003 18:35:58 -0000 1.143 --- regrtest.py 23 Jul 2003 00:30:11 -0000 1.144 *************** *** 332,336 **** os.unlink(filename) ! sys.exit(len(bad) > 0) --- 332,336 ---- os.unlink(filename) ! #sys.exit(len(bad) > 0) Index: test_logging.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/test/test_logging.py,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** test_logging.py 23 Jul 2003 00:05:07 -0000 1.11 --- test_logging.py 23 Jul 2003 00:30:11 -0000 1.12 *************** *** 484,488 **** test_main_inner() finally: ! if original_locale: locale.setlocale(locale.LC_ALL, original_locale) --- 484,488 ---- test_main_inner() finally: ! if original_locale is not None: locale.setlocale(locale.LC_ALL, original_locale) From tim_one@users.sourceforge.net Wed Jul 23 01:30:41 2003 From: tim_one@users.sourceforge.net (tim_one@users.sourceforge.net) Date: Tue, 22 Jul 2003 17:30:41 -0700 Subject: [Python-checkins] python/dist/src/Lib/test regrtest.py,1.144,1.145 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/test In directory sc8-pr-cvs1:/tmp/cvs-serv15922/Lib/test Modified Files: regrtest.py Log Message: Restored commented-out line checked in by mistake. Index: regrtest.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/test/regrtest.py,v retrieving revision 1.144 retrieving revision 1.145 diff -C2 -d -r1.144 -r1.145 *** regrtest.py 23 Jul 2003 00:30:11 -0000 1.144 --- regrtest.py 23 Jul 2003 00:30:39 -0000 1.145 *************** *** 332,336 **** os.unlink(filename) ! #sys.exit(len(bad) > 0) --- 332,336 ---- os.unlink(filename) ! sys.exit(len(bad) > 0) From jackjansen@users.sourceforge.net Wed Jul 23 11:49:19 2003 From: jackjansen@users.sourceforge.net (jackjansen@users.sourceforge.net) Date: Wed, 23 Jul 2003 03:49:19 -0700 Subject: [Python-checkins] python/dist/src/Mac/OSX/Dist/resources postflight,1.6,1.7 Message-ID: Update of /cvsroot/python/python/dist/src/Mac/OSX/Dist/resources In directory sc8-pr-cvs1:/tmp/cvs-serv4480/Mac/OSX/Dist/resources Modified Files: postflight Log Message: Scripts runs with pythonw no longer had full window manager access due to the name change of Python.app/Contents/MacOS/python to Python.app/Contents/MacOS/Python. Fixes #776116. Index: postflight =================================================================== RCS file: /cvsroot/python/python/dist/src/Mac/OSX/Dist/resources/postflight,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** postflight 20 Jun 2003 21:40:57 -0000 1.6 --- postflight 23 Jul 2003 10:49:17 -0000 1.7 *************** *** 33,37 **** cat > $TOOLDIR/pythonw$PYVER < $TOOLDIR/pythonw$PYVER < Update of /cvsroot/python/python/dist/src/Mac/OSX In directory sc8-pr-cvs1:/tmp/cvs-serv4480/Mac/OSX Modified Files: Makefile Log Message: Scripts runs with pythonw no longer had full window manager access due to the name change of Python.app/Contents/MacOS/python to Python.app/Contents/MacOS/Python. Fixes #776116. Index: Makefile =================================================================== RCS file: /cvsroot/python/python/dist/src/Mac/OSX/Makefile,v retrieving revision 1.49 retrieving revision 1.50 diff -C2 -d -r1.49 -r1.50 *** Makefile 7 Jul 2003 17:38:26 -0000 1.49 --- Makefile 23 Jul 2003 10:49:17 -0000 1.50 *************** *** 19,23 **** # Variables for installing the "normal" unix binaries INSTALLED_PYTHON=$(prefix)/bin/python ! INSTALLED_PYTHONW=$(APPINSTALLDIR)/Contents/MacOS/python # Items more-or-less copied from the main Makefile --- 19,23 ---- # Variables for installing the "normal" unix binaries INSTALLED_PYTHON=$(prefix)/bin/python ! INSTALLED_PYTHONW=$(APPINSTALLDIR)/Contents/MacOS/Python # Items more-or-less copied from the main Makefile *************** *** 231,235 **** # the latter may be overridden by Makefile.jaguar when building for a pre-installed # /usr/bin/python ! $(APPINSTALLDIR)/Contents/MacOS/python: install_Python # $(INSTALLED_PYTHON) has to be done by the main Makefile, we cannot do that here. --- 231,235 ---- # the latter may be overridden by Makefile.jaguar when building for a pre-installed # /usr/bin/python ! $(APPINSTALLDIR)/Contents/MacOS/Python: install_Python # $(INSTALLED_PYTHON) has to be done by the main Makefile, we cannot do that here. From jackjansen@users.sourceforge.net Wed Jul 23 11:51:57 2003 From: jackjansen@users.sourceforge.net (jackjansen@users.sourceforge.net) Date: Wed, 23 Jul 2003 03:51:57 -0700 Subject: [Python-checkins] python/dist/src/Mac/OSX/Dist build,1.11,1.12 Message-ID: Update of /cvsroot/python/python/dist/src/Mac/OSX/Dist In directory sc8-pr-cvs1:/tmp/cvs-serv4929 Modified Files: build Log Message: Don't force boot-disk-only install, for reasons unknown it causes more problems than it solves. In stead, put a warning near the top of the welcome message. Fixes (or, rather works around) bug #764975. Index: build =================================================================== RCS file: /cvsroot/python/python/dist/src/Mac/OSX/Dist/build,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** build 22 Jul 2003 13:45:26 -0000 1.11 --- build 23 Jul 2003 10:51:55 -0000 1.12 *************** *** 8,12 **** PYVERSION=2.3rc1plus PYVER=2.3 ! BUILDNUM=6 DOCLEANUP=no --- 8,12 ---- PYVERSION=2.3rc1plus PYVER=2.3 ! BUILDNUM=8 DOCLEANUP=no *************** *** 127,134 **** --InstallOnly="YES" \ --UseUserMask="NO" \ - --RootVolumeOnly="YES" \ $INSTALLROOT \ $RESOURCEDIR # ...and then make a disk image containing the package. --- 127,134 ---- --InstallOnly="YES" \ --UseUserMask="NO" \ $INSTALLROOT \ $RESOURCEDIR + # --RootVolumeOnly="YES" \ # ...and then make a disk image containing the package. From jackjansen@users.sourceforge.net Wed Jul 23 11:51:57 2003 From: jackjansen@users.sourceforge.net (jackjansen@users.sourceforge.net) Date: Wed, 23 Jul 2003 03:51:57 -0700 Subject: [Python-checkins] python/dist/src/Mac/OSX/Dist/resources Welcome.txt,1.5,1.6 Message-ID: Update of /cvsroot/python/python/dist/src/Mac/OSX/Dist/resources In directory sc8-pr-cvs1:/tmp/cvs-serv4929/resources Modified Files: Welcome.txt Log Message: Don't force boot-disk-only install, for reasons unknown it causes more problems than it solves. In stead, put a warning near the top of the welcome message. Fixes (or, rather works around) bug #764975. Index: Welcome.txt =================================================================== RCS file: /cvsroot/python/python/dist/src/Mac/OSX/Dist/resources/Welcome.txt,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** Welcome.txt 22 Jul 2003 13:45:26 -0000 1.5 --- Welcome.txt 23 Jul 2003 10:51:55 -0000 1.6 *************** *** 1,6 **** ! This package will install MacPython 2.3rc1+ for Mac OS X 10.2. ! Installation on 10.0, 10.1 or the Panther seed is explicitly discouraged. Installation requires approximately 20 MB of disk space, ignore the ! message that it will take zero bytes. MacPython consists of the Python programming language interpreter, --- 1,9 ---- ! This package will install MacPython 2.3rc1+ for Mac OS X 10.2. Installation ! on the Panther preview may work, on 10.1 or earlier will not work. ! Installation requires approximately 20 MB of disk space, ignore the ! message that it will take zero bytes. You must install onto your current ! boot disk, even though the installer does not enforce this, otherwise ! things will not work. MacPython consists of the Python programming language interpreter, From jackjansen@users.sourceforge.net Wed Jul 23 12:39:30 2003 From: jackjansen@users.sourceforge.net (jackjansen@users.sourceforge.net) Date: Wed, 23 Jul 2003 04:39:30 -0700 Subject: [Python-checkins] python/dist/src/Mac/Python macglue.c,1.113,1.114 Message-ID: Update of /cvsroot/python/python/dist/src/Mac/Python In directory sc8-pr-cvs1:/tmp/cvs-serv11690 Modified Files: macglue.c Log Message: MacPython-OS9 has its own copy of the interrupt handling code. Added PyErr_SetInterrupt() here too. Index: macglue.c =================================================================== RCS file: /cvsroot/python/python/dist/src/Mac/Python/macglue.c,v retrieving revision 1.113 retrieving revision 1.114 diff -C2 -d -r1.113 -r1.114 *** macglue.c 12 Dec 2002 10:31:54 -0000 1.113 --- macglue.c 23 Jul 2003 11:39:28 -0000 1.114 *************** *** 284,287 **** --- 284,293 ---- #if !TARGET_API_MAC_OSX + void + PyErr_SetInterrupt(void) + { + interrupted = 1; + } + /* The catcher routine (which may not be used for all compilers) */ static RETSIGTYPE From fdrake@users.sourceforge.net Wed Jul 23 16:18:05 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Wed, 23 Jul 2003 08:18:05 -0700 Subject: [Python-checkins] python/dist/src/Doc/ref ref3.tex,1.113,1.114 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/ref In directory sc8-pr-cvs1:/tmp/cvs-serv14375 Modified Files: ref3.tex Log Message: Fix representation of ^= operator in __ixor__() documentation. Closes SF bug #776181. Should be backported. Index: ref3.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/ref/ref3.tex,v retrieving revision 1.113 retrieving revision 1.114 diff -C2 -d -r1.113 -r1.114 *** ref3.tex 17 Jul 2003 14:47:12 -0000 1.113 --- ref3.tex 23 Jul 2003 15:18:03 -0000 1.114 *************** *** 1837,1841 **** operations (\code{+=}, \code{-=}, \code{*=}, \code{/=}, \code{\%=}, \code{**=}, \code{<}\code{<=}, \code{>}\code{>=}, \code{\&=}, ! \code{\^=}, \code{|=}). These methods should attempt to do the operation in-place (modifying \var{self}) and return the result (which could be, but does not have to be, \var{self}). If a specific method --- 1837,1841 ---- operations (\code{+=}, \code{-=}, \code{*=}, \code{/=}, \code{\%=}, \code{**=}, \code{<}\code{<=}, \code{>}\code{>=}, \code{\&=}, ! \code{\textasciicircum=}, \code{|=}). These methods should attempt to do the operation in-place (modifying \var{self}) and return the result (which could be, but does not have to be, \var{self}). If a specific method From kbk@users.sourceforge.net Wed Jul 23 16:42:16 2003 From: kbk@users.sourceforge.net (kbk@users.sourceforge.net) Date: Wed, 23 Jul 2003 08:42:16 -0700 Subject: [Python-checkins] python/dist/src/Lib/idlelib CallTips.py,1.10,1.11 NEWS.txt,1.21,1.22 idlever.py,1.13,1.14 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/idlelib In directory sc8-pr-cvs1:/tmp/cvs-serv16770 Modified Files: CallTips.py NEWS.txt idlever.py Log Message: 1. Python Bug 775541: Calltips error when docstring is None. Introduced by patch 769142. Fixed by patch 776062. KBK will backport net result to IDLE release22-maint and IDLEfork. 2. Update NEWS.txt and idlever for release. Index: CallTips.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/idlelib/CallTips.py,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** CallTips.py 13 Jul 2003 10:25:14 -0000 1.10 --- CallTips.py 23 Jul 2003 15:42:13 -0000 1.11 *************** *** 163,168 **** pass # See if we can use the docstring ! doc = getattr(ob, "__doc__", "").lstrip() if doc: pos = doc.find("\n") if pos < 0 or pos > 70: --- 163,169 ---- pass # See if we can use the docstring ! doc = getattr(ob, "__doc__", "") if doc: + doc = doc.lstrip() pos = doc.find("\n") if pos < 0 or pos > 70: Index: NEWS.txt =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/idlelib/NEWS.txt,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** NEWS.txt 16 Jul 2003 03:10:43 -0000 1.21 --- NEWS.txt 23 Jul 2003 15:42:14 -0000 1.22 *************** *** 1,6 **** ! What's New in IDLE 1.0rc1? =================================== ! *Release date: 17-Jul-2003* - Updated extend.txt, help.txt, and config-extensions.def to correctly --- 1,13 ---- ! What's New in IDLE 1.0 release candidate 2? =================================== ! *Release date: 24-Jul-2003* ! ! - Calltip error when docstring was None Python Bug 775541 ! ! What's New in IDLE 1.0 release candidate 1? ! =================================== ! ! *Release date: 18-Jul-2003* - Updated extend.txt, help.txt, and config-extensions.def to correctly Index: idlever.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/idlelib/idlever.py,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** idlever.py 16 Jul 2003 03:10:43 -0000 1.13 --- idlever.py 23 Jul 2003 15:42:14 -0000 1.14 *************** *** 1 **** ! IDLE_VERSION = "1.0rc1" --- 1 ---- ! IDLE_VERSION = "1.0rc2" From kbk@users.sourceforge.net Wed Jul 23 17:25:45 2003 From: kbk@users.sourceforge.net (kbk@users.sourceforge.net) Date: Wed, 23 Jul 2003 09:25:45 -0700 Subject: [Python-checkins] python/dist/src/Tools/idle CallTips.py,1.9.12.1,1.9.12.2 Message-ID: Update of /cvsroot/python/python/dist/src/Tools/idle In directory sc8-pr-cvs1:/tmp/cvs-serv25768 Modified Files: Tag: release22-maint CallTips.py Log Message: Backport Python Patches 769142, 776062 from 2.3 Lib/idlelib: CallTip error when docstring contains only \n and/or \t Index: CallTips.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Tools/idle/Attic/CallTips.py,v retrieving revision 1.9.12.1 retrieving revision 1.9.12.2 diff -C2 -d -r1.9.12.1 -r1.9.12.2 *** CallTips.py 23 Sep 2002 14:23:15 -0000 1.9.12.1 --- CallTips.py 23 Jul 2003 16:25:43 -0000 1.9.12.2 *************** *** 149,154 **** doc = getattr(ob, "__doc__", "") if doc: ! while doc[:1] in " \t\n": ! doc = doc[1:] pos = doc.find("\n") if pos < 0 or pos > 70: --- 149,153 ---- doc = getattr(ob, "__doc__", "") if doc: ! doc = doc.lstrip() pos = doc.find("\n") if pos < 0 or pos > 70: From jackjansen@users.sourceforge.net Wed Jul 23 23:17:30 2003 From: jackjansen@users.sourceforge.net (jackjansen@users.sourceforge.net) Date: Wed, 23 Jul 2003 15:17:30 -0700 Subject: [Python-checkins] python/dist/src/Misc NEWS,1.824,1.825 Message-ID: Update of /cvsroot/python/python/dist/src/Misc In directory sc8-pr-cvs1:/tmp/cvs-serv10386/Misc Modified Files: NEWS Log Message: Bugfix for #775892: added -mno-fused-madd to BASECFLAGS on MacOSX. This makes test_coercion pass on Panther. Also added a note to NEWS that pythonw works again (it was broken in rc1). Index: NEWS =================================================================== RCS file: /cvsroot/python/python/dist/src/Misc/NEWS,v retrieving revision 1.824 retrieving revision 1.825 diff -C2 -d -r1.824 -r1.825 *** NEWS 22 Jul 2003 18:10:09 -0000 1.824 --- NEWS 23 Jul 2003 22:17:28 -0000 1.825 *************** *** 244,247 **** --- 244,252 ---- - Fixed two bugs in MacOSX framework handling. + - pythonw did not allow user interaction in 2.3rc1, this has been fixed. + + - Python is now compiled with -mno-fused-madd, making all tests pass + on Panther. + What's New in Python 2.3 beta 2? ================================ From jackjansen@users.sourceforge.net Wed Jul 23 23:17:30 2003 From: jackjansen@users.sourceforge.net (jackjansen@users.sourceforge.net) Date: Wed, 23 Jul 2003 15:17:30 -0700 Subject: [Python-checkins] python/dist/src configure.in,1.426,1.427 configure,1.415,1.416 Message-ID: Update of /cvsroot/python/python/dist/src In directory sc8-pr-cvs1:/tmp/cvs-serv10386 Modified Files: configure.in configure Log Message: Bugfix for #775892: added -mno-fused-madd to BASECFLAGS on MacOSX. This makes test_coercion pass on Panther. Also added a note to NEWS that pythonw works again (it was broken in rc1). Index: configure.in =================================================================== RCS file: /cvsroot/python/python/dist/src/configure.in,v retrieving revision 1.426 retrieving revision 1.427 diff -C2 -d -r1.426 -r1.427 *** configure.in 22 Jul 2003 15:20:49 -0000 1.426 --- configure.in 23 Jul 2003 22:17:27 -0000 1.427 *************** *** 665,669 **** # is there any other compiler on Darwin besides gcc? Darwin*) ! BASECFLAGS="$BASECFLAGS -Wno-long-double -no-cpp-precomp" ;; esac --- 665,669 ---- # is there any other compiler on Darwin besides gcc? Darwin*) ! BASECFLAGS="$BASECFLAGS -Wno-long-double -no-cpp-precomp -mno-fused-madd" ;; esac Index: configure =================================================================== RCS file: /cvsroot/python/python/dist/src/configure,v retrieving revision 1.415 retrieving revision 1.416 diff -C2 -d -r1.415 -r1.416 *** configure 22 Jul 2003 15:20:47 -0000 1.415 --- configure 23 Jul 2003 22:17:27 -0000 1.416 *************** *** 1,4 **** #! /bin/sh ! # From configure.in Revision: 1.425 . # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.53 for python 2.3. --- 1,4 ---- #! /bin/sh ! # From configure.in Revision: 1.426 . # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.53 for python 2.3. *************** *** 3696,3700 **** # is there any other compiler on Darwin besides gcc? Darwin*) ! BASECFLAGS="$BASECFLAGS -Wno-long-double -no-cpp-precomp" ;; esac --- 3696,3700 ---- # is there any other compiler on Darwin besides gcc? Darwin*) ! BASECFLAGS="$BASECFLAGS -Wno-long-double -no-cpp-precomp -mno-fused-madd" ;; esac From tim_one@users.sourceforge.net Thu Jul 24 01:15:48 2003 From: tim_one@users.sourceforge.net (tim_one@users.sourceforge.net) Date: Wed, 23 Jul 2003 17:15:48 -0700 Subject: [Python-checkins] python/dist/src/PC python_nt.rc,1.24,1.25 Message-ID: Update of /cvsroot/python/python/dist/src/PC In directory sc8-pr-cvs1:/tmp/cvs-serv30084/PC Modified Files: python_nt.rc Log Message: Update version numbers and dates for 2.3c2 -- we won't be able to do this during the day tomorrow, so doing it earlier than I'd like. Index: python_nt.rc =================================================================== RCS file: /cvsroot/python/python/dist/src/PC/python_nt.rc,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** python_nt.rc 17 Jul 2003 14:48:26 -0000 1.24 --- python_nt.rc 24 Jul 2003 00:15:46 -0000 1.25 *************** *** 34,45 **** * following comment and #define are output from PCbuild\field3.py: * ! * For 2.3c1, * PY_MICRO_VERSION = 0 * PY_RELEASE_LEVEL = 'candidate' = 0xc ! * PY_RELEASE_SERIAL = 1 * ! * and 0*1000 + 12*10 + 1 = 121 */ ! #define FIELD3 121 /* e.g., 2.1a2 --- 34,45 ---- * following comment and #define are output from PCbuild\field3.py: * ! * For 2.3c2, * PY_MICRO_VERSION = 0 * PY_RELEASE_LEVEL = 'candidate' = 0xc ! * PY_RELEASE_SERIAL = 2 * ! * and 0*1000 + 12*10 + 2 = 122 */ ! #define FIELD3 122 /* e.g., 2.1a2 From tim_one@users.sourceforge.net Thu Jul 24 01:15:48 2003 From: tim_one@users.sourceforge.net (tim_one@users.sourceforge.net) Date: Wed, 23 Jul 2003 17:15:48 -0700 Subject: [Python-checkins] python/dist/src/Misc NEWS,1.825,1.826 Message-ID: Update of /cvsroot/python/python/dist/src/Misc In directory sc8-pr-cvs1:/tmp/cvs-serv30084/Misc Modified Files: NEWS Log Message: Update version numbers and dates for 2.3c2 -- we won't be able to do this during the day tomorrow, so doing it earlier than I'd like. Index: NEWS =================================================================== RCS file: /cvsroot/python/python/dist/src/Misc/NEWS,v retrieving revision 1.825 retrieving revision 1.826 diff -C2 -d -r1.825 -r1.826 *** NEWS 23 Jul 2003 22:17:28 -0000 1.825 --- NEWS 24 Jul 2003 00:15:45 -0000 1.826 *************** *** 8,12 **** ============================================= ! *Release date: DD-MMM-YYYY* Core and builtins --- 8,12 ---- ============================================= ! *Release date: 24-Jul-2003* Core and builtins From tim_one@users.sourceforge.net Thu Jul 24 01:15:48 2003 From: tim_one@users.sourceforge.net (tim_one@users.sourceforge.net) Date: Wed, 23 Jul 2003 17:15:48 -0700 Subject: [Python-checkins] python/dist/src/PCbuild BUILDno.txt,1.49,1.50 python20.wse,1.130,1.131 pythoncore.dsp,1.46,1.47 Message-ID: Update of /cvsroot/python/python/dist/src/PCbuild In directory sc8-pr-cvs1:/tmp/cvs-serv30084/PCbuild Modified Files: BUILDno.txt python20.wse pythoncore.dsp Log Message: Update version numbers and dates for 2.3c2 -- we won't be able to do this during the day tomorrow, so doing it earlier than I'd like. Index: BUILDno.txt =================================================================== RCS file: /cvsroot/python/python/dist/src/PCbuild/BUILDno.txt,v retrieving revision 1.49 retrieving revision 1.50 diff -C2 -d -r1.49 -r1.50 *** BUILDno.txt 18 Jul 2003 21:12:21 -0000 1.49 --- BUILDno.txt 24 Jul 2003 00:15:46 -0000 1.50 *************** *** 34,37 **** --- 34,39 ---- Windows Python BUILD numbers ---------------------------- + 45 2.3c2 + 24-Jul-2003 44 2.3c1 18-Jul-2003 Index: python20.wse =================================================================== RCS file: /cvsroot/python/python/dist/src/PCbuild/python20.wse,v retrieving revision 1.130 retrieving revision 1.131 diff -C2 -d -r1.130 -r1.131 *** python20.wse 18 Jul 2003 21:11:36 -0000 1.130 --- python20.wse 24 Jul 2003 00:15:46 -0000 1.131 *************** *** 2,6 **** item: Global Version=8.14 ! Title=Python 2.3 release candidate 1 Flags=00010100 Languages=65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 --- 2,6 ---- item: Global Version=8.14 ! Title=Python 2.3 release candidate 2 Flags=00010100 Languages=65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 *************** *** 19,30 **** Patch Threshold=85 Patch Memory=4000 ! EXE Filename=Python-2.3c1.exe Dialogs Version=8 ! Version File=2.3c1 Version Description=Python Programming Language Version Copyright=©2001-2003 Python Software Foundation Version Company=PythonLabs at Zope Corporation Crystal Format=10111100101100000010001001001001 ! Step View=&Properties Variable Name1=_WISE_ Variable Description1=WISE root directory --- 19,30 ---- Patch Threshold=85 Patch Memory=4000 ! EXE Filename=Python-2.3c2.exe Dialogs Version=8 ! Version File=2.3c2 Version Description=Python Programming Language Version Copyright=©2001-2003 Python Software Foundation Version Company=PythonLabs at Zope Corporation Crystal Format=10111100101100000010001001001001 ! Step View=&All Variable Name1=_WISE_ Variable Description1=WISE root directory *************** *** 68,72 **** item: Set Variable Variable=PYVER_STRING ! Value=2.3c1 end item: Remark --- 68,72 ---- item: Set Variable Variable=PYVER_STRING ! Value=2.3c2 end item: Remark Index: pythoncore.dsp =================================================================== RCS file: /cvsroot/python/python/dist/src/PCbuild/pythoncore.dsp,v retrieving revision 1.46 retrieving revision 1.47 diff -C2 -d -r1.46 -r1.47 *** pythoncore.dsp 17 Jul 2003 14:48:26 -0000 1.46 --- pythoncore.dsp 24 Jul 2003 00:15:46 -0000 1.47 *************** *** 259,263 **** SOURCE=..\Modules\getbuildinfo.c ! # ADD CPP /D BUILD=44 # End Source File # Begin Source File --- 259,263 ---- SOURCE=..\Modules\getbuildinfo.c ! # ADD CPP /D BUILD=45 # End Source File # Begin Source File From tim_one@users.sourceforge.net Thu Jul 24 01:15:47 2003 From: tim_one@users.sourceforge.net (tim_one@users.sourceforge.net) Date: Wed, 23 Jul 2003 17:15:47 -0700 Subject: [Python-checkins] python/dist/src/Include patchlevel.h,2.70,2.71 Message-ID: Update of /cvsroot/python/python/dist/src/Include In directory sc8-pr-cvs1:/tmp/cvs-serv30084/Include Modified Files: patchlevel.h Log Message: Update version numbers and dates for 2.3c2 -- we won't be able to do this during the day tomorrow, so doing it earlier than I'd like. Index: patchlevel.h =================================================================== RCS file: /cvsroot/python/python/dist/src/Include/patchlevel.h,v retrieving revision 2.70 retrieving revision 2.71 diff -C2 -d -r2.70 -r2.71 *** patchlevel.h 17 Jul 2003 14:48:25 -0000 2.70 --- patchlevel.h 24 Jul 2003 00:15:45 -0000 2.71 *************** *** 24,31 **** #define PY_MICRO_VERSION 0 #define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_GAMMA ! #define PY_RELEASE_SERIAL 1 /* Version as a string */ ! #define PY_VERSION "2.3c1" /* Version as a single 4-byte hex number, e.g. 0x010502B2 == 1.5.2b2. --- 24,31 ---- #define PY_MICRO_VERSION 0 #define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_GAMMA ! #define PY_RELEASE_SERIAL 2 /* Version as a string */ ! #define PY_VERSION "2.3c2" /* Version as a single 4-byte hex number, e.g. 0x010502B2 == 1.5.2b2. From fdrake@users.sourceforge.net Thu Jul 24 02:22:52 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Wed, 23 Jul 2003 18:22:52 -0700 Subject: [Python-checkins] python/dist/src/Doc/texinputs boilerplate.tex,1.82,1.83 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/texinputs In directory sc8-pr-cvs1:/tmp/cvs-serv6879/texinputs Modified Files: boilerplate.tex Log Message: Bump release number. Index: boilerplate.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/texinputs/boilerplate.tex,v retrieving revision 1.82 retrieving revision 1.83 diff -C2 -d -r1.82 -r1.83 *** boilerplate.tex 17 Jul 2003 05:30:38 -0000 1.82 --- boilerplate.tex 24 Jul 2003 01:22:50 -0000 1.83 *************** *** 8,11 **** \date{\today} % XXX update before final release! \release{2.3} % software release, not documentation ! \setreleaseinfo{c1} % empty for final release \setshortversion{2.3} % major.minor only for software --- 8,11 ---- \date{\today} % XXX update before final release! \release{2.3} % software release, not documentation ! \setreleaseinfo{c2} % empty for final release \setshortversion{2.3} % major.minor only for software From fdrake@users.sourceforge.net Thu Jul 24 02:22:52 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Wed, 23 Jul 2003 18:22:52 -0700 Subject: [Python-checkins] python/dist/src/Doc Makefile,1.259,1.260 Message-ID: Update of /cvsroot/python/python/dist/src/Doc In directory sc8-pr-cvs1:/tmp/cvs-serv6879 Modified Files: Makefile Log Message: Bump release number. Index: Makefile =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/Makefile,v retrieving revision 1.259 retrieving revision 1.260 diff -C2 -d -r1.259 -r1.260 *** Makefile 17 Jul 2003 15:29:16 -0000 1.259 --- Makefile 24 Jul 2003 01:22:50 -0000 1.260 *************** *** 67,71 **** # This is the *documentation* release, and is used to construct the file # names of the downloadable tarballs. ! RELEASE=2.3c1 PYTHON= python --- 67,71 ---- # This is the *documentation* release, and is used to construct the file # names of the downloadable tarballs. ! RELEASE=2.3c2 PYTHON= python From fdrake@users.sourceforge.net Thu Jul 24 02:45:21 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Wed, 23 Jul 2003 18:45:21 -0700 Subject: [Python-checkins] python/dist/src/Doc/lib liburllib2.tex,1.6.8.4,1.6.8.5 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/lib In directory sc8-pr-cvs1:/tmp/cvs-serv10229 Modified Files: Tag: release22-maint liburllib2.tex Log Message: - Americanize a spelling - remove extraneous blank lines - add missing \end{methoddesc} (prevented formatting) Index: liburllib2.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/liburllib2.tex,v retrieving revision 1.6.8.4 retrieving revision 1.6.8.5 diff -C2 -d -r1.6.8.4 -r1.6.8.5 *** liburllib2.tex 12 Jul 2003 07:35:35 -0000 1.6.8.4 --- liburllib2.tex 24 Jul 2003 01:45:16 -0000 1.6.8.5 *************** *** 424,432 **** the user. In reality, browsers do allow automatic redirection of these responses, changing the POST to a GET, and the default ! implementation reproduces this behaviour.} ! \end{methoddesc} - \begin{methoddesc}[HTTPRedirectHandler]{http_error_301}{req, fp, code, msg, hdrs} --- 424,430 ---- the user. In reality, browsers do allow automatic redirection of these responses, changing the POST to a GET, and the default ! implementation reproduces this behavior.} \end{methoddesc} \begin{methoddesc}[HTTPRedirectHandler]{http_error_301}{req, fp, code, msg, hdrs} *************** *** 452,455 **** --- 450,455 ---- The same as \method{http_error_301()}, but called for the `temporary redirect' response. + \end{methoddesc} + \subsection{ProxyHandler Objects \label{proxy-handler}} From fdrake@users.sourceforge.net Thu Jul 24 02:46:42 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Wed, 23 Jul 2003 18:46:42 -0700 Subject: [Python-checkins] python/dist/src/Doc/ref ref3.tex,1.82.4.9,1.82.4.10 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/ref In directory sc8-pr-cvs1:/tmp/cvs-serv10394 Modified Files: Tag: release22-maint ref3.tex Log Message: Fix broken markup; make the ^= representation work properly Closes SF bug #776181. Index: ref3.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/ref/ref3.tex,v retrieving revision 1.82.4.9 retrieving revision 1.82.4.10 diff -C2 -d -r1.82.4.9 -r1.82.4.10 *** ref3.tex 12 May 2003 13:50:41 -0000 1.82.4.9 --- ref3.tex 24 Jul 2003 01:46:39 -0000 1.82.4.10 *************** *** 1487,1491 **** operations (\code{+=}, \code{-=}, \code{*=}, \code{/=}, \code{\%=}, \code{**=}, \code{<}\code{<=}, \code{>}\code{>=}, \code{\&=}, ! \code{\^=}, \code{|=}). These methods should attempt to do the operation in-place (modifying \var{self}) and return the result (which could be, but does not have to be, \var{self}). If a specific method --- 1487,1491 ---- operations (\code{+=}, \code{-=}, \code{*=}, \code{/=}, \code{\%=}, \code{**=}, \code{<}\code{<=}, \code{>}\code{>=}, \code{\&=}, ! \code{\textasciicircum=}, \code{|=}). These methods should attempt to do the operation in-place (modifying \var{self}) and return the result (which could be, but does not have to be, \var{self}). If a specific method From fdrake@users.sourceforge.net Thu Jul 24 03:00:20 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Wed, 23 Jul 2003 19:00:20 -0700 Subject: [Python-checkins] python/dist/src/Doc/tools mkhowto,1.31,1.31.6.1 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/tools In directory sc8-pr-cvs1:/tmp/cvs-serv12169 Modified Files: Tag: release22-maint mkhowto Log Message: Don't generate a line containing only \ at the top of a new index file. Index: mkhowto =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/tools/mkhowto,v retrieving revision 1.31 retrieving revision 1.31.6.1 diff -C2 -d -r1.31 -r1.31.6.1 *** mkhowto 4 Dec 2001 16:32:04 -0000 1.31 --- mkhowto 24 Jul 2003 02:00:18 -0000 1.31.6.1 *************** *** 641,649 **** def new_index(filename, label="genindex"): fp = open(filename, "w") ! fp.write(r"""\ ! \begin{theindex} ! \label{%s} ! \end{theindex} ! """ % label) fp.close() --- 641,647 ---- def new_index(filename, label="genindex"): fp = open(filename, "w") ! fp.write("\\begin{theindex}\n" ! "\\label{%s}\n" ! "\\end{theindex}\n" % label) fp.close() From fdrake@users.sourceforge.net Thu Jul 24 03:01:40 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Wed, 23 Jul 2003 19:01:40 -0700 Subject: [Python-checkins] python/dist/src/Doc/tools mkhowto,1.39,1.39.6.1 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/tools In directory sc8-pr-cvs1:/tmp/cvs-serv12349 Modified Files: Tag: indexing-cleanup-branch mkhowto Log Message: Don't generate a line containing only \ at the top of a new index file. Index: mkhowto =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/tools/mkhowto,v retrieving revision 1.39 retrieving revision 1.39.6.1 diff -C2 -d -r1.39 -r1.39.6.1 *** mkhowto 14 May 2003 04:16:14 -0000 1.39 --- mkhowto 24 Jul 2003 02:01:38 -0000 1.39.6.1 *************** *** 656,664 **** def new_index(filename, label="genindex"): fp = open(filename, "w") ! fp.write(r"""\ ! \begin{theindex} ! \label{%s} ! \end{theindex} ! """ % label) fp.close() --- 656,662 ---- def new_index(filename, label="genindex"): fp = open(filename, "w") ! fp.write("\\begin{theindex}\n" ! "\\label{%s}\n" ! "\\end{theindex}\n" % label) fp.close() From bcannon@users.sourceforge.net Thu Jul 24 07:27:20 2003 From: bcannon@users.sourceforge.net (bcannon@users.sourceforge.net) Date: Wed, 23 Jul 2003 23:27:20 -0700 Subject: [Python-checkins] python/dist/src/Lib/test test_strptime.py,1.18,1.19 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/test In directory sc8-pr-cvs1:/tmp/cvs-serv14296/Lib/test Modified Files: test_strptime.py Log Message: Remove caching of TimeRE (and thus LocaleTime) instance. Error was being caught when executing test_strptime, test_logging, and test_time in that order when the testing of "%c" occured. Suspect the cache was not being recreated (the test passed when test_logging was forced to re-establish the locale). Index: test_strptime.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/test/test_strptime.py,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** test_strptime.py 22 Jul 2003 21:07:16 -0000 1.18 --- test_strptime.py 24 Jul 2003 06:27:17 -0000 1.19 *************** *** 9,12 **** --- 9,17 ---- import _strptime + class getlang_Tests(unittest.TestCase): + """Test _getlang""" + def test_basic(self): + self.failUnlessEqual(_strptime._getlang(), locale.getlocale(locale.LC_TIME)) + class LocaleTime_Tests(unittest.TestCase): """Tests for _strptime.LocaleTime.""" *************** *** 90,98 **** def test_lang(self): ! # Make sure lang is set ! self.failUnless(self.LT_ins.lang in (locale.getdefaultlocale()[0], ! locale.getlocale(locale.LC_TIME)[0], ! ''), ! "Setting of lang failed") def test_by_hand_input(self): --- 95,101 ---- def test_lang(self): ! # Make sure lang is set to what _getlang() returns ! # Assuming locale has not changed between now and when self.LT_ins was created ! self.failUnlessEqual(self.LT_ins.lang, _strptime._getlang()) def test_by_hand_input(self): *************** *** 411,417 **** "Calculation of day of the week failed;" "%s != %s" % (result.tm_wday, self.time_tuple.tm_wday)) - def test_main(): test_support.run_unittest( LocaleTime_Tests, TimeRETests, --- 414,420 ---- "Calculation of day of the week failed;" "%s != %s" % (result.tm_wday, self.time_tuple.tm_wday)) def test_main(): test_support.run_unittest( + getlang_Tests, LocaleTime_Tests, TimeRETests, *************** *** 419,423 **** Strptime12AMPMTests, JulianTests, ! CalculationTests ) --- 422,426 ---- Strptime12AMPMTests, JulianTests, ! CalculationTests, ) From bcannon@users.sourceforge.net Thu Jul 24 07:27:19 2003 From: bcannon@users.sourceforge.net (bcannon@users.sourceforge.net) Date: Wed, 23 Jul 2003 23:27:19 -0700 Subject: [Python-checkins] python/dist/src/Lib _strptime.py,1.21,1.22 Message-ID: Update of /cvsroot/python/python/dist/src/Lib In directory sc8-pr-cvs1:/tmp/cvs-serv14296/Lib Modified Files: _strptime.py Log Message: Remove caching of TimeRE (and thus LocaleTime) instance. Error was being caught when executing test_strptime, test_logging, and test_time in that order when the testing of "%c" occured. Suspect the cache was not being recreated (the test passed when test_logging was forced to re-establish the locale). Index: _strptime.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/_strptime.py,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** _strptime.py 13 Jul 2003 01:31:38 -0000 1.21 --- _strptime.py 24 Jul 2003 06:27:17 -0000 1.22 *************** *** 28,44 **** def _getlang(): # Figure out what the current language is set to. ! current_lang = locale.getlocale(locale.LC_TIME)[0] ! if current_lang: ! return current_lang ! else: ! current_lang = locale.getdefaultlocale()[0] ! if current_lang: ! return current_lang ! else: ! return '' class LocaleTime(object): """Stores and handles locale-specific information related to time. ATTRIBUTES (all read-only after instance creation! Instance variables that store the values have mangled names): --- 28,40 ---- def _getlang(): # Figure out what the current language is set to. ! return locale.getlocale(locale.LC_TIME) class LocaleTime(object): """Stores and handles locale-specific information related to time. + This is not thread-safe! Attributes are lazily calculated and no + precaution is taken to check to see if the locale information has changed + since the creation of the instance in use. + ATTRIBUTES (all read-only after instance creation! Instance variables that store the values have mangled names): *************** *** 104,108 **** else: self.__timezone = self.__pad(timezone, False) ! self.__lang = lang def __pad(self, seq, front): --- 100,107 ---- else: self.__timezone = self.__pad(timezone, False) ! if lang: ! self.__lang = lang ! else: ! self.__lang = _getlang() def __pad(self, seq, front): *************** *** 197,207 **** doc="Format string for locale's time representation ('%X' format)") ! def __get_lang(self): ! # Fetch self.lang. ! if not self.__lang: ! self.__calc_lang() ! return self.__lang ! ! lang = property(__get_lang, __set_nothing, doc="Language used for instance") --- 196,200 ---- doc="Format string for locale's time representation ('%X' format)") ! lang = property(lambda self: self.__lang, __set_nothing, doc="Language used for instance") *************** *** 296,304 **** self.__timezone = self.__pad(time_zones, 0) - def __calc_lang(self): - # Set self.__lang by using __getlang(). - self.__lang = _getlang() - - class TimeRE(dict): --- 289,292 ---- *************** *** 407,432 **** return re_compile(self.pattern(format), IGNORECASE) - # Cached TimeRE; probably only need one instance ever so cache it for performance - _locale_cache = TimeRE() - # Cached regex objects; same reason as for TimeRE cache - _regex_cache = dict() def strptime(data_string, format="%a %b %d %H:%M:%S %Y"): """Return a time struct based on the input data and the format string.""" ! global _locale_cache ! global _regex_cache ! locale_time = _locale_cache.locale_time ! # If the language changes, caches are invalidated, so clear them ! if locale_time.lang != _getlang(): ! _locale_cache = TimeRE() ! _regex_cache.clear() ! format_regex = _regex_cache.get(format) ! if not format_regex: ! # Limit regex cache size to prevent major bloating of the module; ! # The value 5 is arbitrary ! if len(_regex_cache) > 5: ! _regex_cache.clear() ! format_regex = _locale_cache.compile(format) ! _regex_cache[format] = format_regex found = format_regex.match(data_string) if not found: --- 395,404 ---- return re_compile(self.pattern(format), IGNORECASE) def strptime(data_string, format="%a %b %d %H:%M:%S %Y"): """Return a time struct based on the input data and the format string.""" ! time_re = TimeRE() ! locale_time = time_re.locale_time ! format_regex = time_re.compile(format) found = format_regex.match(data_string) if not found: From mhammond@users.sourceforge.net Thu Jul 24 15:15:09 2003 From: mhammond@users.sourceforge.net (mhammond@users.sourceforge.net) Date: Thu, 24 Jul 2003 07:15:09 -0700 Subject: [Python-checkins] python/dist/src/Modules _localemodule.c,2.39,2.40 Message-ID: Update of /cvsroot/python/python/dist/src/Modules In directory sc8-pr-cvs1:/tmp/cvs-serv18505 Modified Files: _localemodule.c Log Message: Fix [ 776721 ] locale.setlocale() leaks Our saved locale was not being freed. Also check correct variable for NULL. Index: _localemodule.c =================================================================== RCS file: /cvsroot/python/python/dist/src/Modules/_localemodule.c,v retrieving revision 2.39 retrieving revision 2.40 diff -C2 -d -r2.39 -r2.40 *** _localemodule.c 5 Mar 2003 15:13:45 -0000 2.39 --- _localemodule.c 24 Jul 2003 14:15:07 -0000 2.40 *************** *** 182,186 **** } result_object = PyString_FromString(result); ! if (!result) return NULL; /* record changes to LC_NUMERIC */ --- 182,186 ---- } result_object = PyString_FromString(result); ! if (!result_object) return NULL; /* record changes to LC_NUMERIC */ *************** *** 200,203 **** --- 200,205 ---- Py_XDECREF(decimal_point); decimal_point = PyString_FromString(lc->decimal_point); + if (saved_numeric) + free(saved_numeric); saved_numeric = strdup(locale); /* restore to "C" */ From bcannon@users.sourceforge.net Thu Jul 24 21:02:31 2003 From: bcannon@users.sourceforge.net (bcannon@users.sourceforge.net) Date: Thu, 24 Jul 2003 13:02:31 -0700 Subject: [Python-checkins] python/dist/src/Lib _strptime.py,1.22,1.23 Message-ID: Update of /cvsroot/python/python/dist/src/Lib In directory sc8-pr-cvs1:/tmp/cvs-serv16679/Lib Modified Files: _strptime.py Log Message: Fixes bug of having default argument for TimeRE's __init__ that caused the LocaleTime instance to only be created once and thus not be recreated when the locale changed. Index: _strptime.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/_strptime.py,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -d -r1.22 -r1.23 *** _strptime.py 24 Jul 2003 06:27:17 -0000 1.22 --- _strptime.py 24 Jul 2003 20:02:28 -0000 1.23 *************** *** 293,297 **** """Handle conversion from format directives to regexes.""" ! def __init__(self, locale_time=LocaleTime()): """Init inst with non-locale regexes and store LocaleTime object.""" #XXX: Does 'Y' need to worry about having less or more than 4 digits? --- 293,297 ---- """Handle conversion from format directives to regexes.""" ! def __init__(self, locale_time=None): """Init inst with non-locale regexes and store LocaleTime object.""" #XXX: Does 'Y' need to worry about having less or more than 4 digits? *************** *** 312,316 **** 'Y': r"(?P\d\d\d\d)"}) base.__setitem__('W', base.__getitem__('U')) ! self.locale_time = locale_time def __getitem__(self, fetch): --- 312,319 ---- 'Y': r"(?P\d\d\d\d)"}) base.__setitem__('W', base.__getitem__('U')) ! if locale_time: ! self.locale_time = locale_time ! else: ! self.locale_time = LocaleTime() def __getitem__(self, fetch): From jackjansen@users.sourceforge.net Thu Jul 24 22:46:43 2003 From: jackjansen@users.sourceforge.net (jackjansen@users.sourceforge.net) Date: Thu, 24 Jul 2003 14:46:43 -0700 Subject: [Python-checkins] python/dist/src/Mac/OSXResources/app/Resources/English.lproj/Documentation packman.html,1.5,1.6 Message-ID: Update of /cvsroot/python/python/dist/src/Mac/OSXResources/app/Resources/English.lproj/Documentation In directory sc8-pr-cvs1:/tmp/cvs-serv8290 Modified Files: packman.html Log Message: Added instructions on setting the proxy host. Index: packman.html =================================================================== RCS file: /cvsroot/python/python/dist/src/Mac/OSXResources/app/Resources/English.lproj/Documentation/packman.html,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** packman.html 3 Jul 2003 21:33:02 -0000 1.5 --- packman.html 24 Jul 2003 21:46:40 -0000 1.6 *************** *** 51,54 **** --- 51,60 ---- you are now on untested ground.

    +

    Another potential problem source is that you are behind a firewall. This version + of PackageManager uses the Unix method of setting a firewall: you need to set the + environment variable http_proxy to "http://proxyhost:port". + See Apple Technical + Q&A QA1067 for instructions.

    + From jackjansen@users.sourceforge.net Thu Jul 24 23:25:05 2003 From: jackjansen@users.sourceforge.net (jackjansen@users.sourceforge.net) Date: Thu, 24 Jul 2003 15:25:05 -0700 Subject: [Python-checkins] python/dist/src/Mac/Modules/snd _Sndmodule.c,1.15,1.16 Message-ID: Update of /cvsroot/python/python/dist/src/Mac/Modules/snd In directory sc8-pr-cvs1:/tmp/cvs-serv14563 Modified Files: _Sndmodule.c Log Message: Don't export the SPB type as "SPB", because it shadows the method SPB, which is really important. This is a stopgap measure, as only the generated C code is adapted. Fixes #776533. Index: _Sndmodule.c =================================================================== RCS file: /cvsroot/python/python/dist/src/Mac/Modules/snd/_Sndmodule.c,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** _Sndmodule.c 23 Dec 2002 23:16:25 -0000 1.15 --- _Sndmodule.c 24 Jul 2003 22:25:03 -0000 1.16 *************** *** 1151,1156 **** --- 1151,1159 ---- SPB_Type.ob_type = &PyType_Type; if (PyType_Ready(&SPB_Type) < 0) return; + #if 0 + /* This would shadow the SPB routine, which is bad news (it is important) */ Py_INCREF(&SPB_Type); PyModule_AddObject(m, "SPB", (PyObject *)&SPB_Type); + #endif /* Backward-compatible name */ Py_INCREF(&SPB_Type); From bwarsaw@users.sourceforge.net Fri Jul 25 02:09:42 2003 From: bwarsaw@users.sourceforge.net (bwarsaw@users.sourceforge.net) Date: Thu, 24 Jul 2003 18:09:42 -0700 Subject: [Python-checkins] python/dist/src/Misc NEWS,1.826,1.827 Message-ID: Update of /cvsroot/python/python/dist/src/Misc In directory sc8-pr-cvs1:/tmp/cvs-serv11280 Modified Files: NEWS Log Message: Updated news for 2.3c2. Index: NEWS =================================================================== RCS file: /cvsroot/python/python/dist/src/Misc/NEWS,v retrieving revision 1.826 retrieving revision 1.827 diff -C2 -d -r1.826 -r1.827 *** NEWS 24 Jul 2003 00:15:45 -0000 1.826 --- NEWS 25 Jul 2003 01:09:40 -0000 1.827 *************** *** 14,18 **** - It is now possible to import from zipfiles containing additional ! data bytes before the zip compatible archive. Zipfiles containing a comment at the end are still unsupported. --- 14,18 ---- - It is now possible to import from zipfiles containing additional ! data bytes before the zip compatible archive. Zipfiles containing a comment at the end are still unsupported. *************** *** 29,41 **** --- 29,56 ---- call. + - Fixed some leaks in the locale module. + Library ------- + - Lib/encodings/rot_13.py when used as a script, now more properly + uses the first Python interpreter on your path. + + - Removed caching of TimeRE (and thus LocaleTime) in _strptime.py to + fix a locale related bug in the test suite. Although another patch + was needed to actually fix the problem, the cache code was not + restored. + Tools/Demos ----------- + - Calltips patches in IDLE. + Build ----- + - For MacOSX, added -mno-fused-madd to BASECFLAGS to fix test_coercion + on Panther (OSX 10.3). + C API ----- *************** *** 47,52 **** --- 62,76 ---- was set, making temp file creation impossible. Repaired. + - Add a patch to workaround pthread_sigmask() bugs in Cygwin. + Mac --- + + - Various fixes to pimp. + + - Scripts runs with pythonw no longer had full window manager access. + + - Don't force boot-disk-only install, for reasons unknown it causes + more problems than it solves. From bwarsaw@users.sourceforge.net Fri Jul 25 02:12:50 2003 From: bwarsaw@users.sourceforge.net (bwarsaw@users.sourceforge.net) Date: Thu, 24 Jul 2003 18:12:50 -0700 Subject: [Python-checkins] python/dist/src README,1.176,1.177 Message-ID: Update of /cvsroot/python/python/dist/src In directory sc8-pr-cvs1:/tmp/cvs-serv11725 Modified Files: README Log Message: This is release candidate 2 Index: README =================================================================== RCS file: /cvsroot/python/python/dist/src/README,v retrieving revision 1.176 retrieving revision 1.177 diff -C2 -d -r1.176 -r1.177 *** README 21 Jul 2003 16:01:39 -0000 1.176 --- README 25 Jul 2003 01:12:48 -0000 1.177 *************** *** 1,3 **** ! This is Python version 2.3 release candidate 1 ============================================== --- 1,3 ---- ! This is Python version 2.3 release candidate 2 ============================================== From bwarsaw@users.sourceforge.net Fri Jul 25 03:34:05 2003 From: bwarsaw@users.sourceforge.net (bwarsaw@users.sourceforge.net) Date: Thu, 24 Jul 2003 19:34:05 -0700 Subject: [Python-checkins] python/nondist/peps pep-0101.txt,1.28,1.29 Message-ID: Update of /cvsroot/python/python/nondist/peps In directory sc8-pr-cvs1:/tmp/cvs-serv22940 Modified Files: pep-0101.txt Log Message: updates Index: pep-0101.txt =================================================================== RCS file: /cvsroot/python/python/nondist/peps/pep-0101.txt,v retrieving revision 1.28 retrieving revision 1.29 diff -C2 -d -r1.28 -r1.29 *** pep-0101.txt 21 Jul 2003 17:34:07 -0000 1.28 --- pep-0101.txt 25 Jul 2003 02:34:02 -0000 1.29 *************** *** 45,82 **** say X.Y.MaZ. ! ___ At noon the day before the release, create a branch for X.YaZ. ! All Python development happens on the trunk. Making releases ! from a branch allows development by the community to continue ! without impacting what ends up in the release. There's a ! natural tension here though: branching too soon causes headaches ! when the branch has to be merged back into the trunk, while ! branching too late can cause dependency problems with ! documentation and Windows release steps. ! The compromise is to create the branch at noon, local time, the ! day before the release. This should give enough time to Fred to ! make the documentation, then for Tim to create the Windows ! installer, both of which need to happen before the release can ! be announced. It's also short enough that hopefully not too ! many trunk changes will need to be merged into the branch, or ! vice versa. ! Once the branch is made, only the RM or his appointed bots are ! allowed to make commits to the branch. You can assume that Fred ! is a bot for the Doc/ tree, Tim is a bot for the Windows stuff, ! and Jack is a bot for Mac stuff. ! Anyone can continue to make checkins on the trunk, but if such a ! change should be merged into the branch, the committer must ! indicate this in the checkin message. It is the responsibility ! of the RM to decide on a case-by-case basis which trunk ! modifications should be merged into the branch. ! To create a branch the following steps are taken: ___ Do a CVS update with the -A, -d, and -P flags, e.g. % cvs -q update -d -P -A ___ CVS tag the trunk with the symbolic name "rXYaZ-fork", e.g. % cvs tag r22a3-fork --- 45,116 ---- say X.Y.MaZ. ! Note: This document has been updated to reflect the more ! streamlined procedures used to release Python 2.3 (including the ! alphas and betas). ! ___ Impose a check-in freeze. Send a message to ! python-dev@python.org telling people not to make any check-ins ! on the tree until further notice. ! At this point, nobody except the RM should make any commits to ! the branch (or his duly assigned agents, i.e. Guido the BDFL, ! Fred Drake for documentation, or Tim Peters for Windows). If ! the RM screwed up and some desperate last minute change to the ! branch is necessary, it can mean extra work for Fred and Tim. ! So try to avoid this! ! ___ Log into irc.freenode.net and join the #python-dev channel. ! You probably need to coordinate with other people around the ! world. This IRC channel is where we've arranged to meet. ! ___ The most important thing to do is to update the Misc/NEWS file. ! Tim will need this in order to do the Windows release and he ! likes to stay up late. This step can be pretty tedious, so it's ! best to get to it immediately after making the branch, or even ! before you've made the branch. ! ! Add high level items new to this release. E.g. if we're ! releasing 2.2a3, there must be a section at the top of the file ! explaining "What's new in Python 2.2a3". It will be followed by ! a section entitled "What's new in Python 2.2a2". ! ! Note that you /hope/ that as developers add new features to the ! trunk, they've updated the NEWS file accordingly. You can't be ! positive, so double check. If you're a Unix weenie, it helps to ! verify with Tim Peters about changes on Windows, and Jack Jansen ! about changes on the Mac. ! ! This command should help you: ! ! % cvs log | python Tools/scripts/logmerge.py > /tmp/news.txt ! ! IOW, you're printing out all the cvs log entries from the ! previous release until now. You can then troll through the ! news.txt file looking for interesting things to add to NEWS. ! ! ___ Tag and/or branch the tree for release X.YaZ ! ! If you're releasing an alpha/beta/release candidate, you will ! just tag the tree. If you are releasing a final release, you ! will tag and create a branch. ! ! All Python development happens on the trunk. While it's ! sometimes challenging to keep people from checking things in ! while you're making a release, it's still preferred to creating ! a short-lived release branch. ! ! Practically speaking, we tag and branch just before making the ! release. Tagging too early causes too much merging work. ___ Do a CVS update with the -A, -d, and -P flags, e.g. % cvs -q update -d -P -A + To tag the tree, do the following: + + ___ cvs tag rXYaZ + + To create a branch the following steps are taken: + ___ CVS tag the trunk with the symbolic name "rXYaZ-fork", e.g. % cvs tag r22a3-fork *************** *** 88,115 **** You'll be doing a lot of work in this directory and you want to keep it straight from your trunk working directory. E.g. - % cvs -d -q co -d python-22a3 -r r22a3-branch python/dist/src ! ___ Send an email to python-dev@python.org indicating the fork and ! branch tags you've just created. ! ___ Put a freeze on check ins into the branch. At this point, ! nobody except the RM should make any commits to the branch (or ! his duly assigned agents, i.e. Guido the BDFL, Fred Drake for ! documentation, or Tim Peters for Windows). If the RM screwed up ! and some desperate last minute change to the branch is ! necessary, it can mean extra work for Fred and Tim. So try to ! avoid this! ! ___ In the branch, change Include/patchlevel.h in two places, to reflect the new version number you've just created. You'll want to change the PY_VERSION macro, and one or several of the version subpart macros just above PY_VERSION, as appropriate. ! ___ If you're changing the version number for Python (e.g. from ! Python 2.1.1 to Python 2.1.2), you also need to update the ! README file, which has a big banner at the top proclaiming its ! identity. Don't do this if you're just releasing a new alpha or ! beta release, but /do/ do this if you're release a new micro ! release. ___ There's also a mention of the version in --- 122,138 ---- You'll be doing a lot of work in this directory and you want to keep it straight from your trunk working directory. E.g. ! % export CVSROOT=cvs.sf.net:/cvsroot/python ! % cvs -q co -d python-22a3 -r r22a3-branch python/dist/src ! ___ cd into the branch directory. ! ___ Change Include/patchlevel.h in two places, to reflect the new version number you've just created. You'll want to change the PY_VERSION macro, and one or several of the version subpart macros just above PY_VERSION, as appropriate. ! ___ Update the README file, which has a big banner at the top ! proclaiming its identity. ___ There's also a mention of the version in *************** *** 149,221 **** Doc/whatsnew/whatsnewXX.tex to include the actual release date; e.g. "Python 2.3 was released on August 1, 2003." ! There's no need to edit this for alpha or beta releases. ! ! ___ For the next few hours, selectively merge stuff from trunk into ! branch. For each change you see on the trunk (i.e. via the ! python-checkins mailing list), you need to decide whether the ! change should also be applied to the branch. ! ! There is a tension here. Announcing the branch often jogs ! people's natural tendency to procrastinate so some very useful ! patches end up getting checked in at the last moment. But the ! Windows and Docs releases tend to be built many hours before the ! source release, and changes to the branch can force a lot of ! wasted effort to rebuild them. The best advice is to be ! judicious and to consult Fred and Tim before adding anything ! big. You really want to avoid skew between the various platform ! releases. ! ! Note that committers of changes to the trunk SHOULD include in ! the checkin message, a note indicating the suitability of their ! patch for the branch. ! ! If so, it's fairly easy to apply the change by diff'ing the file ! and patching it manually. You can also sometimes get away with ! just copying the file from the trunk directory to the branch ! directory, but be careful so you don't lose changes that only ! exist in the branch! ! ! ___ After creating the branch, the most important thing to do next ! is to update the Misc/NEWS file. Tim will need this in order to ! do the Windows release and he likes to stay up late. This step ! can be pretty tedious, so it's best to get to it immediately ! after making the branch, or even before you've made the branch. ! The sooner the better (but again, watch for new checkins up ! until the release is made!) ! ! Add high level items new to this release. E.g. if we're ! releasing 2.2a3, there must be a section at the top of the file ! explaining "What's new in Python 2.2a3". It will be followed by ! a section entitled "What's new in Python 2.2a2". ! ! Note that you /hope/ that as developers add new features to the ! trunk, they've updated the NEWS file accordingly. You can't be ! positive, so double check. If you're a Unix weenie, it helps to ! verify with Tim Peters about changes on Windows, and Jack Jansen ! about changes on the Mac. ! ! This command should help you: ! ! % cvs log -rr22a1: | python Tools/scripts/logmerge.py > /tmp/news.txt ! ! IOW, you're printing out all the cvs log entries from the ! previous release until now. You can then troll through the ! news.txt file looking for interesting things to add to NEWS. ! ___ Check your NEWS changes into the branch and into the trunk. ! ___ Once the branch is frozen, Fred Drake needs to create the HTML ! from the documentation. He does this and uploads the file to ! www.python.org. Then he tells Tim Peters where this file is. ! This may generate some last minute changes on the branch. Once ! Fred is done, there can be no further checkins on the branch in ! the Doc/ directory -- not even by the RM. For final releases, ! Fred also sends email to Milan Zamazal for conversion to the GNU ! Info format, and to Hernan M. Foffani for conversion to HTML ! Help. - Note that Fred is responsible both for merging doc changes from - the trunk to the branch AND for merging any branch changes from - the branch to the trunk during the cleaning up phase. Basically, if it's in Doc/, Fred will take care of it. --- 172,190 ---- Doc/whatsnew/whatsnewXX.tex to include the actual release date; e.g. "Python 2.3 was released on August 1, 2003." ! There's no need to edit this for alpha or beta releases. Note ! that Andrew often takes care of this. ! ___ By now, Fred has created the HTML for the documentation and ! pushed the appropriate files out to www.python.org. Tim needs ! this to build the Windows installer, but the RM doesn't need ! this stuff to build the source distribution. ! Fred tells Tim Peters where the documentation file is. This may ! generate some last minute changes on the branch. Once Fred is ! done, there can be no further checkins on the branch in the Doc/ ! directory -- not even by the RM. For final releases, Fred also ! sends email to Milan Zamazal for conversion to the GNU Info ! format, and to Hernan M. Foffani for conversion to HTML Help. Basically, if it's in Doc/, Fred will take care of it. *************** *** 224,231 **** ___ Tim performs his Windows magic, generating an installer ! executable. He uploads this file to python.org, and then sends the RM a notice which includes the location and MD5 checksum of the Windows executable. Note that Tim's creation of the Windows executable may generate a few more commits on the branch. Tim will be responsible for --- 193,203 ---- ___ Tim performs his Windows magic, generating an installer ! executable. He uploads this file to SourceForge, and then sends the RM a notice which includes the location and MD5 checksum of the Windows executable. + Note that Tim used to upload the installer to www.python.org, + but has had problems with ssh for a while now. + Note that Tim's creation of the Windows executable may generate a few more commits on the branch. Tim will be responsible for *************** *** 233,243 **** branch to trunk. ! ___ It's Noon! ! Now, you're ready to build the source tarball. First cd to your ! working directory for the branch. E.g. % cd .../python-22a3 ! ___ Do a "cvs update" in this directory. Do NOT include the -A flag! You should not see any "M" files, but you may see several "P" --- 205,219 ---- branch to trunk. ! ___ Download the Windows executable from SourceForge to ! creosote.python.org. Tell Tim so he can remove the file from ! SourceForge. ! ___ Time to build the source tarball. If you created a branch, be ! sure to cd to your working directory for the branch. E.g. % cd .../python-22a3 ! ___ Do a "cvs update" in this directory. Do NOT include the -A flag ! if you're working on a branch, but do include it if you're ! working on the trunk. You should not see any "M" files, but you may see several "P" *************** *** 246,252 **** last minute changes. ! ___ Now tag the branch using a symbolic name like "rXYaZ", ! e.g. r22a3 ! % cvs tag r22a3 ___ Change to a neutral directory, i.e. one in which you can do a --- 222,228 ---- last minute changes. ! ___ If you've seen updates to existing files, update the cvs tag: ! ! % cvs tag -F r22a3 ___ Change to a neutral directory, i.e. one in which you can do a *************** *** 256,260 **** % cd ~ ! % cvs -d export -rr22a3 -d Python-2.2a3 python/dist/src ___ Generate the tarball. Note that we're not using the `z' option --- 232,237 ---- % cd ~ ! % export CVSROOT=cvs.sf.net:/cvsroot/python ! % cvs export -rr23c2 -d Python-2.3c2 python/dist/src ___ Generate the tarball. Note that we're not using the `z' option *************** *** 262,269 **** as far as we know, and 2) we're going to max out the compression level, which isn't a supported option. ! % tar cf - Python-2.2a2 | gzip -9 > Python-2.2a2.tgz ___ Calculate the MD5 checksum of the tgz file you just created ! % md5sum Python-2.2a2.tgz Note that if you don't have the md5sum program, there is a --- 239,248 ---- as far as we know, and 2) we're going to max out the compression level, which isn't a supported option. ! ! % tar cf - Python-2.3c2 | gzip -9 > Python-2.3c2.tgz ___ Calculate the MD5 checksum of the tgz file you just created ! ! % md5sum Python-2.3c2.tgz Note that if you don't have the md5sum program, there is a *************** *** 276,281 **** % cd /tmp ! % tar zxvf ~/Python-2.2a3.tgz ! % cd Python-2.2a3 % ls (Do things look reasonable?) --- 255,260 ---- % cd /tmp ! % tar zxvf ~/Python-2.3c2.tgz ! % cd Python-2.3c2 % ls (Do things look reasonable?) From fdrake@users.sourceforge.net Fri Jul 25 03:46:06 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Thu, 24 Jul 2003 19:46:06 -0700 Subject: [Python-checkins] python/dist/src/Doc/perl l2hinit.perl,1.74.6.1,1.74.6.2 python.perl,1.137.4.1,1.137.4.2 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/perl In directory sc8-pr-cvs1:/tmp/cvs-serv24384/perl Modified Files: Tag: indexing-cleanup-branch l2hinit.perl python.perl Log Message: Start changing the data files generated during the HTML formatting to use an XML-based representation. **NOTE:** This breaks formatting of the indexes on this branch for now because the index generation tools have not yet been modified to use this new XML-based input. The XML format itself is expected to change to provide more detailed information. Index: l2hinit.perl =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/perl/l2hinit.perl,v retrieving revision 1.74.6.1 retrieving revision 1.74.6.2 diff -C2 -d -r1.74.6.1 -r1.74.6.2 *** l2hinit.perl 22 Jul 2003 06:44:33 -0000 1.74.6.1 --- l2hinit.perl 25 Jul 2003 02:46:04 -0000 1.74.6.2 *************** *** 319,322 **** --- 319,323 ---- sub add_idx() { print "\nBuilding HTML for the index ..."; + print IDXFILE "\n"; close(IDXFILE); insert_index($idx_mark, 'index.dat', $INDEX_COLUMNS, 1, ''); *************** *** 347,363 **** } open(MODIDXFILE, '>modindex.dat') || die "\n$!\n"; foreach $key (keys %Modules) { # dump the line in the data file; just use an empty seqno field my $plat = ''; if ($ModulePlatforms{$key} && !$allthesame) { ! $plat = (" ($ModulePlatforms{$key}" ! . ')'); } ! my $s = "$Modules{$key}$IDXFILE_FIELD_SEP$key"; ! $s =~ s//$1/; ! print MODIDXFILE ("$s$plat" ! . $IDXFILE_FIELD_SEP ! . "\n"); } close(MODIDXFILE); --- 348,367 ---- } open(MODIDXFILE, '>modindex.dat') || die "\n$!\n"; + print MODIDXFILE "\n"; foreach $key (keys %Modules) { # dump the line in the data file; just use an empty seqno field my $plat = ''; if ($ModulePlatforms{$key} && !$allthesame) { ! $plat = "$ModulePlatforms{$key}"; } ! my $s = $Modules{$key}; ! $s =~ //; ! my $link = $1; ! print MODIDXFILE " \n"; ! print MODIDXFILE " $key\n"; ! print MODIDXFILE " $plat\n" if $plat; ! print MODIDXFILE " \n"; } + print MODIDXFILE "\n"; close(MODIDXFILE); Index: python.perl =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/perl/python.perl,v retrieving revision 1.137.4.1 retrieving revision 1.137.4.2 diff -C2 -d -r1.137.4.1 -r1.137.4.2 *** python.perl 22 Jul 2003 06:44:34 -0000 1.137.4.1 --- python.perl 25 Jul 2003 02:46:04 -0000 1.137.4.2 *************** *** 480,500 **** # We're in the document subdirectory when this happens! - # open(IDXFILE, '>index.dat') || die "\n$!\n"; open(INTLABELS, '>intlabels.pl') || die "\n$!\n"; print INTLABELS "%internal_labels = ();\n"; print INTLABELS "1; # hack in case there are no entries\n\n"; - # Using \0 for this is bad because we can't use common tools to work with the - # resulting files. Things like grep can be useful with this stuff! - # - $IDXFILE_FIELD_SEP = "\1"; - sub write_idxfile($$){ my($ahref, $str) = @_; ! my $info = "$ahref$IDXFILE_FIELD_SEP$str\n"; ! $info =~ s//$1/; ! $info =~ s/###/$IDXFILE_FIELD_SEP/; ! print IDXFILE $info; } --- 480,508 ---- # We're in the document subdirectory when this happens! open(IDXFILE, '>index.dat') || die "\n$!\n"; + print IDXFILE "\n"; + open(INTLABELS, '>intlabels.pl') || die "\n$!\n"; print INTLABELS "%internal_labels = ();\n"; print INTLABELS "1; # hack in case there are no entries\n\n"; sub write_idxfile($$){ my($ahref, $str) = @_; ! $ahref =~ /$/; ! my $link = $1; ! $str =~ /(.*)###0*([1-9]\d*)$/; ! my $text = $1; ! my $seqno = $2; ! my $annotation = ''; ! if ($text =~ /(.*) \(([^)]+)\)$/) { ! $annotation = $2; ! $text = $1; ! } ! print IDXFILE " \n"; ! print IDXFILE " $text\n"; ! print IDXFILE " $annotation\n" if $annotation; ! print IDXFILE " \n"; } From bwarsaw@users.sourceforge.net Fri Jul 25 04:06:49 2003 From: bwarsaw@users.sourceforge.net (bwarsaw@users.sourceforge.net) Date: Thu, 24 Jul 2003 20:06:49 -0700 Subject: [Python-checkins] python/nondist/peps pep-0283.txt,1.40,1.41 Message-ID: Update of /cvsroot/python/python/nondist/peps In directory sc8-pr-cvs1:/tmp/cvs-serv27405 Modified Files: pep-0283.txt Log Message: Updated for 2.3c2 Index: pep-0283.txt =================================================================== RCS file: /cvsroot/python/python/nondist/peps/pep-0283.txt,v retrieving revision 1.40 retrieving revision 1.41 diff -C2 -d -r1.40 -r1.41 *** pep-0283.txt 20 Jul 2003 03:02:22 -0000 1.40 --- pep-0283.txt 25 Jul 2003 03:06:46 -0000 1.41 *************** *** 28,36 **** beta 2 -- 29 Jun 2003 candidate 1 -- 18 Jul 2003 Here is the schedule for the remaining releases: ! candidate 2 -- 24 Jul 2003 ! final -- 31 Jul 2003 --- 28,36 ---- beta 2 -- 29 Jun 2003 candidate 1 -- 18 Jul 2003 + candidate 2 -- 24 Jul 2003 Here is the schedule for the remaining releases: ! final -- 29 Jul 2003 From tim_one@users.sourceforge.net Fri Jul 25 04:13:00 2003 From: tim_one@users.sourceforge.net (tim_one@users.sourceforge.net) Date: Thu, 24 Jul 2003 20:13:00 -0700 Subject: [Python-checkins] python/nondist/peps pep-0283.txt,1.41,1.42 Message-ID: Update of /cvsroot/python/python/nondist/peps In directory sc8-pr-cvs1:/tmp/cvs-serv28242 Modified Files: pep-0283.txt Log Message: Remove Cygwin mysteries from the "open issues" section (JasonT fixed them). Index: pep-0283.txt =================================================================== RCS file: /cvsroot/python/python/nondist/peps/pep-0283.txt,v retrieving revision 1.41 retrieving revision 1.42 diff -C2 -d -r1.41 -r1.42 *** pep-0283.txt 25 Jul 2003 03:06:46 -0000 1.41 --- pep-0283.txt 25 Jul 2003 03:12:57 -0000 1.42 *************** *** 197,206 **** There are some issues that may need more work and/or thought before the final release (and preferably before the first beta ! release). For example: ! ! - As of release candidate 1, a raft of mysterious problems ! cropped up seemingly unique to Cygwin. If these are really due ! to the Python core (too soon to guess), it could dely the final ! release arbitrarily long. --- 197,201 ---- There are some issues that may need more work and/or thought before the final release (and preferably before the first beta ! release): No issues remaining. From bwarsaw@users.sourceforge.net Fri Jul 25 04:14:26 2003 From: bwarsaw@users.sourceforge.net (bwarsaw@users.sourceforge.net) Date: Thu, 24 Jul 2003 20:14:26 -0700 Subject: [Python-checkins] python/nondist/peps pep-0101.txt,1.29,1.30 Message-ID: Update of /cvsroot/python/python/nondist/peps In directory sc8-pr-cvs1:/tmp/cvs-serv28532a Modified Files: pep-0101.txt Log Message: minor update Index: pep-0101.txt =================================================================== RCS file: /cvsroot/python/python/nondist/peps/pep-0101.txt,v retrieving revision 1.29 retrieving revision 1.30 diff -C2 -d -r1.29 -r1.30 *** pep-0101.txt 25 Jul 2003 02:34:02 -0000 1.29 --- pep-0101.txt 25 Jul 2003 03:14:24 -0000 1.30 *************** *** 376,385 **** Feel free to remove any old news items. ! Now it's time to do some cleanup. These steps are very important! ! ___ Merge the branch back into the trunk! Now that we've released ! this branch, we don't need it any more. We've already tagged it ! so we can always reproduce it. Note that merging branches is a ! bit of a black art, but here's what's worked for us. ___ Check out a completely clean, virgin working directory of the --- 376,386 ---- Feel free to remove any old news items. ! Now it's time to do some cleaning up. These steps are very important! ! ___ If you made a branch, be sure to merge it into the trunk! Now ! that we've released this branch, we don't need it any more. ! We've already tagged it so we can always reproduce it. Note ! that merging branches is a bit of a black art, but here's what's ! worked for us. ___ Check out a completely clean, virgin working directory of the From bwarsaw@users.sourceforge.net Fri Jul 25 04:13:04 2003 From: bwarsaw@users.sourceforge.net (bwarsaw@users.sourceforge.net) Date: Thu, 24 Jul 2003 20:13:04 -0700 Subject: [Python-checkins] python/dist/src/Include patchlevel.h,2.71,2.72 Message-ID: Update of /cvsroot/python/python/dist/src/Include In directory sc8-pr-cvs1:/tmp/cvs-serv28316 Modified Files: patchlevel.h Log Message: Bump the version number Index: patchlevel.h =================================================================== RCS file: /cvsroot/python/python/dist/src/Include/patchlevel.h,v retrieving revision 2.71 retrieving revision 2.72 diff -C2 -d -r2.71 -r2.72 *** patchlevel.h 24 Jul 2003 00:15:45 -0000 2.71 --- patchlevel.h 25 Jul 2003 03:13:02 -0000 2.72 *************** *** 27,31 **** /* Version as a string */ ! #define PY_VERSION "2.3c2" /* Version as a single 4-byte hex number, e.g. 0x010502B2 == 1.5.2b2. --- 27,31 ---- /* Version as a string */ ! #define PY_VERSION "2.3c2+" /* Version as a single 4-byte hex number, e.g. 0x010502B2 == 1.5.2b2. From bcannon@users.sourceforge.net Sat Jul 26 01:32:12 2003 From: bcannon@users.sourceforge.net (bcannon@users.sourceforge.net) Date: Fri, 25 Jul 2003 17:32:12 -0700 Subject: [Python-checkins] python/dist/src/Include pythonrun.h,2.49.2.4,2.49.2.5 Message-ID: Update of /cvsroot/python/python/dist/src/Include In directory sc8-pr-cvs1:/tmp/cvs-serv9119/Include Modified Files: Tag: ast-branch pythonrun.h Log Message: Remove two redundant macro definitions. They differed from their twins only by having the first arg named f instead of fp. Done to remove compiler warnings about the redefinition. Index: pythonrun.h =================================================================== RCS file: /cvsroot/python/python/dist/src/Include/pythonrun.h,v retrieving revision 2.49.2.4 retrieving revision 2.49.2.5 diff -C2 -d -r2.49.2.4 -r2.49.2.5 *** pythonrun.h 28 Apr 2003 17:32:49 -0000 2.49.2.4 --- pythonrun.h 26 Jul 2003 00:32:10 -0000 2.49.2.5 *************** *** 76,83 **** /* Use macros for a bunch of old variants */ #define PyRun_String(str, s, g, l) PyRun_StringFlags(str, s, g, l, NULL) - #define PyRun_FileEx(f, p, s, g, l, c) \ - PyRun_FileExFlags(f, p, s, g, l, c, NULL) - #define PyRun_FileFlags(f, p, s, g, l, flags) \ - PyRun_FileExFlags(f, p, s, g, l, 0, flags) #define PyRun_AnyFile(fp, name) PyRun_AnyFileExFlags(fp, name, 0, NULL) #define PyRun_AnyFileEx(fp, name, closeit) \ --- 76,79 ---- From bcannon@users.sourceforge.net Sat Jul 26 01:35:17 2003 From: bcannon@users.sourceforge.net (bcannon@users.sourceforge.net) Date: Fri, 25 Jul 2003 17:35:17 -0700 Subject: [Python-checkins] python/dist/src/Include compile.h,2.37.2.7,2.37.2.8 Message-ID: Update of /cvsroot/python/python/dist/src/Include In directory sc8-pr-cvs1:/tmp/cvs-serv9668/Include Modified Files: Tag: ast-branch compile.h Log Message: Fix problem of code.h header not being included when needed. Possible OS X-only issue. Index: compile.h =================================================================== RCS file: /cvsroot/python/python/dist/src/Include/compile.h,v retrieving revision 2.37.2.7 retrieving revision 2.37.2.8 diff -C2 -d -r2.37.2.7 -r2.37.2.8 *** compile.h 28 Apr 2003 17:33:01 -0000 2.37.2.7 --- compile.h 26 Jul 2003 00:35:15 -0000 2.37.2.8 *************** *** 1,6 **** #ifndef Py_COMPILE_H #define Py_COMPILE_H #ifdef __cplusplus ! //extern "C" { #endif --- 1,10 ---- + #ifndef Py_CODE_H + #include "code.h" + #endif + #ifndef Py_COMPILE_H #define Py_COMPILE_H #ifdef __cplusplus ! extern "C" { #endif From bcannon@users.sourceforge.net Sat Jul 26 00:42:11 2003 From: bcannon@users.sourceforge.net (bcannon@users.sourceforge.net) Date: Fri, 25 Jul 2003 16:42:11 -0700 Subject: [Python-checkins] python/dist/src/Python compile.txt,1.1.2.5,1.1.2.6 Message-ID: Update of /cvsroot/python/python/dist/src/Python In directory sc8-pr-cvs1:/tmp/cvs-serv10318/Python Modified Files: Tag: ast-branch compile.txt Log Message: Grammatical change and note on needing to doc asdl_seq_* functions. Index: compile.txt =================================================================== RCS file: /cvsroot/python/python/dist/src/Python/Attic/compile.txt,v retrieving revision 1.1.2.5 retrieving revision 1.1.2.6 diff -C2 -d -r1.1.2.5 -r1.1.2.6 *** compile.txt 9 Jul 2003 04:18:02 -0000 1.1.2.5 --- compile.txt 25 Jul 2003 23:42:09 -0000 1.1.2.6 *************** *** 97,101 **** as defined by the ASDL grammar to create the nodes of the AST. ! Common macros used as defined in ``Include/node.h``: - CHILD(node, n) -- Returns the nth child of node using zero-offset indexing --- 97,102 ---- as defined by the ASDL grammar to create the nodes of the AST. ! Common macros used to manipulate ``node *`` structs as defined in ! ``Include/node.h``: - CHILD(node, n) -- Returns the nth child of node using zero-offset indexing *************** *** 104,107 **** --- 105,118 ---- - TYPE(node) -- The type of node as listed in ``Include/graminit.h`` - REQ(node, type) -- Assert that the node is the type that is expected + + XXX Function and macros for creating and using ``asdl_seq *`` types + (found in Python/asdl.c and Include/asdl.h): + + asdl_seq_new + * when to use? + * when to call asdl_seq_free? + + asdl_seq_APPEND + + asdl_seq_SET + + asdl_seq_GET + + asdl_seq_LEN From fdrake@users.sourceforge.net Fri Jul 25 14:54:45 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Fri, 25 Jul 2003 06:54:45 -0700 Subject: [Python-checkins] python/nondist/peps pep-0101.txt,1.30,1.31 Message-ID: Update of /cvsroot/python/python/nondist/peps In directory sc8-pr-cvs1:/tmp/cvs-serv16226 Modified Files: pep-0101.txt Log Message: Another addition for updating python.org. Index: pep-0101.txt =================================================================== RCS file: /cvsroot/python/python/nondist/peps/pep-0101.txt,v retrieving revision 1.30 retrieving revision 1.31 diff -C2 -d -r1.30 -r1.31 *** pep-0101.txt 25 Jul 2003 03:14:24 -0000 1.30 --- pep-0101.txt 25 Jul 2003 13:54:43 -0000 1.31 *************** *** 312,315 **** --- 312,319 ---- above. Do NOT do a "make install" yet! + ___ Also on the ../index.ht file (still the python.org home page), + update the link information so that the release status is + correct. Still do NOT do a "make install"! + ___ Now we're waiting for the scp to creosote to finish. Da de da, da de dum, hmm, hmm, dum de dum. From kbk@users.sourceforge.net Sun Jul 27 01:56:43 2003 From: kbk@users.sourceforge.net (kbk@users.sourceforge.net) Date: Sat, 26 Jul 2003 17:56:43 -0700 Subject: [Python-checkins] python/dist/src/Lib/idlelib idlever.py,1.14,1.15 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/idlelib In directory sc8-pr-cvs1:/tmp/cvs-serv15443 Modified Files: idlever.py Log Message: Update for release. Index: idlever.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/idlelib/idlever.py,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** idlever.py 23 Jul 2003 15:42:14 -0000 1.14 --- idlever.py 27 Jul 2003 00:56:41 -0000 1.15 *************** *** 1 **** ! IDLE_VERSION = "1.0rc2" --- 1 ---- ! IDLE_VERSION = "1.0" From kbk@users.sourceforge.net Sun Jul 27 04:24:21 2003 From: kbk@users.sourceforge.net (kbk@users.sourceforge.net) Date: Sat, 26 Jul 2003 20:24:21 -0700 Subject: [Python-checkins] python/dist/src/Lib/idlelib NEWS.txt,1.22,1.23 PyShell.py,1.80,1.81 README.txt,1.8,1.9 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/idlelib In directory sc8-pr-cvs1:/tmp/cvs-serv3572 Modified Files: NEWS.txt PyShell.py README.txt Log Message: Added a banner to the shell startup message discussing possible warnings from personal firewall software. Added the same text to README.txt, updated NEWS.txt for release. M NEWS.txt M PyShell.py M README.txt Index: NEWS.txt =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/idlelib/NEWS.txt,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -d -r1.22 -r1.23 *** NEWS.txt 23 Jul 2003 15:42:14 -0000 1.22 --- NEWS.txt 27 Jul 2003 03:24:18 -0000 1.23 *************** *** 1,2 **** --- 1,11 ---- + What's New in IDLE 1.0? + =================================== + + *Release date: 29-Jul-2003* + + - Added a banner to the shell discussimg warnings possibly raised by personal + firewall software. Added same comment to README.txt. + + What's New in IDLE 1.0 release candidate 2? =================================== *************** *** 5,8 **** --- 14,18 ---- - Calltip error when docstring was None Python Bug 775541 + What's New in IDLE 1.0 release candidate 1? Index: PyShell.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/idlelib/PyShell.py,v retrieving revision 1.80 retrieving revision 1.81 diff -C2 -d -r1.80 -r1.81 *** PyShell.py 9 Jul 2003 18:48:24 -0000 1.80 --- PyShell.py 27 Jul 2003 03:24:18 -0000 1.81 *************** *** 865,868 **** --- 865,877 ---- 'Type "copyright", "credits" or "license()" for more information.' + firewallmessage = """ + **************************************************************** + Personal firewall software may warn about the connection IDLE + makes to its subprocess using this computer's internal loopback + interface. This connection is not visible on any external + interface and no data is sent to or received from the Internet. + **************************************************************** + """ + def begin(self): self.resetoutput() *************** *** 871,877 **** else: nosub = "==== No Subprocess ====" ! self.write("Python %s on %s\n%s\nIDLE %s %s\n" % (sys.version, sys.platform, self.COPYRIGHT, ! idlever.IDLE_VERSION, nosub)) self.showprompt() import Tkinter --- 880,886 ---- else: nosub = "==== No Subprocess ====" ! self.write("Python %s on %s\n%s\n%s\nIDLE %s %s\n" % (sys.version, sys.platform, self.COPYRIGHT, ! self.firewallmessage, idlever.IDLE_VERSION, nosub)) self.showprompt() import Tkinter Index: README.txt =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/idlelib/README.txt,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** README.txt 12 Jun 2003 03:51:27 -0000 1.8 --- README.txt 27 Jul 2003 03:24:19 -0000 1.9 *************** *** 22,25 **** --- 22,30 ---- testing a module two or three steps down the import chain. + (Personal firewall software may warn about the connection IDLE makes to its + subprocess using this computer's internal loopback interface. This connection + is not visible on any external interface and no data is sent to or received + from the Internet.) + It is possible to interrupt tightly looping user code, even on Windows. From tim_one@users.sourceforge.net Sun Jul 27 21:23:51 2003 From: tim_one@users.sourceforge.net (tim_one@users.sourceforge.net) Date: Sun, 27 Jul 2003 13:23:51 -0700 Subject: [Python-checkins] python/dist/src/Misc NEWS,1.827,1.828 Message-ID: Update of /cvsroot/python/python/dist/src/Misc In directory sc8-pr-cvs1:/tmp/cvs-serv5951/python/Misc Modified Files: NEWS Log Message: Gave the main NEWS file its own IDLE section, and populated it with a blurb about ZoneAlarm (etc) nags. Index: NEWS =================================================================== RCS file: /cvsroot/python/python/dist/src/Misc/NEWS,v retrieving revision 1.827 retrieving revision 1.828 diff -C2 -d -r1.827 -r1.828 *** NEWS 25 Jul 2003 01:09:40 -0000 1.827 --- NEWS 27 Jul 2003 20:23:49 -0000 1.828 *************** *** 42,49 **** restored. ! Tools/Demos ! ----------- ! - Calltips patches in IDLE. Build --- 42,59 ---- restored. ! IDLE ! ---- ! - IDLE displays a new message upon startup: some "personal firewall" ! kinds of programs (for example, ZoneAlarm) open a dialog of their ! own when any program opens a socket. IDLE does use sockets, talking ! on the computer's internal loopback interface. This connection is not ! visible on any external interface and no data is sent to or received ! from the Internet. So, if you get such a dialog when opening IDLE, ! asking whether to let pythonw.exe talk to address 127.0.0.1, say yes, ! and rest assured no communication external to your machine is taking ! place. If you don't allow it, IDLE won't be able to start. ! ! - Calltips patches. Build From fdrake@users.sourceforge.net Mon Jul 28 15:39:16 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Mon, 28 Jul 2003 07:39:16 -0700 Subject: [Python-checkins] python/dist/src/Doc/lib tkinter.tex,1.21,1.22 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/lib In directory sc8-pr-cvs1:/tmp/cvs-serv19141 Modified Files: tkinter.tex Log Message: Update URL. Index: tkinter.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/tkinter.tex,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** tkinter.tex 8 Jul 2003 13:44:27 -0000 1.21 --- tkinter.tex 28 Jul 2003 14:39:13 -0000 1.22 *************** *** 1839,1843 **** derived class which simply adds or redefines the desired behavior. } ! \seetitle[http://www.daa.com.au/\textasciitilde james/pygtk/]{PyGTK}{ is a set of bindings for the \ulink{GTK}{http://www.gtk.org/} widget set. It provides an object oriented interface that is slightly higher --- 1839,1843 ---- derived class which simply adds or redefines the desired behavior. } ! \seetitle[http://www.daa.com.au/\textasciitilde james/software/pygtk/]{PyGTK}{ is a set of bindings for the \ulink{GTK}{http://www.gtk.org/} widget set. It provides an object oriented interface that is slightly higher From fdrake@users.sourceforge.net Mon Jul 28 15:39:39 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Mon, 28 Jul 2003 07:39:39 -0700 Subject: [Python-checkins] python/dist/src/Doc/lib tkinter.tex,1.10.6.8,1.10.6.9 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/lib In directory sc8-pr-cvs1:/tmp/cvs-serv19209 Modified Files: Tag: release22-maint tkinter.tex Log Message: Update URL. Index: tkinter.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/tkinter.tex,v retrieving revision 1.10.6.8 retrieving revision 1.10.6.9 diff -C2 -d -r1.10.6.8 -r1.10.6.9 *** tkinter.tex 8 Jul 2003 13:45:39 -0000 1.10.6.8 --- tkinter.tex 28 Jul 2003 14:39:37 -0000 1.10.6.9 *************** *** 1821,1825 **** derived class which simply adds or redefines the desired behavior. } ! \seetitle[http://www.daa.com.au/\textasciitilde james/pygtk/]{PyGTK}{ is a set of bindings for the \ulink{GTK}{http://www.gtk.org/} widget set. It provides an object oriented interface that is slightly higher --- 1821,1825 ---- derived class which simply adds or redefines the desired behavior. } ! \seetitle[http://www.daa.com.au/\textasciitilde james/software/pygtk/]{PyGTK}{ is a set of bindings for the \ulink{GTK}{http://www.gtk.org/} widget set. It provides an object oriented interface that is slightly higher From tim_one@users.sourceforge.net Tue Jul 29 01:05:36 2003 From: tim_one@users.sourceforge.net (tim_one@users.sourceforge.net) Date: Mon, 28 Jul 2003 17:05:36 -0700 Subject: [Python-checkins] python/dist/src/Include patchlevel.h,2.72,2.73 Message-ID: Update of /cvsroot/python/python/dist/src/Include In directory sc8-pr-cvs1:/tmp/cvs-serv2313/python/Include Modified Files: patchlevel.h Log Message: Bump release level to 2.3 (we won't have time for this tomorrow). Index: patchlevel.h =================================================================== RCS file: /cvsroot/python/python/dist/src/Include/patchlevel.h,v retrieving revision 2.72 retrieving revision 2.73 diff -C2 -d -r2.72 -r2.73 *** patchlevel.h 25 Jul 2003 03:13:02 -0000 2.72 --- patchlevel.h 29 Jul 2003 00:05:34 -0000 2.73 *************** *** 23,31 **** #define PY_MINOR_VERSION 3 #define PY_MICRO_VERSION 0 ! #define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_GAMMA #define PY_RELEASE_SERIAL 2 /* Version as a string */ ! #define PY_VERSION "2.3c2+" /* Version as a single 4-byte hex number, e.g. 0x010502B2 == 1.5.2b2. --- 23,31 ---- #define PY_MINOR_VERSION 3 #define PY_MICRO_VERSION 0 ! #define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_FINAL #define PY_RELEASE_SERIAL 2 /* Version as a string */ ! #define PY_VERSION "2.3" /* Version as a single 4-byte hex number, e.g. 0x010502B2 == 1.5.2b2. From tim_one@users.sourceforge.net Tue Jul 29 01:08:04 2003 From: tim_one@users.sourceforge.net (tim_one@users.sourceforge.net) Date: Mon, 28 Jul 2003 17:08:04 -0700 Subject: [Python-checkins] python/dist/src/PC python_nt.rc,1.25,1.26 Message-ID: Update of /cvsroot/python/python/dist/src/PC In directory sc8-pr-cvs1:/tmp/cvs-serv2601/python/PC Modified Files: python_nt.rc Log Message: Bump Windows resource version macro for 2.3 final. Index: python_nt.rc =================================================================== RCS file: /cvsroot/python/python/dist/src/PC/python_nt.rc,v retrieving revision 1.25 retrieving revision 1.26 diff -C2 -d -r1.25 -r1.26 *** python_nt.rc 24 Jul 2003 00:15:46 -0000 1.25 --- python_nt.rc 29 Jul 2003 00:08:01 -0000 1.26 *************** *** 34,45 **** * following comment and #define are output from PCbuild\field3.py: * ! * For 2.3c2, * PY_MICRO_VERSION = 0 ! * PY_RELEASE_LEVEL = 'candidate' = 0xc * PY_RELEASE_SERIAL = 2 * ! * and 0*1000 + 12*10 + 2 = 122 */ ! #define FIELD3 122 /* e.g., 2.1a2 --- 34,45 ---- * following comment and #define are output from PCbuild\field3.py: * ! * For 2.3, * PY_MICRO_VERSION = 0 ! * PY_RELEASE_LEVEL = 'final' = 0xf * PY_RELEASE_SERIAL = 2 * ! * and 0*1000 + 15*10 + 2 = 152 */ ! #define FIELD3 152 /* e.g., 2.1a2 From tim_one@users.sourceforge.net Tue Jul 29 01:10:32 2003 From: tim_one@users.sourceforge.net (tim_one@users.sourceforge.net) Date: Mon, 28 Jul 2003 17:10:32 -0700 Subject: [Python-checkins] python/dist/src/Misc NEWS,1.828,1.829 Message-ID: Update of /cvsroot/python/python/dist/src/Misc In directory sc8-pr-cvs1:/tmp/cvs-serv2962/python/Misc Modified Files: NEWS Log Message: Added section for 2.3 final; moved IDLE news into it that I inserted in a wrong place over the weekend. Index: NEWS =================================================================== RCS file: /cvsroot/python/python/dist/src/Misc/NEWS,v retrieving revision 1.828 retrieving revision 1.829 diff -C2 -d -r1.828 -r1.829 *** NEWS 27 Jul 2003 20:23:49 -0000 1.828 --- NEWS 29 Jul 2003 00:10:29 -0000 1.829 *************** *** 5,8 **** --- 5,45 ---- (editors: check NEWS.help for information about editing NEWS using ReST.) + What's New in Python 2.3 final? + =============================== + + *Release date: 29-Jul-2003* + + Core and builtins + ----------------- + + Extension modules + ----------------- + + Library + ------- + + IDLE + ---- + + - IDLE displays a new message upon startup: some "personal firewall" + kinds of programs (for example, ZoneAlarm) open a dialog of their + own when any program opens a socket. IDLE does use sockets, talking + on the computer's internal loopback interface. This connection is not + visible on any external interface and no data is sent to or received + from the Internet. So, if you get such a dialog when opening IDLE, + asking whether to let pythonw.exe talk to address 127.0.0.1, say yes, + and rest assured no communication external to your machine is taking + place. If you don't allow it, IDLE won't be able to start. + + Build + ----- + + C API + ----- + + Windows + ------- + + What's New in Python 2.3 release candidate 2? ============================================= *************** *** 44,57 **** IDLE ---- - - - IDLE displays a new message upon startup: some "personal firewall" - kinds of programs (for example, ZoneAlarm) open a dialog of their - own when any program opens a socket. IDLE does use sockets, talking - on the computer's internal loopback interface. This connection is not - visible on any external interface and no data is sent to or received - from the Internet. So, if you get such a dialog when opening IDLE, - asking whether to let pythonw.exe talk to address 127.0.0.1, say yes, - and rest assured no communication external to your machine is taking - place. If you don't allow it, IDLE won't be able to start. - Calltips patches. --- 81,84 ---- From tim_one@users.sourceforge.net Tue Jul 29 01:18:46 2003 From: tim_one@users.sourceforge.net (tim_one@users.sourceforge.net) Date: Mon, 28 Jul 2003 17:18:46 -0700 Subject: [Python-checkins] python/dist/src/PCbuild BUILDno.txt,1.50,1.51 pythoncore.dsp,1.47,1.48 Message-ID: Update of /cvsroot/python/python/dist/src/PCbuild In directory sc8-pr-cvs1:/tmp/cvs-serv4429/python/PCbuild Modified Files: BUILDno.txt pythoncore.dsp Log Message: Bump Windows build number for 2.3 final. Index: BUILDno.txt =================================================================== RCS file: /cvsroot/python/python/dist/src/PCbuild/BUILDno.txt,v retrieving revision 1.50 retrieving revision 1.51 diff -C2 -d -r1.50 -r1.51 *** BUILDno.txt 24 Jul 2003 00:15:46 -0000 1.50 --- BUILDno.txt 29 Jul 2003 00:18:44 -0000 1.51 *************** *** 34,37 **** --- 34,39 ---- Windows Python BUILD numbers ---------------------------- + 46 2.3 (final) + 29-Jul-2003 45 2.3c2 24-Jul-2003 Index: pythoncore.dsp =================================================================== RCS file: /cvsroot/python/python/dist/src/PCbuild/pythoncore.dsp,v retrieving revision 1.47 retrieving revision 1.48 diff -C2 -d -r1.47 -r1.48 *** pythoncore.dsp 24 Jul 2003 00:15:46 -0000 1.47 --- pythoncore.dsp 29 Jul 2003 00:18:44 -0000 1.48 *************** *** 259,263 **** SOURCE=..\Modules\getbuildinfo.c ! # ADD CPP /D BUILD=45 # End Source File # Begin Source File --- 259,263 ---- SOURCE=..\Modules\getbuildinfo.c ! # ADD CPP /D BUILD=46 # End Source File # Begin Source File From tim_one@users.sourceforge.net Tue Jul 29 01:21:38 2003 From: tim_one@users.sourceforge.net (tim_one@users.sourceforge.net) Date: Mon, 28 Jul 2003 17:21:38 -0700 Subject: [Python-checkins] python/dist/src/Include patchlevel.h,2.73,2.74 Message-ID: Update of /cvsroot/python/python/dist/src/Include In directory sc8-pr-cvs1:/tmp/cvs-serv4939/python/Include Modified Files: patchlevel.h Log Message: Repair botched release serial number. Index: patchlevel.h =================================================================== RCS file: /cvsroot/python/python/dist/src/Include/patchlevel.h,v retrieving revision 2.73 retrieving revision 2.74 diff -C2 -d -r2.73 -r2.74 *** patchlevel.h 29 Jul 2003 00:05:34 -0000 2.73 --- patchlevel.h 29 Jul 2003 00:21:36 -0000 2.74 *************** *** 24,28 **** #define PY_MICRO_VERSION 0 #define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_FINAL ! #define PY_RELEASE_SERIAL 2 /* Version as a string */ --- 24,28 ---- #define PY_MICRO_VERSION 0 #define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_FINAL ! #define PY_RELEASE_SERIAL 0 /* Version as a string */ From tim_one@users.sourceforge.net Tue Jul 29 01:25:22 2003 From: tim_one@users.sourceforge.net (tim_one@users.sourceforge.net) Date: Mon, 28 Jul 2003 17:25:22 -0700 Subject: [Python-checkins] python/dist/src/PC python_nt.rc,1.26,1.27 Message-ID: Update of /cvsroot/python/python/dist/src/PC In directory sc8-pr-cvs1:/tmp/cvs-serv5517/PC Modified Files: python_nt.rc Log Message: Repaired botched release serial number. Index: python_nt.rc =================================================================== RCS file: /cvsroot/python/python/dist/src/PC/python_nt.rc,v retrieving revision 1.26 retrieving revision 1.27 diff -C2 -d -r1.26 -r1.27 *** python_nt.rc 29 Jul 2003 00:08:01 -0000 1.26 --- python_nt.rc 29 Jul 2003 00:25:20 -0000 1.27 *************** *** 37,45 **** * PY_MICRO_VERSION = 0 * PY_RELEASE_LEVEL = 'final' = 0xf ! * PY_RELEASE_SERIAL = 2 * ! * and 0*1000 + 15*10 + 2 = 152 */ ! #define FIELD3 152 /* e.g., 2.1a2 --- 37,45 ---- * PY_MICRO_VERSION = 0 * PY_RELEASE_LEVEL = 'final' = 0xf ! * PY_RELEASE_SERIAL = 0 * ! * and 0*1000 + 15*10 + 0 = 150 */ ! #define FIELD3 150 /* e.g., 2.1a2 From tim_one@users.sourceforge.net Tue Jul 29 01:29:46 2003 From: tim_one@users.sourceforge.net (tim_one@users.sourceforge.net) Date: Mon, 28 Jul 2003 17:29:46 -0700 Subject: [Python-checkins] python/dist/src/PCbuild python20.wse,1.131,1.132 Message-ID: Update of /cvsroot/python/python/dist/src/PCbuild In directory sc8-pr-cvs1:/tmp/cvs-serv6123 Modified Files: python20.wse Log Message: Updated Windows installer for 2.3 final. Index: python20.wse =================================================================== RCS file: /cvsroot/python/python/dist/src/PCbuild/python20.wse,v retrieving revision 1.131 retrieving revision 1.132 diff -C2 -d -r1.131 -r1.132 *** python20.wse 24 Jul 2003 00:15:46 -0000 1.131 --- python20.wse 29 Jul 2003 00:29:44 -0000 1.132 *************** *** 2,6 **** item: Global Version=8.14 ! Title=Python 2.3 release candidate 2 Flags=00010100 Languages=65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 --- 2,6 ---- item: Global Version=8.14 ! Title=Python 2.3 Flags=00010100 Languages=65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 *************** *** 19,25 **** Patch Threshold=85 Patch Memory=4000 ! EXE Filename=Python-2.3c2.exe Dialogs Version=8 ! Version File=2.3c2 Version Description=Python Programming Language Version Copyright=©2001-2003 Python Software Foundation --- 19,25 ---- Patch Threshold=85 Patch Memory=4000 ! EXE Filename=Python-2.3.exe Dialogs Version=8 ! Version File=2.3 Version Description=Python Programming Language Version Copyright=©2001-2003 Python Software Foundation *************** *** 68,72 **** item: Set Variable Variable=PYVER_STRING ! Value=2.3c2 end item: Remark --- 68,72 ---- item: Set Variable Variable=PYVER_STRING ! Value=2.3 end item: Remark From fdrake@users.sourceforge.net Tue Jul 29 04:11:36 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Mon, 28 Jul 2003 20:11:36 -0700 Subject: [Python-checkins] python/dist/src/Doc Makefile,1.260,1.261 Message-ID: Update of /cvsroot/python/python/dist/src/Doc In directory sc8-pr-cvs1:/tmp/cvs-serv32599 Modified Files: Makefile Log Message: Bump version information. Index: Makefile =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/Makefile,v retrieving revision 1.260 retrieving revision 1.261 diff -C2 -d -r1.260 -r1.261 *** Makefile 24 Jul 2003 01:22:50 -0000 1.260 --- Makefile 29 Jul 2003 03:11:34 -0000 1.261 *************** *** 67,71 **** # This is the *documentation* release, and is used to construct the file # names of the downloadable tarballs. ! RELEASE=2.3c2 PYTHON= python --- 67,71 ---- # This is the *documentation* release, and is used to construct the file # names of the downloadable tarballs. ! RELEASE=2.3 PYTHON= python From fdrake@users.sourceforge.net Tue Jul 29 04:20:34 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Mon, 28 Jul 2003 20:20:34 -0700 Subject: [Python-checkins] python/dist/src/Doc/texinputs boilerplate.tex,1.83,1.84 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/texinputs In directory sc8-pr-cvs1:/tmp/cvs-serv1546 Modified Files: boilerplate.tex Log Message: Update release information. Index: boilerplate.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/texinputs/boilerplate.tex,v retrieving revision 1.83 retrieving revision 1.84 diff -C2 -d -r1.83 -r1.84 *** boilerplate.tex 24 Jul 2003 01:22:50 -0000 1.83 --- boilerplate.tex 29 Jul 2003 03:20:32 -0000 1.84 *************** *** 6,11 **** } ! \date{\today} % XXX update before final release! \release{2.3} % software release, not documentation ! \setreleaseinfo{c2} % empty for final release \setshortversion{2.3} % major.minor only for software --- 6,11 ---- } ! \date{July 29, 2003} % XXX update before final release! \release{2.3} % software release, not documentation ! \setreleaseinfo{} % empty for final release \setshortversion{2.3} % major.minor only for software From bwarsaw@users.sourceforge.net Tue Jul 29 05:25:05 2003 From: bwarsaw@users.sourceforge.net (bwarsaw@users.sourceforge.net) Date: Mon, 28 Jul 2003 21:25:05 -0700 Subject: [Python-checkins] python/nondist/peps pep-0283.txt,1.42,1.43 Message-ID: Update of /cvsroot/python/python/nondist/peps In directory sc8-pr-cvs1:/tmp/cvs-serv9733 Modified Files: pep-0283.txt Log Message: Might as well mark this PEP as Final. 29-Jul-2003 it is, and it looks like Britney's not showing up although she still has a few more hours... Index: pep-0283.txt =================================================================== RCS file: /cvsroot/python/python/nondist/peps/pep-0283.txt,v retrieving revision 1.42 retrieving revision 1.43 diff -C2 -d -r1.42 -r1.43 *** pep-0283.txt 25 Jul 2003 03:12:57 -0000 1.42 --- pep-0283.txt 29 Jul 2003 04:25:02 -0000 1.43 *************** *** 3,7 **** Version: $Revision$ Author: Guido van Rossum ! Status: Incomplete Type: Informational Created: 27-Feb-2002 --- 3,7 ---- Version: $Revision$ Author: Guido van Rossum ! Status: Final Type: Informational Created: 27-Feb-2002 *************** *** 29,37 **** candidate 1 -- 18 Jul 2003 candidate 2 -- 24 Jul 2003 - - Here is the schedule for the remaining releases: - final -- 29 Jul 2003 - Release Manager --- 29,33 ---- From bwarsaw@users.sourceforge.net Tue Jul 29 05:27:48 2003 From: bwarsaw@users.sourceforge.net (bwarsaw@users.sourceforge.net) Date: Mon, 28 Jul 2003 21:27:48 -0700 Subject: [Python-checkins] python/nondist/peps pep-0000.txt,1.246,1.247 Message-ID: Update of /cvsroot/python/python/nondist/peps In directory sc8-pr-cvs1:/tmp/cvs-serv10190 Modified Files: pep-0000.txt Log Message: Marking 283 as final, and moving it to finished PEPs. Also changing my address here (but not everywhere) to barry@python.org because of its superior spam defenses. ;) Index: pep-0000.txt =================================================================== RCS file: /cvsroot/python/python/nondist/peps/pep-0000.txt,v retrieving revision 1.246 retrieving revision 1.247 diff -C2 -d -r1.246 -r1.247 *** pep-0000.txt 16 Jun 2003 23:46:47 -0000 1.246 --- pep-0000.txt 29 Jul 2003 04:27:46 -0000 1.247 *************** *** 4,8 **** Last-Modified: $Date$ Author: David Goodger , ! Barry A. Warsaw Status: Active Type: Informational --- 4,8 ---- Last-Modified: $Date$ Author: David Goodger , ! Barry A. Warsaw Status: Active Type: Informational *************** *** 93,97 **** S 281 Loop Counter Iteration with range and xrange Hetland S 282 A Logging System Sajip, Mick - I 283 Python 2.3 Release Schedule GvR S 284 Integer for-loops Eppstein, Ewing S 286 Enhanced Argument Tuples von Loewis --- 93,96 ---- *************** *** 155,158 **** --- 154,158 ---- SF 277 Unicode file name support for Windows NT Hodgson SF 279 The enumerate() built-in function Hettinger + IF 283 Python 2.3 Release Schedule GvR SF 285 Adding a bool type GvR SF 293 Codec Error Handling Callbacks Dörwald *************** *** 296,300 **** S 281 Loop Counter Iteration with range and xrange Hetland S 282 A Logging System Sajip, Mick ! I 283 Python 2.3 Release Schedule GvR S 284 Integer for-loops Eppstein, Ewing SF 285 Adding a bool type GvR --- 296,300 ---- S 281 Loop Counter Iteration with range and xrange Hetland S 282 A Logging System Sajip, Mick ! IF 283 Python 2.3 Release Schedule GvR S 284 Integer for-loops Eppstein, Ewing SF 285 Adding a bool type GvR *************** *** 415,419 **** Tirosh, Oren oren at hishome.net Warnes, Gregory R. warnes@users.sourceforge.net ! Warsaw, Barry barry@zope.com Way, Terence terry@wayforward.net Wells, Cliff LogiplexSoftware@earthlink.net --- 415,419 ---- Tirosh, Oren oren at hishome.net Warnes, Gregory R. warnes@users.sourceforge.net ! Warsaw, Barry barry@python.org Way, Terence terry@wayforward.net Wells, Cliff LogiplexSoftware@earthlink.net From bwarsaw@users.sourceforge.net Tue Jul 29 05:35:29 2003 From: bwarsaw@users.sourceforge.net (bwarsaw@users.sourceforge.net) Date: Mon, 28 Jul 2003 21:35:29 -0700 Subject: [Python-checkins] python/nondist/peps pep-0320.txt,NONE,1.1 Message-ID: Update of /cvsroot/python/python/nondist/peps In directory sc8-pr-cvs1:/tmp/cvs-serv11334 Added Files: pep-0320.txt Log Message: The start of a Python 2.4 schedule PEP (I'm claiming the next free PEP number) --- NEW FILE: pep-0320.txt --- PEP: 320 Title: Python 2.4 Release Schedule Version: $Revision: 1.1 $ Author: Barry Warsaw Status: Incomplete Type: Informational Created: 29-Jul-2003 Python-Version: 2.4 Post-History: Abstract This document describes the development and release schedule for Python 2.4. The schedule primarily concerns itself with PEP-sized items. Small features may be added up to and including the first beta release. Bugs may be fixed until the final release. There will be at least two alpha releases, two beta releases, and one release candidate. Other than that, no claims are made on release plans, nor what will actually be in Python 2.4 at this early date. There were 19 months between the Python 2.2 final and Python 2.3 final releases. If that schedule holds true for Python 2.4, you can expect it some time around February 2005. Release Manager TBD Completed features for 2.4 None Planned features for 2.4 Too early for anything more to get done here. Ongoing tasks The following are ongoing TO-DO items which we should attempt to work on without hoping for completion by any particular date. - Documentation: complete the distribution and installation manuals. - Documentation: complete the documentation for new-style classes. - Look over the Demos/ directory and update where required (Andrew Kuchling has done a lot of this) - New tests. - Fix doc bugs on SF. - Remove use of deprecated features in the core. - Document deprecated features appropriately. - Mark deprecated C APIs with Py_DEPRECATED. - Deprecate modules which are unmaintained, or perhaps make a new category for modules 'Unmaintained' - In general, lots of cleanup so it is easier to move forward. Open issues None at this time. Carryover features from Python 2.3 - The import lock could use some redesign. (SF 683658.) - Set API issues; is the sets module perfect? I expect it's good enough to stop polishing it until we've had more widespread user experience. - A nicer API to open text files, replacing the ugly (in some people's eyes) "U" mode flag. There's a proposal out there to have a new built-in type textfile(filename, mode, encoding). (Shouldn't it have a bufsize argument too?) Ditto. - New widgets for Tkinter??? Has anyone gotten the time for this? *Are* there any new widgets in Tk 8.4? Note that we've got better Tix support already (though not on Windows yet). - Fredrik Lundh's basetime proposal: http://effbot.org/ideas/time-type.htm I believe this is dead now. - PEP 304 (Controlling Generation of Bytecode Files by Montanaro) seems to have lost steam. - For a class defined inside another class, the __name__ should be "outer.inner", and pickling should work. (SF 633930. I'm no longer certain this is easy or even right.) - reST is going to be used a lot in Zope3. Maybe it could become a standard library module? (Since reST's author thinks it's too instable, I'm inclined not to do this.) - Decide on a clearer deprecation policy (especially for modules) and act on it. For a start, see this message from Neil Norwitz: http://mail.python.org/pipermail/python-dev/2002-April/023165.html There seems insufficient interest in moving this further in an organized fashion, and it's not particularly important. - Provide alternatives for common uses of the types module; Skip Montanaro has posted a proto-PEP for this idea: http://mail.python.org/pipermail/python-dev/2002-May/024346.html There hasn't been any progress on this, AFAICT. - Use pending deprecation for the types and string modules. This requires providing alternatives for the parts that aren't covered yet (e.g. string.whitespace and types.TracebackType). It seems we can't get consensus on this. - Deprecate the buffer object. http://mail.python.org/pipermail/python-dev/2002-July/026388.html http://mail.python.org/pipermail/python-dev/2002-July/026408.html It seems that this is never going to be resolved. - PEP 269 Pgen Module for Python Riehl (Some necessary changes are in; the pgen module itself needs to mature more.) - Add support for the long-awaited Python catalog. Kapil Thangavelu has a Zope-based implementation that he demoed at OSCON 2002. Now all we need is a place to host it and a person to champion it. (Some changes to distutils to support this are in, at least.) - PEP 266 Optimizing Global Variable/Attribute Access Montanaro PEP 267 Optimized Access to Module Namespaces Hylton PEP 280 Optimizing access to globals van Rossum These are basically three friendly competing proposals. Jeremy has made a little progress with a new compiler, but it's going slow and the compiler is only the first step. Maybe we'll be able to refactor the compiler in this release. I'm tempted to say we won't hold our breath. In the mean time, Oren Tirosh has a much simpler idea that may give a serious boost to the performance of accessing globals and built-ins, by optimizing and inlining the dict access: http://tothink.com/python/fastnames/ - Lazily tracking tuples? http://mail.python.org/pipermail/python-dev/2002-May/023926.html http://www.python.org/sf/558745 Not much enthusiasm I believe. - PEP 286 Enhanced Argument Tuples von Loewis I haven't had the time to review this thoroughly. It seems a deep optimization hack (also makes better correctness guarantees though). - Make 'as' a keyword. It has been a pseudo-keyword long enough. Too much effort to bother. Copyright This document has been placed in the public domain. Local Variables: mode: indented-text indent-tabs-mode: nil End: From bwarsaw@users.sourceforge.net Tue Jul 29 05:36:25 2003 From: bwarsaw@users.sourceforge.net (bwarsaw@users.sourceforge.net) Date: Mon, 28 Jul 2003 21:36:25 -0700 Subject: [Python-checkins] python/nondist/peps pep-0000.txt,1.247,1.248 Message-ID: Update of /cvsroot/python/python/nondist/peps In directory sc8-pr-cvs1:/tmp/cvs-serv11448 Modified Files: pep-0000.txt Log Message: Added PEP 320, Python 2.4 release schedule Index: pep-0000.txt =================================================================== RCS file: /cvsroot/python/python/nondist/peps/pep-0000.txt,v retrieving revision 1.247 retrieving revision 1.248 diff -C2 -d -r1.247 -r1.248 *** pep-0000.txt 29 Jul 2003 04:27:46 -0000 1.247 --- pep-0000.txt 29 Jul 2003 04:36:23 -0000 1.248 *************** *** 118,121 **** --- 118,122 ---- S 318 Function/Method Decorator Syntax Smith S 319 Python Synchronize/Asynchronize Block Pelletier + I 320 Python 2.4 Release Schedule Warsaw S 754 IEEE 754 Floating Point Special Values Warnes *************** *** 332,335 **** --- 333,337 ---- S 318 Function/Method Decorator Syntax Smith S 319 Python Synchronize/Asynchronize Block Pelletier + I 320 Python 2.4 Release Schedule Warsaw SR 666 Reject Foolish Indentation Creighton S 754 IEEE 754 Floating Point Special Values Warnes From bwarsaw@users.sourceforge.net Tue Jul 29 05:43:31 2003 From: bwarsaw@users.sourceforge.net (bwarsaw@users.sourceforge.net) Date: Mon, 28 Jul 2003 21:43:31 -0700 Subject: [Python-checkins] python/nondist/peps pep-0000.txt,1.248,1.249 Message-ID: Update of /cvsroot/python/python/nondist/peps In directory sc8-pr-cvs1:/tmp/cvs-serv12447 Modified Files: pep-0000.txt Log Message: Moving PEP 320 to "Other Informational PEPs" so it's easier to find. Question: should all the release schedule PEPs get moved here? Index: pep-0000.txt =================================================================== RCS file: /cvsroot/python/python/nondist/peps/pep-0000.txt,v retrieving revision 1.248 retrieving revision 1.249 diff -C2 -d -r1.248 -r1.249 *** pep-0000.txt 29 Jul 2003 04:36:23 -0000 1.248 --- pep-0000.txt 29 Jul 2003 04:43:29 -0000 1.249 *************** *** 57,60 **** --- 57,61 ---- I 291 Backward Compatibility for Standard Library Norwitz I 306 How to Change Python's Grammar Hudson + I 320 Python 2.4 Release Schedule Warsaw Accepted PEPs (accepted; may not be implemented yet) *************** *** 118,122 **** S 318 Function/Method Decorator Syntax Smith S 319 Python Synchronize/Asynchronize Block Pelletier - I 320 Python 2.4 Release Schedule Warsaw S 754 IEEE 754 Floating Point Special Values Warnes --- 119,122 ---- From goodger@python.org Tue Jul 29 06:31:50 2003 From: goodger@python.org (David Goodger) Date: Tue, 29 Jul 2003 01:31:50 -0400 Subject: [Python-checkins] Re: python/nondist/peps pep-0000.txt,1.248,1.249 In-Reply-To: References: Message-ID: <3F2606C6.1080104@python.org> bwarsaw@users.sourceforge.net wrote: > Moving PEP 320 to "Other Informational PEPs" so it's easier to find. > > Question: should all the release schedule PEPs get moved here? I'd say no. Old Status-final release schedule PEPs are of historic interest only, and would only clutter that part of the table. When PEP 320 becomes Final, it ought to be moved to Finished PEPs. -- David From akuchling@users.sourceforge.net Tue Jul 29 13:06:34 2003 From: akuchling@users.sourceforge.net (akuchling@users.sourceforge.net) Date: Tue, 29 Jul 2003 05:06:34 -0700 Subject: [Python-checkins] python/dist/src/Doc/whatsnew whatsnew23.tex,1.158,1.159 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/whatsnew In directory sc8-pr-cvs1:/tmp/cvs-serv21029 Modified Files: whatsnew23.tex Log Message: Bump version number; record 2.3 release date Index: whatsnew23.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/whatsnew/whatsnew23.tex,v retrieving revision 1.158 retrieving revision 1.159 diff -C2 -d -r1.158 -r1.159 *** whatsnew23.tex 21 Jul 2003 12:49:46 -0000 1.158 --- whatsnew23.tex 29 Jul 2003 12:06:32 -0000 1.159 *************** *** 4,8 **** \title{What's New in Python 2.3} ! \release{0.90} \author{A.M.\ Kuchling} \authoraddress{\email{amk@amk.ca}} --- 4,8 ---- \title{What's New in Python 2.3} ! \release{1.00} \author{A.M.\ Kuchling} \authoraddress{\email{amk@amk.ca}} *************** *** 12,17 **** \tableofcontents ! This article explains the new features in Python 2.3. The ! release date of Python 2.3 is currently scheduled for August 2003. The main themes for Python 2.3 are polishing some of the features --- 12,17 ---- \tableofcontents ! This article explains the new features in Python 2.3. Python 2.3 was ! released on July 29, 2003. The main themes for Python 2.3 are polishing some of the features From goodger@users.sourceforge.net Tue Jul 29 16:31:16 2003 From: goodger@users.sourceforge.net (goodger@users.sourceforge.net) Date: Tue, 29 Jul 2003 08:31:16 -0700 Subject: [Python-checkins] python/nondist/peps pep-0318.txt,1.2,1.3 Message-ID: Update of /cvsroot/python/python/nondist/peps In directory sc8-pr-cvs1:/tmp/cvs-serv27989 Modified Files: pep-0318.txt Log Message: update from Kevin Smith Index: pep-0318.txt =================================================================== RCS file: /cvsroot/python/python/nondist/peps/pep-0318.txt,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** pep-0318.txt 10 Jun 2003 04:29:48 -0000 1.2 --- pep-0318.txt 29 Jul 2003 15:31:13 -0000 1.3 *************** *** 9,13 **** Created: 05-Jun-2003 Python-Version: 2.4 ! Post-History: 09-Jun-2003 --- 9,13 ---- Created: 05-Jun-2003 Python-Version: 2.4 ! Post-History: 09-Jun-2003, 10-Jun-2003 *************** *** 128,132 **** itself, it makes sense that synchronized, lock, and classmethod must exist at the time that the definition ! is compiled. In addition, each of these arguments will be evaluated before being applied to the compiled function. This means that arguments like synchronized(lock) must --- 128,132 ---- itself, it makes sense that synchronized, lock, and classmethod must exist at the time that the definition ! is executed. In addition, each of these arguments will be evaluated before being applied to the compiled function. This means that arguments like synchronized(lock) must *************** *** 150,154 **** In either case, the modified function is bound to the function ! name at compile time. --- 150,164 ---- In either case, the modified function is bound to the function ! name when the 'def' statement is executed. ! ! ! Current Implementations ! ! I am not personally familiar enough with Python's source to ! implement the proposed syntax; however, Michael Hudson has ! implemented the "square-bracketed" syntax (see patch at ! http://starship.python.net/crew/mwh/hacks/meth-syntax-sugar.diff). ! It should be fairly simple for the Python development team ! to translate this patch to the proposed syntax. From tim_one@users.sourceforge.net Tue Jul 29 18:23:00 2003 From: tim_one@users.sourceforge.net (tim_one@users.sourceforge.net) Date: Tue, 29 Jul 2003 10:23:00 -0700 Subject: [Python-checkins] python/dist/src/PCbuild python20.wse,1.132,1.133 Message-ID: Update of /cvsroot/python/python/dist/src/PCbuild In directory sc8-pr-cvs1:/tmp/cvs-serv19669/PCbuild Modified Files: python20.wse Log Message: SF bug 778400: IDLE hangs when selecting "Edit with IDLE". The fix is confined to the Windows installer. Not a bugfix candidate: the need for the new -n switch added here was introduced by moving to the idlefork IDLE (so this change isn't needed or helpful before 2.3). Index: python20.wse =================================================================== RCS file: /cvsroot/python/python/dist/src/PCbuild/python20.wse,v retrieving revision 1.132 retrieving revision 1.133 diff -C2 -d -r1.132 -r1.133 *** python20.wse 29 Jul 2003 00:29:44 -0000 1.132 --- python20.wse 29 Jul 2003 17:22:57 -0000 1.133 *************** *** 2658,2667 **** Total Keys=1 Key=Python.NoConFile\shell\Edit with IDLE\command ! New Value=%MAINDIR%\pythonw.exe %MAINDIR%\Lib\idlelib\idle.pyw -e "%%1" end item: Edit Registry Total Keys=1 Key=Python.File\shell\Edit with IDLE\command ! New Value=%MAINDIR%\pythonw.exe %MAINDIR%\Lib\idlelib\idle.pyw -e "%%1" end item: Else Statement --- 2658,2667 ---- Total Keys=1 Key=Python.NoConFile\shell\Edit with IDLE\command ! New Value=%MAINDIR%\pythonw.exe %MAINDIR%\Lib\idlelib\idle.pyw -n -e "%%1" end item: Edit Registry Total Keys=1 Key=Python.File\shell\Edit with IDLE\command ! New Value=%MAINDIR%\pythonw.exe %MAINDIR%\Lib\idlelib\idle.pyw -n -e "%%1" end item: Else Statement *************** *** 2670,2674 **** Total Keys=1 Key=Software\CLASSES\Python.NoConFile\shell\Edit with IDLE\command ! New Value=%MAINDIR%\pythonw.exe %MAINDIR%\Lib\idlelib\idle.pyw -e "%%1" Root=1 end --- 2670,2674 ---- Total Keys=1 Key=Software\CLASSES\Python.NoConFile\shell\Edit with IDLE\command ! New Value=%MAINDIR%\pythonw.exe %MAINDIR%\Lib\idlelib\idle.pyw -n -e "%%1" Root=1 end *************** *** 2676,2680 **** Total Keys=1 Key=Software\CLASSES\Python.File\shell\Edit with IDLE\command ! New Value=%MAINDIR%\pythonw.exe %MAINDIR%\Lib\idlelib\idle.pyw -e "%%1" Root=1 end --- 2676,2680 ---- Total Keys=1 Key=Software\CLASSES\Python.File\shell\Edit with IDLE\command ! New Value=%MAINDIR%\pythonw.exe %MAINDIR%\Lib\idlelib\idle.pyw -n -e "%%1" Root=1 end From tim_one@users.sourceforge.net Tue Jul 29 18:22:59 2003 From: tim_one@users.sourceforge.net (tim_one@users.sourceforge.net) Date: Tue, 29 Jul 2003 10:22:59 -0700 Subject: [Python-checkins] python/dist/src/Misc NEWS,1.829,1.830 Message-ID: Update of /cvsroot/python/python/dist/src/Misc In directory sc8-pr-cvs1:/tmp/cvs-serv19669/Misc Modified Files: NEWS Log Message: SF bug 778400: IDLE hangs when selecting "Edit with IDLE". The fix is confined to the Windows installer. Not a bugfix candidate: the need for the new -n switch added here was introduced by moving to the idlefork IDLE (so this change isn't needed or helpful before 2.3). Index: NEWS =================================================================== RCS file: /cvsroot/python/python/dist/src/Misc/NEWS,v retrieving revision 1.829 retrieving revision 1.830 diff -C2 -d -r1.829 -r1.830 *** NEWS 29 Jul 2003 00:10:29 -0000 1.829 --- NEWS 29 Jul 2003 17:22:57 -0000 1.830 *************** *** 22,25 **** --- 22,30 ---- ---- + - Bug 778400: IDLE hangs when selecting "Edit with IDLE" from explorer. + This was unique to Windows, and was fixed by adding an -n switch to + the command the Windows installer creates to execute "Edit with IDLE" + context-menu actions. + - IDLE displays a new message upon startup: some "personal firewall" kinds of programs (for example, ZoneAlarm) open a dialog of their From fdrake@users.sourceforge.net Tue Jul 29 18:42:57 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Tue, 29 Jul 2003 10:42:57 -0700 Subject: [Python-checkins] python/dist/src/Doc README,1.45.16.1,1.45.16.2 Message-ID: Update of /cvsroot/python/python/dist/src/Doc In directory sc8-pr-cvs1:/tmp/cvs-serv23310 Modified Files: Tag: release22-maint README Log Message: - update documentation contact address - remove old text about a Mac OS chapter in the libref; that's been gone for a *long* time! Index: README =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/README,v retrieving revision 1.45.16.1 retrieving revision 1.45.16.2 diff -C2 -d -r1.45.16.1 -r1.45.16.2 *** README 27 Feb 2002 13:32:25 -0000 1.45.16.1 --- README 29 Jul 2003 17:42:54 -0000 1.45.16.2 *************** *** 67,82 **** Documentation Team: ! python-docs@python.org Thanks! - - - What happened to the Macintosh chapter of the Python Library Reference? - ----------------------------------------------------------------------- - - The directory mac/ contains the LaTeX sources for the "Macintosh - Library Modules" manual; this is built using the standard build - targets, so check the proper output directory for your chosen format - and paper size. --- 67,73 ---- Documentation Team: ! docs@python.org Thanks! From fdrake@users.sourceforge.net Tue Jul 29 18:44:26 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Tue, 29 Jul 2003 10:44:26 -0700 Subject: [Python-checkins] python/dist/src/Doc/lib libundoc.tex,1.81,1.81.6.1 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/lib In directory sc8-pr-cvs1:/tmp/cvs-serv23543/lib Modified Files: Tag: release22-maint libundoc.tex Log Message: - update documentation contact address Index: libundoc.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/libundoc.tex,v retrieving revision 1.81 retrieving revision 1.81.6.1 diff -C2 -d -r1.81 -r1.81.6.1 *** libundoc.tex 26 Nov 2001 21:38:50 -0000 1.81 --- libundoc.tex 29 Jul 2003 17:44:24 -0000 1.81.6.1 *************** *** 3,7 **** Here's a quick listing of modules that are currently undocumented, but that should be documented. Feel free to contribute documentation for ! them! (Send via email to \email{python-docs@python.org}.) The idea and original contents for this chapter were taken --- 3,8 ---- Here's a quick listing of modules that are currently undocumented, but that should be documented. Feel free to contribute documentation for ! them! (Send via email to ! \ulink{\email{docs@python.org}}{mailto:docs@python.org}.) The idea and original contents for this chapter were taken From fdrake@users.sourceforge.net Tue Jul 29 18:44:25 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Tue, 29 Jul 2003 10:44:25 -0700 Subject: [Python-checkins] python/dist/src/Doc/doc doc.tex,1.58,1.58.4.1 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/doc In directory sc8-pr-cvs1:/tmp/cvs-serv23543/doc Modified Files: Tag: release22-maint doc.tex Log Message: - update documentation contact address Index: doc.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/doc/doc.tex,v retrieving revision 1.58 retrieving revision 1.58.4.1 diff -C2 -d -r1.58 -r1.58.4.1 *** doc.tex 14 Dec 2001 22:50:05 -0000 1.58 --- doc.tex 29 Jul 2003 17:44:23 -0000 1.58.4.1 *************** *** 1806,1810 **** Comments and bug reports on the standard documents should be sent ! to \email{python-docs@python.org}. This may include comments about formatting, content, grammatical and spelling errors, or this document. You can also send comments on this document --- 1806,1810 ---- Comments and bug reports on the standard documents should be sent ! to \email{docs@python.org}. This may include comments about formatting, content, grammatical and spelling errors, or this document. You can also send comments on this document From fdrake@users.sourceforge.net Tue Jul 29 18:44:25 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Tue, 29 Jul 2003 10:44:25 -0700 Subject: [Python-checkins] python/dist/src/Doc ACKS,1.33.6.2,1.33.6.3 Makefile,1.235.2.1.2.21,1.235.2.1.2.22 Message-ID: Update of /cvsroot/python/python/dist/src/Doc In directory sc8-pr-cvs1:/tmp/cvs-serv23543 Modified Files: Tag: release22-maint ACKS Makefile Log Message: - update documentation contact address Index: ACKS =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/ACKS,v retrieving revision 1.33.6.2 retrieving revision 1.33.6.3 diff -C2 -d -r1.33.6.2 -r1.33.6.3 *** ACKS 3 Dec 2002 18:50:41 -0000 1.33.6.2 --- ACKS 29 Jul 2003 17:44:23 -0000 1.33.6.3 *************** *** 5,9 **** documentation. It is probably not complete -- if you feel that you or anyone else should be on this list, please let us know (send email to ! python-docs@python.org), and we'll be glad to correct the problem. It is only with the input and contributions of the Python community --- 5,9 ---- documentation. It is probably not complete -- if you feel that you or anyone else should be on this list, please let us know (send email to ! docs@python.org), and we'll be glad to correct the problem. It is only with the input and contributions of the Python community Index: Makefile =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/Makefile,v retrieving revision 1.235.2.1.2.21 retrieving revision 1.235.2.1.2.22 diff -C2 -d -r1.235.2.1.2.21 -r1.235.2.1.2.22 *** Makefile 20 Jun 2003 14:32:05 -0000 1.235.2.1.2.21 --- Makefile 29 Jul 2003 17:44:23 -0000 1.235.2.1.2.22 *************** *** 50,54 **** # PostScript, look in the paper-$(PAPER)/ directory. For HTML, look in # the html/ directory. If you want to fix the GNU info process, look ! # in the info/ directory; please send patches to python-docs@python.org. # This Makefile only includes information on how to perform builds; for --- 50,54 ---- # PostScript, look in the paper-$(PAPER)/ directory. For HTML, look in # the html/ directory. If you want to fix the GNU info process, look ! # in the info/ directory; please send patches to docs@python.org. # This Makefile only includes information on how to perform builds; for *************** *** 651,654 **** --- 651,655 ---- rm -rf isilo/whatsnew/ rm -f isilo/python-*-$(RELEASE).pdb isilo-$(RELEASE).zip + rm -f pkglist.html paper-$(PAPER)/README realclean distclean: clobber From fdrake@users.sourceforge.net Tue Jul 29 18:44:26 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Tue, 29 Jul 2003 10:44:26 -0700 Subject: [Python-checkins] python/dist/src/Doc/mac toolbox.tex,1.4,1.4.12.1 undoc.tex,1.7,1.7.10.1 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/mac In directory sc8-pr-cvs1:/tmp/cvs-serv23543/mac Modified Files: Tag: release22-maint toolbox.tex undoc.tex Log Message: - update documentation contact address Index: toolbox.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/mac/toolbox.tex,v retrieving revision 1.4 retrieving revision 1.4.12.1 diff -C2 -d -r1.4 -r1.4.12.1 *** toolbox.tex 11 Sep 2001 21:25:10 -0000 1.4 --- toolbox.tex 29 Jul 2003 17:44:24 -0000 1.4.12.1 *************** *** 24,28 **** \strong{Warning!} These modules are not yet documented. If you wish to contribute documentation of any of these modules, please get ! in touch with \email{python-docs@python.org}. \localmoduletable --- 24,28 ---- \strong{Warning!} These modules are not yet documented. If you wish to contribute documentation of any of these modules, please get ! in touch with \email{docs@python.org}. \localmoduletable Index: undoc.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/mac/undoc.tex,v retrieving revision 1.7 retrieving revision 1.7.10.1 diff -C2 -d -r1.7 -r1.7.10.1 *** undoc.tex 1 Oct 2001 17:04:10 -0000 1.7 --- undoc.tex 29 Jul 2003 17:44:24 -0000 1.7.10.1 *************** *** 5,9 **** wish to contribute documentation of any of these modules, please get in touch with ! \ulink{\email{python-docs@python.org}}{mailto:python-docs@python.org}. \localmoduletable --- 5,9 ---- wish to contribute documentation of any of these modules, please get in touch with ! \ulink{\email{docs@python.org}}{mailto:docs@python.org}. \localmoduletable From fdrake@users.sourceforge.net Tue Jul 29 18:44:26 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Tue, 29 Jul 2003 10:44:26 -0700 Subject: [Python-checkins] python/dist/src/Doc/html about.html,1.3.24.1,1.3.24.2 stdabout.dat,1.5.24.1,1.5.24.2 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/html In directory sc8-pr-cvs1:/tmp/cvs-serv23543/html Modified Files: Tag: release22-maint about.html stdabout.dat Log Message: - update documentation contact address Index: about.html =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/html/about.html,v retrieving revision 1.3.24.1 retrieving revision 1.3.24.2 diff -C2 -d -r1.3.24.1 -r1.3.24.2 *** about.html 17 Apr 2002 01:42:58 -0000 1.3.24.1 --- about.html 29 Jul 2003 17:44:23 -0000 1.3.24.2 *************** *** 51,56 ****

    General comments and questions regarding this document should ! be sent by email to python-docs@python.org. If you find specific errors in this document, please report the bug at the Python Bug --- 51,56 ----

    General comments and questions regarding this document should ! be sent by email to docs@python.org. If you find specific errors in this document, please report the bug at the Python Bug Index: stdabout.dat =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/html/stdabout.dat,v retrieving revision 1.5.24.1 retrieving revision 1.5.24.2 diff -C2 -d -r1.5.24.1 -r1.5.24.2 *** stdabout.dat 22 May 2003 15:09:55 -0000 1.5.24.1 --- stdabout.dat 29 Jul 2003 17:44:23 -0000 1.5.24.2 *************** *** 29,34 ****

    General comments and questions regarding this document should ! be sent by email to python-docs@python.org. If you find specific errors in this document, either in the content or the presentation, please report the bug at the General comments and questions regarding this document should ! be sent by email to docs@python.org. If you find specific errors in this document, either in the content or the presentation, please report the bug at the Update of /cvsroot/python/python/dist/src/Doc/tools In directory sc8-pr-cvs1:/tmp/cvs-serv23543/tools Modified Files: Tag: release22-maint getpagecounts html2texi.pl mkackshtml Log Message: - update documentation contact address Index: getpagecounts =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/tools/getpagecounts,v retrieving revision 1.7.26.2 retrieving revision 1.7.26.3 diff -C2 -d -r1.7.26.2 -r1.7.26.3 *** getpagecounts 20 Jun 2003 14:00:31 -0000 1.7.26.2 --- getpagecounts 29 Jul 2003 17:44:24 -0000 1.7.26.3 *************** *** 74,78 **** If you have any questions, comments, or suggestions regarding these ! documents, please send them via email to python-docs@python.org. """ --- 74,78 ---- If you have any questions, comments, or suggestions regarding these ! documents, please send them via email to docs@python.org. """ Index: html2texi.pl =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/tools/html2texi.pl,v retrieving revision 1.3 retrieving revision 1.3.30.1 diff -C2 -d -r1.3 -r1.3.30.1 *** html2texi.pl 14 Jan 1999 18:17:07 -0000 1.3 --- html2texi.pl 29 Jul 2003 17:44:24 -0000 1.3.30.1 *************** *** 138,142 **** # Perhaps double-check that every tag mentioned in the index is found # in the text. ! # Python: email to python-docs@python.org, to get their feedback. # Compare to existing lib/ Info manual # Write the hooks into info-look; replace pyliblookup1-1.tar.gz. --- 138,142 ---- # Perhaps double-check that every tag mentioned in the index is found # in the text. ! # Python: email to docs@python.org, to get their feedback. # Compare to existing lib/ Info manual # Write the hooks into info-look; replace pyliblookup1-1.tar.gz. Index: mkackshtml =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/tools/mkackshtml,v retrieving revision 1.2 retrieving revision 1.2.22.1 diff -C2 -d -r1.2 -r1.2.22.1 *** mkackshtml 12 Feb 2001 19:12:55 -0000 1.2 --- mkackshtml 29 Jul 2003 17:44:24 -0000 1.2.22.1 *************** *** 53,57 **** you or anyone else should be on this list, please let us know (send email to python-docs@python.org), and we will be glad to correct the problem.

    --- 53,57 ---- you or anyone else should be on this list, please let us know (send email to docs@python.org), and we will be glad to correct the problem.

    From fdrake@users.sourceforge.net Tue Jul 29 18:44:26 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Tue, 29 Jul 2003 10:44:26 -0700 Subject: [Python-checkins] python/dist/src/Doc/info README,1.3.28.1,1.3.28.2 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/info In directory sc8-pr-cvs1:/tmp/cvs-serv23543/info Modified Files: Tag: release22-maint README Log Message: - update documentation contact address Index: README =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/info/README,v retrieving revision 1.3.28.1 retrieving revision 1.3.28.2 diff -C2 -d -r1.3.28.1 -r1.3.28.2 *** README 17 Jan 2002 21:06:19 -0000 1.3.28.1 --- README 29 Jul 2003 17:44:23 -0000 1.3.28.2 *************** *** 19,21 **** Questions and comments on these documents should be directed to ! python-docs@python.org. --- 19,21 ---- Questions and comments on these documents should be directed to ! docs@python.org. From fdrake@users.sourceforge.net Tue Jul 29 18:44:26 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Tue, 29 Jul 2003 10:44:26 -0700 Subject: [Python-checkins] python/dist/src/Doc/texinputs boilerplate.tex,1.70.2.1.2.12,1.70.2.1.2.13 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/texinputs In directory sc8-pr-cvs1:/tmp/cvs-serv23543/texinputs Modified Files: Tag: release22-maint boilerplate.tex Log Message: - update documentation contact address Index: boilerplate.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/texinputs/boilerplate.tex,v retrieving revision 1.70.2.1.2.12 retrieving revision 1.70.2.1.2.13 diff -C2 -d -r1.70.2.1.2.12 -r1.70.2.1.2.13 *** boilerplate.tex 20 Jun 2003 14:32:05 -0000 1.70.2.1.2.12 --- boilerplate.tex 29 Jul 2003 17:44:24 -0000 1.70.2.1.2.13 *************** *** 3,7 **** \authoraddress{ \strong{PythonLabs}\\ ! Email: \email{python-docs@python.org} } --- 3,7 ---- \authoraddress{ \strong{PythonLabs}\\ ! Email: \email{docs@python.org} } From fdrake@users.sourceforge.net Tue Jul 29 18:44:26 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Tue, 29 Jul 2003 10:44:26 -0700 Subject: [Python-checkins] python/dist/src/Doc/tools/sgmlconv README,1.6,1.6.22.1 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/tools/sgmlconv In directory sc8-pr-cvs1:/tmp/cvs-serv23543/tools/sgmlconv Modified Files: Tag: release22-maint README Log Message: - update documentation contact address Index: README =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/tools/sgmlconv/README,v retrieving revision 1.6 retrieving revision 1.6.22.1 diff -C2 -d -r1.6 -r1.6.22.1 *** README 22 Nov 2000 16:58:25 -0000 1.6 --- README 29 Jul 2003 17:44:24 -0000 1.6.22.1 *************** *** 14,18 **** make -f ../tools/sgmlconv/make.rules TOOLSDIR=../tools ! Please send comments and bug reports to python-docs@python.org. --- 14,18 ---- make -f ../tools/sgmlconv/make.rules TOOLSDIR=../tools ! Please send comments and bug reports to docs@python.org. From bwarsaw@users.sourceforge.net Tue Jul 29 23:11:33 2003 From: bwarsaw@users.sourceforge.net (bwarsaw@users.sourceforge.net) Date: Tue, 29 Jul 2003 15:11:33 -0700 Subject: [Python-checkins] python/dist/src/Misc NEWS,1.830,1.831 Message-ID: Update of /cvsroot/python/python/dist/src/Misc In directory sc8-pr-cvs1:/tmp/cvs-serv24582 Modified Files: NEWS Log Message: Get rid of empty sections Index: NEWS =================================================================== RCS file: /cvsroot/python/python/dist/src/Misc/NEWS,v retrieving revision 1.830 retrieving revision 1.831 diff -C2 -d -r1.830 -r1.831 *** NEWS 29 Jul 2003 17:22:57 -0000 1.830 --- NEWS 29 Jul 2003 22:11:31 -0000 1.831 *************** *** 10,22 **** *Release date: 29-Jul-2003* - Core and builtins - ----------------- - - Extension modules - ----------------- - - Library - ------- - IDLE ---- --- 10,13 ---- *************** *** 36,48 **** and rest assured no communication external to your machine is taking place. If you don't allow it, IDLE won't be able to start. - - Build - ----- - - C API - ----- - - Windows - ------- --- 27,30 ---- From bwarsaw@users.sourceforge.net Tue Jul 29 23:43:43 2003 From: bwarsaw@users.sourceforge.net (bwarsaw@users.sourceforge.net) Date: Tue, 29 Jul 2003 15:43:43 -0700 Subject: [Python-checkins] python/nondist/peps pep-0101.txt,1.31,1.32 Message-ID: Update of /cvsroot/python/python/nondist/peps In directory sc8-pr-cvs1:/tmp/cvs-serv29738 Modified Files: pep-0101.txt Log Message: When we do a major release branch, the tags are "releaseXY-fork" and "releaseXY-branch". Index: pep-0101.txt =================================================================== RCS file: /cvsroot/python/python/nondist/peps/pep-0101.txt,v retrieving revision 1.31 retrieving revision 1.32 diff -C2 -d -r1.31 -r1.32 *** pep-0101.txt 25 Jul 2003 13:54:43 -0000 1.31 --- pep-0101.txt 29 Jul 2003 22:43:40 -0000 1.32 *************** *** 3,7 **** Version: $Revision$ Last-Modified: $Date$ ! Author: barry@zope.com (Barry A. Warsaw), guido@python.org (Guido van Rossum) Status: Active Type: Informational --- 3,7 ---- Version: $Revision$ Last-Modified: $Date$ ! Author: barry@python.org (Barry A. Warsaw), guido@python.org (Guido van Rossum) Status: Active Type: Informational *************** *** 94,98 **** If you're releasing an alpha/beta/release candidate, you will just tag the tree. If you are releasing a final release, you ! will tag and create a branch. All Python development happens on the trunk. While it's --- 94,99 ---- If you're releasing an alpha/beta/release candidate, you will just tag the tree. If you are releasing a final release, you ! will both tag the trunk and create the long-lived maintenance ! branch. All Python development happens on the trunk. While it's *************** *** 113,121 **** To create a branch the following steps are taken: ! ___ CVS tag the trunk with the symbolic name "rXYaZ-fork", e.g. ! % cvs tag r22a3-fork ! ___ Make the branch with the symbolic name "rXYaZ-branch", e.g. ! % cvs tag -b r22a3-branch ___ Check out a clean version of the branch into a new directory. --- 114,122 ---- To create a branch the following steps are taken: ! ___ CVS tag the trunk with the symbolic name "releaseXY-fork", e.g. ! % cvs tag releaseXY-fork ! ___ Make the branch with the symbolic name "releaseXY-branch", e.g. ! % cvs tag -b releaseXY-branch ___ Check out a clean version of the branch into a new directory. *************** *** 124,128 **** % export CVSROOT=cvs.sf.net:/cvsroot/python ! % cvs -q co -d python-22a3 -r r22a3-branch python/dist/src ___ cd into the branch directory. --- 125,129 ---- % export CVSROOT=cvs.sf.net:/cvsroot/python ! % cvs -q co -d python-22a3 -r release23-branch python/dist/src ___ cd into the branch directory. From bwarsaw@users.sourceforge.net Tue Jul 29 23:56:15 2003 From: bwarsaw@users.sourceforge.net (bwarsaw@users.sourceforge.net) Date: Tue, 29 Jul 2003 15:56:15 -0700 Subject: [Python-checkins] python/dist/src README,1.177,1.177.2.1 Message-ID: Update of /cvsroot/python/python/dist/src In directory sc8-pr-cvs1:/tmp/cvs-serv31835 Modified Files: Tag: release23-branch README Log Message: Update for 2.3 final Index: README =================================================================== RCS file: /cvsroot/python/python/dist/src/README,v retrieving revision 1.177 retrieving revision 1.177.2.1 diff -C2 -d -r1.177 -r1.177.2.1 *** README 25 Jul 2003 01:12:48 -0000 1.177 --- README 29 Jul 2003 22:56:12 -0000 1.177.2.1 *************** *** 1,4 **** ! This is Python version 2.3 release candidate 2 ! ============================================== Copyright (c) 2001, 2002, 2003 Python Software Foundation. --- 1,4 ---- ! This is Python version 2.3 (final) ! ================================== Copyright (c) 2001, 2002, 2003 Python Software Foundation. *************** *** 36,39 **** --- 36,40 ---- See the file "Misc/NEWS". + If you don't read instructions ------------------------------ *************** *** 225,228 **** --- 226,230 ---- compilers from the vendor, or one of the free compilers (gcc). + Unsupported systems ------------------- *************** *** 247,250 **** --- 249,253 ---- - Systems using --with-dl-dld - Systems using --without-universal-newlines + Platform specific notes From bwarsaw@users.sourceforge.net Tue Jul 29 23:58:24 2003 From: bwarsaw@users.sourceforge.net (bwarsaw@users.sourceforge.net) Date: Tue, 29 Jul 2003 15:58:24 -0700 Subject: [Python-checkins] python/dist/src/Misc HISTORY,1.11,1.11.12.1 Message-ID: Update of /cvsroot/python/python/dist/src/Misc In directory sc8-pr-cvs1:/tmp/cvs-serv32123 Modified Files: Tag: release23-branch HISTORY Log Message: Move Python 2.2 news to the HISTORY file Index: HISTORY =================================================================== RCS file: /cvsroot/python/python/dist/src/Misc/HISTORY,v retrieving revision 1.11 retrieving revision 1.11.12.1 diff -C2 -d -r1.11 -r1.11.12.1 *** HISTORY 17 Sep 2002 20:55:31 -0000 1.11 --- HISTORY 29 Jul 2003 22:58:21 -0000 1.11.12.1 *************** *** 8,11 **** --- 8,1440 ---- ====================================================================== + What's New in Python 2.2 final? + =============================== + + *Release date: 21-Dec-2001* + + Type/class unification and new-style classes + -------------------------------------------- [...1404 lines suppressed...] + Tests + ----- + + - New test_mutants.py runs dict comparisons where the key and value + comparison operators mutate the dicts randomly during comparison. This + rapidly causes Python to crash under earlier releases (not for the faint + of heart: it can also cause Win9x to freeze or reboot!). + + - New test_pprint.py verifies that pprint.isrecursive() and + pprint.isreadable() return sensible results. Also verifies that simple + cases produce correct output. + + C API + ----- + + - Removed the unused last_is_sticky argument from the internal + _PyTuple_Resize(). If this affects you, you were cheating. + What's New in Python 2.1 (final)? From bwarsaw@users.sourceforge.net Tue Jul 29 23:59:32 2003 From: bwarsaw@users.sourceforge.net (bwarsaw@users.sourceforge.net) Date: Tue, 29 Jul 2003 15:59:32 -0700 Subject: [Python-checkins] python/dist/src/Misc NEWS,1.831,1.831.2.1 Message-ID: Update of /cvsroot/python/python/dist/src/Misc In directory sc8-pr-cvs1:/tmp/cvs-serv32300 Modified Files: Tag: release23-branch NEWS Log Message: Move Python 2.2 news to the HISTORY file Index: NEWS =================================================================== RCS file: /cvsroot/python/python/dist/src/Misc/NEWS,v retrieving revision 1.831 retrieving revision 1.831.2.1 diff -C2 -d -r1.831 -r1.831.2.1 *** NEWS 29 Jul 2003 22:11:31 -0000 1.831 --- NEWS 29 Jul 2003 22:59:30 -0000 1.831.2.1 *************** *** 2368,3801 **** you can change this in site.py. - - What's New in Python 2.2 final? - =============================== - - *Release date: 21-Dec-2001* - - Type/class unification and new-style classes - -------------------------------------------- [...1405 lines suppressed...] - ----- - - - New test_mutants.py runs dict comparisons where the key and value - comparison operators mutate the dicts randomly during comparison. This - rapidly causes Python to crash under earlier releases (not for the faint - of heart: it can also cause Win9x to freeze or reboot!). - - - New test_pprint.py verifies that pprint.isrecursive() and - pprint.isreadable() return sensible results. Also verifies that simple - cases produce correct output. - - C API - ----- - - - Removed the unused last_is_sticky argument from the internal - _PyTuple_Resize(). If this affects you, you were cheating. - ---- --- 2368,2371 ---- From bwarsaw@users.sourceforge.net Wed Jul 30 00:10:44 2003 From: bwarsaw@users.sourceforge.net (bwarsaw@users.sourceforge.net) Date: Tue, 29 Jul 2003 16:10:44 -0700 Subject: [Python-checkins] python/nondist/peps pep-0101.txt,1.32,1.33 Message-ID: Update of /cvsroot/python/python/nondist/peps In directory sc8-pr-cvs1:/tmp/cvs-serv1794 Modified Files: pep-0101.txt Log Message: another update Index: pep-0101.txt =================================================================== RCS file: /cvsroot/python/python/nondist/peps/pep-0101.txt,v retrieving revision 1.32 retrieving revision 1.33 diff -C2 -d -r1.32 -r1.33 *** pep-0101.txt 29 Jul 2003 22:43:40 -0000 1.32 --- pep-0101.txt 29 Jul 2003 23:10:41 -0000 1.33 *************** *** 90,93 **** --- 90,96 ---- news.txt file looking for interesting things to add to NEWS. + ___ For major releases (e.g. 2.3 final), move any historical "what's + new" entries from Misc/NEWS to Misc/HISTORY. + ___ Tag and/or branch the tree for release X.YaZ *************** *** 226,229 **** --- 229,240 ---- % cvs tag -F r22a3 + + If you created a maintenance branch and you've changed any files + since you branched, tag the tree -- in the branch -- now with + something like + + % cvs tag r23 + + This is the tag you will use below. ___ Change to a neutral directory, i.e. one in which you can do a From bwarsaw@users.sourceforge.net Wed Jul 30 00:31:16 2003 From: bwarsaw@users.sourceforge.net (bwarsaw@users.sourceforge.net) Date: Tue, 29 Jul 2003 16:31:16 -0700 Subject: [Python-checkins] python/nondist/peps pep-0101.txt,1.33,1.34 Message-ID: Update of /cvsroot/python/python/nondist/peps In directory sc8-pr-cvs1:/tmp/cvs-serv5420 Modified Files: pep-0101.txt Log Message: A few more updates Index: pep-0101.txt =================================================================== RCS file: /cvsroot/python/python/nondist/peps/pep-0101.txt,v retrieving revision 1.33 retrieving revision 1.34 diff -C2 -d -r1.33 -r1.34 *** pep-0101.txt 29 Jul 2003 23:10:41 -0000 1.33 --- pep-0101.txt 29 Jul 2003 23:31:14 -0000 1.34 *************** *** 276,279 **** --- 276,284 ---- (Do all the expected tests pass?) + If you're feeling lucky and have some time to kill, run the full + test suite: + + % make TESTOPTS='-u all' test + If the tests pass, then you can feel good that the tarball is fine. If some of the tests fail, or anything else about the *************** *** 281,289 **** figure out what the problem is. ! ___ Upload the tgz file to creosote.python.org. Tim will have ! already uploaded the exe file to creosote, but if not, you'll ! need to do that too. These steps can take a long time depending ! on your network bandwidth. scp both files from your own machine ! to creosote. ___ While you're waiting, you can start twiddling the web pages to --- 286,297 ---- figure out what the problem is. ! ___ Upload the tgz file to creosote.python.org using scp. ! ! ___ Tim has been having trouble uploading to creosote, so he will ! usually put the file on SF, giving you the file name and the md5 ! checksum. It's best to do a wget from creosote to SF, but ! calculating the URL can be not-fun. You can usually get the URL ! from the file download page, if you start the download and then ! immediately cancel it. ___ While you're waiting, you can start twiddling the web pages to From bwarsaw@users.sourceforge.net Wed Jul 30 01:09:39 2003 From: bwarsaw@users.sourceforge.net (bwarsaw@users.sourceforge.net) Date: Tue, 29 Jul 2003 17:09:39 -0700 Subject: [Python-checkins] python/nondist/peps pep-0101.txt,1.34,1.35 Message-ID: Update of /cvsroot/python/python/nondist/peps In directory sc8-pr-cvs1:/tmp/cvs-serv11773 Modified Files: pep-0101.txt Log Message: another update Index: pep-0101.txt =================================================================== RCS file: /cvsroot/python/python/nondist/peps/pep-0101.txt,v retrieving revision 1.34 retrieving revision 1.35 diff -C2 -d -r1.34 -r1.35 *** pep-0101.txt 29 Jul 2003 23:31:14 -0000 1.34 --- pep-0101.txt 30 Jul 2003 00:09:36 -0000 1.35 *************** *** 402,410 **** Now it's time to do some cleaning up. These steps are very important! ! ___ If you made a branch, be sure to merge it into the trunk! Now ! that we've released this branch, we don't need it any more. ! We've already tagged it so we can always reproduce it. Note ! that merging branches is a bit of a black art, but here's what's ! worked for us. ___ Check out a completely clean, virgin working directory of the --- 402,413 ---- Now it's time to do some cleaning up. These steps are very important! ! ___ If you made a non-maintenance branch, be sure to merge it into ! the trunk! Now that we've released this branch, we don't need ! it any more. We've already tagged it so we can always reproduce ! it. Note that merging branches is a bit of a black art, but ! here's what's worked for us. ! ! NOTE: If this was an X.Y major release, we will be using this as ! the maintenance branch for a long time to come. ___ Check out a completely clean, virgin working directory of the From fdrake@users.sourceforge.net Wed Jul 30 03:47:46 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Tue, 29 Jul 2003 19:47:46 -0700 Subject: [Python-checkins] python/dist/src/Doc README,1.49,1.49.6.1 Message-ID: Update of /cvsroot/python/python/dist/src/Doc In directory sc8-pr-cvs1:/tmp/cvs-serv5623 Modified Files: Tag: release23-branch README Log Message: - update the documentation contact address - remove text about the long-moved Mac OS libref chapter Index: README =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/README,v retrieving revision 1.49 retrieving revision 1.49.6.1 diff -C2 -d -r1.49 -r1.49.6.1 *** README 8 Jul 2003 18:05:26 -0000 1.49 --- README 30 Jul 2003 02:47:44 -0000 1.49.6.1 *************** *** 67,82 **** Documentation Team: ! python-docs@python.org Thanks! - - - What happened to the Macintosh chapter of the Python Library Reference? - ----------------------------------------------------------------------- - - The directory mac/ contains the LaTeX sources for the "Macintosh - Library Modules" manual; this is built using the standard build - targets, so check the proper output directory for your chosen format - and paper size. --- 67,73 ---- Documentation Team: ! docs@python.org Thanks! From fdrake@users.sourceforge.net Wed Jul 30 03:52:34 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Tue, 29 Jul 2003 19:52:34 -0700 Subject: [Python-checkins] python/dist/src/Doc/doc doc.tex,1.75,1.75.6.1 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/doc In directory sc8-pr-cvs1:/tmp/cvs-serv6501/doc Modified Files: Tag: release23-branch doc.tex Log Message: update the documentation contact address Index: doc.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/doc/doc.tex,v retrieving revision 1.75 retrieving revision 1.75.6.1 diff -C2 -d -r1.75 -r1.75.6.1 *** doc.tex 16 Jul 2003 13:50:28 -0000 1.75 --- doc.tex 30 Jul 2003 02:52:31 -0000 1.75.6.1 *************** *** 1912,1916 **** Comments and bug reports on the standard documents should be sent ! to \email{python-docs@python.org}. This may include comments about formatting, content, grammatical and spelling errors, or this document. You can also send comments on this document --- 1912,1916 ---- Comments and bug reports on the standard documents should be sent ! to \email{docs@python.org}. This may include comments about formatting, content, grammatical and spelling errors, or this document. You can also send comments on this document From fdrake@users.sourceforge.net Wed Jul 30 03:52:34 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Tue, 29 Jul 2003 19:52:34 -0700 Subject: [Python-checkins] python/dist/src/Doc/lib libundoc.tex,1.86,1.86.8.1 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/lib In directory sc8-pr-cvs1:/tmp/cvs-serv6501/lib Modified Files: Tag: release23-branch libundoc.tex Log Message: update the documentation contact address Index: libundoc.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/libundoc.tex,v retrieving revision 1.86 retrieving revision 1.86.8.1 diff -C2 -d -r1.86 -r1.86.8.1 *** libundoc.tex 9 May 2003 15:04:56 -0000 1.86 --- libundoc.tex 30 Jul 2003 02:52:32 -0000 1.86.8.1 *************** *** 3,7 **** Here's a quick listing of modules that are currently undocumented, but that should be documented. Feel free to contribute documentation for ! them! (Send via email to \email{python-docs@python.org}.) The idea and original contents for this chapter were taken --- 3,7 ---- Here's a quick listing of modules that are currently undocumented, but that should be documented. Feel free to contribute documentation for ! them! (Send via email to \email{docs@python.org}.) The idea and original contents for this chapter were taken From fdrake@users.sourceforge.net Wed Jul 30 03:52:34 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Tue, 29 Jul 2003 19:52:34 -0700 Subject: [Python-checkins] python/dist/src/Doc/html about.html,1.8,1.8.14.1 stdabout.dat,1.6,1.6.8.1 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/html In directory sc8-pr-cvs1:/tmp/cvs-serv6501/html Modified Files: Tag: release23-branch about.html stdabout.dat Log Message: update the documentation contact address Index: about.html =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/html/about.html,v retrieving revision 1.8 retrieving revision 1.8.14.1 diff -C2 -d -r1.8 -r1.8.14.1 *** about.html 30 Oct 2002 21:29:50 -0000 1.8 --- about.html 30 Jul 2003 02:52:32 -0000 1.8.14.1 *************** *** 56,61 ****

    General comments and questions regarding this document should ! be sent by email to python-docs@python.org. If you find specific errors in this document, please report the bug at the Python Bug --- 56,61 ----

    General comments and questions regarding this document should ! be sent by email to docs@python.org. If you find specific errors in this document, please report the bug at the Python Bug Index: stdabout.dat =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/html/stdabout.dat,v retrieving revision 1.6 retrieving revision 1.6.8.1 diff -C2 -d -r1.6 -r1.6.8.1 *** stdabout.dat 22 May 2003 15:09:27 -0000 1.6 --- stdabout.dat 30 Jul 2003 02:52:32 -0000 1.6.8.1 *************** *** 29,34 ****

    General comments and questions regarding this document should ! be sent by email to python-docs@python.org. If you find specific errors in this document, either in the content or the presentation, please report the bug at the General comments and questions regarding this document should ! be sent by email to docs@python.org. If you find specific errors in this document, either in the content or the presentation, please report the bug at the Update of /cvsroot/python/python/dist/src/Doc In directory sc8-pr-cvs1:/tmp/cvs-serv6501 Modified Files: Tag: release23-branch ACKS Makefile python-docs.txt Log Message: update the documentation contact address Index: ACKS =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/ACKS,v retrieving revision 1.39 retrieving revision 1.39.6.1 diff -C2 -d -r1.39 -r1.39.6.1 *** ACKS 30 Jun 2003 12:18:52 -0000 1.39 --- ACKS 30 Jul 2003 02:52:31 -0000 1.39.6.1 *************** *** 5,9 **** documentation. It is probably not complete -- if you feel that you or anyone else should be on this list, please let us know (send email to ! python-docs@python.org), and we'll be glad to correct the problem. It is only with the input and contributions of the Python community --- 5,9 ---- documentation. It is probably not complete -- if you feel that you or anyone else should be on this list, please let us know (send email to ! docs@python.org), and we'll be glad to correct the problem. It is only with the input and contributions of the Python community Index: Makefile =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/Makefile,v retrieving revision 1.261 retrieving revision 1.261.2.1 diff -C2 -d -r1.261 -r1.261.2.1 *** Makefile 29 Jul 2003 03:11:34 -0000 1.261 --- Makefile 30 Jul 2003 02:52:31 -0000 1.261.2.1 *************** *** 50,54 **** # PostScript, look in the paper-$(PAPER)/ directory. For HTML, look in # the html/ directory. If you want to fix the GNU info process, look ! # in the info/ directory; please send patches to python-docs@python.org. # This Makefile only includes information on how to perform builds; for --- 50,54 ---- # PostScript, look in the paper-$(PAPER)/ directory. For HTML, look in # the html/ directory. If you want to fix the GNU info process, look ! # in the info/ directory; please send patches to docs@python.org. # This Makefile only includes information on how to perform builds; for Index: python-docs.txt =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/python-docs.txt,v retrieving revision 1.1 retrieving revision 1.1.16.1 diff -C2 -d -r1.1 -r1.1.16.1 *** python-docs.txt 12 Aug 2002 22:01:42 -0000 1.1 --- python-docs.txt 30 Jul 2003 02:52:31 -0000 1.1.16.1 *************** *** 1,4 **** This message is being sent in response to your message to the Python ! documentation maintainers (python-docs@python.org). Your message will be handled by a human, but this message serves to answer the most common questions sent to this address. --- 1,4 ---- This message is being sent in response to your message to the Python ! documentation maintainers (docs@python.org). Your message will be handled by a human, but this message serves to answer the most common questions sent to this address. *************** *** 97,101 **** Start by reading the documentation for XXX. If the documentation doesn't make sense or seems incomplete, please ! file a specific bug report to python-docs@python.org (the address you sent your question to). Otherwise, you probably sent your question to the wrong place (which does not preclude --- 97,101 ---- Start by reading the documentation for XXX. If the documentation doesn't make sense or seems incomplete, please ! file a specific bug report to docs@python.org (the address you sent your question to). Otherwise, you probably sent your question to the wrong place (which does not preclude *************** *** 125,129 **** Chances are very good that the person who answers questions ! posted to python-docs@python.org doesn't use Jython very often, and won't be able to give you a meaningful answer beyond "Look at the Jython website." Sorry, I don't have *all* the answers! --- 125,129 ---- Chances are very good that the person who answers questions ! posted to docs@python.org doesn't use Jython very often, and won't be able to give you a meaningful answer beyond "Look at the Jython website." Sorry, I don't have *all* the answers! *************** *** 132,136 **** If you're reading this, you've found the right address! Send ! all documentation bug reports to python-docs@python.org. If you prefer to use a Web-based reporting mechanism, you can use the bug database at http://www.python.org/python-bugs/. --- 132,136 ---- If you're reading this, you've found the right address! Send ! all documentation bug reports to docs@python.org. If you prefer to use a Web-based reporting mechanism, you can use the bug database at http://www.python.org/python-bugs/. From fdrake@users.sourceforge.net Wed Jul 30 03:52:34 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Tue, 29 Jul 2003 19:52:34 -0700 Subject: [Python-checkins] python/dist/src/Doc/info README,1.4,1.4.16.1 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/info In directory sc8-pr-cvs1:/tmp/cvs-serv6501/info Modified Files: Tag: release23-branch README Log Message: update the documentation contact address Index: README =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/info/README,v retrieving revision 1.4 retrieving revision 1.4.16.1 diff -C2 -d -r1.4 -r1.4.16.1 *** README 17 Jan 2002 21:05:14 -0000 1.4 --- README 30 Jul 2003 02:52:32 -0000 1.4.16.1 *************** *** 19,21 **** Questions and comments on these documents should be directed to ! python-docs@python.org. --- 19,21 ---- Questions and comments on these documents should be directed to ! docs@python.org. From fdrake@users.sourceforge.net Wed Jul 30 03:52:34 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Tue, 29 Jul 2003 19:52:34 -0700 Subject: [Python-checkins] python/dist/src/Doc/mac toolbox.tex,1.8,1.8.4.1 undoc.tex,1.9,1.9.12.1 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/mac In directory sc8-pr-cvs1:/tmp/cvs-serv6501/mac Modified Files: Tag: release23-branch toolbox.tex undoc.tex Log Message: update the documentation contact address Index: toolbox.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/mac/toolbox.tex,v retrieving revision 1.8 retrieving revision 1.8.4.1 diff -C2 -d -r1.8 -r1.8.4.1 *** toolbox.tex 22 Jul 2003 01:09:22 -0000 1.8 --- toolbox.tex 30 Jul 2003 02:52:32 -0000 1.8.4.1 *************** *** 25,29 **** \strong{Warning!} These modules are not yet documented. If you wish to contribute documentation of any of these modules, please get ! in touch with \email{python-docs@python.org}. \localmoduletable --- 25,29 ---- \strong{Warning!} These modules are not yet documented. If you wish to contribute documentation of any of these modules, please get ! in touch with \email{docs@python.org}. \localmoduletable Index: undoc.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/mac/undoc.tex,v retrieving revision 1.9 retrieving revision 1.9.12.1 diff -C2 -d -r1.9 -r1.9.12.1 *** undoc.tex 12 Feb 2003 09:58:33 -0000 1.9 --- undoc.tex 30 Jul 2003 02:52:32 -0000 1.9.12.1 *************** *** 5,9 **** wish to contribute documentation of any of these modules, please get in touch with ! \ulink{\email{python-docs@python.org}}{mailto:python-docs@python.org}. \localmoduletable --- 5,9 ---- wish to contribute documentation of any of these modules, please get in touch with ! \ulink{\email{docs@python.org}}{mailto:docs@python.org}. \localmoduletable From fdrake@users.sourceforge.net Wed Jul 30 03:52:34 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Tue, 29 Jul 2003 19:52:34 -0700 Subject: [Python-checkins] python/dist/src/Doc/texinputs boilerplate.tex,1.84,1.84.2.1 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/texinputs In directory sc8-pr-cvs1:/tmp/cvs-serv6501/texinputs Modified Files: Tag: release23-branch boilerplate.tex Log Message: update the documentation contact address Index: boilerplate.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/texinputs/boilerplate.tex,v retrieving revision 1.84 retrieving revision 1.84.2.1 diff -C2 -d -r1.84 -r1.84.2.1 *** boilerplate.tex 29 Jul 2003 03:20:32 -0000 1.84 --- boilerplate.tex 30 Jul 2003 02:52:32 -0000 1.84.2.1 *************** *** 3,11 **** \authoraddress{ \strong{PythonLabs}\\ ! Email: \email{python-docs@python.org} } ! \date{July 29, 2003} % XXX update before final release! ! \release{2.3} % software release, not documentation \setreleaseinfo{} % empty for final release \setshortversion{2.3} % major.minor only for software --- 3,11 ---- \authoraddress{ \strong{PythonLabs}\\ ! Email: \email{docs@python.org} } ! \date{\today} % XXX update before final release! ! \release{2.3+} % software release, not documentation \setreleaseinfo{} % empty for final release \setshortversion{2.3} % major.minor only for software From fdrake@users.sourceforge.net Wed Jul 30 03:52:34 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Tue, 29 Jul 2003 19:52:34 -0700 Subject: [Python-checkins] python/dist/src/Doc/tools/sgmlconv README,1.6,1.6.38.1 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/tools/sgmlconv In directory sc8-pr-cvs1:/tmp/cvs-serv6501/tools/sgmlconv Modified Files: Tag: release23-branch README Log Message: update the documentation contact address Index: README =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/tools/sgmlconv/README,v retrieving revision 1.6 retrieving revision 1.6.38.1 diff -C2 -d -r1.6 -r1.6.38.1 *** README 22 Nov 2000 16:58:25 -0000 1.6 --- README 30 Jul 2003 02:52:32 -0000 1.6.38.1 *************** *** 14,18 **** make -f ../tools/sgmlconv/make.rules TOOLSDIR=../tools ! Please send comments and bug reports to python-docs@python.org. --- 14,18 ---- make -f ../tools/sgmlconv/make.rules TOOLSDIR=../tools ! Please send comments and bug reports to docs@python.org. From fdrake@users.sourceforge.net Wed Jul 30 03:52:34 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Tue, 29 Jul 2003 19:52:34 -0700 Subject: [Python-checkins] python/dist/src/Doc/tools getpagecounts,1.9,1.9.8.1 html2texi.pl,1.3,1.3.46.1 mkackshtml,1.3,1.3.16.1 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/tools In directory sc8-pr-cvs1:/tmp/cvs-serv6501/tools Modified Files: Tag: release23-branch getpagecounts html2texi.pl mkackshtml Log Message: update the documentation contact address Index: getpagecounts =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/tools/getpagecounts,v retrieving revision 1.9 retrieving revision 1.9.8.1 diff -C2 -d -r1.9 -r1.9.8.1 *** getpagecounts 20 Jun 2003 14:00:49 -0000 1.9 --- getpagecounts 30 Jul 2003 02:52:32 -0000 1.9.8.1 *************** *** 74,78 **** If you have any questions, comments, or suggestions regarding these ! documents, please send them via email to python-docs@python.org. """ --- 74,78 ---- If you have any questions, comments, or suggestions regarding these ! documents, please send them via email to docs@python.org. """ Index: html2texi.pl =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/tools/html2texi.pl,v retrieving revision 1.3 retrieving revision 1.3.46.1 diff -C2 -d -r1.3 -r1.3.46.1 *** html2texi.pl 14 Jan 1999 18:17:07 -0000 1.3 --- html2texi.pl 30 Jul 2003 02:52:32 -0000 1.3.46.1 *************** *** 138,142 **** # Perhaps double-check that every tag mentioned in the index is found # in the text. ! # Python: email to python-docs@python.org, to get their feedback. # Compare to existing lib/ Info manual # Write the hooks into info-look; replace pyliblookup1-1.tar.gz. --- 138,142 ---- # Perhaps double-check that every tag mentioned in the index is found # in the text. ! # Python: email to docs@python.org, to get their feedback. # Compare to existing lib/ Info manual # Write the hooks into info-look; replace pyliblookup1-1.tar.gz. Index: mkackshtml =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/tools/mkackshtml,v retrieving revision 1.3 retrieving revision 1.3.16.1 diff -C2 -d -r1.3 -r1.3.16.1 *** mkackshtml 5 Apr 2002 17:34:50 -0000 1.3 --- mkackshtml 30 Jul 2003 02:52:32 -0000 1.3.16.1 *************** *** 54,58 **** you or anyone else should be on this list, please let us know (send email to python-docs@python.org), and we will be glad to correct the problem.

    --- 54,58 ---- you or anyone else should be on this list, please let us know (send email to docs@python.org), and we will be glad to correct the problem.

    From fdrake@users.sourceforge.net Wed Jul 30 03:55:03 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Tue, 29 Jul 2003 19:55:03 -0700 Subject: [Python-checkins] python/dist/src/Doc README,1.49,1.50 Message-ID: Update of /cvsroot/python/python/dist/src/Doc In directory sc8-pr-cvs1:/tmp/cvs-serv6906 Modified Files: README Log Message: - update the documentation contact address - remove text about the long-moved Mac OS libref chapter Index: README =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/README,v retrieving revision 1.49 retrieving revision 1.50 diff -C2 -d -r1.49 -r1.50 *** README 8 Jul 2003 18:05:26 -0000 1.49 --- README 30 Jul 2003 02:55:01 -0000 1.50 *************** *** 67,82 **** Documentation Team: ! python-docs@python.org Thanks! - - - What happened to the Macintosh chapter of the Python Library Reference? - ----------------------------------------------------------------------- - - The directory mac/ contains the LaTeX sources for the "Macintosh - Library Modules" manual; this is built using the standard build - targets, so check the proper output directory for your chosen format - and paper size. --- 67,73 ---- Documentation Team: ! docs@python.org Thanks! From fdrake@users.sourceforge.net Wed Jul 30 03:55:29 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Tue, 29 Jul 2003 19:55:29 -0700 Subject: [Python-checkins] python/dist/src/Doc ACKS,1.39,1.40 Makefile,1.261,1.262 python-docs.txt,1.1,1.2 Message-ID: Update of /cvsroot/python/python/dist/src/Doc In directory sc8-pr-cvs1:/tmp/cvs-serv7016 Modified Files: ACKS Makefile python-docs.txt Log Message: update the documentation contact address Index: ACKS =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/ACKS,v retrieving revision 1.39 retrieving revision 1.40 diff -C2 -d -r1.39 -r1.40 *** ACKS 30 Jun 2003 12:18:52 -0000 1.39 --- ACKS 30 Jul 2003 02:55:27 -0000 1.40 *************** *** 5,9 **** documentation. It is probably not complete -- if you feel that you or anyone else should be on this list, please let us know (send email to ! python-docs@python.org), and we'll be glad to correct the problem. It is only with the input and contributions of the Python community --- 5,9 ---- documentation. It is probably not complete -- if you feel that you or anyone else should be on this list, please let us know (send email to ! docs@python.org), and we'll be glad to correct the problem. It is only with the input and contributions of the Python community Index: Makefile =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/Makefile,v retrieving revision 1.261 retrieving revision 1.262 diff -C2 -d -r1.261 -r1.262 *** Makefile 29 Jul 2003 03:11:34 -0000 1.261 --- Makefile 30 Jul 2003 02:55:27 -0000 1.262 *************** *** 50,54 **** # PostScript, look in the paper-$(PAPER)/ directory. For HTML, look in # the html/ directory. If you want to fix the GNU info process, look ! # in the info/ directory; please send patches to python-docs@python.org. # This Makefile only includes information on how to perform builds; for --- 50,54 ---- # PostScript, look in the paper-$(PAPER)/ directory. For HTML, look in # the html/ directory. If you want to fix the GNU info process, look ! # in the info/ directory; please send patches to docs@python.org. # This Makefile only includes information on how to perform builds; for Index: python-docs.txt =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/python-docs.txt,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** python-docs.txt 12 Aug 2002 22:01:42 -0000 1.1 --- python-docs.txt 30 Jul 2003 02:55:27 -0000 1.2 *************** *** 1,4 **** This message is being sent in response to your message to the Python ! documentation maintainers (python-docs@python.org). Your message will be handled by a human, but this message serves to answer the most common questions sent to this address. --- 1,4 ---- This message is being sent in response to your message to the Python ! documentation maintainers (docs@python.org). Your message will be handled by a human, but this message serves to answer the most common questions sent to this address. *************** *** 97,101 **** Start by reading the documentation for XXX. If the documentation doesn't make sense or seems incomplete, please ! file a specific bug report to python-docs@python.org (the address you sent your question to). Otherwise, you probably sent your question to the wrong place (which does not preclude --- 97,101 ---- Start by reading the documentation for XXX. If the documentation doesn't make sense or seems incomplete, please ! file a specific bug report to docs@python.org (the address you sent your question to). Otherwise, you probably sent your question to the wrong place (which does not preclude *************** *** 125,129 **** Chances are very good that the person who answers questions ! posted to python-docs@python.org doesn't use Jython very often, and won't be able to give you a meaningful answer beyond "Look at the Jython website." Sorry, I don't have *all* the answers! --- 125,129 ---- Chances are very good that the person who answers questions ! posted to docs@python.org doesn't use Jython very often, and won't be able to give you a meaningful answer beyond "Look at the Jython website." Sorry, I don't have *all* the answers! *************** *** 132,136 **** If you're reading this, you've found the right address! Send ! all documentation bug reports to python-docs@python.org. If you prefer to use a Web-based reporting mechanism, you can use the bug database at http://www.python.org/python-bugs/. --- 132,136 ---- If you're reading this, you've found the right address! Send ! all documentation bug reports to docs@python.org. If you prefer to use a Web-based reporting mechanism, you can use the bug database at http://www.python.org/python-bugs/. From fdrake@users.sourceforge.net Wed Jul 30 03:55:29 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Tue, 29 Jul 2003 19:55:29 -0700 Subject: [Python-checkins] python/dist/src/Doc/html about.html,1.8,1.9 stdabout.dat,1.6,1.7 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/html In directory sc8-pr-cvs1:/tmp/cvs-serv7016/html Modified Files: about.html stdabout.dat Log Message: update the documentation contact address Index: about.html =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/html/about.html,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** about.html 30 Oct 2002 21:29:50 -0000 1.8 --- about.html 30 Jul 2003 02:55:27 -0000 1.9 *************** *** 56,61 ****

    General comments and questions regarding this document should ! be sent by email to python-docs@python.org. If you find specific errors in this document, please report the bug at the Python Bug --- 56,61 ----

    General comments and questions regarding this document should ! be sent by email to docs@python.org. If you find specific errors in this document, please report the bug at the Python Bug Index: stdabout.dat =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/html/stdabout.dat,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** stdabout.dat 22 May 2003 15:09:27 -0000 1.6 --- stdabout.dat 30 Jul 2003 02:55:27 -0000 1.7 *************** *** 29,34 ****

    General comments and questions regarding this document should ! be sent by email to python-docs@python.org. If you find specific errors in this document, either in the content or the presentation, please report the bug at the General comments and questions regarding this document should ! be sent by email to docs@python.org. If you find specific errors in this document, either in the content or the presentation, please report the bug at the Update of /cvsroot/python/python/dist/src/Doc/info In directory sc8-pr-cvs1:/tmp/cvs-serv7016/info Modified Files: README Log Message: update the documentation contact address Index: README =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/info/README,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** README 17 Jan 2002 21:05:14 -0000 1.4 --- README 30 Jul 2003 02:55:27 -0000 1.5 *************** *** 19,21 **** Questions and comments on these documents should be directed to ! python-docs@python.org. --- 19,21 ---- Questions and comments on these documents should be directed to ! docs@python.org. From fdrake@users.sourceforge.net Wed Jul 30 03:55:30 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Tue, 29 Jul 2003 19:55:30 -0700 Subject: [Python-checkins] python/dist/src/Doc/mac toolbox.tex,1.8,1.9 undoc.tex,1.9,1.10 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/mac In directory sc8-pr-cvs1:/tmp/cvs-serv7016/mac Modified Files: toolbox.tex undoc.tex Log Message: update the documentation contact address Index: toolbox.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/mac/toolbox.tex,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** toolbox.tex 22 Jul 2003 01:09:22 -0000 1.8 --- toolbox.tex 30 Jul 2003 02:55:27 -0000 1.9 *************** *** 25,29 **** \strong{Warning!} These modules are not yet documented. If you wish to contribute documentation of any of these modules, please get ! in touch with \email{python-docs@python.org}. \localmoduletable --- 25,29 ---- \strong{Warning!} These modules are not yet documented. If you wish to contribute documentation of any of these modules, please get ! in touch with \email{docs@python.org}. \localmoduletable Index: undoc.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/mac/undoc.tex,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** undoc.tex 12 Feb 2003 09:58:33 -0000 1.9 --- undoc.tex 30 Jul 2003 02:55:27 -0000 1.10 *************** *** 5,9 **** wish to contribute documentation of any of these modules, please get in touch with ! \ulink{\email{python-docs@python.org}}{mailto:python-docs@python.org}. \localmoduletable --- 5,9 ---- wish to contribute documentation of any of these modules, please get in touch with ! \ulink{\email{docs@python.org}}{mailto:docs@python.org}. \localmoduletable From fdrake@users.sourceforge.net Wed Jul 30 03:55:29 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Tue, 29 Jul 2003 19:55:29 -0700 Subject: [Python-checkins] python/dist/src/Doc/doc doc.tex,1.75,1.76 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/doc In directory sc8-pr-cvs1:/tmp/cvs-serv7016/doc Modified Files: doc.tex Log Message: update the documentation contact address Index: doc.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/doc/doc.tex,v retrieving revision 1.75 retrieving revision 1.76 diff -C2 -d -r1.75 -r1.76 *** doc.tex 16 Jul 2003 13:50:28 -0000 1.75 --- doc.tex 30 Jul 2003 02:55:27 -0000 1.76 *************** *** 1912,1916 **** Comments and bug reports on the standard documents should be sent ! to \email{python-docs@python.org}. This may include comments about formatting, content, grammatical and spelling errors, or this document. You can also send comments on this document --- 1912,1916 ---- Comments and bug reports on the standard documents should be sent ! to \email{docs@python.org}. This may include comments about formatting, content, grammatical and spelling errors, or this document. You can also send comments on this document From fdrake@users.sourceforge.net Wed Jul 30 03:55:29 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Tue, 29 Jul 2003 19:55:29 -0700 Subject: [Python-checkins] python/dist/src/Doc/lib libundoc.tex,1.86,1.87 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/lib In directory sc8-pr-cvs1:/tmp/cvs-serv7016/lib Modified Files: libundoc.tex Log Message: update the documentation contact address Index: libundoc.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/libundoc.tex,v retrieving revision 1.86 retrieving revision 1.87 diff -C2 -d -r1.86 -r1.87 *** libundoc.tex 9 May 2003 15:04:56 -0000 1.86 --- libundoc.tex 30 Jul 2003 02:55:27 -0000 1.87 *************** *** 3,7 **** Here's a quick listing of modules that are currently undocumented, but that should be documented. Feel free to contribute documentation for ! them! (Send via email to \email{python-docs@python.org}.) The idea and original contents for this chapter were taken --- 3,7 ---- Here's a quick listing of modules that are currently undocumented, but that should be documented. Feel free to contribute documentation for ! them! (Send via email to \email{docs@python.org}.) The idea and original contents for this chapter were taken From fdrake@users.sourceforge.net Wed Jul 30 03:55:30 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Tue, 29 Jul 2003 19:55:30 -0700 Subject: [Python-checkins] python/dist/src/Doc/tools/sgmlconv README,1.6,1.7 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/tools/sgmlconv In directory sc8-pr-cvs1:/tmp/cvs-serv7016/tools/sgmlconv Modified Files: README Log Message: update the documentation contact address Index: README =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/tools/sgmlconv/README,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** README 22 Nov 2000 16:58:25 -0000 1.6 --- README 30 Jul 2003 02:55:28 -0000 1.7 *************** *** 14,18 **** make -f ../tools/sgmlconv/make.rules TOOLSDIR=../tools ! Please send comments and bug reports to python-docs@python.org. --- 14,18 ---- make -f ../tools/sgmlconv/make.rules TOOLSDIR=../tools ! Please send comments and bug reports to docs@python.org. From fdrake@users.sourceforge.net Wed Jul 30 03:55:30 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Tue, 29 Jul 2003 19:55:30 -0700 Subject: [Python-checkins] python/dist/src/Doc/texinputs boilerplate.tex,1.84,1.85 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/texinputs In directory sc8-pr-cvs1:/tmp/cvs-serv7016/texinputs Modified Files: boilerplate.tex Log Message: update the documentation contact address Index: boilerplate.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/texinputs/boilerplate.tex,v retrieving revision 1.84 retrieving revision 1.85 diff -C2 -d -r1.84 -r1.85 *** boilerplate.tex 29 Jul 2003 03:20:32 -0000 1.84 --- boilerplate.tex 30 Jul 2003 02:55:28 -0000 1.85 *************** *** 3,11 **** \authoraddress{ \strong{PythonLabs}\\ ! Email: \email{python-docs@python.org} } ! \date{July 29, 2003} % XXX update before final release! ! \release{2.3} % software release, not documentation \setreleaseinfo{} % empty for final release \setshortversion{2.3} % major.minor only for software --- 3,11 ---- \authoraddress{ \strong{PythonLabs}\\ ! Email: \email{docs@python.org} } ! \date{\today} % XXX update before final release! ! \release{2.3+} % software release, not documentation \setreleaseinfo{} % empty for final release \setshortversion{2.3} % major.minor only for software From fdrake@users.sourceforge.net Wed Jul 30 03:55:30 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Tue, 29 Jul 2003 19:55:30 -0700 Subject: [Python-checkins] python/dist/src/Doc/tools getpagecounts,1.9,1.10 html2texi.pl,1.3,1.4 mkackshtml,1.3,1.4 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/tools In directory sc8-pr-cvs1:/tmp/cvs-serv7016/tools Modified Files: getpagecounts html2texi.pl mkackshtml Log Message: update the documentation contact address Index: getpagecounts =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/tools/getpagecounts,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** getpagecounts 20 Jun 2003 14:00:49 -0000 1.9 --- getpagecounts 30 Jul 2003 02:55:28 -0000 1.10 *************** *** 74,78 **** If you have any questions, comments, or suggestions regarding these ! documents, please send them via email to python-docs@python.org. """ --- 74,78 ---- If you have any questions, comments, or suggestions regarding these ! documents, please send them via email to docs@python.org. """ Index: html2texi.pl =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/tools/html2texi.pl,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** html2texi.pl 14 Jan 1999 18:17:07 -0000 1.3 --- html2texi.pl 30 Jul 2003 02:55:28 -0000 1.4 *************** *** 138,142 **** # Perhaps double-check that every tag mentioned in the index is found # in the text. ! # Python: email to python-docs@python.org, to get their feedback. # Compare to existing lib/ Info manual # Write the hooks into info-look; replace pyliblookup1-1.tar.gz. --- 138,142 ---- # Perhaps double-check that every tag mentioned in the index is found # in the text. ! # Python: email to docs@python.org, to get their feedback. # Compare to existing lib/ Info manual # Write the hooks into info-look; replace pyliblookup1-1.tar.gz. Index: mkackshtml =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/tools/mkackshtml,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** mkackshtml 5 Apr 2002 17:34:50 -0000 1.3 --- mkackshtml 30 Jul 2003 02:55:28 -0000 1.4 *************** *** 54,58 **** you or anyone else should be on this list, please let us know (send email to python-docs@python.org), and we will be glad to correct the problem.

    --- 54,58 ---- you or anyone else should be on this list, please let us know (send email to docs@python.org), and we will be glad to correct the problem.

    From bwarsaw@users.sourceforge.net Wed Jul 30 06:37:41 2003 From: bwarsaw@users.sourceforge.net (bwarsaw@users.sourceforge.net) Date: Tue, 29 Jul 2003 22:37:41 -0700 Subject: [Python-checkins] python/dist/src/Include patchlevel.h,2.74,2.75 Message-ID: Update of /cvsroot/python/python/dist/src/Include In directory sc8-pr-cvs1:/tmp/cvs-serv30708 Modified Files: patchlevel.h Log Message: Bump the trunk to 2.4a0 Index: patchlevel.h =================================================================== RCS file: /cvsroot/python/python/dist/src/Include/patchlevel.h,v retrieving revision 2.74 retrieving revision 2.75 diff -C2 -d -r2.74 -r2.75 *** patchlevel.h 29 Jul 2003 00:21:36 -0000 2.74 --- patchlevel.h 30 Jul 2003 05:37:39 -0000 2.75 *************** *** 21,31 **** /* Version parsed out into numeric values */ #define PY_MAJOR_VERSION 2 ! #define PY_MINOR_VERSION 3 #define PY_MICRO_VERSION 0 ! #define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_FINAL #define PY_RELEASE_SERIAL 0 /* Version as a string */ ! #define PY_VERSION "2.3" /* Version as a single 4-byte hex number, e.g. 0x010502B2 == 1.5.2b2. --- 21,31 ---- /* Version parsed out into numeric values */ #define PY_MAJOR_VERSION 2 ! #define PY_MINOR_VERSION 4 #define PY_MICRO_VERSION 0 ! #define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_ALPHA #define PY_RELEASE_SERIAL 0 /* Version as a string */ ! #define PY_VERSION "2.4a0" /* Version as a single 4-byte hex number, e.g. 0x010502B2 == 1.5.2b2. From akuchling@users.sourceforge.net Wed Jul 30 12:55:10 2003 From: akuchling@users.sourceforge.net (akuchling@users.sourceforge.net) Date: Wed, 30 Jul 2003 04:55:10 -0700 Subject: [Python-checkins] python/dist/src/Doc/whatsnew whatsnew23.tex,1.159,1.160 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/whatsnew In directory sc8-pr-cvs1:/tmp/cvs-serv26699 Modified Files: whatsnew23.tex Log Message: [Bug #779469] Fix error in example code Index: whatsnew23.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/whatsnew/whatsnew23.tex,v retrieving revision 1.159 retrieving revision 1.160 diff -C2 -d -r1.159 -r1.160 *** whatsnew23.tex 29 Jul 2003 12:06:32 -0000 1.159 --- whatsnew23.tex 30 Jul 2003 11:55:06 -0000 1.160 *************** *** 1056,1060 **** if isinstance(item, slice): indices = item.indices(len(self)) ! return FakeSeq([self.calc_item(i) in range(*indices)]) else: return self.calc_item(i) --- 1056,1060 ---- if isinstance(item, slice): indices = item.indices(len(self)) ! return FakeSeq([self.calc_item(i) for i in range(*indices)]) else: return self.calc_item(i) *************** *** 2387,2391 **** suggestions, corrections and assistance with various drafts of this article: Jeff Bauer, Simon Brunning, Brett Cannon, Michael Chermside, ! Andrew Dalke, Scott David Daniels, Fred~L. Drake, Jr., Kelly Gerber, Raymond Hettinger, Michael Hudson, Chris Lambert, Detlef Lannert, Martin von~L\"owis, Andrew MacIntyre, Lalo Martins, Chad Netzer, --- 2387,2392 ---- suggestions, corrections and assistance with various drafts of this article: Jeff Bauer, Simon Brunning, Brett Cannon, Michael Chermside, ! Andrew Dalke, Scott David Daniels, Fred~L. Drake, Jr., David Fraser, ! Kelly Gerber, Raymond Hettinger, Michael Hudson, Chris Lambert, Detlef Lannert, Martin von~L\"owis, Andrew MacIntyre, Lalo Martins, Chad Netzer, From doerwalter@users.sourceforge.net Wed Jul 30 13:14:05 2003 From: doerwalter@users.sourceforge.net (doerwalter@users.sourceforge.net) Date: Wed, 30 Jul 2003 05:14:05 -0700 Subject: [Python-checkins] python/dist/src/Misc NEWS,1.831,1.832 Message-ID: Update of /cvsroot/python/python/dist/src/Misc In directory sc8-pr-cvs1:/tmp/cvs-serv29500/Misc Modified Files: NEWS Log Message: Fix typo. Index: NEWS =================================================================== RCS file: /cvsroot/python/python/dist/src/Misc/NEWS,v retrieving revision 1.831 retrieving revision 1.832 diff -C2 -d -r1.831 -r1.832 *** NEWS 29 Jul 2003 22:11:31 -0000 1.831 --- NEWS 30 Jul 2003 12:14:02 -0000 1.832 *************** *** 285,289 **** - Bundlebuilder now inherits default values in the right way. It was ! previously possible for app bundles to et a type of "BNDL" instead of "APPL." Other improvements include, a --build-id option to specify the CFBundleIdentifier and using the --python option to set --- 285,289 ---- - Bundlebuilder now inherits default values in the right way. It was ! previously possible for app bundles to get a type of "BNDL" instead of "APPL." Other improvements include, a --build-id option to specify the CFBundleIdentifier and using the --python option to set From mwh@python.net Wed Jul 30 13:39:53 2003 From: mwh@python.net (Michael Hudson) Date: Wed, 30 Jul 2003 13:39:53 +0100 Subject: [Python-checkins] python/dist/src/Doc/whatsnew whatsnew23.tex,1.159,1.160 In-Reply-To: (akuchling@users.sourceforge.net's message of "Wed, 30 Jul 2003 04:55:10 -0700") References: Message-ID: <2mllugb33a.fsf@starship.python.net> akuchling@users.sourceforge.net writes: > Update of /cvsroot/python/python/dist/src/Doc/whatsnew > In directory sc8-pr-cvs1:/tmp/cvs-serv26699 > > Modified Files: > whatsnew23.tex > Log Message: > [Bug #779469] Fix error in example code > > Index: whatsnew23.tex > =================================================================== > RCS file: /cvsroot/python/python/dist/src/Doc/whatsnew/whatsnew23.tex,v > retrieving revision 1.159 > retrieving revision 1.160 > diff -C2 -d -r1.159 -r1.160 > *** whatsnew23.tex 29 Jul 2003 12:06:32 -0000 1.159 > --- whatsnew23.tex 30 Jul 2003 11:55:06 -0000 1.160 > *************** > *** 1056,1060 **** > if isinstance(item, slice): > indices = item.indices(len(self)) > ! return FakeSeq([self.calc_item(i) in range(*indices)]) > else: > return self.calc_item(i) > --- 1056,1060 ---- > if isinstance(item, slice): > indices = item.indices(len(self)) > ! return FakeSeq([self.calc_item(i) for i in range(*indices)]) > else: > return self.calc_item(i) It's probably not that surprising to note that I do this all the time :-) Cheers, mwh -- The Oxford Bottled Beer Database heartily disapproves of the excessive consumption of alcohol. No, really. -- http://www.bottledbeer.co.uk/beergames.html From jackjansen@users.sourceforge.net Wed Jul 30 15:57:34 2003 From: jackjansen@users.sourceforge.net (jackjansen@users.sourceforge.net) Date: Wed, 30 Jul 2003 07:57:34 -0700 Subject: [Python-checkins] python/dist/src/Mac/OSX/Dist build,1.12,1.12.2.1 Message-ID: Update of /cvsroot/python/python/dist/src/Mac/OSX/Dist In directory sc8-pr-cvs1:/tmp/cvs-serv26257 Modified Files: Tag: release23-branch build Log Message: Files used to build binary MacPython-2.3 installer. Index: build =================================================================== RCS file: /cvsroot/python/python/dist/src/Mac/OSX/Dist/build,v retrieving revision 1.12 retrieving revision 1.12.2.1 diff -C2 -d -r1.12 -r1.12.2.1 *** build 23 Jul 2003 10:51:55 -0000 1.12 --- build 30 Jul 2003 14:57:31 -0000 1.12.2.1 *************** *** 6,12 **** # Script configs ! PYVERSION=2.3rc1plus PYVER=2.3 ! BUILDNUM=8 DOCLEANUP=no --- 6,12 ---- # Script configs ! PYVERSION=2.3 PYVER=2.3 ! BUILDNUM=1 DOCLEANUP=no *************** *** 134,138 **** # ...and then make a disk image containing the package. mv MacPython-OSX.pkg $DMGDIR/root ! cp $RESOURCEDIR/Welcome.txt $DMGDIR/root/README.txt $PROGDIR/makedmg $DMGDIR/root $DMGDIR MacPython-OSX-$PYVERSION-$BUILDNUM --- 134,138 ---- # ...and then make a disk image containing the package. mv MacPython-OSX.pkg $DMGDIR/root ! cp $RESOURCEDIR/ReadMe.txt $DMGDIR/root/ReadMe.txt $PROGDIR/makedmg $DMGDIR/root $DMGDIR MacPython-OSX-$PYVERSION-$BUILDNUM From jackjansen@users.sourceforge.net Wed Jul 30 15:57:34 2003 From: jackjansen@users.sourceforge.net (jackjansen@users.sourceforge.net) Date: Wed, 30 Jul 2003 07:57:34 -0700 Subject: [Python-checkins] python/dist/src/Mac/OSX/Dist/resources ReadMe.txt,NONE,1.1.2.1 Welcome.rtf,NONE,1.1.2.1 Welcome.txt,1.6,NONE Message-ID: Update of /cvsroot/python/python/dist/src/Mac/OSX/Dist/resources In directory sc8-pr-cvs1:/tmp/cvs-serv26257/resources Added Files: Tag: release23-branch ReadMe.txt Welcome.rtf Removed Files: Tag: release23-branch Welcome.txt Log Message: Files used to build binary MacPython-2.3 installer. --- NEW FILE: ReadMe.txt --- This package will install MacPython 2.3 for Mac OS X 10.2. Installation on the Panther preview may work, on 10.1 or earlier will not work. Installation requires approximately 20 MB of disk space, ignore the message that it will take zero bytes. You must install onto your current boot disk, even though the installer does not enforce this, otherwise things will not work. MacPython consists of the Python programming language interpreter, plus a set of programs to allow easy access to it for Mac users (an integrated development environment, a Python extension package manager), plus a set of pre-built extension modules that open up specific Macintosh technologies to Python programs (Carbon, AppleScript, Quicktime, more). The installer puts the applications in MacPython-2.3 in your Applications folder, command-line tools in /usr/local/bin and the underlying machinery in /Library/Frameworks/Python.framework. The PythonIDE application has a Help command that gets you started quickly with MacPython and contains references to other documentation. More information on MacPython can be found at http://www.cwi.nl/~jack/macpython.html, more information on Python in general at http://www.python.org. --- NEW FILE: Welcome.rtf --- {\rtf1\mac\ansicpg10000\cocoartf102 {\fonttbl\f0\fswiss\fcharset77 Helvetica;\f1\fswiss\fcharset77 Helvetica-Bold;} {\colortbl;\red255\green255\blue255;} \paperw11900\paperh16840\margl1440\margr1440\vieww9920\viewh10660\viewkind0 \pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural \f0\fs24 \cf0 This package will install \f1\b MacPython 2.3 \f0\b0 for \f1\b Mac OS X 10.2 \f0\b0 . Installation on the Panther preview may work, on 10.1 or earlier will not work.\ \ MacPython consists of the Python programming language interpreter, plus a set of programs to allow easy access to it for Mac users (an integrated development environment, a Python extension package manager), plus a set of pre-built extension modules that open up specific Macintosh technologies to Python programs (Carbon, AppleScript, Quicktime, more).\ \ See the ReadMe file for more information.} --- Welcome.txt DELETED --- From fdrake@users.sourceforge.net Wed Jul 30 17:42:19 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Wed, 30 Jul 2003 09:42:19 -0700 Subject: [Python-checkins] python/dist/src/Misc NEWS,1.831.2.1,1.831.2.2 Message-ID: Update of /cvsroot/python/python/dist/src/Misc In directory sc8-pr-cvs1:/tmp/cvs-serv13108 Modified Files: Tag: release23-branch NEWS Log Message: backport typo fix from revision 1.832 Index: NEWS =================================================================== RCS file: /cvsroot/python/python/dist/src/Misc/NEWS,v retrieving revision 1.831.2.1 retrieving revision 1.831.2.2 diff -C2 -d -r1.831.2.1 -r1.831.2.2 *** NEWS 29 Jul 2003 22:59:30 -0000 1.831.2.1 --- NEWS 30 Jul 2003 16:42:17 -0000 1.831.2.2 *************** *** 285,289 **** - Bundlebuilder now inherits default values in the right way. It was ! previously possible for app bundles to et a type of "BNDL" instead of "APPL." Other improvements include, a --build-id option to specify the CFBundleIdentifier and using the --python option to set --- 285,289 ---- - Bundlebuilder now inherits default values in the right way. It was ! previously possible for app bundles to get a type of "BNDL" instead of "APPL." Other improvements include, a --build-id option to specify the CFBundleIdentifier and using the --python option to set From fdrake@users.sourceforge.net Wed Jul 30 17:44:33 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Wed, 30 Jul 2003 09:44:33 -0700 Subject: [Python-checkins] python/dist/src/Doc/whatsnew whatsnew23.tex,1.159,1.159.2.1 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/whatsnew In directory sc8-pr-cvs1:/tmp/cvs-serv13501 Modified Files: Tag: release23-branch whatsnew23.tex Log Message: backport from revision 1.160: [Bug #779469] Fix error in example code Index: whatsnew23.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/whatsnew/whatsnew23.tex,v retrieving revision 1.159 retrieving revision 1.159.2.1 diff -C2 -d -r1.159 -r1.159.2.1 *** whatsnew23.tex 29 Jul 2003 12:06:32 -0000 1.159 --- whatsnew23.tex 30 Jul 2003 16:44:31 -0000 1.159.2.1 *************** *** 1056,1060 **** if isinstance(item, slice): indices = item.indices(len(self)) ! return FakeSeq([self.calc_item(i) in range(*indices)]) else: return self.calc_item(i) --- 1056,1060 ---- if isinstance(item, slice): indices = item.indices(len(self)) ! return FakeSeq([self.calc_item(i) for i in range(*indices)]) else: return self.calc_item(i) *************** *** 2387,2391 **** suggestions, corrections and assistance with various drafts of this article: Jeff Bauer, Simon Brunning, Brett Cannon, Michael Chermside, ! Andrew Dalke, Scott David Daniels, Fred~L. Drake, Jr., Kelly Gerber, Raymond Hettinger, Michael Hudson, Chris Lambert, Detlef Lannert, Martin von~L\"owis, Andrew MacIntyre, Lalo Martins, Chad Netzer, --- 2387,2392 ---- suggestions, corrections and assistance with various drafts of this article: Jeff Bauer, Simon Brunning, Brett Cannon, Michael Chermside, ! Andrew Dalke, Scott David Daniels, Fred~L. Drake, Jr., David Fraser, ! Kelly Gerber, Raymond Hettinger, Michael Hudson, Chris Lambert, Detlef Lannert, Martin von~L\"owis, Andrew MacIntyre, Lalo Martins, Chad Netzer, From fdrake@users.sourceforge.net Wed Jul 30 18:39:50 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Wed, 30 Jul 2003 10:39:50 -0700 Subject: [Python-checkins] python/dist/src configure,1.416,1.417 configure.in,1.427,1.428 Message-ID: Update of /cvsroot/python/python/dist/src In directory sc8-pr-cvs1:/tmp/cvs-serv23868 Modified Files: configure configure.in Log Message: Update version number here as well; patchlevel.h is not the only place. Index: configure =================================================================== RCS file: /cvsroot/python/python/dist/src/configure,v retrieving revision 1.416 retrieving revision 1.417 diff -C2 -d -r1.416 -r1.417 *** configure 23 Jul 2003 22:17:27 -0000 1.416 --- configure 30 Jul 2003 17:39:46 -0000 1.417 *************** *** 1,6 **** #! /bin/sh ! # From configure.in Revision: 1.426 . # Guess values for system-dependent variables and create Makefiles. ! # Generated by GNU Autoconf 2.53 for python 2.3. # # Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002 --- 1,6 ---- #! /bin/sh ! # From configure.in Revision: 1.427 . # Guess values for system-dependent variables and create Makefiles. ! # Generated by GNU Autoconf 2.53 for python 2.4. # # Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002 *************** *** 256,261 **** PACKAGE_NAME='python' PACKAGE_TARNAME='python' ! PACKAGE_VERSION='2.3' ! PACKAGE_STRING='python 2.3' PACKAGE_BUGREPORT='' --- 256,261 ---- PACKAGE_NAME='python' PACKAGE_TARNAME='python' ! PACKAGE_VERSION='2.4' ! PACKAGE_STRING='python 2.4' PACKAGE_BUGREPORT='' *************** *** 762,766 **** # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF ! \`configure' configures python 2.3 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... --- 762,766 ---- # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF ! \`configure' configures python 2.4 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... *************** *** 819,823 **** if test -n "$ac_init_help"; then case $ac_init_help in ! short | recursive ) echo "Configuration of python 2.3:";; esac cat <<\_ACEOF --- 819,823 ---- if test -n "$ac_init_help"; then case $ac_init_help in ! short | recursive ) echo "Configuration of python 2.4:";; esac cat <<\_ACEOF *************** *** 935,939 **** if $ac_init_version; then cat <<\_ACEOF ! python configure 2.3 generated by GNU Autoconf 2.53 --- 935,939 ---- if $ac_init_version; then cat <<\_ACEOF ! python configure 2.4 generated by GNU Autoconf 2.53 *************** *** 950,954 **** running configure, to aid debugging if configure makes a mistake. ! It was created by python $as_me 2.3, which was generated by GNU Autoconf 2.53. Invocation command line was --- 950,954 ---- running configure, to aid debugging if configure makes a mistake. ! It was created by python $as_me 2.4, which was generated by GNU Autoconf 2.53. Invocation command line was *************** *** 1244,1248 **** ! VERSION=2.3 --- 1244,1248 ---- ! VERSION=2.4 *************** *** 18096,18100 **** cat >&5 <<_CSEOF ! This file was extended by python $as_me 2.3, which was generated by GNU Autoconf 2.53. Invocation command line was --- 18096,18100 ---- cat >&5 <<_CSEOF ! This file was extended by python $as_me 2.4, which was generated by GNU Autoconf 2.53. Invocation command line was *************** *** 18155,18159 **** cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ ! python config.status 2.3 configured by $0, generated by GNU Autoconf 2.53, with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" --- 18155,18159 ---- cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ ! python config.status 2.4 configured by $0, generated by GNU Autoconf 2.53, with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" Index: configure.in =================================================================== RCS file: /cvsroot/python/python/dist/src/configure.in,v retrieving revision 1.427 retrieving revision 1.428 diff -C2 -d -r1.427 -r1.428 *** configure.in 23 Jul 2003 22:17:27 -0000 1.427 --- configure.in 30 Jul 2003 17:39:48 -0000 1.428 *************** *** 2,6 **** # Set VERSION so we only need to edit in one place (i.e., here) ! m4_define(PYTHON_VERSION, 2.3) AC_REVISION($Revision$) --- 2,6 ---- # Set VERSION so we only need to edit in one place (i.e., here) ! m4_define(PYTHON_VERSION, 2.4) AC_REVISION($Revision$) From fdrake@users.sourceforge.net Wed Jul 30 19:43:30 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Wed, 30 Jul 2003 11:43:30 -0700 Subject: [Python-checkins] python/dist/src/Doc Makefile,1.262,1.263 Message-ID: Update of /cvsroot/python/python/dist/src/Doc In directory sc8-pr-cvs1:/tmp/cvs-serv4327 Modified Files: Makefile Log Message: Update to the same version info used by the interpreter. Index: Makefile =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/Makefile,v retrieving revision 1.262 retrieving revision 1.263 diff -C2 -d -r1.262 -r1.263 *** Makefile 30 Jul 2003 02:55:27 -0000 1.262 --- Makefile 30 Jul 2003 18:43:27 -0000 1.263 *************** *** 67,71 **** # This is the *documentation* release, and is used to construct the file # names of the downloadable tarballs. ! RELEASE=2.3 PYTHON= python --- 67,71 ---- # This is the *documentation* release, and is used to construct the file # names of the downloadable tarballs. ! RELEASE=2.4a0 PYTHON= python From fdrake@users.sourceforge.net Wed Jul 30 19:43:30 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Wed, 30 Jul 2003 11:43:30 -0700 Subject: [Python-checkins] python/dist/src/Doc/texinputs boilerplate.tex,1.85,1.86 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/texinputs In directory sc8-pr-cvs1:/tmp/cvs-serv4327/texinputs Modified Files: boilerplate.tex Log Message: Update to the same version info used by the interpreter. Index: boilerplate.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/texinputs/boilerplate.tex,v retrieving revision 1.85 retrieving revision 1.86 diff -C2 -d -r1.85 -r1.86 *** boilerplate.tex 30 Jul 2003 02:55:28 -0000 1.85 --- boilerplate.tex 30 Jul 2003 18:43:28 -0000 1.86 *************** *** 7,11 **** \date{\today} % XXX update before final release! ! \release{2.3+} % software release, not documentation ! \setreleaseinfo{} % empty for final release ! \setshortversion{2.3} % major.minor only for software --- 7,11 ---- \date{\today} % XXX update before final release! ! \release{2.4} % software release, not documentation ! \setreleaseinfo{a0} % empty for final release ! \setshortversion{2.4} % major.minor only for software From fdrake@users.sourceforge.net Wed Jul 30 19:54:19 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Wed, 30 Jul 2003 11:54:19 -0700 Subject: [Python-checkins] python/dist/src/Doc Makefile,1.261.2.1,1.261.2.2 Message-ID: Update of /cvsroot/python/python/dist/src/Doc In directory sc8-pr-cvs1:/tmp/cvs-serv6453 Modified Files: Tag: release23-branch Makefile Log Message: bump release number Index: Makefile =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/Makefile,v retrieving revision 1.261.2.1 retrieving revision 1.261.2.2 diff -C2 -d -r1.261.2.1 -r1.261.2.2 *** Makefile 30 Jul 2003 02:52:31 -0000 1.261.2.1 --- Makefile 30 Jul 2003 18:54:16 -0000 1.261.2.2 *************** *** 67,71 **** # This is the *documentation* release, and is used to construct the file # names of the downloadable tarballs. ! RELEASE=2.3 PYTHON= python --- 67,71 ---- # This is the *documentation* release, and is used to construct the file # names of the downloadable tarballs. ! RELEASE=2.3+ PYTHON= python From fdrake@users.sourceforge.net Wed Jul 30 20:14:12 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Wed, 30 Jul 2003 12:14:12 -0700 Subject: [Python-checkins] python/dist/src/Doc/whatsnew whatsnew24.tex,NONE,1.1 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/whatsnew In directory sc8-pr-cvs1:/tmp/cvs-serv10063 Added Files: whatsnew24.tex Log Message: boilerplate to start off "What's New in Python 2.4" --- NEW FILE: whatsnew24.tex --- \documentclass{howto} \usepackage{distutils} % $Id: whatsnew24.tex,v 1.1 2003/07/30 19:14:09 fdrake Exp $ \title{What's New in Python 2.4} \release{0.0} \author{A.M.\ Kuchling} \authoraddress{\email{amk@amk.ca}} \begin{document} \maketitle \tableofcontents This article explains the new features in Python 2.4. No release date for Python 2.4 has been set; expect that this will happen in 2004. While Python 2.3 was primarily a library development release, Python 2.4 may extend the core language and interpreter in as-yet-undetermined ways. This article doesn't attempt to provide a complete specification of the new features, but instead provides a convenient overview. For full details, you should refer to the documentation for Python 2.4. % add hyperlink when the documentation becomes available online. If you want to understand the complete implementation and design rationale, refer to the PEP for a particular new feature. %====================================================================== % Large, PEP-level features and changes should be described here. %====================================================================== \section{Other Language Changes} Here are all of the changes that Python 2.4 makes to the core Python language. \begin{itemize} \item TBD \end{itemize} %====================================================================== \subsection{Optimizations} \begin{itemize} \item Optimizations should be described here. \end{itemize} The net result of the 2.4 optimizations is that Python 2.4 runs the pystone benchmark around XX\% faster than Python 2.3 and YY\% faster than Python 2.2. %====================================================================== \section{New, Improved, and Deprecated Modules} As usual, Python's standard library received a number of enhancements and bug fixes. Here's a partial list of the most notable changes, sorted alphabetically by module name. Consult the \file{Misc/NEWS} file in the source tree for a more complete list of changes, or look through the CVS logs for all the details. \begin{itemize} \item Descriptions go here. \end{itemize} %====================================================================== % whole new modules get described in \subsections here % ====================================================================== \section{Build and C API Changes} Changes to Python's build process and to the C API include: \begin{itemize} \item Detailed changes are listed here. \end{itemize} %====================================================================== \subsection{Port-Specific Changes} Platform-specific changes go here. %====================================================================== \section{Other Changes and Fixes \label{section-other}} As usual, there were a bunch of other improvements and bugfixes scattered throughout the source tree. A search through the CVS change logs finds there were XXX patches applied and YYY bugs fixed between Python 2.3 and 2.4. Both figures are likely to be underestimates. Some of the more notable changes are: \begin{itemize} \item Details go here. \end{itemize} %====================================================================== \section{Porting to Python 2.4} This section lists previously described changes that may require changes to your code: \begin{itemize} \item Everything is all in the details! \end{itemize} %====================================================================== \section{Acknowledgements \label{acks}} The author would like to thank the following people for offering suggestions, corrections and assistance with various drafts of this article: . \end{document} From fdrake@users.sourceforge.net Wed Jul 30 20:14:56 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Wed, 30 Jul 2003 12:14:56 -0700 Subject: [Python-checkins] python/dist/src/Doc Makefile,1.263,1.264 Message-ID: Update of /cvsroot/python/python/dist/src/Doc In directory sc8-pr-cvs1:/tmp/cvs-serv10188 Modified Files: Makefile Log Message: there's a new "What's New" for Python 2.4 Index: Makefile =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/Makefile,v retrieving revision 1.263 retrieving revision 1.264 diff -C2 -d -r1.263 -r1.264 *** Makefile 30 Jul 2003 18:43:27 -0000 1.263 --- Makefile 30 Jul 2003 19:14:54 -0000 1.264 *************** *** 96,100 **** # The end of this should reflect the major/minor version numbers of # the release: ! WHATSNEW=whatsnew23 # what's what --- 96,100 ---- # The end of this should reflect the major/minor version numbers of # the release: ! WHATSNEW=whatsnew24 # what's what From fdrake@users.sourceforge.net Thu Jul 31 00:52:18 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Wed, 30 Jul 2003 16:52:18 -0700 Subject: [Python-checkins] python/dist/src/Doc/templates whatsnewXY.tex,NONE,1.1 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/templates In directory sc8-pr-cvs1:/tmp/cvs-serv30590 Added Files: whatsnewXY.tex Log Message: Generalize the template for the "What's New" document so it's easier to extract next time without having to remember where in CVS to dig it out. --- NEW FILE: whatsnewXY.tex --- \documentclass{howto} \usepackage{distutils} % $Id: whatsnewXY.tex,v 1.1 2003/07/30 23:52:16 fdrake Exp $ % When creating a new ``What's New'' document, copy this to % ../whatsnew/whatsnewXY.tex, where X is replaced by the major version % number and Y, by the minor version number for the release of Python % being described. % % The following replacements need to be made in the text: % % X.Y -- the version of Python this document describes % X.Y-1 -- previous major release (not a maintenance release) % X.Y-2 -- major release before that one (optional; search the % template to see the usage % % Once done, write and edit to your heart's content! \title{What's New in Python X.Y} \release{0.0} \author{Young Author} \authoraddress{\email{ya@example.com}} \begin{document} \maketitle \tableofcontents This article explains the new features in Python X.Y. No release date for Python X.Y has been set; expect that this will happen next year. % Compare with previous release in 2 - 3 sentences here. This article doesn't attempt to provide a complete specification of the new features, but instead provides a convenient overview. For full details, you should refer to the documentation for Python X.Y. % add hyperlink when the documentation becomes available online. If you want to understand the complete implementation and design rationale, refer to the PEP for a particular new feature. %====================================================================== % Large, PEP-level features and changes should be described here. %====================================================================== \section{Other Language Changes} Here are all of the changes that Python X.Y makes to the core Python language. \begin{itemize} \item TBD \end{itemize} %====================================================================== \subsection{Optimizations} \begin{itemize} \item Optimizations should be described here. \end{itemize} The net result of the X.Y optimizations is that Python X.Y runs the pystone benchmark around XX\% faster than Python X.Y-1.% % only use the next line if you want to do the extra work ;) : % and YY\% faster than Python X.Y-2. %====================================================================== \section{New, Improved, and Deprecated Modules} As usual, Python's standard library received a number of enhancements and bug fixes. Here's a partial list of the most notable changes, sorted alphabetically by module name. Consult the \file{Misc/NEWS} file in the source tree for a more complete list of changes, or look through the CVS logs for all the details. \begin{itemize} \item Descriptions go here. \end{itemize} %====================================================================== % whole new modules get described in \subsections here % ====================================================================== \section{Build and C API Changes} Changes to Python's build process and to the C API include: \begin{itemize} \item Detailed changes are listed here. \end{itemize} %====================================================================== \subsection{Port-Specific Changes} Platform-specific changes go here. %====================================================================== \section{Other Changes and Fixes \label{section-other}} As usual, there were a bunch of other improvements and bugfixes scattered throughout the source tree. A search through the CVS change logs finds there were XXX patches applied and YYY bugs fixed between Python X.Y-1 and X.Y. Both figures are likely to be underestimates. Some of the more notable changes are: \begin{itemize} \item Details go here. \end{itemize} %====================================================================== \section{Porting to Python X.Y} This section lists previously described changes that may require changes to your code: \begin{itemize} \item Everything is all in the details! \end{itemize} %====================================================================== \section{Acknowledgements \label{acks}} The author would like to thank the following people for offering suggestions, corrections and assistance with various drafts of this article: . \end{document} From montanaro@users.sourceforge.net Thu Jul 31 02:17:24 2003 From: montanaro@users.sourceforge.net (montanaro@users.sourceforge.net) Date: Wed, 30 Jul 2003 18:17:24 -0700 Subject: [Python-checkins] python/dist/src/Doc/templates whatsnewXY.tex,1.1,1.2 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/templates In directory sc8-pr-cvs1:/tmp/cvs-serv12969 Modified Files: whatsnewXY.tex Log Message: Everyone knows what Fred meant, but I thought I'd make it official... ;-) Index: whatsnewXY.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/templates/whatsnewXY.tex,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** whatsnewXY.tex 30 Jul 2003 23:52:16 -0000 1.1 --- whatsnewXY.tex 31 Jul 2003 01:17:22 -0000 1.2 *************** *** 11,16 **** % % X.Y -- the version of Python this document describes ! % X.Y-1 -- previous major release (not a maintenance release) ! % X.Y-2 -- major release before that one (optional; search the % template to see the usage % --- 11,16 ---- % % X.Y -- the version of Python this document describes ! % X.Y-1 -- previous minor release (not a maintenance release) ! % X.Y-2 -- minor release before that one (optional; search the % template to see the usage % From mhammond@users.sourceforge.net Thu Jul 31 03:06:25 2003 From: mhammond@users.sourceforge.net (mhammond@users.sourceforge.net) Date: Wed, 30 Jul 2003 19:06:25 -0700 Subject: [Python-checkins] python/dist/src/PCbuild pythoncore.dsp,1.48,1.49 Message-ID: Update of /cvsroot/python/python/dist/src/PCbuild In directory sc8-pr-cvs1:/tmp/cvs-serv20064/PCbuild Modified Files: pythoncore.dsp Log Message: Complete move of windows builds to 2.4alpha Index: pythoncore.dsp =================================================================== RCS file: /cvsroot/python/python/dist/src/PCbuild/pythoncore.dsp,v retrieving revision 1.48 retrieving revision 1.49 diff -C2 -d -r1.48 -r1.49 *** pythoncore.dsp 29 Jul 2003 00:18:44 -0000 1.48 --- pythoncore.dsp 31 Jul 2003 02:06:22 -0000 1.49 *************** *** 55,59 **** LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 ! # ADD LINK32 largeint.lib kernel32.lib user32.lib advapi32.lib shell32.lib /nologo /base:"0x1e000000" /subsystem:windows /dll /debug /machine:I386 /nodefaultlib:"libc" /out:"./python23.dll" # SUBTRACT LINK32 /pdb:none --- 55,59 ---- LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 ! # ADD LINK32 largeint.lib kernel32.lib user32.lib advapi32.lib shell32.lib /nologo /base:"0x1e000000" /subsystem:windows /dll /debug /machine:I386 /nodefaultlib:"libc" /out:"./python24.dll" # SUBTRACT LINK32 /pdb:none *************** *** 83,87 **** LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept ! # ADD LINK32 largeint.lib kernel32.lib user32.lib advapi32.lib shell32.lib /nologo /base:"0x1e000000" /subsystem:windows /dll /debug /machine:I386 /nodefaultlib:"libc" /out:"./python23_d.dll" /pdbtype:sept # SUBTRACT LINK32 /pdb:none --- 83,87 ---- LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept ! # ADD LINK32 largeint.lib kernel32.lib user32.lib advapi32.lib shell32.lib /nologo /base:"0x1e000000" /subsystem:windows /dll /debug /machine:I386 /nodefaultlib:"libc" /out:"./python24_d.dll" /pdbtype:sept # SUBTRACT LINK32 /pdb:none From mhammond@users.sourceforge.net Thu Jul 31 03:06:24 2003 From: mhammond@users.sourceforge.net (mhammond@users.sourceforge.net) Date: Wed, 30 Jul 2003 19:06:24 -0700 Subject: [Python-checkins] python/dist/src/PC pyconfig.h,1.19,1.20 python_nt.rc,1.27,1.28 Message-ID: Update of /cvsroot/python/python/dist/src/PC In directory sc8-pr-cvs1:/tmp/cvs-serv20064/PC Modified Files: pyconfig.h python_nt.rc Log Message: Complete move of windows builds to 2.4alpha Index: pyconfig.h =================================================================== RCS file: /cvsroot/python/python/dist/src/PC/pyconfig.h,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** pyconfig.h 29 Mar 2003 10:04:55 -0000 1.19 --- pyconfig.h 31 Jul 2003 02:06:22 -0000 1.20 *************** *** 219,225 **** taken care of by distutils.) */ # ifdef _DEBUG ! # pragma comment(lib,"python23_d.lib") # else ! # pragma comment(lib,"python23.lib") # endif /* _DEBUG */ # endif /* _MSC_VER */ --- 219,225 ---- taken care of by distutils.) */ # ifdef _DEBUG ! # pragma comment(lib,"python24_d.lib") # else ! # pragma comment(lib,"python24.lib") # endif /* _DEBUG */ # endif /* _MSC_VER */ Index: python_nt.rc =================================================================== RCS file: /cvsroot/python/python/dist/src/PC/python_nt.rc,v retrieving revision 1.27 retrieving revision 1.28 diff -C2 -d -r1.27 -r1.28 *** python_nt.rc 29 Jul 2003 00:25:20 -0000 1.27 --- python_nt.rc 31 Jul 2003 02:06:22 -0000 1.28 *************** *** 13,20 **** * MS_DLL_ID must match PY_VERSION in the Windows install script. */ ! #define MS_DLL_ID "2.3" #ifndef PYTHON_DLL_NAME ! #define PYTHON_DLL_NAME "python23.dll" #endif --- 13,20 ---- * MS_DLL_ID must match PY_VERSION in the Windows install script. */ ! #define MS_DLL_ID "2.4" #ifndef PYTHON_DLL_NAME ! #define PYTHON_DLL_NAME "python24.dll" #endif *************** *** 34,45 **** * following comment and #define are output from PCbuild\field3.py: * ! * For 2.3, * PY_MICRO_VERSION = 0 ! * PY_RELEASE_LEVEL = 'final' = 0xf * PY_RELEASE_SERIAL = 0 * ! * and 0*1000 + 15*10 + 0 = 150 */ ! #define FIELD3 150 /* e.g., 2.1a2 --- 34,45 ---- * following comment and #define are output from PCbuild\field3.py: * ! * For 2.4a0, * PY_MICRO_VERSION = 0 ! * PY_RELEASE_LEVEL = 'alpha' = 0xa * PY_RELEASE_SERIAL = 0 * ! * and 0*1000 + 10*10 + 0 = 100 */ ! #define FIELD3 100 /* e.g., 2.1a2 From montanaro@users.sourceforge.net Thu Jul 31 05:59:50 2003 From: montanaro@users.sourceforge.net (montanaro@users.sourceforge.net) Date: Wed, 30 Jul 2003 21:59:50 -0700 Subject: [Python-checkins] python/dist/src/Misc python-mode.el,4.35,4.36 Message-ID: Update of /cvsroot/python/python/dist/src/Misc In directory sc8-pr-cvs1:/tmp/cvs-serv25169 Modified Files: python-mode.el Log Message: tweak to py-fill-paragraph - problem noted by John Lee and correction submitted by Bernard Herzog. Closes patch 779830. Index: python-mode.el =================================================================== RCS file: /cvsroot/python/python/dist/src/Misc/python-mode.el,v retrieving revision 4.35 retrieving revision 4.36 diff -C2 -d -r4.35 -r4.36 *** python-mode.el 17 Jun 2003 19:18:57 -0000 4.35 --- python-mode.el 31 Jul 2003 04:59:48 -0000 4.36 *************** *** 3715,3719 **** ;; are we inside a string? ((nth 3 pps) ! (py-fill-string (nth 2 pps))) ;; otherwise use the default (t --- 3715,3719 ---- ;; are we inside a string? ((nth 3 pps) ! (py-fill-string (nth 8 pps))) ;; otherwise use the default (t From Jack.Jansen@cwi.nl Thu Jul 31 10:55:33 2003 From: Jack.Jansen@cwi.nl (Jack Jansen) Date: Thu, 31 Jul 2003 11:55:33 +0200 Subject: [Python-checkins] python/dist/src/Doc Makefile,1.261.2.1,1.261.2.2 In-Reply-To: Message-ID: <208CFC62-C33D-11D7-B92E-000A27B19B96@cwi.nl> On woensdag, jul 30, 2003, at 20:54 Europe/Amsterdam, fdrake@users.sourceforge.net wrote: > Update of /cvsroot/python/python/dist/src/Doc > In directory sc8-pr-cvs1:/tmp/cvs-serv6453 > > Modified Files: > Tag: release23-branch > Makefile > Log Message: > bump release number Please don't do that! I still need a couple of days to build MacPython-OS9 2.3... -- - Jack Jansen http://www.cwi.nl/~jack - - If I can't dance I don't want to be part of your revolution -- Emma Goldman - From anthonybaxter@users.sourceforge.net Thu Jul 31 11:35:31 2003 From: anthonybaxter@users.sourceforge.net (anthonybaxter@users.sourceforge.net) Date: Thu, 31 Jul 2003 03:35:31 -0700 Subject: [Python-checkins] python/dist/src/Modules signalmodule.c,2.73,2.74 Message-ID: Update of /cvsroot/python/python/dist/src/Modules In directory sc8-pr-cvs1:/tmp/cvs-serv17091 Modified Files: signalmodule.c Log Message: Patch [ 776725 ] add SIGRTMIN, SIGRTMAX to signalmodule.c Trivial patch, and the alternative is to guess at the right values based on platform... Index: signalmodule.c =================================================================== RCS file: /cvsroot/python/python/dist/src/Modules/signalmodule.c,v retrieving revision 2.73 retrieving revision 2.74 diff -C2 -d -r2.73 -r2.74 *** signalmodule.c 13 Mar 2003 13:56:53 -0000 2.73 --- signalmodule.c 31 Jul 2003 10:35:29 -0000 2.74 *************** *** 542,545 **** --- 542,555 ---- Py_XDECREF(x); #endif + #ifdef SIGRTMIN + x = PyInt_FromLong(SIGRTMIN); + PyDict_SetItemString(d, "SIGRTMIN", x); + Py_XDECREF(x); + #endif + #ifdef SIGRTMAX + x = PyInt_FromLong(SIGRTMAX); + PyDict_SetItemString(d, "SIGRTMAX", x); + Py_XDECREF(x); + #endif #ifdef SIGINFO x = PyInt_FromLong(SIGINFO); From barry@python.org Thu Jul 31 13:17:13 2003 From: barry@python.org (Barry Warsaw) Date: 31 Jul 2003 08:17:13 -0400 Subject: [Python-checkins] python/dist/src/Doc Makefile,1.261.2.1,1.261.2.2 In-Reply-To: <208CFC62-C33D-11D7-B92E-000A27B19B96@cwi.nl> References: <208CFC62-C33D-11D7-B92E-000A27B19B96@cwi.nl> Message-ID: <1059653832.24132.0.camel@anthem> On Thu, 2003-07-31 at 05:55, Jack Jansen wrote: > Please don't do that! I still need a couple of days to build > MacPython-OS9 2.3... Yes, everyone please remember that the 2.3 branch is closed until Jack says it's open again. -Barry From fdrake@users.sourceforge.net Thu Jul 31 13:45:56 2003 From: fdrake@users.sourceforge.net (fdrake@users.sourceforge.net) Date: Thu, 31 Jul 2003 05:45:56 -0700 Subject: [Python-checkins] python/dist/src/Doc/texinputs boilerplate.tex,1.84.2.1,1.84.2.2 Message-ID: Update of /cvsroot/python/python/dist/src/Doc/texinputs In directory sc8-pr-cvs1:/tmp/cvs-serv7309 Modified Files: Tag: release23-branch boilerplate.tex Log Message: Revert version number bump; not everyone is done with the release. Sorry! Index: boilerplate.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/texinputs/boilerplate.tex,v retrieving revision 1.84.2.1 retrieving revision 1.84.2.2 diff -C2 -d -r1.84.2.1 -r1.84.2.2 *** boilerplate.tex 30 Jul 2003 02:52:32 -0000 1.84.2.1 --- boilerplate.tex 31 Jul 2003 12:45:54 -0000 1.84.2.2 *************** *** 7,11 **** \date{\today} % XXX update before final release! ! \release{2.3+} % software release, not documentation \setreleaseinfo{} % empty for final release \setshortversion{2.3} % major.minor only for software --- 7,11 ---- \date{\today} % XXX update before final release! ! \release{2.3} % software release, not documentation \setreleaseinfo{} % empty for final release \setshortversion{2.3} % major.minor only for software From bwarsaw@users.sourceforge.net Thu Jul 31 15:21:09 2003 From: bwarsaw@users.sourceforge.net (bwarsaw@users.sourceforge.net) Date: Thu, 31 Jul 2003 07:21:09 -0700 Subject: [Python-checkins] python/nondist/peps pep-0101.txt,1.35,1.36 Message-ID: Update of /cvsroot/python/python/nondist/peps In directory sc8-pr-cvs1:/tmp/cvs-serv25586 Modified Files: pep-0101.txt Log Message: Make it clearer that when branching for a final major release, the branch tag should be releaseXY-maint. Index: pep-0101.txt =================================================================== RCS file: /cvsroot/python/python/nondist/peps/pep-0101.txt,v retrieving revision 1.35 retrieving revision 1.36 diff -C2 -d -r1.35 -r1.36 *** pep-0101.txt 30 Jul 2003 00:09:36 -0000 1.35 --- pep-0101.txt 31 Jul 2003 14:21:07 -0000 1.36 *************** *** 40,45 **** release number is given, it is of the form X.YaZ, e.g. 2.1a3 for Python 2.1 alpha 3, where "a" == alpha, "b" == beta, "rc" == ! release candidate. Final releases are named "releaseXY" so the ! branch tag is "releaseXY-branch" and the fork tag on the trunk is "releaseXY-fork". If a micro release number is used, then we'll say X.Y.MaZ. --- 40,48 ---- release number is given, it is of the form X.YaZ, e.g. 2.1a3 for Python 2.1 alpha 3, where "a" == alpha, "b" == beta, "rc" == ! release candidate. ! ! Final releases are named "releaseXY". The branch tag is ! "releaseXY-maint" because this will point to the long lived ! maintenance branch. The fork tag on the trunk is "releaseXY-fork". If a micro release number is used, then we'll say X.Y.MaZ. *************** *** 115,125 **** ___ cvs tag rXYaZ ! To create a branch the following steps are taken: ___ CVS tag the trunk with the symbolic name "releaseXY-fork", e.g. % cvs tag releaseXY-fork ! ___ Make the branch with the symbolic name "releaseXY-branch", e.g. ! % cvs tag -b releaseXY-branch ___ Check out a clean version of the branch into a new directory. --- 118,128 ---- ___ cvs tag rXYaZ ! To create a maintenance branch the following steps are taken: ___ CVS tag the trunk with the symbolic name "releaseXY-fork", e.g. % cvs tag releaseXY-fork ! ___ Make the branch with the symbolic name "releaseXY-maint", e.g. ! % cvs tag -b releaseXY-maint ___ Check out a clean version of the branch into a new directory. *************** *** 128,132 **** % export CVSROOT=cvs.sf.net:/cvsroot/python ! % cvs -q co -d python-22a3 -r release23-branch python/dist/src ___ cd into the branch directory. --- 131,135 ---- % export CVSROOT=cvs.sf.net:/cvsroot/python ! % cvs -q co -d python-22a3 -r release23-maint python/dist/src ___ cd into the branch directory. *************** *** 449,453 **** ___ cd to python-clean and do a "cvs commit". Use as your log ! message something like "Merging the rXYaZ-branch tag back into the trunk". --- 452,456 ---- ___ cd to python-clean and do a "cvs commit". Use as your log ! message something like "Merging the rXYaZ-maint tag back into the trunk". From akuchling@users.sourceforge.net Thu Jul 31 16:12:28 2003 From: akuchling@users.sourceforge.net (akuchling@users.sourceforge.net) Date: Thu, 31 Jul 2003 08:12:28 -0700 Subject: [Python-checkins] python/nondist/peps pep-0101.txt,1.36,1.37 pep-0102.txt,1.9,1.10 Message-ID: Update of /cvsroot/python/python/nondist/peps In directory sc8-pr-cvs1:/tmp/cvs-serv6244 Modified Files: pep-0101.txt pep-0102.txt Log Message: Typo fix Index: pep-0101.txt =================================================================== RCS file: /cvsroot/python/python/nondist/peps/pep-0101.txt,v retrieving revision 1.36 retrieving revision 1.37 diff -C2 -d -r1.36 -r1.37 *** pep-0101.txt 31 Jul 2003 14:21:07 -0000 1.36 --- pep-0101.txt 31 Jul 2003 15:12:25 -0000 1.37 *************** *** 12,16 **** Abstract ! Making a Python release is an arduous processes that takes a minimum of half a day's work even for an experienced releaser. Until recently, most -- if not all -- of that burden was borne by --- 12,16 ---- Abstract ! Making a Python release is an arduous process that takes a minimum of half a day's work even for an experienced releaser. Until recently, most -- if not all -- of that burden was borne by Index: pep-0102.txt =================================================================== RCS file: /cvsroot/python/python/nondist/peps/pep-0102.txt,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** pep-0102.txt 23 May 2003 10:08:03 -0000 1.9 --- pep-0102.txt 31 Jul 2003 15:12:25 -0000 1.10 *************** *** 14,18 **** Abstract ! Making a Python release is an arduous processes that takes a minimum of half a day's work even for an experienced releaser. Until recently, most -- if not all -- of that burden was borne by --- 14,18 ---- Abstract ! Making a Python release is an arduous process that takes a minimum of half a day's work even for an experienced releaser. Until recently, most -- if not all -- of that burden was borne by From jackjansen@users.sourceforge.net Thu Jul 31 20:36:05 2003 From: jackjansen@users.sourceforge.net (jackjansen@users.sourceforge.net) Date: Thu, 31 Jul 2003 12:36:05 -0700 Subject: [Python-checkins] python/dist/src/Lib/test test_posixpath.py,1.9,1.9.4.1 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/test In directory sc8-pr-cvs1:/tmp/cvs-serv22670 Modified Files: Tag: release23-branch test_posixpath.py Log Message: Skip test_ismount on MacOS9. Fixes #776207. Index: test_posixpath.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/test/test_posixpath.py,v retrieving revision 1.9 retrieving revision 1.9.4.1 diff -C2 -d -r1.9 -r1.9.4.1 *** test_posixpath.py 1 Jul 2003 03:33:31 -0000 1.9 --- test_posixpath.py 31 Jul 2003 19:36:03 -0000 1.9.4.1 *************** *** 327,330 **** --- 327,332 ---- def test_ismount(self): + if os.name in ('mac',): + return self.assertIs(posixpath.ismount("/"), True) From jackjansen@users.sourceforge.net Thu Jul 31 20:38:38 2003 From: jackjansen@users.sourceforge.net (jackjansen@users.sourceforge.net) Date: Thu, 31 Jul 2003 12:38:38 -0700 Subject: [Python-checkins] python/dist/src/Lib/test test_strptime.py,1.19,1.19.2.1 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/test In directory sc8-pr-cvs1:/tmp/cvs-serv23085 Modified Files: Tag: release23-branch test_strptime.py Log Message: Skip timezone test on MacOS9. Fixes #776205. Index: test_strptime.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/test/test_strptime.py,v retrieving revision 1.19 retrieving revision 1.19.2.1 diff -C2 -d -r1.19 -r1.19.2.1 *** test_strptime.py 24 Jul 2003 06:27:17 -0000 1.19 --- test_strptime.py 31 Jul 2003 19:38:26 -0000 1.19.2.1 *************** *** 5,8 **** --- 5,9 ---- import locale import re + import sys from test import test_support *************** *** 307,310 **** --- 308,314 ---- strp_output = _strptime.strptime(strf_output, "%Z") locale_time = _strptime.LocaleTime() + if sys.platform == 'mac': + # Timezones don't really work on MacOS9 + return if time.tzname[0] != time.tzname[1] or not time.daylight: self.failUnless(strp_output[8] == time_tuple[8], From jackjansen@users.sourceforge.net Thu Jul 31 20:41:05 2003 From: jackjansen@users.sourceforge.net (jackjansen@users.sourceforge.net) Date: Thu, 31 Jul 2003 12:41:05 -0700 Subject: [Python-checkins] python/dist/src/Lib/test test_urllib.py,1.14,1.14.6.1 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/test In directory sc8-pr-cvs1:/tmp/cvs-serv23471 Modified Files: Tag: release23-branch test_urllib.py Log Message: Call os.path.normpath() before comparing pathnames. Fixes #776203 on MacOS9. Index: test_urllib.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/test/test_urllib.py,v retrieving revision 1.14 retrieving revision 1.14.6.1 diff -C2 -d -r1.14 -r1.14.6.1 *** test_urllib.py 12 May 2003 20:19:37 -0000 1.14 --- test_urllib.py 31 Jul 2003 19:41:03 -0000 1.14.6.1 *************** *** 107,111 **** # a headers value is returned. result = urllib.urlretrieve("file:%s" % test_support.TESTFN) ! self.assertEqual(result[0], test_support.TESTFN) self.assert_(isinstance(result[1], mimetools.Message), "did not get a mimetools.Message instance as second " --- 107,112 ---- # a headers value is returned. result = urllib.urlretrieve("file:%s" % test_support.TESTFN) ! self.assertEqual(os.path.normpath(result[0]), ! os.path.normpath(test_support.TESTFN)) self.assert_(isinstance(result[1], mimetools.Message), "did not get a mimetools.Message instance as second " From jackjansen@users.sourceforge.net Thu Jul 31 20:48:35 2003 From: jackjansen@users.sourceforge.net (jackjansen@users.sourceforge.net) Date: Thu, 31 Jul 2003 12:48:35 -0700 Subject: [Python-checkins] python/dist/src/Lib/test test_uu.py,1.6,1.6.6.1 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/test In directory sc8-pr-cvs1:/tmp/cvs-serv24621 Modified Files: Tag: release23-branch test_uu.py Log Message: Open test file with universal newline read mode. This appears to fix #776202 on MacOS9, but I'm not 100% sure the fix is correct. Index: test_uu.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/test/test_uu.py,v retrieving revision 1.6 retrieving revision 1.6.6.1 diff -C2 -d -r1.6 -r1.6.6.1 *** test_uu.py 6 May 2003 08:57:41 -0000 1.6 --- test_uu.py 31 Jul 2003 19:48:33 -0000 1.6.6.1 *************** *** 143,147 **** f.close() ! f = open(self.tmpout, 'r') s = f.read() f.close() --- 143,147 ---- f.close() ! f = open(self.tmpout, 'rU') s = f.read() f.close() From jackjansen@users.sourceforge.net Thu Jul 31 20:58:03 2003 From: jackjansen@users.sourceforge.net (jackjansen@users.sourceforge.net) Date: Thu, 31 Jul 2003 12:58:03 -0700 Subject: [Python-checkins] python/dist/src/Lib/test test_optparse.py,1.2,1.2.6.1 Message-ID: Update of /cvsroot/python/python/dist/src/Lib/test In directory sc8-pr-cvs1:/tmp/cvs-serv25757 Modified Files: Tag: release23-branch test_optparse.py Log Message: Changed posix-style pathnames to platform-independent ones. Makes the test pass on MacOS9. Index: test_optparse.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/test/test_optparse.py,v retrieving revision 1.2 retrieving revision 1.2.6.1 diff -C2 -d -r1.2 -r1.2.6.1 *** test_optparse.py 1 May 2003 17:45:38 -0000 1.2 --- test_optparse.py 31 Jul 2003 19:58:01 -0000 1.2.6.1 *************** *** 608,612 **** def test_version(self): oldargv = sys.argv[0] ! sys.argv[0] = "./foo/bar" self.parser = OptionParser(usage=SUPPRESS_USAGE, version="%prog 0.1") self.assertStdoutEquals(["--version"], "bar 0.1\n") --- 608,612 ---- def test_version(self): oldargv = sys.argv[0] ! sys.argv[0] = os.path.join(os.curdir, "foo", "bar") self.parser = OptionParser(usage=SUPPRESS_USAGE, version="%prog 0.1") self.assertStdoutEquals(["--version"], "bar 0.1\n") *************** *** 1087,1091 **** # This trick is used to make optparse believe bar.py is being executed. oldargv = sys.argv[0] ! sys.argv[0] = "./foo/bar.py" self.assertStdoutEquals(["-h"], expected_output) --- 1087,1091 ---- # This trick is used to make optparse believe bar.py is being executed. oldargv = sys.argv[0] ! sys.argv[0] = os.path.join(os.curdir, "foo", "bar.py") self.assertStdoutEquals(["-h"], expected_output)