[Python-3000-checkins] r55506 - in python/branches/p3yk: Doc/Makefile.deps Doc/lib/libhttplib.tex Doc/mac/libmacfs.tex Doc/mac/libmacostools.tex Doc/mac/mac.tex Doc/ref/ref5.tex Doc/whatsnew/whatsnew26.tex Lib/binhex.py Lib/collections.py Lib/httplib.py Lib/plat-mac/macfs.py Lib/plat-mac/macostools.py Lib/posixfile.py Lib/test/output/test_extcall Lib/test/regrtest.py Lib/test/test_collections.py Lib/test/test_extcall.py Lib/test/test_httplib.py Lib/test/test_macfs.py Lib/test/test_macostools.py Lib/test/test_sundry.py Misc/developers.txt Modules/_cursesmodule.c Modules/_struct.c Modules/_tkinter.c Modules/datetimemodule.c Objects/typeobject.c PC/config.c PCbuild/pythoncore.vcproj Python/ceval.c README

neal.norwitz python-3000-checkins at python.org
Tue May 22 09:43:35 CEST 2007


Author: neal.norwitz
Date: Tue May 22 09:43:29 2007
New Revision: 55506

Removed:
   python/branches/p3yk/Doc/mac/libmacfs.tex
   python/branches/p3yk/Lib/plat-mac/macfs.py
   python/branches/p3yk/Lib/test/test_macfs.py
Modified:
   python/branches/p3yk/   (props changed)
   python/branches/p3yk/Doc/Makefile.deps
   python/branches/p3yk/Doc/lib/libhttplib.tex
   python/branches/p3yk/Doc/mac/libmacostools.tex
   python/branches/p3yk/Doc/mac/mac.tex
   python/branches/p3yk/Doc/ref/ref5.tex
   python/branches/p3yk/Doc/whatsnew/whatsnew26.tex
   python/branches/p3yk/Lib/binhex.py
   python/branches/p3yk/Lib/collections.py
   python/branches/p3yk/Lib/httplib.py
   python/branches/p3yk/Lib/plat-mac/macostools.py
   python/branches/p3yk/Lib/posixfile.py
   python/branches/p3yk/Lib/test/output/test_extcall
   python/branches/p3yk/Lib/test/regrtest.py
   python/branches/p3yk/Lib/test/test_collections.py
   python/branches/p3yk/Lib/test/test_extcall.py
   python/branches/p3yk/Lib/test/test_httplib.py
   python/branches/p3yk/Lib/test/test_macostools.py
   python/branches/p3yk/Lib/test/test_sundry.py
   python/branches/p3yk/Misc/developers.txt
   python/branches/p3yk/Modules/_cursesmodule.c
   python/branches/p3yk/Modules/_struct.c
   python/branches/p3yk/Modules/_tkinter.c
   python/branches/p3yk/Modules/datetimemodule.c
   python/branches/p3yk/Objects/typeobject.c
   python/branches/p3yk/PC/config.c
   python/branches/p3yk/PCbuild/pythoncore.vcproj
   python/branches/p3yk/Python/ceval.c
   python/branches/p3yk/README
Log:
Merged revisions 55468-55505 via svnmerge from 
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r55468 | neal.norwitz | 2007-05-20 11:06:27 -0700 (Sun, 20 May 2007) | 1 line
  
  rotor is long gone.
........
  r55470 | neal.norwitz | 2007-05-20 11:43:00 -0700 (Sun, 20 May 2007) | 1 line
  
  Update directories/files at the top-level.
........
  r55471 | brett.cannon | 2007-05-20 12:05:06 -0700 (Sun, 20 May 2007) | 2 lines
  
  Try to remove rgbimg from Windows builds.
........
  r55474 | brett.cannon | 2007-05-20 16:17:38 -0700 (Sun, 20 May 2007) | 4 lines
  
  Remove the macfs module.  This led to the deprecation of macostools.touched();
  it completely relied on macfs and is a no-op on OS X according to code
  comments.
........
  r55476 | brett.cannon | 2007-05-20 16:56:18 -0700 (Sun, 20 May 2007) | 3 lines
  
  Move imgfile import to the global namespace to trigger an import error ASAP to
  prevent creation of a test file.
........
  r55477 | brett.cannon | 2007-05-20 16:57:38 -0700 (Sun, 20 May 2007) | 3 lines
  
  Cause posixfile to raise a DeprecationWarning.  Documented as deprecated since
  Ptyhon 1.5.
........
  r55479 | andrew.kuchling | 2007-05-20 17:03:15 -0700 (Sun, 20 May 2007) | 1 line
  
  Note removed modules
........
  r55481 | martin.v.loewis | 2007-05-20 21:35:47 -0700 (Sun, 20 May 2007) | 2 lines
  
  Add Alexandre Vassalotti.
........
  r55482 | george.yoshida | 2007-05-20 21:41:21 -0700 (Sun, 20 May 2007) | 4 lines
  
  fix against r55474 [Remove the macfs module]
  
  Remove "libmacfs.tex" from Makefile.deps and mac/mac.tex.
........
  r55487 | raymond.hettinger | 2007-05-21 01:13:35 -0700 (Mon, 21 May 2007) | 1 line
  
  Replace assertion with straight error-checking.
........
  r55489 | raymond.hettinger | 2007-05-21 09:40:10 -0700 (Mon, 21 May 2007) | 1 line
  
  Allow all alphanumeric and underscores in type and field names.
........
  r55490 | facundo.batista | 2007-05-21 10:32:32 -0700 (Mon, 21 May 2007) | 5 lines
  
  
  Added timeout support to HTTPSConnection, through the 
  socket.create_connection function. Also added a small
  test for this, and updated NEWS file.
........
  r55495 | georg.brandl | 2007-05-21 13:34:16 -0700 (Mon, 21 May 2007) | 2 lines
  
  Patch #1686487: you can now pass any mapping after '**' in function calls.
........
  r55502 | neal.norwitz | 2007-05-21 23:03:36 -0700 (Mon, 21 May 2007) | 1 line
  
  Document new params to HTTPSConnection
........
  r55504 | neal.norwitz | 2007-05-22 00:16:10 -0700 (Tue, 22 May 2007) | 1 line
  
  Stop using METH_OLDARGS
........
  r55505 | neal.norwitz | 2007-05-22 00:16:44 -0700 (Tue, 22 May 2007) | 1 line
  
  Stop using METH_OLDARGS implicitly
........


Modified: python/branches/p3yk/Doc/Makefile.deps
==============================================================================
--- python/branches/p3yk/Doc/Makefile.deps	(original)
+++ python/branches/p3yk/Doc/Makefile.deps	Tue May 22 09:43:29 2007
@@ -349,7 +349,6 @@
 	mac/libaetools.tex \
 	mac/libaepack.tex \
 	mac/libaetypes.tex \
-	mac/libmacfs.tex \
 	mac/libmacos.tex \
 	mac/libmacostools.tex \
 	mac/libmacui.tex \

Modified: python/branches/p3yk/Doc/lib/libhttplib.tex
==============================================================================
--- python/branches/p3yk/Doc/lib/libhttplib.tex	(original)
+++ python/branches/p3yk/Doc/lib/libhttplib.tex	Tue May 22 09:43:29 2007
@@ -51,7 +51,9 @@
 \versionadded{2.0}
 \end{classdesc}
 
-\begin{classdesc}{HTTPSConnection}{host\optional{, port, key_file, cert_file}}
+\begin{classdesc}{HTTPSConnection}{host\optional{, port\optional{,
+		  key_file\optional{, cert_file\optional{,
+		  strict\optional{, timeout}}}}}}
 A subclass of \class{HTTPConnection} that uses SSL for communication with
 secure servers.  Default port is \code{443}.
 \var{key_file} is

Deleted: /python/branches/p3yk/Doc/mac/libmacfs.tex
==============================================================================
--- /python/branches/p3yk/Doc/mac/libmacfs.tex	Tue May 22 09:43:29 2007
+++ (empty file)
@@ -1,241 +0,0 @@
-\section{\module{macfs} ---
-         Various file system services}
-
-\declaremodule{standard}{macfs}
-  \platform{Mac}
-\modulesynopsis{Support for FSSpec, the Alias Manager,
-                \program{finder} aliases, and the Standard File package.}
-
-\deprecated{2.3}{The macfs module should be considered obsolete. For
-\class{FSSpec}, \class{FSRef} and \class{Alias} handling use the
-\module{Carbon.File} or \refmodule{Carbon.Folder} module. For file
-dialogs use the \refmodule{EasyDialogs} module.  Also, this module is
-known to not work correctly with UFS partitions.}
-
-This module provides access to Macintosh \class{FSSpec} handling, the
-Alias Manager, \program{finder} aliases and the Standard File package.
-\index{Macintosh Alias Manager}
-\index{Alias Manager, Macintosh}
-\index{Standard File}
-
-Whenever a function or method expects a \var{file} argument, this
-argument can be one of three things:\ (1) a full or partial Macintosh
-pathname, (2) an \class{FSSpec} object or (3) a 3-tuple
-\code{(\var{wdRefNum}, \var{parID}, \var{name})} as described in
-\citetitle{Inside Macintosh:\ Files}.  An \class{FSSpec} can point to
-a non-existing file, as long as the folder containing the file exists.
-Under MacPython the same is true for a pathname, but not under \UNIX-Python
-because of the way pathnames and FSRefs works.  See Apple's documentation
-for details.
-
-A description of aliases and the
-Standard File package can also be found there.
-
-\begin{funcdesc}{FSSpec}{file}
-Create an \class{FSSpec} object for the specified file.
-\end{funcdesc}
-
-\begin{funcdesc}{RawFSSpec}{data}
-Create an \class{FSSpec} object given the raw data for the \C{}
-structure for the \class{FSSpec} as a string.  This is mainly useful
-if you have obtained an \class{FSSpec} structure over a network.
-\end{funcdesc}
-
-\begin{funcdesc}{RawAlias}{data}
-Create an \class{Alias} object given the raw data for the \C{}
-structure for the alias as a string.  This is mainly useful if you
-have obtained an \class{FSSpec} structure over a network.
-\end{funcdesc}
-
-\begin{funcdesc}{FInfo}{}
-Create a zero-filled \class{FInfo} object.
-\end{funcdesc}
-
-\begin{funcdesc}{ResolveAliasFile}{file}
-Resolve an alias file. Returns a 3-tuple \code{(\var{fsspec},
-\var{isfolder}, \var{aliased})} where \var{fsspec} is the resulting
-\class{FSSpec} object, \var{isfolder} is true if \var{fsspec} points
-to a folder and \var{aliased} is true if the file was an alias in the
-first place (otherwise the \class{FSSpec} object for the file itself
-is returned).
-\end{funcdesc}
-
-\begin{funcdesc}{StandardGetFile}{\optional{type, \moreargs}}
-Present the user with a standard ``open input file''
-dialog. Optionally, you can pass up to four 4-character file types to limit
-the files the user can choose from. The function returns an \class{FSSpec}
-object and a flag indicating that the user completed the dialog
-without cancelling.
-\end{funcdesc}
-
-\begin{funcdesc}{PromptGetFile}{prompt\optional{, type, \moreargs}}
-Similar to \function{StandardGetFile()} but allows you to specify a
-prompt which will be displayed at the top of the dialog.
-\end{funcdesc}
-
-\begin{funcdesc}{StandardPutFile}{prompt\optional{, default}}
-Present the user with a standard ``open output file''
-dialog. \var{prompt} is the prompt string, and the optional
-\var{default} argument initializes the output file name. The function
-returns an \class{FSSpec} object and a flag indicating that the user
-completed the dialog without cancelling.
-\end{funcdesc}
-
-\begin{funcdesc}{GetDirectory}{\optional{prompt}}
-Present the user with a non-standard ``select a directory'' dialog.  You
-have to first open the directory before clicking on the ``select current
-directory'' button. \var{prompt} is the prompt string which will be
-displayed at the top of the dialog. Return an \class{FSSpec} object and
-a success-indicator.
-\end{funcdesc}
-
-\begin{funcdesc}{SetFolder}{\optional{fsspec}}
-Set the folder that is initially presented to the user when one of
-the file selection dialogs is presented. \var{fsspec} should point to
-a file in the folder, not the folder itself (the file need not exist,
-though). If no argument is passed the folder will be set to the
-current directory, i.e. what \function{os.getcwd()} returns.
-
-Note that starting with System 7.5 the user can change Standard File
-behaviour with the ``general controls'' control panel, thereby making
-this call inoperative.
-\end{funcdesc}
-
-\begin{funcdesc}{FindFolder}{where, which, create}
-Locates one of the ``special'' folders that Mac OS knows about, such as
-the trash or the Preferences folder. \var{where} is the disk to
-search, \var{which} is the 4-character string specifying which folder to
-locate. Setting \var{create} causes the folder to be created if it
-does not exist. Returns a \code{(\var{vrefnum}, \var{dirid})} tuple.
-
-The constants for \var{where} and \var{which} can be obtained from the
-standard module \var{Carbon.Folders}.
-\end{funcdesc}
-
-\begin{funcdesc}{NewAliasMinimalFromFullPath}{pathname}
-Return a minimal \class{alias} object that points to the given file, which
-must be specified as a full pathname. This is the only way to create an
-\class{Alias} pointing to a non-existing file.
-
-\end{funcdesc}
-
-\begin{funcdesc}{FindApplication}{creator}
-Locate the application with 4-character creator code \var{creator}. The
-function returns an \class{FSSpec} object pointing to the application.
-\end{funcdesc}
-
-
-\subsection{FSSpec Objects \label{fsspec-objects}}
-
-\begin{memberdesc}[FSSpec]{data}
-The raw data from the FSSpec object, suitable for passing
-to other applications, for instance.
-\end{memberdesc}
-
-\begin{methoddesc}[FSSpec]{as_pathname}{}
-Return the full pathname of the file described by the \class{FSSpec}
-object.
-\end{methoddesc}
-
-\begin{methoddesc}[FSSpec]{as_tuple}{}
-Return the \code{(\var{wdRefNum}, \var{parID}, \var{name})} tuple of
-the file described by the \class{FSSpec} object.
-\end{methoddesc}
-
-\begin{methoddesc}[FSSpec]{NewAlias}{\optional{file}}
-Create an Alias object pointing to the file described by this
-FSSpec. If the optional \var{file} parameter is present the alias
-will be relative to that file, otherwise it will be absolute.
-\end{methoddesc}
-
-\begin{methoddesc}[FSSpec]{NewAliasMinimal}{}
-Create a minimal alias pointing to this file.
-\end{methoddesc}
-
-\begin{methoddesc}[FSSpec]{GetCreatorType}{}
-Return the 4-character creator and type of the file.
-\end{methoddesc}
-
-\begin{methoddesc}[FSSpec]{SetCreatorType}{creator, type}
-Set the 4-character creator and type of the file.
-\end{methoddesc}
-
-\begin{methoddesc}[FSSpec]{GetFInfo}{}
-Return a \class{FInfo} object describing the finder info for the file.
-\end{methoddesc}
-
-\begin{methoddesc}[FSSpec]{SetFInfo}{finfo}
-Set the finder info for the file to the values given as \var{finfo}
-(an \class{FInfo} object).
-\end{methoddesc}
-
-\begin{methoddesc}[FSSpec]{GetDates}{}
-Return a tuple with three floating point values representing the
-creation date, modification date and backup date of the file.
-\end{methoddesc}
-
-\begin{methoddesc}[FSSpec]{SetDates}{crdate, moddate, backupdate}
-Set the creation, modification and backup date of the file. The values
-are in the standard floating point format used for times throughout
-Python.
-\end{methoddesc}
-
-
-\subsection{Alias Objects \label{alias-objects}}
-
-\begin{memberdesc}[Alias]{data}
-The raw data for the Alias record, suitable for storing in a resource
-or transmitting to other programs.
-\end{memberdesc}
-
-\begin{methoddesc}[Alias]{Resolve}{\optional{file}}
-Resolve the alias. If the alias was created as a relative alias you
-should pass the file relative to which it is. Return the FSSpec for
-the file pointed to and a flag indicating whether the \class{Alias} object
-itself was modified during the search process. If the file does
-not exist but the path leading up to it does exist a valid fsspec
-is returned.
-\end{methoddesc}
-
-\begin{methoddesc}[Alias]{GetInfo}{num}
-An interface to the \C{} routine \cfunction{GetAliasInfo()}.
-\end{methoddesc}
-
-\begin{methoddesc}[Alias]{Update}{file\optional{, file2}}
-Update the alias to point to the \var{file} given. If \var{file2} is
-present a relative alias will be created.
-\end{methoddesc}
-
-Note that it is currently not possible to directly manipulate a
-resource as an \class{Alias} object. Hence, after calling
-\method{Update()} or after \method{Resolve()} indicates that the alias
-has changed the Python program is responsible for getting the
-\member{data} value from the \class{Alias} object and modifying the
-resource.
-
-
-\subsection{FInfo Objects \label{finfo-objects}}
-
-See \citetitle{Inside Macintosh: Files} for a complete description of what
-the various fields mean.
-
-\begin{memberdesc}[FInfo]{Creator}
-The 4-character creator code of the file.
-\end{memberdesc}
-
-\begin{memberdesc}[FInfo]{Type}
-The 4-character type code of the file.
-\end{memberdesc}
-
-\begin{memberdesc}[FInfo]{Flags}
-The finder flags for the file as 16-bit integer. The bit values in
-\var{Flags} are defined in standard module \module{MACFS}.
-\end{memberdesc}
-
-\begin{memberdesc}[FInfo]{Location}
-A Point giving the position of the file's icon in its folder.
-\end{memberdesc}
-
-\begin{memberdesc}[FInfo]{Fldr}
-The folder the file is in (as an integer).
-\end{memberdesc}

Modified: python/branches/p3yk/Doc/mac/libmacostools.tex
==============================================================================
--- python/branches/p3yk/Doc/mac/libmacostools.tex	(original)
+++ python/branches/p3yk/Doc/mac/libmacostools.tex	Tue May 22 09:43:29 2007
@@ -39,6 +39,7 @@
 or type for file \var{dst} has changed. The file can be specified by
 pathname or fsspec. This call should tell the finder to redraw the
 files icon.
+\deprecated{2.6}{The function is a no-op on OS X.}
 \end{funcdesc}
 
 \begin{datadesc}{BUFSIZ}

Modified: python/branches/p3yk/Doc/mac/mac.tex
==============================================================================
--- python/branches/p3yk/Doc/mac/mac.tex	(original)
+++ python/branches/p3yk/Doc/mac/mac.tex	Tue May 22 09:43:29 2007
@@ -51,7 +51,6 @@
 \localmoduletable
 
 \input{libmac}
-\input{libmacfs}
 \input{libmacic}
 \input{libmacos}
 \input{libmacostools}

Modified: python/branches/p3yk/Doc/ref/ref5.tex
==============================================================================
--- python/branches/p3yk/Doc/ref/ref5.tex	(original)
+++ python/branches/p3yk/Doc/ref/ref5.tex	Tue May 22 09:43:29 2007
@@ -660,7 +660,7 @@
 this confusion does not arise.
 
 If the syntax \samp{**expression} appears in the function call,
-\samp{expression} must evaluate to a (subclass of) dictionary, the
+\samp{expression} must evaluate to a mapping, the
 contents of which are treated as additional keyword arguments.  In the
 case of a keyword appearing in both \samp{expression} and as an
 explicit keyword argument, a \exception{TypeError} exception is

Modified: python/branches/p3yk/Doc/whatsnew/whatsnew26.tex
==============================================================================
--- python/branches/p3yk/Doc/whatsnew/whatsnew26.tex	(original)
+++ python/branches/p3yk/Doc/whatsnew/whatsnew26.tex	Tue May 22 09:43:29 2007
@@ -147,6 +147,8 @@
 
 (Contributed by Fabian Kreutz.)
 
+\item The \module{gopherlib} module has been removed.
+
 \item New function in the \module{heapq} module:
 \function{merge(iter1, iter2, ...)} 
 takes any number of iterables that return data 
@@ -175,6 +177,10 @@
 
 (Contributed by Raymond Hettinger.)
 
+\item The \module{macfs} module has been removed.  This in turn
+required the \function{macostools.touched()} function to be removed
+because it depended on the \module{macfs} module.
+
 % Patch #1490190
 \item New functions in the \module{posix} module: \function{chflags()}
 and \function{lchflags()} are wrappers for the corresponding system
@@ -184,6 +190,8 @@
 \constant{UF_APPEND} to indicate that data can only be appended to the
 file.  (Contributed by M. Levinson.)
 
+\item The \module{rgbimg} module has been removed.
+
 \item The \module{smtplib} module now supports SMTP over 
 SSL thanks to the addition of the \class{SMTP_SSL} class.
 This class supports an interface identical to the existing \class{SMTP} 

Modified: python/branches/p3yk/Lib/binhex.py
==============================================================================
--- python/branches/p3yk/Lib/binhex.py	(original)
+++ python/branches/p3yk/Lib/binhex.py	Tue May 22 09:43:29 2007
@@ -511,14 +511,7 @@
     ifp.close()
 
 def _test():
-    if os.name == 'mac':
-        import macfs
-        fss, ok = macfs.PromptGetFile('File to convert:')
-        if not ok:
-            sys.exit(0)
-        fname = fss.as_pathname()
-    else:
-        fname = sys.argv[1]
+    fname = sys.argv[1]
     binhex(fname, fname+'.hqx')
     hexbin(fname+'.hqx', fname+'.viahqx')
     #hexbin(fname, fname+'.unpacked')

Modified: python/branches/p3yk/Lib/collections.py
==============================================================================
--- python/branches/p3yk/Lib/collections.py	(original)
+++ python/branches/p3yk/Lib/collections.py	Tue May 22 09:43:29 2007
@@ -24,7 +24,8 @@
     """
 
     field_names = s.split()
-    assert ''.join(field_names).replace('_', '').isalpha()      # protect against exec attacks
+    if not ''.join([typename] + field_names).replace('_', '').isalnum():
+        raise ValueError('Type names and field names can only contain alphanumeric characters and underscores')
     argtxt = ', '.join(field_names)
     reprtxt = ', '.join('%s=%%r' % name for name in field_names)
     template = '''class %(typename)s(tuple):

Modified: python/branches/p3yk/Lib/httplib.py
==============================================================================
--- python/branches/p3yk/Lib/httplib.py	(original)
+++ python/branches/p3yk/Lib/httplib.py	Tue May 22 09:43:29 2007
@@ -1126,16 +1126,15 @@
     default_port = HTTPS_PORT
 
     def __init__(self, host, port=None, key_file=None, cert_file=None,
-                 strict=None):
-        HTTPConnection.__init__(self, host, port, strict)
+                 strict=None, timeout=None):
+        HTTPConnection.__init__(self, host, port, strict, timeout)
         self.key_file = key_file
         self.cert_file = cert_file
 
     def connect(self):
         "Connect to a host on a given (SSL) port."
 
-        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
-        sock.connect((self.host, self.port))
+        sock = socket.create_connection((self.host, self.port), self.timeout)
         ssl = socket.ssl(sock, self.key_file, self.cert_file)
         self.sock = FakeSocket(sock, ssl)
 

Deleted: /python/branches/p3yk/Lib/plat-mac/macfs.py
==============================================================================
--- /python/branches/p3yk/Lib/plat-mac/macfs.py	Tue May 22 09:43:29 2007
+++ (empty file)
@@ -1,198 +0,0 @@
-"""macfs - Pure Python module designed to be backward compatible with
-macfs and MACFS.
-"""
-import sys
-import struct
-import Carbon.Res
-import Carbon.File
-import warnings
-
-warnings.warn("macfs is deprecated, use Carbon.File, Carbon.Folder or EasyDialogs",
-              DeprecationWarning, stacklevel=2)
-
-# First step: ensure we also emulate the MACFS module, which contained
-# all the constants
-
-sys.modules['MACFS'] = sys.modules[__name__]
-
-# Import all those constants
-from Carbon.Files import *
-from Carbon.Folders import *
-
-# For some obscure historical reason these are here too:
-READ = 1
-WRITE = 2
-smAllScripts = -3
-
-#
-# Find the epoch conversion for file dates in a way that works on OS9 and OSX
-import time
-if time.gmtime(0)[0] == 1970:
-    _EPOCHCONVERT = -((1970-1904)*365 + 17) * (24*60*60) + 0x100000000
-    def _utc2time(utc):
-        t = utc[1] + _EPOCHCONVERT
-        return int(t)
-    def _time2utc(t):
-        t = int(t) - _EPOCHCONVERT
-        if t < -0x7fffffff:
-            t = t + 0x10000000
-        return (0, int(t), 0)
-else:
-    def _utc2time(utc):
-        t = utc[1]
-        if t < 0:
-            t = t + 0x100000000
-        return t
-    def _time2utc(t):
-        if t > 0x7fffffff:
-            t = t - 0x100000000
-        return (0, int(t), 0)
-
-# The old name of the error object:
-error = Carbon.File.Error
-
-#
-# The various objects macfs used to export. We override them here, because some
-# of the method names are subtly different.
-#
-class FSSpec(Carbon.File.FSSpec):
-    def as_fsref(self):
-        return FSRef(self)
-
-    def NewAlias(self, src=None):
-        return Alias(Carbon.File.NewAlias(src, self))
-
-    def GetCreatorType(self):
-        finfo = self.FSpGetFInfo()
-        return finfo.Creator, finfo.Type
-
-    def SetCreatorType(self, ctor, tp):
-        finfo = self.FSpGetFInfo()
-        finfo.Creator = ctor
-        finfo.Type = tp
-        self.FSpSetFInfo(finfo)
-
-    def GetFInfo(self):
-        return self.FSpGetFInfo()
-
-    def SetFInfo(self, info):
-        return self.FSpSetFInfo(info)
-
-    def GetDates(self):
-        catInfoFlags = kFSCatInfoCreateDate|kFSCatInfoContentMod|kFSCatInfoBackupDate
-        catinfo, d1, d2, d3 = FSRef(self).FSGetCatalogInfo(catInfoFlags)
-        cdate = catinfo.createDate
-        mdate = catinfo.contentModDate
-        bdate = catinfo.backupDate
-        return _utc2time(cdate), _utc2time(mdate), _utc2time(bdate)
-
-    def SetDates(self, cdate, mdate, bdate):
-        catInfoFlags = kFSCatInfoCreateDate|kFSCatInfoContentMod|kFSCatInfoBackupDate
-        catinfo = Carbon.File.FSCatalogInfo(
-            createDate = _time2utc(cdate),
-            contentModDate = _time2utc(mdate),
-            backupDate = _time2utc(bdate))
-        FSRef(self).FSSetCatalogInfo(catInfoFlags, catinfo)
-
-class FSRef(Carbon.File.FSRef):
-    def as_fsspec(self):
-        return FSSpec(self)
-
-class Alias(Carbon.File.Alias):
-
-    def GetInfo(self, index):
-        return self.GetAliasInfo(index)
-
-    def Update(self, *args):
-        pass # print "Alias.Update not yet implemented"
-
-    def Resolve(self, src=None):
-        fss, changed = self.ResolveAlias(src)
-        return FSSpec(fss), changed
-
-from Carbon.File import FInfo
-
-# Backward-compatible type names:
-FSSpecType = FSSpec
-FSRefType = FSRef
-AliasType = Alias
-FInfoType = FInfo
-
-# Global functions:
-def ResolveAliasFile(fss, chain=1):
-    fss, isdir, isalias = Carbon.File.ResolveAliasFile(fss, chain)
-    return FSSpec(fss), isdir, isalias
-
-def RawFSSpec(data):
-    return FSSpec(rawdata=data)
-
-def RawAlias(data):
-    return Alias(rawdata=data)
-
-def FindApplication(*args):
-    raise NotImplementedError, "FindApplication no longer implemented"
-
-def NewAliasMinimalFromFullPath(path):
-    return Alias(Carbon.File.NewAliasMinimalFromFullPath(path, '', ''))
-
-# Another global function:
-from Carbon.Folder import FindFolder
-
-#
-# Finally the old Standard File routine emulators.
-#
-
-_curfolder = None
-
-def StandardGetFile(*typelist):
-    """Ask for an input file, optionally specifying 4-char file types that are
-    allowable"""
-    return PromptGetFile('', *typelist)
-
-def PromptGetFile(prompt, *typelist):
-    """Ask for an input file giving the user a prompt message. Optionally you can
-    specifying 4-char file types that are allowable"""
-    import EasyDialogs
-    warnings.warn("macfs.StandardGetFile and friends are deprecated, use EasyDialogs.AskFileForOpen",
-              DeprecationWarning, stacklevel=2)
-    if not typelist:
-        typelist = None
-    fss = EasyDialogs.AskFileForOpen(message=prompt, wanted=FSSpec,
-        typeList=typelist, defaultLocation=_handleSetFolder())
-    return fss, not fss is None
-
-def StandardPutFile(prompt, default=None):
-    """Ask the user for an output file, with a prompt. Optionally you cn supply a
-    default output filename"""
-    import EasyDialogs
-    warnings.warn("macfs.StandardGetFile and friends are deprecated, use EasyDialogs.AskFileForOpen",
-              DeprecationWarning, stacklevel=2)
-    fss = EasyDialogs.AskFileForSave(wanted=FSSpec, message=prompt,
-    savedFileName=default, defaultLocation=_handleSetFolder())
-    return fss, not fss is None
-
-def SetFolder(folder):
-    global _curfolder
-    warnings.warn("macfs.StandardGetFile and friends are deprecated, use EasyDialogs.AskFileForOpen",
-              DeprecationWarning, stacklevel=2)
-    if _curfolder:
-        rv = FSSpec(_curfolder)
-    else:
-        rv = None
-    _curfolder = folder
-    return rv
-
-def _handleSetFolder():
-    global _curfolder
-    rv = _curfolder
-    _curfolder = None
-    return rv
-
-def GetDirectory(prompt=None):
-    """Ask the user to select a folder. Optionally you can give a prompt."""
-    import EasyDialogs
-    warnings.warn("macfs.StandardGetFile and friends are deprecated, use EasyDialogs.AskFileForOpen",
-              DeprecationWarning, stacklevel=2)
-    fss = EasyDialogs.AskFolder(message=prompt, wanted=FSSpec,
-        defaultLocation=_handleSetFolder())
-    return fss, not fss is None

Modified: python/branches/p3yk/Lib/plat-mac/macostools.py
==============================================================================
--- python/branches/p3yk/Lib/plat-mac/macostools.py	(original)
+++ python/branches/p3yk/Lib/plat-mac/macostools.py	Tue May 22 09:43:29 2007
@@ -65,21 +65,9 @@
 
 def touched(dst):
     """Tell the finder a file has changed. No-op on MacOSX."""
-    if sys.platform != 'mac': return
     import warnings
-    warnings.filterwarnings("ignore", "macfs.*", DeprecationWarning, __name__)
-    import macfs
-    file_fss = macfs.FSSpec(dst)
-    vRefNum, dirID, name = file_fss.as_tuple()
-    dir_fss = macfs.FSSpec((vRefNum, dirID, ''))
-    crdate, moddate, bkdate = dir_fss.GetDates()
-    now = time.time()
-    if now == moddate:
-        now = now + 1
-    try:
-        dir_fss.SetDates(crdate, now, bkdate)
-    except macfs.error:
-        pass
+    warnings.warn("macostools.touched() has been deprecated",
+                    DeprecationWarning, 2)
 
 def touched_ae(dst):
     """Tell the finder a file has changed"""
@@ -129,7 +117,6 @@
         dstfsr = File.FSRef(dst)
         catinfo, _, _, _ = srcfsr.FSGetCatalogInfo(Files.kFSCatInfoAllDates)
         dstfsr.FSSetCatalogInfo(Files.kFSCatInfoAllDates, catinfo)
-    touched(dstfss)
 
 def copytree(src, dst, copydates=1):
     """Copy a complete file tree to a new destination"""

Modified: python/branches/p3yk/Lib/posixfile.py
==============================================================================
--- python/branches/p3yk/Lib/posixfile.py	(original)
+++ python/branches/p3yk/Lib/posixfile.py	Tue May 22 09:43:29 2007
@@ -52,7 +52,9 @@
       note: - the '?' modifier prevents a region from being locked; it is
               query only
 """
-
+import warnings
+warnings.warn("The posixfile module is deprecated; "
+                "fcntl.lockf() provides better locking", DeprecationWarning, 2)
 
 class _posixfile_:
     """File wrapper class that provides extra POSIX file routines."""

Modified: python/branches/p3yk/Lib/test/output/test_extcall
==============================================================================
--- python/branches/p3yk/Lib/test/output/test_extcall	(original)
+++ python/branches/p3yk/Lib/test/output/test_extcall	Tue May 22 09:43:29 2007
@@ -9,6 +9,9 @@
 (1, 2, 3) {'a': 4, 'b': 5}
 (1, 2, 3, 4, 5) {'a': 6, 'b': 7}
 (1, 2, 3, 6, 7) {'a': 8, 'b': 9, 'x': 4, 'y': 5}
+(1, 2, 3) {'a': 4, 'b': 5}
+(1, 2, 3, 4, 5) {'a': 6, 'b': 7}
+(1, 2, 3, 6, 7) {'a': 8, 'b': 9, 'x': 4, 'y': 5}
 TypeError: g() takes at least 1 positional argument (0 given)
 TypeError: g() takes at least 1 positional argument (0 given)
 TypeError: g() takes at least 1 positional argument (0 given)
@@ -25,12 +28,12 @@
 g() got multiple values for keyword argument 'b'
 f() keywords must be strings
 h() got an unexpected keyword argument 'e'
-h() argument after * must be a sequence
-dir() argument after * must be a sequence
-NoneType object argument after * must be a sequence
-h() argument after ** must be a dictionary
-dir() argument after ** must be a dictionary
-NoneType object argument after ** must be a dictionary
+h() argument after * must be a sequence, not function
+dir() argument after * must be a sequence, not function
+NoneType object argument after * must be a sequence, not function
+h() argument after ** must be a mapping, not function
+dir() argument after ** must be a mapping, not function
+NoneType object argument after ** must be a mapping, not function
 dir() got multiple values for keyword argument 'b'
 3 512 True
 3

Modified: python/branches/p3yk/Lib/test/regrtest.py
==============================================================================
--- python/branches/p3yk/Lib/test/regrtest.py	(original)
+++ python/branches/p3yk/Lib/test/regrtest.py	Tue May 22 09:43:29 2007
@@ -1108,7 +1108,6 @@
         test_gdbm
         test_linuxaudiodev
         test_locale
-        test_macfs
         test_macostools
         test_nis
         test_ossaudiodev
@@ -1139,7 +1138,6 @@
         test_gdbm
         test_gzip
         test_linuxaudiodev
-        test_macfs
         test_macostools
         test_nis
         test_ossaudiodev
@@ -1163,7 +1161,6 @@
         test_gdbm
         test_linuxaudiodev
         test_locale
-        test_macfs
         test_macostools
         test_nis
         test_normalization
@@ -1191,7 +1188,6 @@
         test_gdbm
         test_linuxaudiodev
         test_locale
-        test_macfs
         test_macostools
         test_nis
         test_ossaudiodev
@@ -1230,7 +1226,7 @@
                 self.expected.add('test_timeout')
 
             if not sys.platform in ("mac", "darwin"):
-                MAC_ONLY = ["test_macostools", "test_macfs", "test_aepack",
+                MAC_ONLY = ["test_macostools", "test_aepack",
                             "test_plistlib", "test_scriptpackages"]
                 for skip in MAC_ONLY:
                     self.expected.add(skip)

Modified: python/branches/p3yk/Lib/test/test_collections.py
==============================================================================
--- python/branches/p3yk/Lib/test/test_collections.py	(original)
+++ python/branches/p3yk/Lib/test/test_collections.py	Tue May 22 09:43:29 2007
@@ -11,6 +11,9 @@
         self.assertEqual(Point.__slots__, ())
         self.assertEqual(Point.__module__, __name__)
         self.assertEqual(Point.__getitem__, tuple.__getitem__)
+        self.assertRaises(ValueError, NamedTuple, 'abc%', 'def ghi')
+        self.assertRaises(ValueError, NamedTuple, 'abc', 'def g%hi')
+        NamedTuple('Point0', 'x1 y2')   # Verify that numbers are allowed in names
 
     def test_instance(self):
         Point = NamedTuple('Point', 'x y')

Modified: python/branches/p3yk/Lib/test/test_extcall.py
==============================================================================
--- python/branches/p3yk/Lib/test/test_extcall.py	(original)
+++ python/branches/p3yk/Lib/test/test_extcall.py	Tue May 22 09:43:29 2007
@@ -1,5 +1,6 @@
 from test.test_support import verify, verbose, TestFailed, sortdict
 from UserList import UserList
+from UserDict import UserDict
 
 def e(a, b):
     print(a, b)
@@ -25,6 +26,12 @@
 f(1, 2, 3, *(4, 5), **{'a':6, 'b':7})
 f(1, 2, 3, x=4, y=5, *(6, 7), **{'a':8, 'b':9})
 
+
+f(1, 2, 3, **UserDict(a=4, b=5))
+f(1, 2, 3, *(4, 5), **UserDict(a=6, b=7))
+f(1, 2, 3, x=4, y=5, *(6, 7), **UserDict(a=8, b=9))
+
+
 # Verify clearing of SF bug #733667
 try:
     e(c=3)

Modified: python/branches/p3yk/Lib/test/test_httplib.py
==============================================================================
--- python/branches/p3yk/Lib/test/test_httplib.py	(original)
+++ python/branches/p3yk/Lib/test/test_httplib.py	Tue May 22 09:43:29 2007
@@ -194,8 +194,16 @@
         httpConn.close()
 
 
+class HTTPSTimeoutTest(TestCase):
+# XXX Here should be tests for HTTPS, there isn't any right now!
+
+    def test_attributes(self):
+        # simple test to check it's storing it
+        h = httplib.HTTPSConnection(HOST, PORT, timeout=30)
+        self.assertEqual(h.timeout, 30)
+
 def test_main(verbose=None):
-    test_support.run_unittest(HeaderTests, OfflineTest, BasicTest, TimeoutTest)
+    test_support.run_unittest(HeaderTests, OfflineTest, BasicTest, TimeoutTest, HTTPSTimeoutTest)
 
 if __name__ == '__main__':
     test_main()

Deleted: /python/branches/p3yk/Lib/test/test_macfs.py
==============================================================================
--- /python/branches/p3yk/Lib/test/test_macfs.py	Tue May 22 09:43:29 2007
+++ (empty file)
@@ -1,78 +0,0 @@
-# Copyright (C) 2003 Python Software Foundation
-
-import unittest
-import warnings
-warnings.filterwarnings("ignore", "macfs.*", DeprecationWarning, __name__)
-import macfs
-import os
-import sys
-import tempfile
-from test import test_support
-
-class TestMacfs(unittest.TestCase):
-
-    def setUp(self):
-        fp = open(test_support.TESTFN, 'w')
-        fp.write('hello world\n')
-        fp.close()
-
-    def tearDown(self):
-        try:
-            os.unlink(test_support.TESTFN)
-        except:
-            pass
-
-    def test_fsspec(self):
-        fss = macfs.FSSpec(test_support.TESTFN)
-        self.assertEqual(os.path.realpath(test_support.TESTFN), fss.as_pathname())
-
-    def test_fsref(self):
-        fsr = macfs.FSRef(test_support.TESTFN)
-        self.assertEqual(os.path.realpath(test_support.TESTFN), fsr.as_pathname())
-
-    def test_fsref_unicode(self):
-        if sys.getfilesystemencoding():
-            testfn_unicode = unicode(test_support.TESTFN)
-            fsr = macfs.FSRef(testfn_unicode)
-            self.assertEqual(os.path.realpath(test_support.TESTFN), fsr.as_pathname())
-
-    def test_coercion(self):
-        fss = macfs.FSSpec(test_support.TESTFN)
-        fsr = macfs.FSRef(test_support.TESTFN)
-        fss2 = fsr.as_fsspec()
-        fsr2 = fss.as_fsref()
-        self.assertEqual(fss.as_pathname(), fss2.as_pathname())
-        self.assertEqual(fsr.as_pathname(), fsr2.as_pathname())
-
-    def test_dates(self):
-        import time
-        fss = macfs.FSSpec(test_support.TESTFN)
-        now = int(time.time())
-        fss.SetDates(now, now+1, now+2)
-        dates = fss.GetDates()
-        self.assertEqual(dates, (now, now+1, now+2))
-
-    def test_ctor_type(self):
-        fss = macfs.FSSpec(test_support.TESTFN)
-        fss.SetCreatorType('Pyth', 'TEXT')
-        filecr, filetp = fss.GetCreatorType()
-        self.assertEqual((filecr, filetp), ('Pyth', 'TEXT'))
-
-    def test_alias(self):
-        fss = macfs.FSSpec(test_support.TESTFN)
-        alias = fss.NewAlias()
-        fss2, changed = alias.Resolve()
-        self.assertEqual(changed, 0)
-        self.assertEqual(fss.as_pathname(), fss2.as_pathname())
-
-
-    def test_fss_alias(self):
-        fss = macfs.FSSpec(test_support.TESTFN)
-
-
-def test_main():
-    test_support.run_unittest(TestMacfs)
-
-
-if __name__ == '__main__':
-    test_main()

Modified: python/branches/p3yk/Lib/test/test_macostools.py
==============================================================================
--- python/branches/p3yk/Lib/test/test_macostools.py	(original)
+++ python/branches/p3yk/Lib/test/test_macostools.py	Tue May 22 09:43:29 2007
@@ -51,7 +51,11 @@
 
     def test_touched(self):
         # This really only tests that nothing unforeseen happens.
-        macostools.touched(test_support.TESTFN)
+        import warnings
+        with test_support.guard_warnings_filter():
+            warnings.filterwarnings('ignore', 'macostools.touched*',
+                                    DeprecationWarning)
+            macostools.touched(test_support.TESTFN)
 
     def test_copy(self):
         try:

Modified: python/branches/p3yk/Lib/test/test_sundry.py
==============================================================================
--- python/branches/p3yk/Lib/test/test_sundry.py	(original)
+++ python/branches/p3yk/Lib/test/test_sundry.py	Tue May 22 09:43:29 2007
@@ -1,69 +1,72 @@
 """Do a minimal test of all the modules that aren't otherwise tested."""
 
+from test.test_support import guard_warnings_filter
 import warnings
-warnings.filterwarnings('ignore', r".*posixfile module",
-                        DeprecationWarning, 'posixfile$')
 
-from test.test_support import verbose
+with guard_warnings_filter():
+    warnings.filterwarnings('ignore', r".*posixfile",
+                            DeprecationWarning)
 
-import BaseHTTPServer
-import DocXMLRPCServer
-import CGIHTTPServer
-import SimpleHTTPServer
-import SimpleXMLRPCServer
-import aifc
-import audiodev
-import bdb
-import cgitb
-import cmd
-import code
-import compileall
-import encodings
-import formatter
-import ftplib
-import getpass
-import htmlentitydefs
-import ihooks
-import imghdr
-import imputil
-import keyword
-import linecache
-import macurl2path
-import mailcap
-import mimify
-import mutex
-import nntplib
-import nturl2path
-import opcode
-import os2emxpath
-import pdb
-import pipes
-#import poplib
-import posixfile
-import pstats
-import py_compile
-import pydoc
-import rlcompleter
-import sched
-import smtplib
-import sndhdr
-import statvfs
-import sunau
-import sunaudio
-import symbol
-import tabnanny
-import telnetlib
-import timeit
-import toaiff
-import token
-try:
-    import tty     # not available on Windows
-except ImportError:
-    if verbose:
-        print("skipping tty")
+    from test.test_support import verbose
 
-# Can't test the "user" module -- if the user has a ~/.pythonrc.py, it
-# can screw up all sorts of things (esp. if it prints!).
-#import user
-import webbrowser
-import xml
+    import BaseHTTPServer
+    import DocXMLRPCServer
+    import CGIHTTPServer
+    import SimpleHTTPServer
+    import SimpleXMLRPCServer
+    import aifc
+    import audiodev
+    import bdb
+    import cgitb
+    import cmd
+    import code
+    import compileall
+    import encodings
+    import formatter
+    import ftplib
+    import getpass
+    import htmlentitydefs
+    import ihooks
+    import imghdr
+    import imputil
+    import keyword
+    import linecache
+    import macurl2path
+    import mailcap
+    import mimify
+    import mutex
+    import nntplib
+    import nturl2path
+    import opcode
+    import os2emxpath
+    import pdb
+    import pipes
+    #import poplib
+    import posixfile
+    import pstats
+    import py_compile
+    import pydoc
+    import rlcompleter
+    import sched
+    import smtplib
+    import sndhdr
+    import statvfs
+    import sunau
+    import sunaudio
+    import symbol
+    import tabnanny
+    import telnetlib
+    import timeit
+    import toaiff
+    import token
+    try:
+        import tty     # not available on Windows
+    except ImportError:
+        if verbose:
+            print("skipping tty")
+
+    # Can't test the "user" module -- if the user has a ~/.pythonrc.py, it
+    # can screw up all sorts of things (esp. if it prints!).
+    #import user
+    import webbrowser
+    import xml

Modified: python/branches/p3yk/Misc/developers.txt
==============================================================================
--- python/branches/p3yk/Misc/developers.txt	(original)
+++ python/branches/p3yk/Misc/developers.txt	Tue May 22 09:43:29 2007
@@ -17,6 +17,10 @@
 Permissions History
 -------------------
 
+- Alexandre Vassalotti was given SVN access on May 21 2007
+  by MvL, for his Summer-of-Code project, mentored by
+  Brett Cannon.
+
 - Travis Oliphant was given SVN access on 17 Apr 2007 by MvL,
   for implementing the extended buffer protocol.
 

Modified: python/branches/p3yk/Modules/_cursesmodule.c
==============================================================================
--- python/branches/p3yk/Modules/_cursesmodule.c	(original)
+++ python/branches/p3yk/Modules/_cursesmodule.c	Tue May 22 09:43:29 2007
@@ -1299,7 +1299,7 @@
 PyCursesWindow_RedrawLine(PyCursesWindowObject *self, PyObject *args)
 {
   int beg, num;
-  if (!PyArg_ParseTuple(args,"ii;beg,num", &beg, &num))
+  if (!PyArg_ParseTuple(args, "ii;beg,num", &beg, &num))
     return NULL;
   return PyCursesCheckERR(wredrawln(self->win,beg,num), "redrawln");
 }
@@ -1533,7 +1533,7 @@
 	{"overwrite",       (PyCFunction)PyCursesWindow_Overwrite,
          METH_VARARGS},
 	{"putwin",          (PyCFunction)PyCursesWindow_PutWin, METH_VARARGS},
-	{"redrawln",        (PyCFunction)PyCursesWindow_RedrawLine},
+	{"redrawln",        (PyCFunction)PyCursesWindow_RedrawLine, METH_VARARGS},
 	{"redrawwin",       (PyCFunction)PyCursesWindow_redrawwin, METH_NOARGS},
 	{"refresh",         (PyCFunction)PyCursesWindow_Refresh, METH_VARARGS},
 #ifndef STRICT_SYSV_CURSES

Modified: python/branches/p3yk/Modules/_struct.c
==============================================================================
--- python/branches/p3yk/Modules/_struct.c	(original)
+++ python/branches/p3yk/Modules/_struct.c	Tue May 22 09:43:29 2007
@@ -1787,7 +1787,7 @@
 	{"pack",	s_pack,		METH_VARARGS, s_pack__doc__},
 	{"pack_into",	s_pack_into,	METH_VARARGS, s_pack_into__doc__},
 	{"unpack",	s_unpack,       METH_O, s_unpack__doc__},
-	{"unpack_from",	(PyCFunction)s_unpack_from, METH_KEYWORDS,
+	{"unpack_from",	(PyCFunction)s_unpack_from, METH_VARARGS|METH_KEYWORDS,
 			s_unpack_from__doc__},
 	{NULL,	 NULL}		/* sentinel */
 };

Modified: python/branches/p3yk/Modules/_tkinter.c
==============================================================================
--- python/branches/p3yk/Modules/_tkinter.c	(original)
+++ python/branches/p3yk/Modules/_tkinter.c	Tue May 22 09:43:29 2007
@@ -2698,8 +2698,8 @@
 {
 	{"willdispatch",       Tkapp_WillDispatch, METH_NOARGS},
 	{"wantobjects",	       Tkapp_WantObjects, METH_VARARGS},
-	{"call", 	       Tkapp_Call, METH_OLDARGS},
-	{"globalcall", 	       Tkapp_GlobalCall, METH_OLDARGS},
+	{"call", 	       Tkapp_Call, METH_VARARGS},
+	{"globalcall", 	       Tkapp_GlobalCall, METH_VARARGS},
 	{"eval", 	       Tkapp_Eval, METH_VARARGS},
 	{"globaleval", 	       Tkapp_GlobalEval, METH_VARARGS},
 	{"evalfile", 	       Tkapp_EvalFile, METH_VARARGS},
@@ -2720,7 +2720,7 @@
 	{"exprboolean",        Tkapp_ExprBoolean, METH_VARARGS},
 	{"splitlist", 	       Tkapp_SplitList, METH_VARARGS},
 	{"split", 	       Tkapp_Split, METH_VARARGS},
-	{"merge", 	       Tkapp_Merge, METH_OLDARGS},
+	{"merge", 	       Tkapp_Merge, METH_VARARGS},
 	{"createcommand",      Tkapp_CreateCommand, METH_VARARGS},
 	{"deletecommand",      Tkapp_DeleteCommand, METH_VARARGS},
 #ifdef HAVE_CREATEFILEHANDLER

Modified: python/branches/p3yk/Modules/datetimemodule.c
==============================================================================
--- python/branches/p3yk/Modules/datetimemodule.c	(original)
+++ python/branches/p3yk/Modules/datetimemodule.c	Tue May 22 09:43:29 2007
@@ -2605,7 +2605,7 @@
 	{"ctime",       (PyCFunction)date_ctime,        METH_NOARGS,
 	 PyDoc_STR("Return ctime() style string.")},
 
-	{"strftime",   	(PyCFunction)date_strftime,	METH_KEYWORDS,
+	{"strftime",   	(PyCFunction)date_strftime,	METH_VARARGS | METH_KEYWORDS,
 	 PyDoc_STR("format -> strftime() style string.")},
 
 	{"timetuple",   (PyCFunction)date_timetuple,    METH_NOARGS,
@@ -2630,7 +2630,7 @@
 	 PyDoc_STR("Return the day of the week represented by the date.\n"
 		   "Monday == 0 ... Sunday == 6")},
 
-	{"replace",     (PyCFunction)date_replace,      METH_KEYWORDS,
+	{"replace",     (PyCFunction)date_replace,      METH_VARARGS | METH_KEYWORDS,
 	 PyDoc_STR("Return date with new specified fields.")},
 
 	{"__reduce__", (PyCFunction)date_reduce,        METH_NOARGS,
@@ -3380,7 +3380,7 @@
 	 PyDoc_STR("Return string in ISO 8601 format, HH:MM:SS[.mmmmmm]"
 	 	   "[+HH:MM].")},
 
-	{"strftime",   	(PyCFunction)time_strftime,	METH_KEYWORDS,
+	{"strftime",   	(PyCFunction)time_strftime,	METH_VARARGS | METH_KEYWORDS,
 	 PyDoc_STR("format -> strftime() style string.")},
 
 	{"utcoffset",	(PyCFunction)time_utcoffset,	METH_NOARGS,
@@ -3392,7 +3392,7 @@
 	{"dst",		(PyCFunction)time_dst,		METH_NOARGS,
 	 PyDoc_STR("Return self.tzinfo.dst(self).")},
 
-	{"replace",     (PyCFunction)time_replace,	METH_KEYWORDS,
+	{"replace",     (PyCFunction)time_replace,	METH_VARARGS | METH_KEYWORDS,
 	 PyDoc_STR("Return time with new specified fields.")},
 
 	{"__reduce__", (PyCFunction)time_reduce,        METH_NOARGS,
@@ -4418,7 +4418,7 @@
 	/* Class methods: */
 
 	{"now",         (PyCFunction)datetime_now,
-	 METH_KEYWORDS | METH_CLASS,
+	 METH_VARARGS | METH_KEYWORDS | METH_CLASS,
 	 PyDoc_STR("[tz] -> new datetime with tz's local day and time.")},
 
 	{"utcnow",         (PyCFunction)datetime_utcnow,
@@ -4426,7 +4426,7 @@
 	 PyDoc_STR("Return a new datetime representing UTC day and time.")},
 
 	{"fromtimestamp", (PyCFunction)datetime_fromtimestamp,
-	 METH_KEYWORDS | METH_CLASS,
+	 METH_VARARGS | METH_KEYWORDS | METH_CLASS,
 	 PyDoc_STR("timestamp[, tz] -> tz's local time from POSIX timestamp.")},
 
 	{"utcfromtimestamp", (PyCFunction)datetime_utcfromtimestamp,
@@ -4463,7 +4463,7 @@
 	{"utctimetuple",   (PyCFunction)datetime_utctimetuple, METH_NOARGS,
          PyDoc_STR("Return UTC time tuple, compatible with time.localtime().")},
 
-	{"isoformat",   (PyCFunction)datetime_isoformat, METH_KEYWORDS,
+	{"isoformat",   (PyCFunction)datetime_isoformat, METH_VARARGS | METH_KEYWORDS,
 	 PyDoc_STR("[sep] -> string in ISO 8601 format, "
 	 	   "YYYY-MM-DDTHH:MM:SS[.mmmmmm][+HH:MM].\n\n"
 	 	   "sep is used to separate the year from the time, and "
@@ -4478,10 +4478,10 @@
 	{"dst",		(PyCFunction)datetime_dst, METH_NOARGS,
 	 PyDoc_STR("Return self.tzinfo.dst(self).")},
 
-	{"replace",     (PyCFunction)datetime_replace,	METH_KEYWORDS,
+	{"replace",     (PyCFunction)datetime_replace,	METH_VARARGS | METH_KEYWORDS,
 	 PyDoc_STR("Return datetime with new specified fields.")},
 
-	{"astimezone",  (PyCFunction)datetime_astimezone, METH_KEYWORDS,
+	{"astimezone",  (PyCFunction)datetime_astimezone, METH_VARARGS | METH_KEYWORDS,
 	 PyDoc_STR("tz -> convert to local time in new timezone tz\n")},
 
 	{"__reduce__", (PyCFunction)datetime_reduce,     METH_NOARGS,

Modified: python/branches/p3yk/Objects/typeobject.c
==============================================================================
--- python/branches/p3yk/Objects/typeobject.c	(original)
+++ python/branches/p3yk/Objects/typeobject.c	Tue May 22 09:43:29 2007
@@ -4178,7 +4178,7 @@
 }
 
 static struct PyMethodDef tp_new_methoddef[] = {
-	{"__new__", (PyCFunction)tp_new_wrapper, METH_KEYWORDS,
+	{"__new__", (PyCFunction)tp_new_wrapper, METH_VARARGS|METH_KEYWORDS,
 	 PyDoc_STR("T.__new__(S, ...) -> "
 		   "a new object with type S, a subtype of T")},
 	{0}

Modified: python/branches/p3yk/PC/config.c
==============================================================================
--- python/branches/p3yk/PC/config.c	(original)
+++ python/branches/p3yk/PC/config.c	Tue May 22 09:43:29 2007
@@ -17,9 +17,6 @@
 extern void init_md5(void);
 extern void initnt(void);
 extern void initoperator(void);
-#ifndef MS_WINI64
-extern void initrgbimg(void);
-#endif
 extern void initsignal(void);
 extern void init_sha(void);
 extern void init_sha256(void);
@@ -90,9 +87,6 @@
         {"_md5", init_md5},
         {"nt", initnt}, /* Use the NT os functions, not posix */
         {"operator", initoperator},
-#ifndef MS_WINI64
-        {"rgbimg", initrgbimg},
-#endif
         {"signal", initsignal},
         {"_sha", init_sha},
         {"_sha256", init_sha256},

Modified: python/branches/p3yk/PCbuild/pythoncore.vcproj
==============================================================================
--- python/branches/p3yk/PCbuild/pythoncore.vcproj	(original)
+++ python/branches/p3yk/PCbuild/pythoncore.vcproj	Tue May 22 09:43:29 2007
@@ -713,9 +713,6 @@
 			RelativePath="..\Objects\rangeobject.c">
 		</File>
 		<File
-			RelativePath="..\Modules\rgbimgmodule.c">
-		</File>
-		<File
 			RelativePath="..\Modules\rotatingtree.c">
 		</File>
 		<File

Modified: python/branches/p3yk/Python/ceval.c
==============================================================================
--- python/branches/p3yk/Python/ceval.c	(original)
+++ python/branches/p3yk/Python/ceval.c	Tue May 22 09:43:29 2007
@@ -3779,13 +3779,31 @@
 
 	if (flags & CALL_FLAG_KW) {
 		kwdict = EXT_POP(*pp_stack);
-		if (!(kwdict && PyDict_Check(kwdict))) {
-			PyErr_Format(PyExc_TypeError,
-				     "%s%s argument after ** "
-				     "must be a dictionary",
-				     PyEval_GetFuncName(func),
-				     PyEval_GetFuncDesc(func));
-			goto ext_call_fail;
+		if (!PyDict_Check(kwdict)) {
+			PyObject *d;
+			d = PyDict_New();
+			if (d == NULL)
+				goto ext_call_fail;
+			if (PyDict_Update(d, kwdict) != 0) {
+				Py_DECREF(d);
+				/* PyDict_Update raises attribute
+				 * error (percolated from an attempt
+				 * to get 'keys' attribute) instead of
+				 * a type error if its second argument
+				 * is not a mapping.
+				 */
+				if (PyErr_ExceptionMatches(PyExc_AttributeError)) {
+					PyErr_Format(PyExc_TypeError,
+						     "%.200s%.200s argument after ** "
+						     "must be a mapping, not %.200s",
+						     PyEval_GetFuncName(func),
+						     PyEval_GetFuncDesc(func),
+						     kwdict->ob_type->tp_name);
+				}
+				goto ext_call_fail;
+			}
+			Py_DECREF(kwdict);
+			kwdict = d;
 		}
 	}
 	if (flags & CALL_FLAG_VAR) {
@@ -3796,10 +3814,11 @@
 			if (t == NULL) {
 				if (PyErr_ExceptionMatches(PyExc_TypeError)) {
 					PyErr_Format(PyExc_TypeError,
-						     "%s%s argument after * "
-						     "must be a sequence",
+						     "%.200s%.200s argument after * "
+						     "must be a sequence, not %200s",
 						     PyEval_GetFuncName(func),
-						     PyEval_GetFuncDesc(func));
+						     PyEval_GetFuncDesc(func),
+						     stararg->ob_type->tp_name);
 				}
 				goto ext_call_fail;
 			}

Modified: python/branches/p3yk/README
==============================================================================
--- python/branches/p3yk/README	(original)
+++ python/branches/p3yk/README	Tue May 22 09:43:29 2007
@@ -464,7 +464,7 @@
                 array, audioop, binascii, cPickle, cStringIO, cmath,
                 crypt, curses, errno, fcntl, gdbm, grp,
                 _locale, math, md5, new, operator, parser, pcre,
-                posix, pwd, readline, regex, reop, rotor,
+                posix, pwd, readline, regex, reop,
                 select, signal, socket, soundex, struct,
                 syslog, termios, time, timing, zlib, audioop
 
@@ -1229,7 +1229,6 @@
 Most subdirectories have their own README files.  Most files have
 comments.
 
-BeOS/           Files specific to the BeOS port
 Demo/           Demonstration scripts, modules and programs
 Doc/            Documentation sources (LaTeX)
 Grammar/        Input for the parser generator
@@ -1246,6 +1245,7 @@
 Parser/         The parser and tokenizer and their input handling
 Python/         The byte-compiler and interpreter
 README          The file you're reading now
+RISCOS/         Files specific to RISC OS port
 Tools/          Some useful programs written in Python
 pyconfig.h.in   Source from which pyconfig.h is created (GNU autoheader output)
 configure       Configuration shell script (GNU autoconf output)
@@ -1266,6 +1266,7 @@
 getbuildinfo.o  Object file from Modules/getbuildinfo.c
 libpython<version>.a    The library archive
 python          The executable interpreter
+reflog.txt      Output from running the regression suite with the -R flag 
 tags, TAGS      Tags files for vi and Emacs
 
 


More information about the Python-3000-checkins mailing list