2002-12-16 16:18:38 -04:00
|
|
|
/* C implementation for the date/time type documented at
|
|
|
|
* http://www.zope.org/Members/fdrake/DateTimeWiki/FrontPage
|
|
|
|
*/
|
|
|
|
|
|
|
|
#include "Python.h"
|
|
|
|
#include "modsupport.h"
|
|
|
|
#include "structmember.h"
|
|
|
|
|
|
|
|
#include <time.h>
|
|
|
|
|
2004-06-19 23:50:16 -03:00
|
|
|
#include "timefuncs.h"
|
2004-06-20 19:41:32 -03:00
|
|
|
|
|
|
|
/* Differentiate between building the core module and building extension
|
|
|
|
* modules.
|
|
|
|
*/
|
Merged revisions 55325-55327 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/p3yk
................
r55326 | guido.van.rossum | 2007-05-14 15:07:35 -0700 (Mon, 14 May 2007) | 2 lines
Don't use err.message, use err.args[0].
................
r55327 | guido.van.rossum | 2007-05-14 15:11:37 -0700 (Mon, 14 May 2007) | 259 lines
Merged revisions 54988-55226,55228-55323 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r54995 | neal.norwitz | 2007-04-26 23:45:32 -0700 (Thu, 26 Apr 2007) | 3 lines
This gets the test working on Solaris. It seems a little hokey to me,
but the test passed on Linux and Solaris, hopefully other platforms too.
........
r55002 | georg.brandl | 2007-04-27 12:20:00 -0700 (Fri, 27 Apr 2007) | 2 lines
Version fix (bug #1708710)
........
r55021 | neal.norwitz | 2007-04-29 16:53:24 -0700 (Sun, 29 Apr 2007) | 1 line
There really are some tests that are problematic.
........
r55024 | kristjan.jonsson | 2007-04-30 08:17:46 -0700 (Mon, 30 Apr 2007) | 1 line
Complete revamp of PCBuild8 directory. Use subdirectories for each project under the main pcbuild solution. Now make extensive use of property sheets to simplify project configuration. x64 build fully supported, and the process for building PGO version (Profiler Guided Optimization) simplified. All projects are now present, except _ssl, which needs to be reimplemented. Also, some of the projects that require external libraries need extra work to fully compile on x64.
........
r55025 | thomas.heller | 2007-04-30 08:44:17 -0700 (Mon, 30 Apr 2007) | 4 lines
Make sure to call PyErr_NoMemory() in several places where
PyMem_Malloc() could potentially fail.
Will backport to the release25-maint branch.
........
r55027 | thomas.heller | 2007-04-30 09:04:57 -0700 (Mon, 30 Apr 2007) | 8 lines
When accessing the .value attribute of a c_wchar_p instance, and the
instance does not point to a valid wchar_t zero-terminated string,
raise a ValueError. c_char_p does this already.
The ValueError message now contains the correct pointer address.
Will backport to release25-maint.
........
r55036 | georg.brandl | 2007-04-30 23:04:11 -0700 (Mon, 30 Apr 2007) | 2 lines
Bug #1710295: exceptions are now new-style classes.
........
r55038 | georg.brandl | 2007-04-30 23:08:15 -0700 (Mon, 30 Apr 2007) | 2 lines
Patch #1710352: add missing public functions to locale.__all__.
........
r55041 | vinay.sajip | 2007-05-01 03:20:03 -0700 (Tue, 01 May 2007) | 1 line
Added new optional credentials argument to SMTPHandler.__init__, and smtp.login() is now called in SMTPHandler.emit() if credentials are specified.
........
r55042 | vinay.sajip | 2007-05-01 03:21:45 -0700 (Tue, 01 May 2007) | 1 line
Added documentation for new optional credentials argument to SMTPHandler.__init__().
........
r55070 | neal.norwitz | 2007-05-01 21:47:55 -0700 (Tue, 01 May 2007) | 3 lines
Stop using PyMem_FREE while the GIL is not held. For details see:
http://mail.python.org/pipermail/python-dev/2007-May/072896.html
........
r55080 | armin.rigo | 2007-05-02 12:23:31 -0700 (Wed, 02 May 2007) | 6 lines
Fix for #1303614 and #1174712:
- __dict__ descriptor abuse for subclasses of built-in types
- subclassing from both ModuleType and another built-in types
Thanks zseil for the patch.
........
r55083 | georg.brandl | 2007-05-02 13:02:29 -0700 (Wed, 02 May 2007) | 3 lines
Actually raise an exception before calling ast_error_finish.
Triggers an assertion otherwise.
........
r55087 | neal.norwitz | 2007-05-02 23:47:18 -0700 (Wed, 02 May 2007) | 1 line
Handle a couple of uncaught errors. This should be backported
........
r55090 | neal.norwitz | 2007-05-03 00:20:57 -0700 (Thu, 03 May 2007) | 4 lines
Remove dead code. This code couldn't be reached because earlier in
the function there is another check for z != Py_None.
........
r55092 | thomas.heller | 2007-05-03 05:02:08 -0700 (Thu, 03 May 2007) | 1 line
Fix building _ctypes.pyd for x64 / Windows.
........
r55093 | thomas.heller | 2007-05-03 05:05:20 -0700 (Thu, 03 May 2007) | 1 line
Don't truncate pointers to integers (on win64 platform).
........
r55094 | walter.doerwald | 2007-05-03 08:13:55 -0700 (Thu, 03 May 2007) | 3 lines
Clarify the behaviour of PyUnicode_DecodeUTF16(): A BOM is only skipped
in native order mode, and only if it's the first two bytes.
........
r55101 | kristjan.jonsson | 2007-05-03 13:04:53 -0700 (Thu, 03 May 2007) | 2 lines
Fix pcbuild8 after recent overhaul: Added the version resource to python26.dll. Adjust stacksize to 2Mb and made large address aware for 32 bits, and set stacksize to 3Mb for 64 bits.
Todo: Set .dll optimized load addresses, and side-by-side packaging of the python26.dll.
........
r55102 | kristjan.jonsson | 2007-05-03 13:09:56 -0700 (Thu, 03 May 2007) | 1 line
Fix those parts in the testsuite that assumed that sys.maxint would cause overflow on x64. Now the testsuite is well behaved on that platform.
........
r55103 | kristjan.jonsson | 2007-05-03 13:27:03 -0700 (Thu, 03 May 2007) | 11 lines
Fix problems in x64 build that were discovered by the testsuite:
- Reenable modules on x64 that had been disabled aeons ago for Itanium.
- Cleared up confusion about compilers for 64 bit windows. There is only Itanium and x64. Added macros MS_WINI64 and MS_WINX64 for those rare cases where it matters, such as the disabling of modules above.
- Set target platform (_WIN32_WINNT and WINVER) to 0x0501 (XP) for x64, and 0x0400 (NT 4.0) otherwise, which are the targeted minimum platforms.
- Fixed thread_nt.h. The emulated InterlockedCompareExchange function didn?\194?\180t work on x64, probaby due to the lack of a "volatile" specifier. Anyway, win95 is no longer a target platform.
- Itertools module used wrong constant to check for overflow in count()
- PyInt_AsSsize_t couldn't deal with attribute error when accessing the __long__ member.
- PyLong_FromSsize_t() incorrectly specified that the operand were unsigned.
With these changes, the x64 passes the testsuite, for those modules present.
........
r55107 | kristjan.jonsson | 2007-05-03 17:25:08 -0700 (Thu, 03 May 2007) | 1 line
Revert compiler comment to AMD64 for x64/AMD64 builds.
........
r55115 | thomas.heller | 2007-05-04 00:14:39 -0700 (Fri, 04 May 2007) | 4 lines
Fix some ctypes test crashes, when running with a debug Python
version on win64 by using proper argtypes and restype function
attributes.
........
r55117 | thomas.heller | 2007-05-04 01:20:41 -0700 (Fri, 04 May 2007) | 4 lines
On 64-bit Windows, ffi_arg must be 8 bytes long. This fixes the
remaining crashes in the ctypes tests, when functions return float or
double types.
........
r55120 | kristjan.jonsson | 2007-05-04 08:48:15 -0700 (Fri, 04 May 2007) | 1 line
Update the pcbuild8 solution. Straightened out the _ctypes project by using a .vsproj file and a masm64.rules file to avoid redundancy
........
r55121 | kristjan.jonsson | 2007-05-04 10:28:06 -0700 (Fri, 04 May 2007) | 1 line
Minor fix of PCBuild8/_ctypes vcproj, moving include dir into the .vsprops file.
........
r55129 | thomas.heller | 2007-05-04 12:54:22 -0700 (Fri, 04 May 2007) | 3 lines
Do not truncate 64-bit pointers to 32-bit integers.
Fixes SF #1703286, will backport to release25-maint.
........
r55131 | thomas.heller | 2007-05-04 12:56:32 -0700 (Fri, 04 May 2007) | 1 line
Oops, these tests do not run on Windows CE.
........
r55140 | brett.cannon | 2007-05-04 18:34:02 -0700 (Fri, 04 May 2007) | 2 lines
Deprecate BaseException.message as per PEP 352.
........
r55154 | georg.brandl | 2007-05-05 11:55:37 -0700 (Sat, 05 May 2007) | 2 lines
Bug #1713535: typo in logging example.
........
r55158 | vinay.sajip | 2007-05-06 10:53:37 -0700 (Sun, 06 May 2007) | 1 line
Updates of recent changes to logging.
........
r55165 | neal.norwitz | 2007-05-07 00:02:26 -0700 (Mon, 07 May 2007) | 1 line
Verify changes to the trunk go to the normal checkins list
........
r55169 | kristjan.jonsson | 2007-05-07 09:46:54 -0700 (Mon, 07 May 2007) | 1 line
As per Armin Rigo's suggestion, remove special handing from intobject.c to deal with the peculiarities of classobject's implementation of the number protocol. The nb_long method of classobject now falls back to nb_int if there is no __long__ attribute present.
........
r55197 | collin.winter | 2007-05-08 21:14:36 -0700 (Tue, 08 May 2007) | 9 lines
Fix a bug in test.test_support.open_urlresource().
If the call to requires() doesn't precede the filesystem check, we get the following situation:
1. ./python Lib/test/regrtest.py test_foo # test needs urlfetch, not enabled, so skipped
2. ./python Lib/test/regrtest.py -u urlfetch test_foo # test runs
3. ./python Lib/test/regrtest.py test_foo # test runs (!)
By moving the call to requires() *before* the filesystem check, the fact that fetched files are cached on the local disk becomes an implementation detail, rather than a semantics-changing point of note.
........
r55198 | neal.norwitz | 2007-05-08 23:43:15 -0700 (Tue, 08 May 2007) | 1 line
Add markup for True/False. Will backport
........
r55205 | walter.doerwald | 2007-05-09 11:10:47 -0700 (Wed, 09 May 2007) | 4 lines
Backport checkin:
Fix a segfault when b"" was passed to b2a_qp() -- it was using strchr()
instead of memchr().
........
r55241 | neal.norwitz | 2007-05-10 22:55:15 -0700 (Thu, 10 May 2007) | 6 lines
Don't ever report a failure when the sum of the reference count differences
are zero. This should help reduce the false positives.
The message about references leaking is maintained to provide as much
info as possible rather than simply suppressing the message at the source.
........
r55242 | neal.norwitz | 2007-05-10 23:23:01 -0700 (Thu, 10 May 2007) | 1 line
Fix typo in docstring (the module is popen2, not 3).
........
r55244 | neal.norwitz | 2007-05-10 23:56:52 -0700 (Thu, 10 May 2007) | 1 line
Remove trailing whitespace in docstring
........
r55245 | neal.norwitz | 2007-05-10 23:57:33 -0700 (Thu, 10 May 2007) | 1 line
Deprecate os.popen* and popen2 module in favor of the subprocess module.
........
r55247 | neal.norwitz | 2007-05-11 00:13:30 -0700 (Fri, 11 May 2007) | 1 line
Deprecate os.popen* and popen2 module in favor of the subprocess module. (forgot the doc)
........
r55253 | georg.brandl | 2007-05-11 02:41:37 -0700 (Fri, 11 May 2007) | 3 lines
Remove an XXX that is unnecessary.
........
r55258 | georg.brandl | 2007-05-11 04:04:26 -0700 (Fri, 11 May 2007) | 2 lines
Patch #1714700: clarify os.linesep vs. tfiles opened in text mode.
(backport)
........
r55259 | georg.brandl | 2007-05-11 04:43:56 -0700 (Fri, 11 May 2007) | 2 lines
Update DDJ link.
........
r55273 | raymond.hettinger | 2007-05-11 10:59:59 -0700 (Fri, 11 May 2007) | 1 line
Better tests for posixpath.commonprefix
........
r55287 | georg.brandl | 2007-05-12 14:06:41 -0700 (Sat, 12 May 2007) | 2 lines
Bug #1046945: document SWIG options of distutils.
........
r55290 | georg.brandl | 2007-05-13 01:04:07 -0700 (Sun, 13 May 2007) | 2 lines
Add bz2 to content encodings.
........
r55297 | neal.norwitz | 2007-05-13 13:45:05 -0700 (Sun, 13 May 2007) | 3 lines
Remove Amoeba doc which was removed in version 1.0! according to Misc/HISTORY.
Hopefully Guido won't shed a tear. :-)
........
r55298 | neal.norwitz | 2007-05-13 13:54:19 -0700 (Sun, 13 May 2007) | 1 line
Remove references to stdwin which was removed long ago.
........
r55299 | neal.norwitz | 2007-05-13 14:13:42 -0700 (Sun, 13 May 2007) | 3 lines
Remove support for freebsd[23] which haven't been released since 2000
or earlier. http://www.freebsd.org/releases/index.html
........
r55320 | raymond.hettinger | 2007-05-14 13:52:31 -0700 (Mon, 14 May 2007) | 1 line
Small speedup.
........
................
2007-05-14 19:51:27 -03:00
|
|
|
#ifndef Py_BUILD_CORE
|
2004-06-20 19:41:32 -03:00
|
|
|
#define Py_BUILD_CORE
|
Merged revisions 55325-55327 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/p3yk
................
r55326 | guido.van.rossum | 2007-05-14 15:07:35 -0700 (Mon, 14 May 2007) | 2 lines
Don't use err.message, use err.args[0].
................
r55327 | guido.van.rossum | 2007-05-14 15:11:37 -0700 (Mon, 14 May 2007) | 259 lines
Merged revisions 54988-55226,55228-55323 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r54995 | neal.norwitz | 2007-04-26 23:45:32 -0700 (Thu, 26 Apr 2007) | 3 lines
This gets the test working on Solaris. It seems a little hokey to me,
but the test passed on Linux and Solaris, hopefully other platforms too.
........
r55002 | georg.brandl | 2007-04-27 12:20:00 -0700 (Fri, 27 Apr 2007) | 2 lines
Version fix (bug #1708710)
........
r55021 | neal.norwitz | 2007-04-29 16:53:24 -0700 (Sun, 29 Apr 2007) | 1 line
There really are some tests that are problematic.
........
r55024 | kristjan.jonsson | 2007-04-30 08:17:46 -0700 (Mon, 30 Apr 2007) | 1 line
Complete revamp of PCBuild8 directory. Use subdirectories for each project under the main pcbuild solution. Now make extensive use of property sheets to simplify project configuration. x64 build fully supported, and the process for building PGO version (Profiler Guided Optimization) simplified. All projects are now present, except _ssl, which needs to be reimplemented. Also, some of the projects that require external libraries need extra work to fully compile on x64.
........
r55025 | thomas.heller | 2007-04-30 08:44:17 -0700 (Mon, 30 Apr 2007) | 4 lines
Make sure to call PyErr_NoMemory() in several places where
PyMem_Malloc() could potentially fail.
Will backport to the release25-maint branch.
........
r55027 | thomas.heller | 2007-04-30 09:04:57 -0700 (Mon, 30 Apr 2007) | 8 lines
When accessing the .value attribute of a c_wchar_p instance, and the
instance does not point to a valid wchar_t zero-terminated string,
raise a ValueError. c_char_p does this already.
The ValueError message now contains the correct pointer address.
Will backport to release25-maint.
........
r55036 | georg.brandl | 2007-04-30 23:04:11 -0700 (Mon, 30 Apr 2007) | 2 lines
Bug #1710295: exceptions are now new-style classes.
........
r55038 | georg.brandl | 2007-04-30 23:08:15 -0700 (Mon, 30 Apr 2007) | 2 lines
Patch #1710352: add missing public functions to locale.__all__.
........
r55041 | vinay.sajip | 2007-05-01 03:20:03 -0700 (Tue, 01 May 2007) | 1 line
Added new optional credentials argument to SMTPHandler.__init__, and smtp.login() is now called in SMTPHandler.emit() if credentials are specified.
........
r55042 | vinay.sajip | 2007-05-01 03:21:45 -0700 (Tue, 01 May 2007) | 1 line
Added documentation for new optional credentials argument to SMTPHandler.__init__().
........
r55070 | neal.norwitz | 2007-05-01 21:47:55 -0700 (Tue, 01 May 2007) | 3 lines
Stop using PyMem_FREE while the GIL is not held. For details see:
http://mail.python.org/pipermail/python-dev/2007-May/072896.html
........
r55080 | armin.rigo | 2007-05-02 12:23:31 -0700 (Wed, 02 May 2007) | 6 lines
Fix for #1303614 and #1174712:
- __dict__ descriptor abuse for subclasses of built-in types
- subclassing from both ModuleType and another built-in types
Thanks zseil for the patch.
........
r55083 | georg.brandl | 2007-05-02 13:02:29 -0700 (Wed, 02 May 2007) | 3 lines
Actually raise an exception before calling ast_error_finish.
Triggers an assertion otherwise.
........
r55087 | neal.norwitz | 2007-05-02 23:47:18 -0700 (Wed, 02 May 2007) | 1 line
Handle a couple of uncaught errors. This should be backported
........
r55090 | neal.norwitz | 2007-05-03 00:20:57 -0700 (Thu, 03 May 2007) | 4 lines
Remove dead code. This code couldn't be reached because earlier in
the function there is another check for z != Py_None.
........
r55092 | thomas.heller | 2007-05-03 05:02:08 -0700 (Thu, 03 May 2007) | 1 line
Fix building _ctypes.pyd for x64 / Windows.
........
r55093 | thomas.heller | 2007-05-03 05:05:20 -0700 (Thu, 03 May 2007) | 1 line
Don't truncate pointers to integers (on win64 platform).
........
r55094 | walter.doerwald | 2007-05-03 08:13:55 -0700 (Thu, 03 May 2007) | 3 lines
Clarify the behaviour of PyUnicode_DecodeUTF16(): A BOM is only skipped
in native order mode, and only if it's the first two bytes.
........
r55101 | kristjan.jonsson | 2007-05-03 13:04:53 -0700 (Thu, 03 May 2007) | 2 lines
Fix pcbuild8 after recent overhaul: Added the version resource to python26.dll. Adjust stacksize to 2Mb and made large address aware for 32 bits, and set stacksize to 3Mb for 64 bits.
Todo: Set .dll optimized load addresses, and side-by-side packaging of the python26.dll.
........
r55102 | kristjan.jonsson | 2007-05-03 13:09:56 -0700 (Thu, 03 May 2007) | 1 line
Fix those parts in the testsuite that assumed that sys.maxint would cause overflow on x64. Now the testsuite is well behaved on that platform.
........
r55103 | kristjan.jonsson | 2007-05-03 13:27:03 -0700 (Thu, 03 May 2007) | 11 lines
Fix problems in x64 build that were discovered by the testsuite:
- Reenable modules on x64 that had been disabled aeons ago for Itanium.
- Cleared up confusion about compilers for 64 bit windows. There is only Itanium and x64. Added macros MS_WINI64 and MS_WINX64 for those rare cases where it matters, such as the disabling of modules above.
- Set target platform (_WIN32_WINNT and WINVER) to 0x0501 (XP) for x64, and 0x0400 (NT 4.0) otherwise, which are the targeted minimum platforms.
- Fixed thread_nt.h. The emulated InterlockedCompareExchange function didn?\194?\180t work on x64, probaby due to the lack of a "volatile" specifier. Anyway, win95 is no longer a target platform.
- Itertools module used wrong constant to check for overflow in count()
- PyInt_AsSsize_t couldn't deal with attribute error when accessing the __long__ member.
- PyLong_FromSsize_t() incorrectly specified that the operand were unsigned.
With these changes, the x64 passes the testsuite, for those modules present.
........
r55107 | kristjan.jonsson | 2007-05-03 17:25:08 -0700 (Thu, 03 May 2007) | 1 line
Revert compiler comment to AMD64 for x64/AMD64 builds.
........
r55115 | thomas.heller | 2007-05-04 00:14:39 -0700 (Fri, 04 May 2007) | 4 lines
Fix some ctypes test crashes, when running with a debug Python
version on win64 by using proper argtypes and restype function
attributes.
........
r55117 | thomas.heller | 2007-05-04 01:20:41 -0700 (Fri, 04 May 2007) | 4 lines
On 64-bit Windows, ffi_arg must be 8 bytes long. This fixes the
remaining crashes in the ctypes tests, when functions return float or
double types.
........
r55120 | kristjan.jonsson | 2007-05-04 08:48:15 -0700 (Fri, 04 May 2007) | 1 line
Update the pcbuild8 solution. Straightened out the _ctypes project by using a .vsproj file and a masm64.rules file to avoid redundancy
........
r55121 | kristjan.jonsson | 2007-05-04 10:28:06 -0700 (Fri, 04 May 2007) | 1 line
Minor fix of PCBuild8/_ctypes vcproj, moving include dir into the .vsprops file.
........
r55129 | thomas.heller | 2007-05-04 12:54:22 -0700 (Fri, 04 May 2007) | 3 lines
Do not truncate 64-bit pointers to 32-bit integers.
Fixes SF #1703286, will backport to release25-maint.
........
r55131 | thomas.heller | 2007-05-04 12:56:32 -0700 (Fri, 04 May 2007) | 1 line
Oops, these tests do not run on Windows CE.
........
r55140 | brett.cannon | 2007-05-04 18:34:02 -0700 (Fri, 04 May 2007) | 2 lines
Deprecate BaseException.message as per PEP 352.
........
r55154 | georg.brandl | 2007-05-05 11:55:37 -0700 (Sat, 05 May 2007) | 2 lines
Bug #1713535: typo in logging example.
........
r55158 | vinay.sajip | 2007-05-06 10:53:37 -0700 (Sun, 06 May 2007) | 1 line
Updates of recent changes to logging.
........
r55165 | neal.norwitz | 2007-05-07 00:02:26 -0700 (Mon, 07 May 2007) | 1 line
Verify changes to the trunk go to the normal checkins list
........
r55169 | kristjan.jonsson | 2007-05-07 09:46:54 -0700 (Mon, 07 May 2007) | 1 line
As per Armin Rigo's suggestion, remove special handing from intobject.c to deal with the peculiarities of classobject's implementation of the number protocol. The nb_long method of classobject now falls back to nb_int if there is no __long__ attribute present.
........
r55197 | collin.winter | 2007-05-08 21:14:36 -0700 (Tue, 08 May 2007) | 9 lines
Fix a bug in test.test_support.open_urlresource().
If the call to requires() doesn't precede the filesystem check, we get the following situation:
1. ./python Lib/test/regrtest.py test_foo # test needs urlfetch, not enabled, so skipped
2. ./python Lib/test/regrtest.py -u urlfetch test_foo # test runs
3. ./python Lib/test/regrtest.py test_foo # test runs (!)
By moving the call to requires() *before* the filesystem check, the fact that fetched files are cached on the local disk becomes an implementation detail, rather than a semantics-changing point of note.
........
r55198 | neal.norwitz | 2007-05-08 23:43:15 -0700 (Tue, 08 May 2007) | 1 line
Add markup for True/False. Will backport
........
r55205 | walter.doerwald | 2007-05-09 11:10:47 -0700 (Wed, 09 May 2007) | 4 lines
Backport checkin:
Fix a segfault when b"" was passed to b2a_qp() -- it was using strchr()
instead of memchr().
........
r55241 | neal.norwitz | 2007-05-10 22:55:15 -0700 (Thu, 10 May 2007) | 6 lines
Don't ever report a failure when the sum of the reference count differences
are zero. This should help reduce the false positives.
The message about references leaking is maintained to provide as much
info as possible rather than simply suppressing the message at the source.
........
r55242 | neal.norwitz | 2007-05-10 23:23:01 -0700 (Thu, 10 May 2007) | 1 line
Fix typo in docstring (the module is popen2, not 3).
........
r55244 | neal.norwitz | 2007-05-10 23:56:52 -0700 (Thu, 10 May 2007) | 1 line
Remove trailing whitespace in docstring
........
r55245 | neal.norwitz | 2007-05-10 23:57:33 -0700 (Thu, 10 May 2007) | 1 line
Deprecate os.popen* and popen2 module in favor of the subprocess module.
........
r55247 | neal.norwitz | 2007-05-11 00:13:30 -0700 (Fri, 11 May 2007) | 1 line
Deprecate os.popen* and popen2 module in favor of the subprocess module. (forgot the doc)
........
r55253 | georg.brandl | 2007-05-11 02:41:37 -0700 (Fri, 11 May 2007) | 3 lines
Remove an XXX that is unnecessary.
........
r55258 | georg.brandl | 2007-05-11 04:04:26 -0700 (Fri, 11 May 2007) | 2 lines
Patch #1714700: clarify os.linesep vs. tfiles opened in text mode.
(backport)
........
r55259 | georg.brandl | 2007-05-11 04:43:56 -0700 (Fri, 11 May 2007) | 2 lines
Update DDJ link.
........
r55273 | raymond.hettinger | 2007-05-11 10:59:59 -0700 (Fri, 11 May 2007) | 1 line
Better tests for posixpath.commonprefix
........
r55287 | georg.brandl | 2007-05-12 14:06:41 -0700 (Sat, 12 May 2007) | 2 lines
Bug #1046945: document SWIG options of distutils.
........
r55290 | georg.brandl | 2007-05-13 01:04:07 -0700 (Sun, 13 May 2007) | 2 lines
Add bz2 to content encodings.
........
r55297 | neal.norwitz | 2007-05-13 13:45:05 -0700 (Sun, 13 May 2007) | 3 lines
Remove Amoeba doc which was removed in version 1.0! according to Misc/HISTORY.
Hopefully Guido won't shed a tear. :-)
........
r55298 | neal.norwitz | 2007-05-13 13:54:19 -0700 (Sun, 13 May 2007) | 1 line
Remove references to stdwin which was removed long ago.
........
r55299 | neal.norwitz | 2007-05-13 14:13:42 -0700 (Sun, 13 May 2007) | 3 lines
Remove support for freebsd[23] which haven't been released since 2000
or earlier. http://www.freebsd.org/releases/index.html
........
r55320 | raymond.hettinger | 2007-05-14 13:52:31 -0700 (Mon, 14 May 2007) | 1 line
Small speedup.
........
................
2007-05-14 19:51:27 -03:00
|
|
|
#endif
|
2002-12-16 16:18:38 -04:00
|
|
|
#include "datetime.h"
|
2004-06-20 19:41:32 -03:00
|
|
|
#undef Py_BUILD_CORE
|
2002-12-16 16:18:38 -04:00
|
|
|
|
|
|
|
/* We require that C int be at least 32 bits, and use int virtually
|
|
|
|
* everywhere. In just a few cases we use a temp long, where a Python
|
|
|
|
* API returns a C long. In such cases, we have to ensure that the
|
|
|
|
* final result fits in a C int (this can be an issue on 64-bit boxes).
|
|
|
|
*/
|
|
|
|
#if SIZEOF_INT < 4
|
|
|
|
# error "datetime.c requires that C int have at least 32 bits"
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#define MINYEAR 1
|
|
|
|
#define MAXYEAR 9999
|
|
|
|
|
|
|
|
/* Nine decimal digits is easy to communicate, and leaves enough room
|
|
|
|
* so that two delta days can be added w/o fear of overflowing a signed
|
|
|
|
* 32-bit int, and with plenty of room left over to absorb any possible
|
|
|
|
* carries from adding seconds.
|
|
|
|
*/
|
|
|
|
#define MAX_DELTA_DAYS 999999999
|
|
|
|
|
|
|
|
/* Rename the long macros in datetime.h to more reasonable short names. */
|
|
|
|
#define GET_YEAR PyDateTime_GET_YEAR
|
|
|
|
#define GET_MONTH PyDateTime_GET_MONTH
|
|
|
|
#define GET_DAY PyDateTime_GET_DAY
|
|
|
|
#define DATE_GET_HOUR PyDateTime_DATE_GET_HOUR
|
|
|
|
#define DATE_GET_MINUTE PyDateTime_DATE_GET_MINUTE
|
|
|
|
#define DATE_GET_SECOND PyDateTime_DATE_GET_SECOND
|
|
|
|
#define DATE_GET_MICROSECOND PyDateTime_DATE_GET_MICROSECOND
|
|
|
|
|
|
|
|
/* Date accessors for date and datetime. */
|
|
|
|
#define SET_YEAR(o, v) (((o)->data[0] = ((v) & 0xff00) >> 8), \
|
|
|
|
((o)->data[1] = ((v) & 0x00ff)))
|
|
|
|
#define SET_MONTH(o, v) (PyDateTime_GET_MONTH(o) = (v))
|
|
|
|
#define SET_DAY(o, v) (PyDateTime_GET_DAY(o) = (v))
|
|
|
|
|
|
|
|
/* Date/Time accessors for datetime. */
|
|
|
|
#define DATE_SET_HOUR(o, v) (PyDateTime_DATE_GET_HOUR(o) = (v))
|
|
|
|
#define DATE_SET_MINUTE(o, v) (PyDateTime_DATE_GET_MINUTE(o) = (v))
|
|
|
|
#define DATE_SET_SECOND(o, v) (PyDateTime_DATE_GET_SECOND(o) = (v))
|
|
|
|
#define DATE_SET_MICROSECOND(o, v) \
|
|
|
|
(((o)->data[7] = ((v) & 0xff0000) >> 16), \
|
|
|
|
((o)->data[8] = ((v) & 0x00ff00) >> 8), \
|
|
|
|
((o)->data[9] = ((v) & 0x0000ff)))
|
|
|
|
|
|
|
|
/* Time accessors for time. */
|
|
|
|
#define TIME_GET_HOUR PyDateTime_TIME_GET_HOUR
|
|
|
|
#define TIME_GET_MINUTE PyDateTime_TIME_GET_MINUTE
|
|
|
|
#define TIME_GET_SECOND PyDateTime_TIME_GET_SECOND
|
|
|
|
#define TIME_GET_MICROSECOND PyDateTime_TIME_GET_MICROSECOND
|
|
|
|
#define TIME_SET_HOUR(o, v) (PyDateTime_TIME_GET_HOUR(o) = (v))
|
|
|
|
#define TIME_SET_MINUTE(o, v) (PyDateTime_TIME_GET_MINUTE(o) = (v))
|
|
|
|
#define TIME_SET_SECOND(o, v) (PyDateTime_TIME_GET_SECOND(o) = (v))
|
|
|
|
#define TIME_SET_MICROSECOND(o, v) \
|
|
|
|
(((o)->data[3] = ((v) & 0xff0000) >> 16), \
|
|
|
|
((o)->data[4] = ((v) & 0x00ff00) >> 8), \
|
|
|
|
((o)->data[5] = ((v) & 0x0000ff)))
|
|
|
|
|
|
|
|
/* Delta accessors for timedelta. */
|
|
|
|
#define GET_TD_DAYS(o) (((PyDateTime_Delta *)(o))->days)
|
|
|
|
#define GET_TD_SECONDS(o) (((PyDateTime_Delta *)(o))->seconds)
|
|
|
|
#define GET_TD_MICROSECONDS(o) (((PyDateTime_Delta *)(o))->microseconds)
|
|
|
|
|
|
|
|
#define SET_TD_DAYS(o, v) ((o)->days = (v))
|
|
|
|
#define SET_TD_SECONDS(o, v) ((o)->seconds = (v))
|
|
|
|
#define SET_TD_MICROSECONDS(o, v) ((o)->microseconds = (v))
|
|
|
|
|
2003-01-10 20:15:54 -04:00
|
|
|
/* p is a pointer to a time or a datetime object; HASTZINFO(p) returns
|
|
|
|
* p->hastzinfo.
|
|
|
|
*/
|
|
|
|
#define HASTZINFO(p) (((_PyDateTime_BaseTZInfo *)(p))->hastzinfo)
|
|
|
|
|
2004-03-21 19:38:41 -04:00
|
|
|
/* M is a char or int claiming to be a valid month. The macro is equivalent
|
|
|
|
* to the two-sided Python test
|
|
|
|
* 1 <= M <= 12
|
|
|
|
*/
|
|
|
|
#define MONTH_IS_SANE(M) ((unsigned int)(M) - 1 < 12)
|
|
|
|
|
2002-12-16 16:18:38 -04:00
|
|
|
/* Forward declarations. */
|
|
|
|
static PyTypeObject PyDateTime_DateType;
|
|
|
|
static PyTypeObject PyDateTime_DateTimeType;
|
|
|
|
static PyTypeObject PyDateTime_DeltaType;
|
|
|
|
static PyTypeObject PyDateTime_TimeType;
|
|
|
|
static PyTypeObject PyDateTime_TZInfoType;
|
|
|
|
|
|
|
|
/* ---------------------------------------------------------------------------
|
|
|
|
* Math utilities.
|
|
|
|
*/
|
|
|
|
|
|
|
|
/* k = i+j overflows iff k differs in sign from both inputs,
|
|
|
|
* iff k^i has sign bit set and k^j has sign bit set,
|
|
|
|
* iff (k^i)&(k^j) has sign bit set.
|
|
|
|
*/
|
|
|
|
#define SIGNED_ADD_OVERFLOWED(RESULT, I, J) \
|
|
|
|
((((RESULT) ^ (I)) & ((RESULT) ^ (J))) < 0)
|
|
|
|
|
|
|
|
/* Compute Python divmod(x, y), returning the quotient and storing the
|
|
|
|
* remainder into *r. The quotient is the floor of x/y, and that's
|
|
|
|
* the real point of this. C will probably truncate instead (C99
|
|
|
|
* requires truncation; C89 left it implementation-defined).
|
|
|
|
* Simplification: we *require* that y > 0 here. That's appropriate
|
|
|
|
* for all the uses made of it. This simplifies the code and makes
|
|
|
|
* the overflow case impossible (divmod(LONG_MIN, -1) is the only
|
|
|
|
* overflow case).
|
|
|
|
*/
|
|
|
|
static int
|
|
|
|
divmod(int x, int y, int *r)
|
|
|
|
{
|
|
|
|
int quo;
|
|
|
|
|
|
|
|
assert(y > 0);
|
|
|
|
quo = x / y;
|
|
|
|
*r = x - quo * y;
|
|
|
|
if (*r < 0) {
|
|
|
|
--quo;
|
|
|
|
*r += y;
|
|
|
|
}
|
|
|
|
assert(0 <= *r && *r < y);
|
|
|
|
return quo;
|
|
|
|
}
|
|
|
|
|
2003-01-02 12:32:54 -04:00
|
|
|
/* Round a double to the nearest long. |x| must be small enough to fit
|
|
|
|
* in a C long; this is not checked.
|
|
|
|
*/
|
|
|
|
static long
|
|
|
|
round_to_long(double x)
|
|
|
|
{
|
|
|
|
if (x >= 0.0)
|
|
|
|
x = floor(x + 0.5);
|
|
|
|
else
|
|
|
|
x = ceil(x - 0.5);
|
|
|
|
return (long)x;
|
|
|
|
}
|
|
|
|
|
2002-12-16 16:18:38 -04:00
|
|
|
/* ---------------------------------------------------------------------------
|
|
|
|
* General calendrical helper functions
|
|
|
|
*/
|
|
|
|
|
|
|
|
/* For each month ordinal in 1..12, the number of days in that month,
|
|
|
|
* and the number of days before that month in the same year. These
|
|
|
|
* are correct for non-leap years only.
|
|
|
|
*/
|
|
|
|
static int _days_in_month[] = {
|
|
|
|
0, /* unused; this vector uses 1-based indexing */
|
|
|
|
31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31
|
|
|
|
};
|
|
|
|
|
|
|
|
static int _days_before_month[] = {
|
|
|
|
0, /* unused; this vector uses 1-based indexing */
|
|
|
|
0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334
|
|
|
|
};
|
|
|
|
|
|
|
|
/* year -> 1 if leap year, else 0. */
|
|
|
|
static int
|
|
|
|
is_leap(int year)
|
|
|
|
{
|
|
|
|
/* Cast year to unsigned. The result is the same either way, but
|
|
|
|
* C can generate faster code for unsigned mod than for signed
|
|
|
|
* mod (especially for % 4 -- a good compiler should just grab
|
|
|
|
* the last 2 bits when the LHS is unsigned).
|
|
|
|
*/
|
|
|
|
const unsigned int ayear = (unsigned int)year;
|
|
|
|
return ayear % 4 == 0 && (ayear % 100 != 0 || ayear % 400 == 0);
|
|
|
|
}
|
|
|
|
|
|
|
|
/* year, month -> number of days in that month in that year */
|
|
|
|
static int
|
|
|
|
days_in_month(int year, int month)
|
|
|
|
{
|
|
|
|
assert(month >= 1);
|
|
|
|
assert(month <= 12);
|
|
|
|
if (month == 2 && is_leap(year))
|
|
|
|
return 29;
|
|
|
|
else
|
|
|
|
return _days_in_month[month];
|
|
|
|
}
|
|
|
|
|
|
|
|
/* year, month -> number of days in year preceeding first day of month */
|
|
|
|
static int
|
|
|
|
days_before_month(int year, int month)
|
|
|
|
{
|
|
|
|
int days;
|
|
|
|
|
|
|
|
assert(month >= 1);
|
|
|
|
assert(month <= 12);
|
|
|
|
days = _days_before_month[month];
|
|
|
|
if (month > 2 && is_leap(year))
|
|
|
|
++days;
|
|
|
|
return days;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* year -> number of days before January 1st of year. Remember that we
|
|
|
|
* start with year 1, so days_before_year(1) == 0.
|
|
|
|
*/
|
|
|
|
static int
|
|
|
|
days_before_year(int year)
|
|
|
|
{
|
|
|
|
int y = year - 1;
|
|
|
|
/* This is incorrect if year <= 0; we really want the floor
|
|
|
|
* here. But so long as MINYEAR is 1, the smallest year this
|
|
|
|
* can see is 0 (this can happen in some normalization endcases),
|
|
|
|
* so we'll just special-case that.
|
|
|
|
*/
|
|
|
|
assert (year >= 0);
|
|
|
|
if (y >= 0)
|
|
|
|
return y*365 + y/4 - y/100 + y/400;
|
|
|
|
else {
|
|
|
|
assert(y == -1);
|
|
|
|
return -366;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Number of days in 4, 100, and 400 year cycles. That these have
|
|
|
|
* the correct values is asserted in the module init function.
|
|
|
|
*/
|
|
|
|
#define DI4Y 1461 /* days_before_year(5); days in 4 years */
|
|
|
|
#define DI100Y 36524 /* days_before_year(101); days in 100 years */
|
|
|
|
#define DI400Y 146097 /* days_before_year(401); days in 400 years */
|
|
|
|
|
|
|
|
/* ordinal -> year, month, day, considering 01-Jan-0001 as day 1. */
|
|
|
|
static void
|
|
|
|
ord_to_ymd(int ordinal, int *year, int *month, int *day)
|
|
|
|
{
|
|
|
|
int n, n1, n4, n100, n400, leapyear, preceding;
|
|
|
|
|
|
|
|
/* ordinal is a 1-based index, starting at 1-Jan-1. The pattern of
|
|
|
|
* leap years repeats exactly every 400 years. The basic strategy is
|
|
|
|
* to find the closest 400-year boundary at or before ordinal, then
|
|
|
|
* work with the offset from that boundary to ordinal. Life is much
|
|
|
|
* clearer if we subtract 1 from ordinal first -- then the values
|
|
|
|
* of ordinal at 400-year boundaries are exactly those divisible
|
|
|
|
* by DI400Y:
|
|
|
|
*
|
|
|
|
* D M Y n n-1
|
|
|
|
* -- --- ---- ---------- ----------------
|
|
|
|
* 31 Dec -400 -DI400Y -DI400Y -1
|
|
|
|
* 1 Jan -399 -DI400Y +1 -DI400Y 400-year boundary
|
|
|
|
* ...
|
|
|
|
* 30 Dec 000 -1 -2
|
|
|
|
* 31 Dec 000 0 -1
|
|
|
|
* 1 Jan 001 1 0 400-year boundary
|
|
|
|
* 2 Jan 001 2 1
|
|
|
|
* 3 Jan 001 3 2
|
|
|
|
* ...
|
|
|
|
* 31 Dec 400 DI400Y DI400Y -1
|
|
|
|
* 1 Jan 401 DI400Y +1 DI400Y 400-year boundary
|
|
|
|
*/
|
|
|
|
assert(ordinal >= 1);
|
|
|
|
--ordinal;
|
|
|
|
n400 = ordinal / DI400Y;
|
|
|
|
n = ordinal % DI400Y;
|
|
|
|
*year = n400 * 400 + 1;
|
|
|
|
|
|
|
|
/* Now n is the (non-negative) offset, in days, from January 1 of
|
|
|
|
* year, to the desired date. Now compute how many 100-year cycles
|
|
|
|
* precede n.
|
|
|
|
* Note that it's possible for n100 to equal 4! In that case 4 full
|
|
|
|
* 100-year cycles precede the desired day, which implies the
|
|
|
|
* desired day is December 31 at the end of a 400-year cycle.
|
|
|
|
*/
|
|
|
|
n100 = n / DI100Y;
|
|
|
|
n = n % DI100Y;
|
|
|
|
|
|
|
|
/* Now compute how many 4-year cycles precede it. */
|
|
|
|
n4 = n / DI4Y;
|
|
|
|
n = n % DI4Y;
|
|
|
|
|
|
|
|
/* And now how many single years. Again n1 can be 4, and again
|
|
|
|
* meaning that the desired day is December 31 at the end of the
|
|
|
|
* 4-year cycle.
|
|
|
|
*/
|
|
|
|
n1 = n / 365;
|
|
|
|
n = n % 365;
|
|
|
|
|
|
|
|
*year += n100 * 100 + n4 * 4 + n1;
|
|
|
|
if (n1 == 4 || n100 == 4) {
|
|
|
|
assert(n == 0);
|
|
|
|
*year -= 1;
|
|
|
|
*month = 12;
|
|
|
|
*day = 31;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Now the year is correct, and n is the offset from January 1. We
|
|
|
|
* find the month via an estimate that's either exact or one too
|
|
|
|
* large.
|
|
|
|
*/
|
|
|
|
leapyear = n1 == 3 && (n4 != 24 || n100 == 3);
|
|
|
|
assert(leapyear == is_leap(*year));
|
|
|
|
*month = (n + 50) >> 5;
|
|
|
|
preceding = (_days_before_month[*month] + (*month > 2 && leapyear));
|
|
|
|
if (preceding > n) {
|
|
|
|
/* estimate is too large */
|
|
|
|
*month -= 1;
|
|
|
|
preceding -= days_in_month(*year, *month);
|
|
|
|
}
|
|
|
|
n -= preceding;
|
|
|
|
assert(0 <= n);
|
|
|
|
assert(n < days_in_month(*year, *month));
|
|
|
|
|
|
|
|
*day = n + 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* year, month, day -> ordinal, considering 01-Jan-0001 as day 1. */
|
|
|
|
static int
|
|
|
|
ymd_to_ord(int year, int month, int day)
|
|
|
|
{
|
|
|
|
return days_before_year(year) + days_before_month(year, month) + day;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Day of week, where Monday==0, ..., Sunday==6. 1/1/1 was a Monday. */
|
|
|
|
static int
|
|
|
|
weekday(int year, int month, int day)
|
|
|
|
{
|
|
|
|
return (ymd_to_ord(year, month, day) + 6) % 7;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Ordinal of the Monday starting week 1 of the ISO year. Week 1 is the
|
|
|
|
* first calendar week containing a Thursday.
|
|
|
|
*/
|
|
|
|
static int
|
|
|
|
iso_week1_monday(int year)
|
|
|
|
{
|
|
|
|
int first_day = ymd_to_ord(year, 1, 1); /* ord of 1/1 */
|
|
|
|
/* 0 if 1/1 is a Monday, 1 if a Tue, etc. */
|
|
|
|
int first_weekday = (first_day + 6) % 7;
|
|
|
|
/* ordinal of closest Monday at or before 1/1 */
|
|
|
|
int week1_monday = first_day - first_weekday;
|
|
|
|
|
|
|
|
if (first_weekday > 3) /* if 1/1 was Fri, Sat, Sun */
|
|
|
|
week1_monday += 7;
|
|
|
|
return week1_monday;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* ---------------------------------------------------------------------------
|
|
|
|
* Range checkers.
|
|
|
|
*/
|
|
|
|
|
|
|
|
/* Check that -MAX_DELTA_DAYS <= days <= MAX_DELTA_DAYS. If so, return 0.
|
|
|
|
* If not, raise OverflowError and return -1.
|
|
|
|
*/
|
|
|
|
static int
|
|
|
|
check_delta_day_range(int days)
|
|
|
|
{
|
|
|
|
if (-MAX_DELTA_DAYS <= days && days <= MAX_DELTA_DAYS)
|
|
|
|
return 0;
|
|
|
|
PyErr_Format(PyExc_OverflowError,
|
|
|
|
"days=%d; must have magnitude <= %d",
|
2002-12-16 16:34:55 -04:00
|
|
|
days, MAX_DELTA_DAYS);
|
2002-12-16 16:18:38 -04:00
|
|
|
return -1;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Check that date arguments are in range. Return 0 if they are. If they
|
|
|
|
* aren't, raise ValueError and return -1.
|
|
|
|
*/
|
|
|
|
static int
|
|
|
|
check_date_args(int year, int month, int day)
|
|
|
|
{
|
|
|
|
|
|
|
|
if (year < MINYEAR || year > MAXYEAR) {
|
|
|
|
PyErr_SetString(PyExc_ValueError,
|
|
|
|
"year is out of range");
|
|
|
|
return -1;
|
|
|
|
}
|
|
|
|
if (month < 1 || month > 12) {
|
|
|
|
PyErr_SetString(PyExc_ValueError,
|
|
|
|
"month must be in 1..12");
|
|
|
|
return -1;
|
|
|
|
}
|
|
|
|
if (day < 1 || day > days_in_month(year, month)) {
|
|
|
|
PyErr_SetString(PyExc_ValueError,
|
|
|
|
"day is out of range for month");
|
|
|
|
return -1;
|
|
|
|
}
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Check that time arguments are in range. Return 0 if they are. If they
|
|
|
|
* aren't, raise ValueError and return -1.
|
|
|
|
*/
|
|
|
|
static int
|
|
|
|
check_time_args(int h, int m, int s, int us)
|
|
|
|
{
|
|
|
|
if (h < 0 || h > 23) {
|
|
|
|
PyErr_SetString(PyExc_ValueError,
|
|
|
|
"hour must be in 0..23");
|
|
|
|
return -1;
|
|
|
|
}
|
|
|
|
if (m < 0 || m > 59) {
|
|
|
|
PyErr_SetString(PyExc_ValueError,
|
|
|
|
"minute must be in 0..59");
|
|
|
|
return -1;
|
|
|
|
}
|
|
|
|
if (s < 0 || s > 59) {
|
|
|
|
PyErr_SetString(PyExc_ValueError,
|
|
|
|
"second must be in 0..59");
|
|
|
|
return -1;
|
|
|
|
}
|
|
|
|
if (us < 0 || us > 999999) {
|
|
|
|
PyErr_SetString(PyExc_ValueError,
|
|
|
|
"microsecond must be in 0..999999");
|
|
|
|
return -1;
|
|
|
|
}
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* ---------------------------------------------------------------------------
|
|
|
|
* Normalization utilities.
|
|
|
|
*/
|
|
|
|
|
|
|
|
/* One step of a mixed-radix conversion. A "hi" unit is equivalent to
|
|
|
|
* factor "lo" units. factor must be > 0. If *lo is less than 0, or
|
|
|
|
* at least factor, enough of *lo is converted into "hi" units so that
|
|
|
|
* 0 <= *lo < factor. The input values must be such that int overflow
|
|
|
|
* is impossible.
|
|
|
|
*/
|
|
|
|
static void
|
|
|
|
normalize_pair(int *hi, int *lo, int factor)
|
|
|
|
{
|
|
|
|
assert(factor > 0);
|
|
|
|
assert(lo != hi);
|
|
|
|
if (*lo < 0 || *lo >= factor) {
|
|
|
|
const int num_hi = divmod(*lo, factor, lo);
|
|
|
|
const int new_hi = *hi + num_hi;
|
|
|
|
assert(! SIGNED_ADD_OVERFLOWED(new_hi, *hi, num_hi));
|
|
|
|
*hi = new_hi;
|
|
|
|
}
|
|
|
|
assert(0 <= *lo && *lo < factor);
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Fiddle days (d), seconds (s), and microseconds (us) so that
|
|
|
|
* 0 <= *s < 24*3600
|
|
|
|
* 0 <= *us < 1000000
|
|
|
|
* The input values must be such that the internals don't overflow.
|
|
|
|
* The way this routine is used, we don't get close.
|
|
|
|
*/
|
|
|
|
static void
|
|
|
|
normalize_d_s_us(int *d, int *s, int *us)
|
|
|
|
{
|
|
|
|
if (*us < 0 || *us >= 1000000) {
|
|
|
|
normalize_pair(s, us, 1000000);
|
|
|
|
/* |s| can't be bigger than about
|
|
|
|
* |original s| + |original us|/1000000 now.
|
|
|
|
*/
|
|
|
|
|
|
|
|
}
|
|
|
|
if (*s < 0 || *s >= 24*3600) {
|
|
|
|
normalize_pair(d, s, 24*3600);
|
|
|
|
/* |d| can't be bigger than about
|
|
|
|
* |original d| +
|
|
|
|
* (|original s| + |original us|/1000000) / (24*3600) now.
|
|
|
|
*/
|
|
|
|
}
|
|
|
|
assert(0 <= *s && *s < 24*3600);
|
|
|
|
assert(0 <= *us && *us < 1000000);
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Fiddle years (y), months (m), and days (d) so that
|
|
|
|
* 1 <= *m <= 12
|
|
|
|
* 1 <= *d <= days_in_month(*y, *m)
|
|
|
|
* The input values must be such that the internals don't overflow.
|
|
|
|
* The way this routine is used, we don't get close.
|
|
|
|
*/
|
|
|
|
static void
|
|
|
|
normalize_y_m_d(int *y, int *m, int *d)
|
|
|
|
{
|
|
|
|
int dim; /* # of days in month */
|
|
|
|
|
|
|
|
/* This gets muddy: the proper range for day can't be determined
|
|
|
|
* without knowing the correct month and year, but if day is, e.g.,
|
|
|
|
* plus or minus a million, the current month and year values make
|
|
|
|
* no sense (and may also be out of bounds themselves).
|
|
|
|
* Saying 12 months == 1 year should be non-controversial.
|
|
|
|
*/
|
|
|
|
if (*m < 1 || *m > 12) {
|
|
|
|
--*m;
|
|
|
|
normalize_pair(y, m, 12);
|
|
|
|
++*m;
|
|
|
|
/* |y| can't be bigger than about
|
|
|
|
* |original y| + |original m|/12 now.
|
|
|
|
*/
|
|
|
|
}
|
|
|
|
assert(1 <= *m && *m <= 12);
|
|
|
|
|
|
|
|
/* Now only day can be out of bounds (year may also be out of bounds
|
|
|
|
* for a datetime object, but we don't care about that here).
|
|
|
|
* If day is out of bounds, what to do is arguable, but at least the
|
|
|
|
* method here is principled and explainable.
|
|
|
|
*/
|
|
|
|
dim = days_in_month(*y, *m);
|
|
|
|
if (*d < 1 || *d > dim) {
|
|
|
|
/* Move day-1 days from the first of the month. First try to
|
|
|
|
* get off cheap if we're only one day out of range
|
|
|
|
* (adjustments for timezone alone can't be worse than that).
|
|
|
|
*/
|
|
|
|
if (*d == 0) {
|
|
|
|
--*m;
|
|
|
|
if (*m > 0)
|
|
|
|
*d = days_in_month(*y, *m);
|
|
|
|
else {
|
|
|
|
--*y;
|
|
|
|
*m = 12;
|
|
|
|
*d = 31;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else if (*d == dim + 1) {
|
|
|
|
/* move forward a day */
|
|
|
|
++*m;
|
|
|
|
*d = 1;
|
|
|
|
if (*m > 12) {
|
|
|
|
*m = 1;
|
|
|
|
++*y;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
int ordinal = ymd_to_ord(*y, *m, 1) +
|
|
|
|
*d - 1;
|
|
|
|
ord_to_ymd(ordinal, y, m, d);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
assert(*m > 0);
|
|
|
|
assert(*d > 0);
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Fiddle out-of-bounds months and days so that the result makes some kind
|
|
|
|
* of sense. The parameters are both inputs and outputs. Returns < 0 on
|
|
|
|
* failure, where failure means the adjusted year is out of bounds.
|
|
|
|
*/
|
|
|
|
static int
|
|
|
|
normalize_date(int *year, int *month, int *day)
|
|
|
|
{
|
|
|
|
int result;
|
|
|
|
|
|
|
|
normalize_y_m_d(year, month, day);
|
|
|
|
if (MINYEAR <= *year && *year <= MAXYEAR)
|
|
|
|
result = 0;
|
|
|
|
else {
|
|
|
|
PyErr_SetString(PyExc_OverflowError,
|
|
|
|
"date value out of range");
|
|
|
|
result = -1;
|
|
|
|
}
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Force all the datetime fields into range. The parameters are both
|
|
|
|
* inputs and outputs. Returns < 0 on error.
|
|
|
|
*/
|
|
|
|
static int
|
|
|
|
normalize_datetime(int *year, int *month, int *day,
|
|
|
|
int *hour, int *minute, int *second,
|
|
|
|
int *microsecond)
|
|
|
|
{
|
|
|
|
normalize_pair(second, microsecond, 1000000);
|
|
|
|
normalize_pair(minute, second, 60);
|
|
|
|
normalize_pair(hour, minute, 60);
|
|
|
|
normalize_pair(day, hour, 24);
|
|
|
|
return normalize_date(year, month, day);
|
|
|
|
}
|
|
|
|
|
2003-05-17 12:57:00 -03:00
|
|
|
/* ---------------------------------------------------------------------------
|
|
|
|
* Basic object allocation: tp_alloc implementations. These allocate
|
|
|
|
* Python objects of the right size and type, and do the Python object-
|
|
|
|
* initialization bit. If there's not enough memory, they return NULL after
|
|
|
|
* setting MemoryError. All data members remain uninitialized trash.
|
|
|
|
*
|
|
|
|
* We abuse the tp_alloc "nitems" argument to communicate whether a tzinfo
|
2003-05-17 23:24:46 -03:00
|
|
|
* member is needed. This is ugly, imprecise, and possibly insecure.
|
|
|
|
* tp_basicsize for the time and datetime types is set to the size of the
|
|
|
|
* struct that has room for the tzinfo member, so subclasses in Python will
|
|
|
|
* allocate enough space for a tzinfo member whether or not one is actually
|
|
|
|
* needed. That's the "ugly and imprecise" parts. The "possibly insecure"
|
|
|
|
* part is that PyType_GenericAlloc() (which subclasses in Python end up
|
|
|
|
* using) just happens today to effectively ignore the nitems argument
|
|
|
|
* when tp_itemsize is 0, which it is for these type objects. If that
|
|
|
|
* changes, perhaps the callers of tp_alloc slots in this file should
|
|
|
|
* be changed to force a 0 nitems argument unless the type being allocated
|
|
|
|
* is a base type implemented in this file (so that tp_alloc is time_alloc
|
|
|
|
* or datetime_alloc below, which know about the nitems abuse).
|
2003-05-17 12:57:00 -03:00
|
|
|
*/
|
|
|
|
|
|
|
|
static PyObject *
|
2006-02-15 13:27:45 -04:00
|
|
|
time_alloc(PyTypeObject *type, Py_ssize_t aware)
|
2003-05-17 12:57:00 -03:00
|
|
|
{
|
|
|
|
PyObject *self;
|
|
|
|
|
|
|
|
self = (PyObject *)
|
|
|
|
PyObject_MALLOC(aware ?
|
|
|
|
sizeof(PyDateTime_Time) :
|
|
|
|
sizeof(_PyDateTime_BaseTime));
|
|
|
|
if (self == NULL)
|
|
|
|
return (PyObject *)PyErr_NoMemory();
|
|
|
|
PyObject_INIT(self, type);
|
|
|
|
return self;
|
|
|
|
}
|
|
|
|
|
|
|
|
static PyObject *
|
2006-02-15 13:27:45 -04:00
|
|
|
datetime_alloc(PyTypeObject *type, Py_ssize_t aware)
|
2003-05-17 12:57:00 -03:00
|
|
|
{
|
|
|
|
PyObject *self;
|
|
|
|
|
|
|
|
self = (PyObject *)
|
|
|
|
PyObject_MALLOC(aware ?
|
|
|
|
sizeof(PyDateTime_DateTime) :
|
|
|
|
sizeof(_PyDateTime_BaseDateTime));
|
|
|
|
if (self == NULL)
|
|
|
|
return (PyObject *)PyErr_NoMemory();
|
|
|
|
PyObject_INIT(self, type);
|
|
|
|
return self;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* ---------------------------------------------------------------------------
|
|
|
|
* Helpers for setting object fields. These work on pointers to the
|
|
|
|
* appropriate base class.
|
|
|
|
*/
|
|
|
|
|
|
|
|
/* For date and datetime. */
|
|
|
|
static void
|
|
|
|
set_date_fields(PyDateTime_Date *self, int y, int m, int d)
|
|
|
|
{
|
|
|
|
self->hashcode = -1;
|
|
|
|
SET_YEAR(self, y);
|
|
|
|
SET_MONTH(self, m);
|
|
|
|
SET_DAY(self, d);
|
|
|
|
}
|
|
|
|
|
|
|
|
/* ---------------------------------------------------------------------------
|
|
|
|
* Create various objects, mostly without range checking.
|
|
|
|
*/
|
|
|
|
|
|
|
|
/* Create a date instance with no range checking. */
|
|
|
|
static PyObject *
|
|
|
|
new_date_ex(int year, int month, int day, PyTypeObject *type)
|
|
|
|
{
|
|
|
|
PyDateTime_Date *self;
|
|
|
|
|
|
|
|
self = (PyDateTime_Date *) (type->tp_alloc(type, 0));
|
|
|
|
if (self != NULL)
|
|
|
|
set_date_fields(self, year, month, day);
|
|
|
|
return (PyObject *) self;
|
|
|
|
}
|
|
|
|
|
|
|
|
#define new_date(year, month, day) \
|
|
|
|
new_date_ex(year, month, day, &PyDateTime_DateType)
|
|
|
|
|
|
|
|
/* Create a datetime instance with no range checking. */
|
|
|
|
static PyObject *
|
|
|
|
new_datetime_ex(int year, int month, int day, int hour, int minute,
|
|
|
|
int second, int usecond, PyObject *tzinfo, PyTypeObject *type)
|
|
|
|
{
|
|
|
|
PyDateTime_DateTime *self;
|
|
|
|
char aware = tzinfo != Py_None;
|
|
|
|
|
|
|
|
self = (PyDateTime_DateTime *) (type->tp_alloc(type, aware));
|
|
|
|
if (self != NULL) {
|
|
|
|
self->hastzinfo = aware;
|
|
|
|
set_date_fields((PyDateTime_Date *)self, year, month, day);
|
|
|
|
DATE_SET_HOUR(self, hour);
|
|
|
|
DATE_SET_MINUTE(self, minute);
|
|
|
|
DATE_SET_SECOND(self, second);
|
|
|
|
DATE_SET_MICROSECOND(self, usecond);
|
|
|
|
if (aware) {
|
|
|
|
Py_INCREF(tzinfo);
|
|
|
|
self->tzinfo = tzinfo;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return (PyObject *)self;
|
|
|
|
}
|
|
|
|
|
|
|
|
#define new_datetime(y, m, d, hh, mm, ss, us, tzinfo) \
|
|
|
|
new_datetime_ex(y, m, d, hh, mm, ss, us, tzinfo, \
|
|
|
|
&PyDateTime_DateTimeType)
|
|
|
|
|
|
|
|
/* Create a time instance with no range checking. */
|
|
|
|
static PyObject *
|
|
|
|
new_time_ex(int hour, int minute, int second, int usecond,
|
|
|
|
PyObject *tzinfo, PyTypeObject *type)
|
|
|
|
{
|
|
|
|
PyDateTime_Time *self;
|
|
|
|
char aware = tzinfo != Py_None;
|
|
|
|
|
|
|
|
self = (PyDateTime_Time *) (type->tp_alloc(type, aware));
|
|
|
|
if (self != NULL) {
|
|
|
|
self->hastzinfo = aware;
|
|
|
|
self->hashcode = -1;
|
|
|
|
TIME_SET_HOUR(self, hour);
|
|
|
|
TIME_SET_MINUTE(self, minute);
|
|
|
|
TIME_SET_SECOND(self, second);
|
|
|
|
TIME_SET_MICROSECOND(self, usecond);
|
|
|
|
if (aware) {
|
|
|
|
Py_INCREF(tzinfo);
|
|
|
|
self->tzinfo = tzinfo;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return (PyObject *)self;
|
|
|
|
}
|
|
|
|
|
|
|
|
#define new_time(hh, mm, ss, us, tzinfo) \
|
|
|
|
new_time_ex(hh, mm, ss, us, tzinfo, &PyDateTime_TimeType)
|
|
|
|
|
|
|
|
/* Create a timedelta instance. Normalize the members iff normalize is
|
|
|
|
* true. Passing false is a speed optimization, if you know for sure
|
|
|
|
* that seconds and microseconds are already in their proper ranges. In any
|
|
|
|
* case, raises OverflowError and returns NULL if the normalized days is out
|
|
|
|
* of range).
|
|
|
|
*/
|
|
|
|
static PyObject *
|
|
|
|
new_delta_ex(int days, int seconds, int microseconds, int normalize,
|
|
|
|
PyTypeObject *type)
|
|
|
|
{
|
|
|
|
PyDateTime_Delta *self;
|
|
|
|
|
|
|
|
if (normalize)
|
|
|
|
normalize_d_s_us(&days, &seconds, µseconds);
|
|
|
|
assert(0 <= seconds && seconds < 24*3600);
|
|
|
|
assert(0 <= microseconds && microseconds < 1000000);
|
|
|
|
|
|
|
|
if (check_delta_day_range(days) < 0)
|
|
|
|
return NULL;
|
|
|
|
|
|
|
|
self = (PyDateTime_Delta *) (type->tp_alloc(type, 0));
|
|
|
|
if (self != NULL) {
|
|
|
|
self->hashcode = -1;
|
|
|
|
SET_TD_DAYS(self, days);
|
|
|
|
SET_TD_SECONDS(self, seconds);
|
|
|
|
SET_TD_MICROSECONDS(self, microseconds);
|
|
|
|
}
|
|
|
|
return (PyObject *) self;
|
|
|
|
}
|
|
|
|
|
|
|
|
#define new_delta(d, s, us, normalize) \
|
|
|
|
new_delta_ex(d, s, us, normalize, &PyDateTime_DeltaType)
|
|
|
|
|
2002-12-16 16:18:38 -04:00
|
|
|
/* ---------------------------------------------------------------------------
|
|
|
|
* tzinfo helpers.
|
|
|
|
*/
|
|
|
|
|
2002-12-21 23:43:39 -04:00
|
|
|
/* Ensure that p is None or of a tzinfo subclass. Return 0 if OK; if not
|
|
|
|
* raise TypeError and return -1.
|
|
|
|
*/
|
|
|
|
static int
|
|
|
|
check_tzinfo_subclass(PyObject *p)
|
|
|
|
{
|
|
|
|
if (p == Py_None || PyTZInfo_Check(p))
|
|
|
|
return 0;
|
|
|
|
PyErr_Format(PyExc_TypeError,
|
|
|
|
"tzinfo argument must be None or of a tzinfo subclass, "
|
|
|
|
"not type '%s'",
|
2007-12-18 22:45:37 -04:00
|
|
|
Py_TYPE(p)->tp_name);
|
2002-12-21 23:43:39 -04:00
|
|
|
return -1;
|
|
|
|
}
|
|
|
|
|
2002-12-30 16:52:32 -04:00
|
|
|
/* Return tzinfo.methname(tzinfoarg), without any checking of results.
|
2002-12-21 23:43:39 -04:00
|
|
|
* If tzinfo is None, returns None.
|
|
|
|
*/
|
|
|
|
static PyObject *
|
2002-12-30 16:52:32 -04:00
|
|
|
call_tzinfo_method(PyObject *tzinfo, char *methname, PyObject *tzinfoarg)
|
2002-12-21 23:43:39 -04:00
|
|
|
{
|
|
|
|
PyObject *result;
|
|
|
|
|
2002-12-30 16:52:32 -04:00
|
|
|
assert(tzinfo && methname && tzinfoarg);
|
2002-12-21 23:43:39 -04:00
|
|
|
assert(check_tzinfo_subclass(tzinfo) >= 0);
|
|
|
|
if (tzinfo == Py_None) {
|
|
|
|
result = Py_None;
|
|
|
|
Py_INCREF(result);
|
|
|
|
}
|
|
|
|
else
|
2002-12-30 16:52:32 -04:00
|
|
|
result = PyObject_CallMethod(tzinfo, methname, "O", tzinfoarg);
|
2002-12-21 23:43:39 -04:00
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
2002-12-16 16:18:38 -04:00
|
|
|
/* If self has a tzinfo member, return a BORROWED reference to it. Else
|
|
|
|
* return NULL, which is NOT AN ERROR. There are no error returns here,
|
|
|
|
* and the caller must not decref the result.
|
|
|
|
*/
|
|
|
|
static PyObject *
|
|
|
|
get_tzinfo_member(PyObject *self)
|
|
|
|
{
|
|
|
|
PyObject *tzinfo = NULL;
|
|
|
|
|
2003-01-10 23:39:11 -04:00
|
|
|
if (PyDateTime_Check(self) && HASTZINFO(self))
|
|
|
|
tzinfo = ((PyDateTime_DateTime *)self)->tzinfo;
|
2003-01-10 20:15:54 -04:00
|
|
|
else if (PyTime_Check(self) && HASTZINFO(self))
|
2003-01-09 23:49:02 -04:00
|
|
|
tzinfo = ((PyDateTime_Time *)self)->tzinfo;
|
2002-12-16 16:18:38 -04:00
|
|
|
|
|
|
|
return tzinfo;
|
|
|
|
}
|
|
|
|
|
2002-12-30 16:52:32 -04:00
|
|
|
/* Call getattr(tzinfo, name)(tzinfoarg), and extract an int from the
|
2002-12-16 16:18:38 -04:00
|
|
|
* result. tzinfo must be an instance of the tzinfo class. If the method
|
|
|
|
* returns None, this returns 0 and sets *none to 1. If the method doesn't
|
2003-01-02 17:28:08 -04:00
|
|
|
* return None or timedelta, TypeError is raised and this returns -1. If it
|
|
|
|
* returnsa timedelta and the value is out of range or isn't a whole number
|
|
|
|
* of minutes, ValueError is raised and this returns -1.
|
2002-12-16 16:18:38 -04:00
|
|
|
* Else *none is set to 0 and the integer method result is returned.
|
|
|
|
*/
|
|
|
|
static int
|
|
|
|
call_utc_tzinfo_method(PyObject *tzinfo, char *name, PyObject *tzinfoarg,
|
|
|
|
int *none)
|
|
|
|
{
|
|
|
|
PyObject *u;
|
2003-01-02 17:28:08 -04:00
|
|
|
int result = -1;
|
2002-12-16 16:18:38 -04:00
|
|
|
|
|
|
|
assert(tzinfo != NULL);
|
|
|
|
assert(PyTZInfo_Check(tzinfo));
|
|
|
|
assert(tzinfoarg != NULL);
|
|
|
|
|
|
|
|
*none = 0;
|
2002-12-30 16:52:32 -04:00
|
|
|
u = call_tzinfo_method(tzinfo, name, tzinfoarg);
|
2002-12-16 16:18:38 -04:00
|
|
|
if (u == NULL)
|
|
|
|
return -1;
|
|
|
|
|
2002-12-23 12:17:39 -04:00
|
|
|
else if (u == Py_None) {
|
2002-12-16 16:18:38 -04:00
|
|
|
result = 0;
|
|
|
|
*none = 1;
|
|
|
|
}
|
2002-12-21 23:43:39 -04:00
|
|
|
else if (PyDelta_Check(u)) {
|
|
|
|
const int days = GET_TD_DAYS(u);
|
|
|
|
if (days < -1 || days > 0)
|
|
|
|
result = 24*60; /* trigger ValueError below */
|
|
|
|
else {
|
|
|
|
/* next line can't overflow because we know days
|
|
|
|
* is -1 or 0 now
|
|
|
|
*/
|
|
|
|
int ss = days * 24 * 3600 + GET_TD_SECONDS(u);
|
|
|
|
result = divmod(ss, 60, &ss);
|
|
|
|
if (ss || GET_TD_MICROSECONDS(u)) {
|
|
|
|
PyErr_Format(PyExc_ValueError,
|
|
|
|
"tzinfo.%s() must return a "
|
|
|
|
"whole number of minutes",
|
|
|
|
name);
|
|
|
|
result = -1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2002-12-16 16:18:38 -04:00
|
|
|
else {
|
|
|
|
PyErr_Format(PyExc_TypeError,
|
2003-01-02 17:28:08 -04:00
|
|
|
"tzinfo.%s() must return None or "
|
2002-12-21 23:43:39 -04:00
|
|
|
"timedelta, not '%s'",
|
2007-12-18 22:45:37 -04:00
|
|
|
name, Py_TYPE(u)->tp_name);
|
2002-12-16 16:18:38 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
Py_DECREF(u);
|
|
|
|
if (result < -1439 || result > 1439) {
|
|
|
|
PyErr_Format(PyExc_ValueError,
|
2003-01-03 21:02:25 -04:00
|
|
|
"tzinfo.%s() returned %d; must be in "
|
2002-12-16 16:18:38 -04:00
|
|
|
"-1439 .. 1439",
|
|
|
|
name, result);
|
|
|
|
result = -1;
|
|
|
|
}
|
2003-01-02 17:28:08 -04:00
|
|
|
return result;
|
2002-12-16 16:18:38 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
/* Call tzinfo.utcoffset(tzinfoarg), and extract an integer from the
|
|
|
|
* result. tzinfo must be an instance of the tzinfo class. If utcoffset()
|
|
|
|
* returns None, call_utcoffset returns 0 and sets *none to 1. If uctoffset()
|
2003-01-02 17:28:08 -04:00
|
|
|
* doesn't return None or timedelta, TypeError is raised and this returns -1.
|
|
|
|
* If utcoffset() returns an invalid timedelta (out of range, or not a whole
|
|
|
|
* # of minutes), ValueError is raised and this returns -1. Else *none is
|
|
|
|
* set to 0 and the offset is returned (as int # of minutes east of UTC).
|
2002-12-16 16:18:38 -04:00
|
|
|
*/
|
|
|
|
static int
|
|
|
|
call_utcoffset(PyObject *tzinfo, PyObject *tzinfoarg, int *none)
|
|
|
|
{
|
|
|
|
return call_utc_tzinfo_method(tzinfo, "utcoffset", tzinfoarg, none);
|
|
|
|
}
|
|
|
|
|
2002-12-30 16:52:32 -04:00
|
|
|
/* Call tzinfo.name(tzinfoarg), and return the offset as a timedelta or None.
|
|
|
|
*/
|
2002-12-21 23:43:39 -04:00
|
|
|
static PyObject *
|
2002-12-30 16:52:32 -04:00
|
|
|
offset_as_timedelta(PyObject *tzinfo, char *name, PyObject *tzinfoarg) {
|
2002-12-21 23:43:39 -04:00
|
|
|
PyObject *result;
|
|
|
|
|
2002-12-30 16:52:32 -04:00
|
|
|
assert(tzinfo && name && tzinfoarg);
|
2002-12-21 23:43:39 -04:00
|
|
|
if (tzinfo == Py_None) {
|
|
|
|
result = Py_None;
|
|
|
|
Py_INCREF(result);
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
int none;
|
2002-12-30 16:52:32 -04:00
|
|
|
int offset = call_utc_tzinfo_method(tzinfo, name, tzinfoarg,
|
|
|
|
&none);
|
2002-12-21 23:43:39 -04:00
|
|
|
if (offset < 0 && PyErr_Occurred())
|
|
|
|
return NULL;
|
|
|
|
if (none) {
|
|
|
|
result = Py_None;
|
|
|
|
Py_INCREF(result);
|
|
|
|
}
|
|
|
|
else
|
|
|
|
result = new_delta(0, offset * 60, 0, 1);
|
|
|
|
}
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
2002-12-16 16:18:38 -04:00
|
|
|
/* Call tzinfo.dst(tzinfoarg), and extract an integer from the
|
|
|
|
* result. tzinfo must be an instance of the tzinfo class. If dst()
|
|
|
|
* returns None, call_dst returns 0 and sets *none to 1. If dst()
|
2003-01-02 17:28:08 -04:00
|
|
|
& doesn't return None or timedelta, TypeError is raised and this
|
2003-10-20 11:01:56 -03:00
|
|
|
* returns -1. If dst() returns an invalid timedelta for a UTC offset,
|
2003-01-02 17:28:08 -04:00
|
|
|
* ValueError is raised and this returns -1. Else *none is set to 0 and
|
|
|
|
* the offset is returned (as an int # of minutes east of UTC).
|
2002-12-16 16:18:38 -04:00
|
|
|
*/
|
|
|
|
static int
|
|
|
|
call_dst(PyObject *tzinfo, PyObject *tzinfoarg, int *none)
|
|
|
|
{
|
|
|
|
return call_utc_tzinfo_method(tzinfo, "dst", tzinfoarg, none);
|
|
|
|
}
|
|
|
|
|
2002-12-30 16:52:32 -04:00
|
|
|
/* Call tzinfo.tzname(tzinfoarg), and return the result. tzinfo must be
|
2002-12-21 23:43:39 -04:00
|
|
|
* an instance of the tzinfo class or None. If tzinfo isn't None, and
|
2002-12-30 16:52:32 -04:00
|
|
|
* tzname() doesn't return None or a string, TypeError is raised and this
|
2007-05-23 18:24:35 -03:00
|
|
|
* returns NULL. If the result is a string, we ensure it is a Unicode
|
|
|
|
* string.
|
2002-12-16 16:18:38 -04:00
|
|
|
*/
|
|
|
|
static PyObject *
|
2002-12-30 16:52:32 -04:00
|
|
|
call_tzname(PyObject *tzinfo, PyObject *tzinfoarg)
|
2002-12-16 16:18:38 -04:00
|
|
|
{
|
|
|
|
PyObject *result;
|
|
|
|
|
|
|
|
assert(tzinfo != NULL);
|
2002-12-21 23:43:39 -04:00
|
|
|
assert(check_tzinfo_subclass(tzinfo) >= 0);
|
2002-12-30 16:52:32 -04:00
|
|
|
assert(tzinfoarg != NULL);
|
2002-12-16 16:18:38 -04:00
|
|
|
|
2002-12-21 23:43:39 -04:00
|
|
|
if (tzinfo == Py_None) {
|
|
|
|
result = Py_None;
|
|
|
|
Py_INCREF(result);
|
|
|
|
}
|
|
|
|
else
|
2002-12-30 16:52:32 -04:00
|
|
|
result = PyObject_CallMethod(tzinfo, "tzname", "O", tzinfoarg);
|
2002-12-21 23:43:39 -04:00
|
|
|
|
2007-05-23 18:24:35 -03:00
|
|
|
if (result != NULL && result != Py_None) {
|
2007-08-24 01:05:13 -03:00
|
|
|
if (!PyUnicode_Check(result)) {
|
2007-05-23 18:24:35 -03:00
|
|
|
PyErr_Format(PyExc_TypeError, "tzinfo.tzname() must "
|
|
|
|
"return None or a string, not '%s'",
|
2007-12-18 22:45:37 -04:00
|
|
|
Py_TYPE(result)->tp_name);
|
2007-05-23 18:24:35 -03:00
|
|
|
Py_DECREF(result);
|
|
|
|
result = NULL;
|
|
|
|
}
|
|
|
|
else if (!PyUnicode_Check(result)) {
|
|
|
|
PyObject *temp = PyUnicode_FromObject(result);
|
|
|
|
Py_DECREF(result);
|
|
|
|
result = temp;
|
|
|
|
}
|
2002-12-16 16:18:38 -04:00
|
|
|
}
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
|
|
|
typedef enum {
|
|
|
|
/* an exception has been set; the caller should pass it on */
|
|
|
|
OFFSET_ERROR,
|
|
|
|
|
2003-01-10 23:39:11 -04:00
|
|
|
/* type isn't date, datetime, or time subclass */
|
2002-12-16 16:18:38 -04:00
|
|
|
OFFSET_UNKNOWN,
|
|
|
|
|
|
|
|
/* date,
|
2003-01-10 23:39:11 -04:00
|
|
|
* datetime with !hastzinfo
|
|
|
|
* datetime with None tzinfo,
|
|
|
|
* datetime where utcoffset() returns None
|
2003-01-09 23:49:02 -04:00
|
|
|
* time with !hastzinfo
|
|
|
|
* time with None tzinfo,
|
|
|
|
* time where utcoffset() returns None
|
2002-12-16 16:18:38 -04:00
|
|
|
*/
|
|
|
|
OFFSET_NAIVE,
|
|
|
|
|
2003-01-10 23:39:11 -04:00
|
|
|
/* time or datetime where utcoffset() doesn't return None */
|
2006-02-19 11:28:47 -04:00
|
|
|
OFFSET_AWARE
|
2002-12-16 16:18:38 -04:00
|
|
|
} naivety;
|
|
|
|
|
2002-12-22 14:10:22 -04:00
|
|
|
/* Classify an object as to whether it's naive or offset-aware. See
|
2002-12-16 16:18:38 -04:00
|
|
|
* the "naivety" typedef for details. If the type is aware, *offset is set
|
|
|
|
* to minutes east of UTC (as returned by the tzinfo.utcoffset() method).
|
2002-12-22 14:10:22 -04:00
|
|
|
* If the type is offset-naive (or unknown, or error), *offset is set to 0.
|
2002-12-30 17:28:52 -04:00
|
|
|
* tzinfoarg is the argument to pass to the tzinfo.utcoffset() method.
|
2002-12-16 16:18:38 -04:00
|
|
|
*/
|
|
|
|
static naivety
|
2002-12-30 17:28:52 -04:00
|
|
|
classify_utcoffset(PyObject *op, PyObject *tzinfoarg, int *offset)
|
2002-12-16 16:18:38 -04:00
|
|
|
{
|
|
|
|
int none;
|
|
|
|
PyObject *tzinfo;
|
|
|
|
|
2002-12-30 17:28:52 -04:00
|
|
|
assert(tzinfoarg != NULL);
|
2002-12-16 16:18:38 -04:00
|
|
|
*offset = 0;
|
2002-12-22 14:10:22 -04:00
|
|
|
tzinfo = get_tzinfo_member(op); /* NULL means no tzinfo, not error */
|
2002-12-16 16:18:38 -04:00
|
|
|
if (tzinfo == Py_None)
|
|
|
|
return OFFSET_NAIVE;
|
2002-12-22 14:10:22 -04:00
|
|
|
if (tzinfo == NULL) {
|
|
|
|
/* note that a datetime passes the PyDate_Check test */
|
|
|
|
return (PyTime_Check(op) || PyDate_Check(op)) ?
|
|
|
|
OFFSET_NAIVE : OFFSET_UNKNOWN;
|
|
|
|
}
|
2002-12-30 17:28:52 -04:00
|
|
|
*offset = call_utcoffset(tzinfo, tzinfoarg, &none);
|
2002-12-16 16:18:38 -04:00
|
|
|
if (*offset == -1 && PyErr_Occurred())
|
|
|
|
return OFFSET_ERROR;
|
|
|
|
return none ? OFFSET_NAIVE : OFFSET_AWARE;
|
|
|
|
}
|
|
|
|
|
2002-12-26 22:21:51 -04:00
|
|
|
/* Classify two objects as to whether they're naive or offset-aware.
|
|
|
|
* This isn't quite the same as calling classify_utcoffset() twice: for
|
|
|
|
* binary operations (comparison and subtraction), we generally want to
|
|
|
|
* ignore the tzinfo members if they're identical. This is by design,
|
|
|
|
* so that results match "naive" expectations when mixing objects from a
|
|
|
|
* single timezone. So in that case, this sets both offsets to 0 and
|
|
|
|
* both naiveties to OFFSET_NAIVE.
|
|
|
|
* The function returns 0 if everything's OK, and -1 on error.
|
|
|
|
*/
|
|
|
|
static int
|
|
|
|
classify_two_utcoffsets(PyObject *o1, int *offset1, naivety *n1,
|
2002-12-30 17:28:52 -04:00
|
|
|
PyObject *tzinfoarg1,
|
|
|
|
PyObject *o2, int *offset2, naivety *n2,
|
|
|
|
PyObject *tzinfoarg2)
|
2002-12-26 22:21:51 -04:00
|
|
|
{
|
|
|
|
if (get_tzinfo_member(o1) == get_tzinfo_member(o2)) {
|
|
|
|
*offset1 = *offset2 = 0;
|
|
|
|
*n1 = *n2 = OFFSET_NAIVE;
|
|
|
|
}
|
|
|
|
else {
|
2002-12-30 17:28:52 -04:00
|
|
|
*n1 = classify_utcoffset(o1, tzinfoarg1, offset1);
|
2002-12-26 22:21:51 -04:00
|
|
|
if (*n1 == OFFSET_ERROR)
|
|
|
|
return -1;
|
2002-12-30 17:28:52 -04:00
|
|
|
*n2 = classify_utcoffset(o2, tzinfoarg2, offset2);
|
2002-12-26 22:21:51 -04:00
|
|
|
if (*n2 == OFFSET_ERROR)
|
|
|
|
return -1;
|
|
|
|
}
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
2002-12-16 16:18:38 -04:00
|
|
|
/* repr is like "someclass(arg1, arg2)". If tzinfo isn't None,
|
|
|
|
* stuff
|
|
|
|
* ", tzinfo=" + repr(tzinfo)
|
|
|
|
* before the closing ")".
|
|
|
|
*/
|
|
|
|
static PyObject *
|
|
|
|
append_keyword_tzinfo(PyObject *repr, PyObject *tzinfo)
|
|
|
|
{
|
|
|
|
PyObject *temp;
|
|
|
|
|
2007-05-18 14:15:44 -03:00
|
|
|
assert(PyUnicode_Check(repr));
|
2002-12-16 16:18:38 -04:00
|
|
|
assert(tzinfo);
|
|
|
|
if (tzinfo == Py_None)
|
|
|
|
return repr;
|
|
|
|
/* Get rid of the trailing ')'. */
|
2007-05-18 14:15:44 -03:00
|
|
|
assert(PyUnicode_AS_UNICODE(repr)[PyUnicode_GET_SIZE(repr)-1] == ')');
|
|
|
|
temp = PyUnicode_FromUnicode(PyUnicode_AS_UNICODE(repr),
|
|
|
|
PyUnicode_GET_SIZE(repr) - 1);
|
2002-12-16 16:18:38 -04:00
|
|
|
Py_DECREF(repr);
|
|
|
|
if (temp == NULL)
|
|
|
|
return NULL;
|
2007-05-23 17:45:05 -03:00
|
|
|
repr = PyUnicode_FromFormat("%U, tzinfo=%R)", temp, tzinfo);
|
|
|
|
Py_DECREF(temp);
|
2002-12-16 16:18:38 -04:00
|
|
|
return repr;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* ---------------------------------------------------------------------------
|
|
|
|
* String format helpers.
|
|
|
|
*/
|
|
|
|
|
|
|
|
static PyObject *
|
2003-01-10 23:39:11 -04:00
|
|
|
format_ctime(PyDateTime_Date *date, int hours, int minutes, int seconds)
|
2002-12-16 16:18:38 -04:00
|
|
|
{
|
2005-12-10 14:50:16 -04:00
|
|
|
static const char *DayNames[] = {
|
2002-12-16 16:18:38 -04:00
|
|
|
"Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"
|
|
|
|
};
|
2005-12-10 14:50:16 -04:00
|
|
|
static const char *MonthNames[] = {
|
2002-12-16 16:18:38 -04:00
|
|
|
"Jan", "Feb", "Mar", "Apr", "May", "Jun",
|
|
|
|
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
|
|
|
|
};
|
|
|
|
|
|
|
|
int wday = weekday(GET_YEAR(date), GET_MONTH(date), GET_DAY(date));
|
|
|
|
|
2007-05-31 13:19:50 -03:00
|
|
|
return PyUnicode_FromFormat("%s %s %2d %02d:%02d:%02d %04d",
|
|
|
|
DayNames[wday], MonthNames[GET_MONTH(date)-1],
|
|
|
|
GET_DAY(date), hours, minutes, seconds,
|
|
|
|
GET_YEAR(date));
|
2002-12-16 16:18:38 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
/* Add an hours & minutes UTC offset string to buf. buf has no more than
|
|
|
|
* buflen bytes remaining. The UTC offset is gotten by calling
|
|
|
|
* tzinfo.uctoffset(tzinfoarg). If that returns None, \0 is stored into
|
|
|
|
* *buf, and that's all. Else the returned value is checked for sanity (an
|
|
|
|
* integer in range), and if that's OK it's converted to an hours & minutes
|
|
|
|
* string of the form
|
|
|
|
* sign HH sep MM
|
|
|
|
* Returns 0 if everything is OK. If the return value from utcoffset() is
|
|
|
|
* bogus, an appropriate exception is set and -1 is returned.
|
|
|
|
*/
|
|
|
|
static int
|
2002-12-19 21:31:27 -04:00
|
|
|
format_utcoffset(char *buf, size_t buflen, const char *sep,
|
2002-12-16 16:18:38 -04:00
|
|
|
PyObject *tzinfo, PyObject *tzinfoarg)
|
|
|
|
{
|
|
|
|
int offset;
|
|
|
|
int hours;
|
|
|
|
int minutes;
|
|
|
|
char sign;
|
|
|
|
int none;
|
|
|
|
|
2008-06-17 21:47:36 -03:00
|
|
|
assert(buflen >= 1);
|
|
|
|
|
2002-12-16 16:18:38 -04:00
|
|
|
offset = call_utcoffset(tzinfo, tzinfoarg, &none);
|
|
|
|
if (offset == -1 && PyErr_Occurred())
|
|
|
|
return -1;
|
|
|
|
if (none) {
|
|
|
|
*buf = '\0';
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
sign = '+';
|
|
|
|
if (offset < 0) {
|
|
|
|
sign = '-';
|
|
|
|
offset = - offset;
|
|
|
|
}
|
|
|
|
hours = divmod(offset, 60, &minutes);
|
|
|
|
PyOS_snprintf(buf, buflen, "%c%02d%s%02d", sign, hours, sep, minutes);
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
2007-05-23 18:36:49 -03:00
|
|
|
static PyObject *
|
|
|
|
make_Zreplacement(PyObject *object, PyObject *tzinfoarg)
|
|
|
|
{
|
2007-08-12 01:32:26 -03:00
|
|
|
PyObject *temp;
|
2007-05-23 18:36:49 -03:00
|
|
|
PyObject *tzinfo = get_tzinfo_member(object);
|
2007-11-06 17:34:58 -04:00
|
|
|
PyObject *Zreplacement = PyUnicode_FromStringAndSize(NULL, 0);
|
2007-05-23 18:36:49 -03:00
|
|
|
if (Zreplacement == NULL)
|
|
|
|
return NULL;
|
2007-08-12 01:32:26 -03:00
|
|
|
if (tzinfo == Py_None || tzinfo == NULL)
|
|
|
|
return Zreplacement;
|
|
|
|
|
|
|
|
assert(tzinfoarg != NULL);
|
|
|
|
temp = call_tzname(tzinfo, tzinfoarg);
|
|
|
|
if (temp == NULL)
|
|
|
|
goto Error;
|
|
|
|
if (temp == Py_None) {
|
|
|
|
Py_DECREF(temp);
|
|
|
|
return Zreplacement;
|
|
|
|
}
|
|
|
|
|
|
|
|
assert(PyUnicode_Check(temp));
|
|
|
|
/* Since the tzname is getting stuffed into the
|
|
|
|
* format, we have to double any % signs so that
|
|
|
|
* strftime doesn't treat them as format codes.
|
|
|
|
*/
|
|
|
|
Py_DECREF(Zreplacement);
|
|
|
|
Zreplacement = PyObject_CallMethod(temp, "replace", "ss", "%", "%%");
|
|
|
|
Py_DECREF(temp);
|
|
|
|
if (Zreplacement == NULL)
|
|
|
|
return NULL;
|
2007-11-06 17:34:58 -04:00
|
|
|
if (!PyUnicode_Check(Zreplacement)) {
|
2007-08-12 01:32:26 -03:00
|
|
|
PyErr_SetString(PyExc_TypeError,
|
|
|
|
"tzname.replace() did not return a string");
|
|
|
|
goto Error;
|
2007-05-23 18:36:49 -03:00
|
|
|
}
|
|
|
|
return Zreplacement;
|
|
|
|
|
|
|
|
Error:
|
|
|
|
Py_DECREF(Zreplacement);
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
|
Merged revisions 61239-61249,61252-61257,61260-61264,61269-61275,61278-61279,61285-61286,61288-61290,61298,61303-61305,61312-61314,61317,61329,61332,61344,61350-61351,61363-61376,61378-61379,61382-61383,61387-61388,61392,61395-61396,61402-61403 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r61239 | andrew.kuchling | 2008-03-05 01:44:41 +0100 (Wed, 05 Mar 2008) | 1 line
Add more items; add fragmentary notes
........
r61240 | amaury.forgeotdarc | 2008-03-05 02:50:33 +0100 (Wed, 05 Mar 2008) | 13 lines
Issue#2238: some syntax errors from *args or **kwargs expressions
would give bogus error messages, because of untested exceptions::
>>> f(**g(1=2))
XXX undetected error
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is not iterable
instead of the expected SyntaxError: keyword can't be an expression
Will backport.
........
r61241 | neal.norwitz | 2008-03-05 06:10:48 +0100 (Wed, 05 Mar 2008) | 3 lines
Remove the files/dirs after closing the DB so the tests work on Windows.
Patch from Trent Nelson. Also simplified removing a file by using test_support.
........
r61242 | neal.norwitz | 2008-03-05 06:14:18 +0100 (Wed, 05 Mar 2008) | 3 lines
Get this test to pass even when there is no sound card in the system.
Patch from Trent Nelson. (I can't test this.)
........
r61243 | neal.norwitz | 2008-03-05 06:20:44 +0100 (Wed, 05 Mar 2008) | 3 lines
Catch OSError when trying to remove a file in case removal fails. This
should prevent a failure in tearDown masking any real test failure.
........
r61244 | neal.norwitz | 2008-03-05 06:38:06 +0100 (Wed, 05 Mar 2008) | 5 lines
Make the timeout longer to give slow machines a chance to pass the test
before timing out. This doesn't change the duration of the test under
normal circumstances. This is targetted at fixing the spurious failures
on the FreeBSD buildbot primarily.
........
r61245 | neal.norwitz | 2008-03-05 06:49:03 +0100 (Wed, 05 Mar 2008) | 1 line
Tabs -> spaces
........
r61246 | neal.norwitz | 2008-03-05 06:50:20 +0100 (Wed, 05 Mar 2008) | 1 line
Use -u urlfetch to run more tests
........
r61247 | neal.norwitz | 2008-03-05 06:51:20 +0100 (Wed, 05 Mar 2008) | 1 line
test_smtplib sometimes reports leaks too, suppress it
........
r61248 | jeffrey.yasskin | 2008-03-05 07:19:56 +0100 (Wed, 05 Mar 2008) | 5 lines
Fix test_socketserver on Windows after r61099 added several signal.alarm()
calls (which don't exist on non-Unix platforms).
Thanks to Trent Nelson for the report and patch.
........
r61249 | georg.brandl | 2008-03-05 08:10:35 +0100 (Wed, 05 Mar 2008) | 2 lines
Fix some rst.
........
r61252 | thomas.heller | 2008-03-05 15:53:39 +0100 (Wed, 05 Mar 2008) | 2 lines
News entry for yesterdays commit.
........
r61253 | thomas.heller | 2008-03-05 16:34:29 +0100 (Wed, 05 Mar 2008) | 3 lines
Issue 1872: Changed the struct module typecode from 't' to '?', for
compatibility with PEP3118.
........
r61254 | skip.montanaro | 2008-03-05 17:41:09 +0100 (Wed, 05 Mar 2008) | 4 lines
Elaborate on the role of the altinstall target when installing multiple
versions.
........
r61255 | georg.brandl | 2008-03-05 20:31:44 +0100 (Wed, 05 Mar 2008) | 2 lines
#2239: PYTHONPATH delimiter is os.pathsep.
........
r61256 | raymond.hettinger | 2008-03-05 21:59:58 +0100 (Wed, 05 Mar 2008) | 1 line
C implementation of itertools.permutations().
........
r61257 | raymond.hettinger | 2008-03-05 22:04:32 +0100 (Wed, 05 Mar 2008) | 1 line
Small code cleanup.
........
r61260 | martin.v.loewis | 2008-03-05 23:24:31 +0100 (Wed, 05 Mar 2008) | 2 lines
cd PCbuild only after deleting all pyc files.
........
r61261 | raymond.hettinger | 2008-03-06 02:15:52 +0100 (Thu, 06 Mar 2008) | 1 line
Add examples.
........
r61262 | andrew.kuchling | 2008-03-06 02:36:27 +0100 (Thu, 06 Mar 2008) | 1 line
Add two items
........
r61263 | georg.brandl | 2008-03-06 07:47:18 +0100 (Thu, 06 Mar 2008) | 2 lines
#1725737: ignore other VC directories other than CVS and SVN's too.
........
r61264 | martin.v.loewis | 2008-03-06 07:55:22 +0100 (Thu, 06 Mar 2008) | 4 lines
Patch #2232: os.tmpfile might fail on Windows if the user has no
permission to create files in the root directory.
Will backport to 2.5.
........
r61269 | georg.brandl | 2008-03-06 08:19:15 +0100 (Thu, 06 Mar 2008) | 2 lines
Expand on re.split behavior with captured expressions.
........
r61270 | georg.brandl | 2008-03-06 08:22:09 +0100 (Thu, 06 Mar 2008) | 2 lines
Little clarification of assignments.
........
r61271 | georg.brandl | 2008-03-06 08:31:34 +0100 (Thu, 06 Mar 2008) | 2 lines
Add isinstance/issubclass to tutorial.
........
r61272 | georg.brandl | 2008-03-06 08:34:52 +0100 (Thu, 06 Mar 2008) | 2 lines
Add missing NEWS entry for r61263.
........
r61273 | georg.brandl | 2008-03-06 08:41:16 +0100 (Thu, 06 Mar 2008) | 2 lines
#2225: return nonzero status code from py_compile if not all files could be compiled.
........
r61274 | georg.brandl | 2008-03-06 08:43:02 +0100 (Thu, 06 Mar 2008) | 2 lines
#2220: handle matching failure more gracefully.
........
r61275 | georg.brandl | 2008-03-06 08:45:52 +0100 (Thu, 06 Mar 2008) | 2 lines
Bug #2220: handle rlcompleter attribute match failure more gracefully.
........
r61278 | martin.v.loewis | 2008-03-06 14:49:47 +0100 (Thu, 06 Mar 2008) | 1 line
Rely on x64 platform configuration when building _bsddb on AMD64.
........
r61279 | martin.v.loewis | 2008-03-06 14:50:28 +0100 (Thu, 06 Mar 2008) | 1 line
Update db-4.4.20 build procedure.
........
r61285 | raymond.hettinger | 2008-03-06 21:52:01 +0100 (Thu, 06 Mar 2008) | 1 line
More tests.
........
r61286 | raymond.hettinger | 2008-03-06 23:51:36 +0100 (Thu, 06 Mar 2008) | 1 line
Issue 2246: itertools grouper object did not participate in GC (should be backported).
........
r61288 | raymond.hettinger | 2008-03-07 02:33:20 +0100 (Fri, 07 Mar 2008) | 1 line
Tweak recipes and tests
........
r61289 | jeffrey.yasskin | 2008-03-07 07:22:15 +0100 (Fri, 07 Mar 2008) | 5 lines
Progress on issue #1193577 by adding a polling .shutdown() method to
SocketServers. The core of the patch was written by Pedro Werneck, but any bugs
are mine. I've also rearranged the code for timeouts in order to avoid
interfering with the shutdown poll.
........
r61290 | nick.coghlan | 2008-03-07 15:13:28 +0100 (Fri, 07 Mar 2008) | 1 line
Speed up with statements by storing the __exit__ method on the stack instead of in a temp variable (bumps the magic number for pyc files)
........
r61298 | andrew.kuchling | 2008-03-07 22:09:23 +0100 (Fri, 07 Mar 2008) | 1 line
Grammar fix
........
r61303 | georg.brandl | 2008-03-08 10:54:06 +0100 (Sat, 08 Mar 2008) | 2 lines
#2253: fix continue vs. finally docs.
........
r61304 | marc-andre.lemburg | 2008-03-08 11:01:43 +0100 (Sat, 08 Mar 2008) | 3 lines
Add new name for Mandrake: Mandriva.
........
r61305 | georg.brandl | 2008-03-08 11:05:24 +0100 (Sat, 08 Mar 2008) | 2 lines
#1533486: fix types in refcount intro.
........
r61312 | facundo.batista | 2008-03-08 17:50:27 +0100 (Sat, 08 Mar 2008) | 5 lines
Issue 1106316. post_mortem()'s parameter, traceback, is now
optional: it defaults to the traceback of the exception that is currently
being handled.
........
r61313 | jeffrey.yasskin | 2008-03-08 19:26:54 +0100 (Sat, 08 Mar 2008) | 2 lines
Add tests for with and finally performance to pybench.
........
r61314 | jeffrey.yasskin | 2008-03-08 21:08:21 +0100 (Sat, 08 Mar 2008) | 2 lines
Fix pybench for pythons < 2.6, tested back to 2.3.
........
r61317 | jeffrey.yasskin | 2008-03-08 22:35:15 +0100 (Sat, 08 Mar 2008) | 3 lines
Well that was dumb. platform.python_implementation returns a function, not a
string.
........
r61329 | georg.brandl | 2008-03-09 16:11:39 +0100 (Sun, 09 Mar 2008) | 2 lines
#2249: document assertTrue and assertFalse.
........
r61332 | neal.norwitz | 2008-03-09 20:03:42 +0100 (Sun, 09 Mar 2008) | 4 lines
Introduce a lock to fix a race condition which caused an exception in the test.
Some buildbots were consistently failing (e.g., amd64).
Also remove a couple of semi-colons.
........
r61344 | raymond.hettinger | 2008-03-11 01:19:07 +0100 (Tue, 11 Mar 2008) | 1 line
Add recipe to docs.
........
r61350 | guido.van.rossum | 2008-03-11 22:18:06 +0100 (Tue, 11 Mar 2008) | 3 lines
Fix the overflows in expandtabs(). "This time for sure!"
(Exploit at request.)
........
r61351 | raymond.hettinger | 2008-03-11 22:37:46 +0100 (Tue, 11 Mar 2008) | 1 line
Improve docs for itemgetter(). Show that it works with slices.
........
r61363 | georg.brandl | 2008-03-13 08:15:56 +0100 (Thu, 13 Mar 2008) | 2 lines
#2265: fix example.
........
r61364 | georg.brandl | 2008-03-13 08:17:14 +0100 (Thu, 13 Mar 2008) | 2 lines
#2270: fix typo.
........
r61365 | georg.brandl | 2008-03-13 08:21:41 +0100 (Thu, 13 Mar 2008) | 2 lines
#1720705: add docs about import/threading interaction, wording by Nick.
........
r61366 | andrew.kuchling | 2008-03-13 12:07:35 +0100 (Thu, 13 Mar 2008) | 1 line
Add class decorators
........
r61367 | raymond.hettinger | 2008-03-13 17:43:17 +0100 (Thu, 13 Mar 2008) | 1 line
Add 2-to-3 support for the itertools moved to builtins or renamed.
........
r61368 | raymond.hettinger | 2008-03-13 17:43:59 +0100 (Thu, 13 Mar 2008) | 1 line
Consistent tense.
........
r61369 | raymond.hettinger | 2008-03-13 20:03:51 +0100 (Thu, 13 Mar 2008) | 1 line
Issue 2274: Add heapq.heappushpop().
........
r61370 | raymond.hettinger | 2008-03-13 20:33:34 +0100 (Thu, 13 Mar 2008) | 1 line
Simplify the nlargest() code using heappushpop().
........
r61371 | brett.cannon | 2008-03-13 21:27:00 +0100 (Thu, 13 Mar 2008) | 4 lines
Move test_thread over to unittest. Commits GHOP 237.
Thanks Benjamin Peterson for the patch.
........
r61372 | brett.cannon | 2008-03-13 21:33:10 +0100 (Thu, 13 Mar 2008) | 4 lines
Move test_tokenize to doctest.
Done as GHOP 238 by Josip Dzolonga.
........
r61373 | brett.cannon | 2008-03-13 21:47:41 +0100 (Thu, 13 Mar 2008) | 4 lines
Convert test_contains, test_crypt, and test_select to unittest.
Patch from GHOP 294 by David Marek.
........
r61374 | brett.cannon | 2008-03-13 22:02:16 +0100 (Thu, 13 Mar 2008) | 4 lines
Move test_gdbm to use unittest.
Closes issue #1960. Thanks Giampaolo Rodola.
........
r61375 | brett.cannon | 2008-03-13 22:09:28 +0100 (Thu, 13 Mar 2008) | 4 lines
Convert test_fcntl to unittest.
Closes issue #2055. Thanks Giampaolo Rodola.
........
r61376 | raymond.hettinger | 2008-03-14 06:03:44 +0100 (Fri, 14 Mar 2008) | 1 line
Leave heapreplace() unchanged.
........
r61378 | martin.v.loewis | 2008-03-14 14:56:09 +0100 (Fri, 14 Mar 2008) | 2 lines
Patch #2284: add -x64 option to rt.bat.
........
r61379 | martin.v.loewis | 2008-03-14 14:57:59 +0100 (Fri, 14 Mar 2008) | 2 lines
Use -x64 flag.
........
r61382 | brett.cannon | 2008-03-14 15:03:10 +0100 (Fri, 14 Mar 2008) | 2 lines
Remove a bad test.
........
r61383 | mark.dickinson | 2008-03-14 15:23:37 +0100 (Fri, 14 Mar 2008) | 9 lines
Issue 705836: Fix struct.pack(">f", 1e40) to behave consistently
across platforms: it should now raise OverflowError on all
platforms. (Previously it raised OverflowError only on
non IEEE 754 platforms.)
Also fix the (already existing) test for this behaviour
so that it actually raises TestFailed instead of just
referencing it.
........
r61387 | thomas.heller | 2008-03-14 22:06:21 +0100 (Fri, 14 Mar 2008) | 1 line
Remove unneeded initializer.
........
r61388 | martin.v.loewis | 2008-03-14 22:19:28 +0100 (Fri, 14 Mar 2008) | 2 lines
Run debug version, cd to PCbuild.
........
r61392 | georg.brandl | 2008-03-15 00:10:34 +0100 (Sat, 15 Mar 2008) | 2 lines
Remove obsolete paragraph. #2288.
........
r61395 | georg.brandl | 2008-03-15 01:20:19 +0100 (Sat, 15 Mar 2008) | 2 lines
Fix lots of broken links in the docs, found by Sphinx' external link checker.
........
r61396 | skip.montanaro | 2008-03-15 03:32:49 +0100 (Sat, 15 Mar 2008) | 1 line
note that fork and forkpty raise OSError on failure
........
r61402 | skip.montanaro | 2008-03-15 17:04:45 +0100 (Sat, 15 Mar 2008) | 1 line
add %f format to datetime - issue 1158
........
r61403 | skip.montanaro | 2008-03-15 17:07:11 +0100 (Sat, 15 Mar 2008) | 2 lines
.
........
2008-03-15 21:07:10 -03:00
|
|
|
static PyObject *
|
|
|
|
make_freplacement(PyObject *object)
|
|
|
|
{
|
Merged revisions 61431,61433-61436,61439,61444,61449-61450,61453,61458,61465,61468,61471-61474,61480,61483-61484,61488,61495-61496,61498,61503-61504,61507,61509-61510,61515-61518 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r61431 | vinay.sajip | 2008-03-16 22:35:58 +0100 (So, 16 Mär 2008) | 1 line
Clarified documentation on use of shutdown().
........
r61433 | mark.summerfield | 2008-03-17 09:28:15 +0100 (Mo, 17 Mär 2008) | 5 lines
Added a footnote to each pointing out that for XML output if an encoding
string is given it should conform to the appropriate XML standards---for
example, "UTF-8" is okay, but "UTF8" is not.
........
r61434 | eric.smith | 2008-03-17 12:01:01 +0100 (Mo, 17 Mär 2008) | 7 lines
Issue 2264: empty float presentation type needs to have at least one digit past the decimal point.
Added "Z" format_char to PyOS_ascii_formatd to support empty float presentation type.
Renamed buf_size in PyOS_ascii_formatd to more accurately reflect it's meaning.
Modified format.__float__ to use the new "Z" format as the default.
Added test cases.
........
r61435 | eric.smith | 2008-03-17 13:14:29 +0100 (Mo, 17 Mär 2008) | 2 lines
Reformated lines > 79 chars.
Deleted unused macro ISXDIGIT.
........
r61436 | jeffrey.yasskin | 2008-03-17 15:40:53 +0100 (Mo, 17 Mär 2008) | 13 lines
Allow Gnu gcc's to build python on OSX by removing -Wno-long-double,
-no-cpp-precomp, and -mno-fused-madd from configure.
* r22183 added -no-cpp-precomp, which
http://gcc.gnu.org/ml/gcc/2005-12/msg00368.html claims hasn't been
needed since gcc-3.1.
* r25607 added -Wno-long-double to avoid a warning in
Include/objimpl.h (issue 525481). The long double is still there,
but OSX 10.4's gcc no longer warns about it.
* r33666 fixed issue 775892 on OSX 10.3 by adding -mno-fused-madd,
which changed the sign of some float 0s. Tim Peters said it wasn't
a real issue anyway, and it no longer causes test failures.
Fixes issue #1779871.
........
r61439 | martin.v.loewis | 2008-03-17 17:31:57 +0100 (Mo, 17 Mär 2008) | 2 lines
Add Trent Nelson.
........
r61444 | travis.oliphant | 2008-03-17 18:36:12 +0100 (Mo, 17 Mär 2008) | 1 line
Add necessary headers to back-port new buffer protocol to Python 2.6
........
r61449 | gregory.p.smith | 2008-03-17 19:48:05 +0100 (Mo, 17 Mär 2008) | 8 lines
Force zlib.crc32 and zlib.adler32 to return a signed integer on all platforms
regardless of the native sizeof(long) used in the integer object.
This somewhat odd behavior of returning a signed is maintained in 2.x for
compatibility reasons of always returning an integer rather than a long object.
Fixes Issue1202 for Python 2.6
........
r61450 | neal.norwitz | 2008-03-17 20:02:45 +0100 (Mo, 17 Mär 2008) | 3 lines
Use a buffer large enough to ensure we don't overrun, even if the value
is outside the range we expect.
........
r61453 | steven.bethard | 2008-03-17 20:33:11 +0100 (Mo, 17 Mär 2008) | 1 line
Document unicode.isnumeric() and unicode.isdecimal() (issue2326)
........
r61458 | neal.norwitz | 2008-03-17 21:22:43 +0100 (Mo, 17 Mär 2008) | 5 lines
Issue 2321: reduce memory usage (increase the memory that is returned
to the system) by using pymalloc for the data of unicode objects.
Will backport.
........
r61465 | martin.v.loewis | 2008-03-17 22:55:30 +0100 (Mo, 17 Mär 2008) | 2 lines
Add David Wolever.
........
r61468 | gregory.p.smith | 2008-03-18 01:20:01 +0100 (Di, 18 Mär 2008) | 3 lines
Fix the IOError message text when opening a file with an invalid filename.
Error reported by Ilan Schnell.
........
r61471 | brett.cannon | 2008-03-18 02:00:07 +0100 (Di, 18 Mär 2008) | 2 lines
Convert test_strftime, test_getargs, and test_pep247 to use unittest.
........
r61472 | jeffrey.yasskin | 2008-03-18 02:09:59 +0100 (Di, 18 Mär 2008) | 2 lines
Fix build on platforms that don't have intptr_t. Patch by Joseph Armbruster.
........
r61473 | brett.cannon | 2008-03-18 02:50:25 +0100 (Di, 18 Mär 2008) | 2 lines
Convert test_dummy_threading and test_dbm to unittest.
........
r61474 | brett.cannon | 2008-03-18 02:58:56 +0100 (Di, 18 Mär 2008) | 2 lines
Move test_extcall to doctest.
........
r61480 | brett.cannon | 2008-03-18 04:46:22 +0100 (Di, 18 Mär 2008) | 2 lines
test_errno was a no-op test; now it actually tests things and uses unittest.
........
r61483 | brett.cannon | 2008-03-18 05:09:00 +0100 (Di, 18 Mär 2008) | 3 lines
Remove our implementation of memmove() and strerror(); both are in the C89
standard library.
........
r61484 | brett.cannon | 2008-03-18 05:16:06 +0100 (Di, 18 Mär 2008) | 2 lines
The output directory for tests that compare against stdout is now gone!
........
r61488 | jeffrey.yasskin | 2008-03-18 05:29:35 +0100 (Di, 18 Mär 2008) | 2 lines
Block the "socket.ssl() is deprecated" warning from test_socket_ssl.
........
r61495 | jeffrey.yasskin | 2008-03-18 05:56:06 +0100 (Di, 18 Mär 2008) | 4 lines
Speed test_thread up from 51.328s to 0.081s by reducing its sleep times. We
still sleep at all to make it likely that all threads are active at the same
time.
........
r61496 | jeffrey.yasskin | 2008-03-18 06:12:41 +0100 (Di, 18 Mär 2008) | 4 lines
Speed up test_dict by about 10x by only checking selected dict literal sizes,
instead of every integer from 0 to 400. Exhaustive testing wastes time without
providing enough more assurance that the code is correct.
........
r61498 | neal.norwitz | 2008-03-18 06:20:29 +0100 (Di, 18 Mär 2008) | 1 line
Try increasing the timeout to reduce the flakiness of this test.
........
r61503 | brett.cannon | 2008-03-18 06:43:04 +0100 (Di, 18 Mär 2008) | 2 lines
Improve the error message for a test that failed on the S-390 Debian buildbot.
........
r61504 | jeffrey.yasskin | 2008-03-18 06:45:40 +0100 (Di, 18 Mär 2008) | 3 lines
Add a -S/--slow flag to regrtest to have it print the 10 slowest tests with
their times.
........
r61507 | neal.norwitz | 2008-03-18 07:03:46 +0100 (Di, 18 Mär 2008) | 1 line
Add some info to the failure messages
........
r61509 | trent.nelson | 2008-03-18 08:02:12 +0100 (Di, 18 Mär 2008) | 1 line
Issue 2286: bump up the stack size of the 64-bit debug python_d.exe to 2100000. The default value of 200000 causes a stack overflow at 1965 iterations of r_object() in marshal.c, 35 iterations before the 2000 limit enforced by MAX_MARSHAL_STACK_DEPTH.
........
r61510 | trent.nelson | 2008-03-18 08:32:47 +0100 (Di, 18 Mär 2008) | 5 lines
The behaviour of winsound.Beep() seems to differ between different versions of Windows when there's either:
a) no sound card entirely
b) legacy beep driver has been disabled
c) the legacy beep driver has been uninstalled
Sometimes RuntimeErrors are raised, sometimes they're not. If _have_soundcard() returns False, don't expect winsound.Beep() to raise a RuntimeError, as this clearly isn't the case, as demonstrated by the various Win32 XP buildbots.
........
r61515 | martin.v.loewis | 2008-03-18 13:20:15 +0100 (Di, 18 Mär 2008) | 2 lines
norwitz-amd64 (gentoo) has EREMOTEIO.
........
r61516 | martin.v.loewis | 2008-03-18 13:45:37 +0100 (Di, 18 Mär 2008) | 2 lines
Add more Linux error codes.
........
r61517 | martin.v.loewis | 2008-03-18 14:05:03 +0100 (Di, 18 Mär 2008) | 2 lines
Add WSA errors.
........
r61518 | martin.v.loewis | 2008-03-18 14:16:05 +0100 (Di, 18 Mär 2008) | 2 lines
Note that the stderr output of the test is intentional.
........
2008-03-18 12:15:01 -03:00
|
|
|
char freplacement[64];
|
Merged revisions 61239-61249,61252-61257,61260-61264,61269-61275,61278-61279,61285-61286,61288-61290,61298,61303-61305,61312-61314,61317,61329,61332,61344,61350-61351,61363-61376,61378-61379,61382-61383,61387-61388,61392,61395-61396,61402-61403 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r61239 | andrew.kuchling | 2008-03-05 01:44:41 +0100 (Wed, 05 Mar 2008) | 1 line
Add more items; add fragmentary notes
........
r61240 | amaury.forgeotdarc | 2008-03-05 02:50:33 +0100 (Wed, 05 Mar 2008) | 13 lines
Issue#2238: some syntax errors from *args or **kwargs expressions
would give bogus error messages, because of untested exceptions::
>>> f(**g(1=2))
XXX undetected error
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is not iterable
instead of the expected SyntaxError: keyword can't be an expression
Will backport.
........
r61241 | neal.norwitz | 2008-03-05 06:10:48 +0100 (Wed, 05 Mar 2008) | 3 lines
Remove the files/dirs after closing the DB so the tests work on Windows.
Patch from Trent Nelson. Also simplified removing a file by using test_support.
........
r61242 | neal.norwitz | 2008-03-05 06:14:18 +0100 (Wed, 05 Mar 2008) | 3 lines
Get this test to pass even when there is no sound card in the system.
Patch from Trent Nelson. (I can't test this.)
........
r61243 | neal.norwitz | 2008-03-05 06:20:44 +0100 (Wed, 05 Mar 2008) | 3 lines
Catch OSError when trying to remove a file in case removal fails. This
should prevent a failure in tearDown masking any real test failure.
........
r61244 | neal.norwitz | 2008-03-05 06:38:06 +0100 (Wed, 05 Mar 2008) | 5 lines
Make the timeout longer to give slow machines a chance to pass the test
before timing out. This doesn't change the duration of the test under
normal circumstances. This is targetted at fixing the spurious failures
on the FreeBSD buildbot primarily.
........
r61245 | neal.norwitz | 2008-03-05 06:49:03 +0100 (Wed, 05 Mar 2008) | 1 line
Tabs -> spaces
........
r61246 | neal.norwitz | 2008-03-05 06:50:20 +0100 (Wed, 05 Mar 2008) | 1 line
Use -u urlfetch to run more tests
........
r61247 | neal.norwitz | 2008-03-05 06:51:20 +0100 (Wed, 05 Mar 2008) | 1 line
test_smtplib sometimes reports leaks too, suppress it
........
r61248 | jeffrey.yasskin | 2008-03-05 07:19:56 +0100 (Wed, 05 Mar 2008) | 5 lines
Fix test_socketserver on Windows after r61099 added several signal.alarm()
calls (which don't exist on non-Unix platforms).
Thanks to Trent Nelson for the report and patch.
........
r61249 | georg.brandl | 2008-03-05 08:10:35 +0100 (Wed, 05 Mar 2008) | 2 lines
Fix some rst.
........
r61252 | thomas.heller | 2008-03-05 15:53:39 +0100 (Wed, 05 Mar 2008) | 2 lines
News entry for yesterdays commit.
........
r61253 | thomas.heller | 2008-03-05 16:34:29 +0100 (Wed, 05 Mar 2008) | 3 lines
Issue 1872: Changed the struct module typecode from 't' to '?', for
compatibility with PEP3118.
........
r61254 | skip.montanaro | 2008-03-05 17:41:09 +0100 (Wed, 05 Mar 2008) | 4 lines
Elaborate on the role of the altinstall target when installing multiple
versions.
........
r61255 | georg.brandl | 2008-03-05 20:31:44 +0100 (Wed, 05 Mar 2008) | 2 lines
#2239: PYTHONPATH delimiter is os.pathsep.
........
r61256 | raymond.hettinger | 2008-03-05 21:59:58 +0100 (Wed, 05 Mar 2008) | 1 line
C implementation of itertools.permutations().
........
r61257 | raymond.hettinger | 2008-03-05 22:04:32 +0100 (Wed, 05 Mar 2008) | 1 line
Small code cleanup.
........
r61260 | martin.v.loewis | 2008-03-05 23:24:31 +0100 (Wed, 05 Mar 2008) | 2 lines
cd PCbuild only after deleting all pyc files.
........
r61261 | raymond.hettinger | 2008-03-06 02:15:52 +0100 (Thu, 06 Mar 2008) | 1 line
Add examples.
........
r61262 | andrew.kuchling | 2008-03-06 02:36:27 +0100 (Thu, 06 Mar 2008) | 1 line
Add two items
........
r61263 | georg.brandl | 2008-03-06 07:47:18 +0100 (Thu, 06 Mar 2008) | 2 lines
#1725737: ignore other VC directories other than CVS and SVN's too.
........
r61264 | martin.v.loewis | 2008-03-06 07:55:22 +0100 (Thu, 06 Mar 2008) | 4 lines
Patch #2232: os.tmpfile might fail on Windows if the user has no
permission to create files in the root directory.
Will backport to 2.5.
........
r61269 | georg.brandl | 2008-03-06 08:19:15 +0100 (Thu, 06 Mar 2008) | 2 lines
Expand on re.split behavior with captured expressions.
........
r61270 | georg.brandl | 2008-03-06 08:22:09 +0100 (Thu, 06 Mar 2008) | 2 lines
Little clarification of assignments.
........
r61271 | georg.brandl | 2008-03-06 08:31:34 +0100 (Thu, 06 Mar 2008) | 2 lines
Add isinstance/issubclass to tutorial.
........
r61272 | georg.brandl | 2008-03-06 08:34:52 +0100 (Thu, 06 Mar 2008) | 2 lines
Add missing NEWS entry for r61263.
........
r61273 | georg.brandl | 2008-03-06 08:41:16 +0100 (Thu, 06 Mar 2008) | 2 lines
#2225: return nonzero status code from py_compile if not all files could be compiled.
........
r61274 | georg.brandl | 2008-03-06 08:43:02 +0100 (Thu, 06 Mar 2008) | 2 lines
#2220: handle matching failure more gracefully.
........
r61275 | georg.brandl | 2008-03-06 08:45:52 +0100 (Thu, 06 Mar 2008) | 2 lines
Bug #2220: handle rlcompleter attribute match failure more gracefully.
........
r61278 | martin.v.loewis | 2008-03-06 14:49:47 +0100 (Thu, 06 Mar 2008) | 1 line
Rely on x64 platform configuration when building _bsddb on AMD64.
........
r61279 | martin.v.loewis | 2008-03-06 14:50:28 +0100 (Thu, 06 Mar 2008) | 1 line
Update db-4.4.20 build procedure.
........
r61285 | raymond.hettinger | 2008-03-06 21:52:01 +0100 (Thu, 06 Mar 2008) | 1 line
More tests.
........
r61286 | raymond.hettinger | 2008-03-06 23:51:36 +0100 (Thu, 06 Mar 2008) | 1 line
Issue 2246: itertools grouper object did not participate in GC (should be backported).
........
r61288 | raymond.hettinger | 2008-03-07 02:33:20 +0100 (Fri, 07 Mar 2008) | 1 line
Tweak recipes and tests
........
r61289 | jeffrey.yasskin | 2008-03-07 07:22:15 +0100 (Fri, 07 Mar 2008) | 5 lines
Progress on issue #1193577 by adding a polling .shutdown() method to
SocketServers. The core of the patch was written by Pedro Werneck, but any bugs
are mine. I've also rearranged the code for timeouts in order to avoid
interfering with the shutdown poll.
........
r61290 | nick.coghlan | 2008-03-07 15:13:28 +0100 (Fri, 07 Mar 2008) | 1 line
Speed up with statements by storing the __exit__ method on the stack instead of in a temp variable (bumps the magic number for pyc files)
........
r61298 | andrew.kuchling | 2008-03-07 22:09:23 +0100 (Fri, 07 Mar 2008) | 1 line
Grammar fix
........
r61303 | georg.brandl | 2008-03-08 10:54:06 +0100 (Sat, 08 Mar 2008) | 2 lines
#2253: fix continue vs. finally docs.
........
r61304 | marc-andre.lemburg | 2008-03-08 11:01:43 +0100 (Sat, 08 Mar 2008) | 3 lines
Add new name for Mandrake: Mandriva.
........
r61305 | georg.brandl | 2008-03-08 11:05:24 +0100 (Sat, 08 Mar 2008) | 2 lines
#1533486: fix types in refcount intro.
........
r61312 | facundo.batista | 2008-03-08 17:50:27 +0100 (Sat, 08 Mar 2008) | 5 lines
Issue 1106316. post_mortem()'s parameter, traceback, is now
optional: it defaults to the traceback of the exception that is currently
being handled.
........
r61313 | jeffrey.yasskin | 2008-03-08 19:26:54 +0100 (Sat, 08 Mar 2008) | 2 lines
Add tests for with and finally performance to pybench.
........
r61314 | jeffrey.yasskin | 2008-03-08 21:08:21 +0100 (Sat, 08 Mar 2008) | 2 lines
Fix pybench for pythons < 2.6, tested back to 2.3.
........
r61317 | jeffrey.yasskin | 2008-03-08 22:35:15 +0100 (Sat, 08 Mar 2008) | 3 lines
Well that was dumb. platform.python_implementation returns a function, not a
string.
........
r61329 | georg.brandl | 2008-03-09 16:11:39 +0100 (Sun, 09 Mar 2008) | 2 lines
#2249: document assertTrue and assertFalse.
........
r61332 | neal.norwitz | 2008-03-09 20:03:42 +0100 (Sun, 09 Mar 2008) | 4 lines
Introduce a lock to fix a race condition which caused an exception in the test.
Some buildbots were consistently failing (e.g., amd64).
Also remove a couple of semi-colons.
........
r61344 | raymond.hettinger | 2008-03-11 01:19:07 +0100 (Tue, 11 Mar 2008) | 1 line
Add recipe to docs.
........
r61350 | guido.van.rossum | 2008-03-11 22:18:06 +0100 (Tue, 11 Mar 2008) | 3 lines
Fix the overflows in expandtabs(). "This time for sure!"
(Exploit at request.)
........
r61351 | raymond.hettinger | 2008-03-11 22:37:46 +0100 (Tue, 11 Mar 2008) | 1 line
Improve docs for itemgetter(). Show that it works with slices.
........
r61363 | georg.brandl | 2008-03-13 08:15:56 +0100 (Thu, 13 Mar 2008) | 2 lines
#2265: fix example.
........
r61364 | georg.brandl | 2008-03-13 08:17:14 +0100 (Thu, 13 Mar 2008) | 2 lines
#2270: fix typo.
........
r61365 | georg.brandl | 2008-03-13 08:21:41 +0100 (Thu, 13 Mar 2008) | 2 lines
#1720705: add docs about import/threading interaction, wording by Nick.
........
r61366 | andrew.kuchling | 2008-03-13 12:07:35 +0100 (Thu, 13 Mar 2008) | 1 line
Add class decorators
........
r61367 | raymond.hettinger | 2008-03-13 17:43:17 +0100 (Thu, 13 Mar 2008) | 1 line
Add 2-to-3 support for the itertools moved to builtins or renamed.
........
r61368 | raymond.hettinger | 2008-03-13 17:43:59 +0100 (Thu, 13 Mar 2008) | 1 line
Consistent tense.
........
r61369 | raymond.hettinger | 2008-03-13 20:03:51 +0100 (Thu, 13 Mar 2008) | 1 line
Issue 2274: Add heapq.heappushpop().
........
r61370 | raymond.hettinger | 2008-03-13 20:33:34 +0100 (Thu, 13 Mar 2008) | 1 line
Simplify the nlargest() code using heappushpop().
........
r61371 | brett.cannon | 2008-03-13 21:27:00 +0100 (Thu, 13 Mar 2008) | 4 lines
Move test_thread over to unittest. Commits GHOP 237.
Thanks Benjamin Peterson for the patch.
........
r61372 | brett.cannon | 2008-03-13 21:33:10 +0100 (Thu, 13 Mar 2008) | 4 lines
Move test_tokenize to doctest.
Done as GHOP 238 by Josip Dzolonga.
........
r61373 | brett.cannon | 2008-03-13 21:47:41 +0100 (Thu, 13 Mar 2008) | 4 lines
Convert test_contains, test_crypt, and test_select to unittest.
Patch from GHOP 294 by David Marek.
........
r61374 | brett.cannon | 2008-03-13 22:02:16 +0100 (Thu, 13 Mar 2008) | 4 lines
Move test_gdbm to use unittest.
Closes issue #1960. Thanks Giampaolo Rodola.
........
r61375 | brett.cannon | 2008-03-13 22:09:28 +0100 (Thu, 13 Mar 2008) | 4 lines
Convert test_fcntl to unittest.
Closes issue #2055. Thanks Giampaolo Rodola.
........
r61376 | raymond.hettinger | 2008-03-14 06:03:44 +0100 (Fri, 14 Mar 2008) | 1 line
Leave heapreplace() unchanged.
........
r61378 | martin.v.loewis | 2008-03-14 14:56:09 +0100 (Fri, 14 Mar 2008) | 2 lines
Patch #2284: add -x64 option to rt.bat.
........
r61379 | martin.v.loewis | 2008-03-14 14:57:59 +0100 (Fri, 14 Mar 2008) | 2 lines
Use -x64 flag.
........
r61382 | brett.cannon | 2008-03-14 15:03:10 +0100 (Fri, 14 Mar 2008) | 2 lines
Remove a bad test.
........
r61383 | mark.dickinson | 2008-03-14 15:23:37 +0100 (Fri, 14 Mar 2008) | 9 lines
Issue 705836: Fix struct.pack(">f", 1e40) to behave consistently
across platforms: it should now raise OverflowError on all
platforms. (Previously it raised OverflowError only on
non IEEE 754 platforms.)
Also fix the (already existing) test for this behaviour
so that it actually raises TestFailed instead of just
referencing it.
........
r61387 | thomas.heller | 2008-03-14 22:06:21 +0100 (Fri, 14 Mar 2008) | 1 line
Remove unneeded initializer.
........
r61388 | martin.v.loewis | 2008-03-14 22:19:28 +0100 (Fri, 14 Mar 2008) | 2 lines
Run debug version, cd to PCbuild.
........
r61392 | georg.brandl | 2008-03-15 00:10:34 +0100 (Sat, 15 Mar 2008) | 2 lines
Remove obsolete paragraph. #2288.
........
r61395 | georg.brandl | 2008-03-15 01:20:19 +0100 (Sat, 15 Mar 2008) | 2 lines
Fix lots of broken links in the docs, found by Sphinx' external link checker.
........
r61396 | skip.montanaro | 2008-03-15 03:32:49 +0100 (Sat, 15 Mar 2008) | 1 line
note that fork and forkpty raise OSError on failure
........
r61402 | skip.montanaro | 2008-03-15 17:04:45 +0100 (Sat, 15 Mar 2008) | 1 line
add %f format to datetime - issue 1158
........
r61403 | skip.montanaro | 2008-03-15 17:07:11 +0100 (Sat, 15 Mar 2008) | 2 lines
.
........
2008-03-15 21:07:10 -03:00
|
|
|
if (PyTime_Check(object))
|
|
|
|
sprintf(freplacement, "%06d", TIME_GET_MICROSECOND(object));
|
|
|
|
else if (PyDateTime_Check(object))
|
|
|
|
sprintf(freplacement, "%06d", DATE_GET_MICROSECOND(object));
|
|
|
|
else
|
|
|
|
sprintf(freplacement, "%06d", 0);
|
|
|
|
|
2008-05-26 10:28:38 -03:00
|
|
|
return PyBytes_FromStringAndSize(freplacement, strlen(freplacement));
|
Merged revisions 61239-61249,61252-61257,61260-61264,61269-61275,61278-61279,61285-61286,61288-61290,61298,61303-61305,61312-61314,61317,61329,61332,61344,61350-61351,61363-61376,61378-61379,61382-61383,61387-61388,61392,61395-61396,61402-61403 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r61239 | andrew.kuchling | 2008-03-05 01:44:41 +0100 (Wed, 05 Mar 2008) | 1 line
Add more items; add fragmentary notes
........
r61240 | amaury.forgeotdarc | 2008-03-05 02:50:33 +0100 (Wed, 05 Mar 2008) | 13 lines
Issue#2238: some syntax errors from *args or **kwargs expressions
would give bogus error messages, because of untested exceptions::
>>> f(**g(1=2))
XXX undetected error
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is not iterable
instead of the expected SyntaxError: keyword can't be an expression
Will backport.
........
r61241 | neal.norwitz | 2008-03-05 06:10:48 +0100 (Wed, 05 Mar 2008) | 3 lines
Remove the files/dirs after closing the DB so the tests work on Windows.
Patch from Trent Nelson. Also simplified removing a file by using test_support.
........
r61242 | neal.norwitz | 2008-03-05 06:14:18 +0100 (Wed, 05 Mar 2008) | 3 lines
Get this test to pass even when there is no sound card in the system.
Patch from Trent Nelson. (I can't test this.)
........
r61243 | neal.norwitz | 2008-03-05 06:20:44 +0100 (Wed, 05 Mar 2008) | 3 lines
Catch OSError when trying to remove a file in case removal fails. This
should prevent a failure in tearDown masking any real test failure.
........
r61244 | neal.norwitz | 2008-03-05 06:38:06 +0100 (Wed, 05 Mar 2008) | 5 lines
Make the timeout longer to give slow machines a chance to pass the test
before timing out. This doesn't change the duration of the test under
normal circumstances. This is targetted at fixing the spurious failures
on the FreeBSD buildbot primarily.
........
r61245 | neal.norwitz | 2008-03-05 06:49:03 +0100 (Wed, 05 Mar 2008) | 1 line
Tabs -> spaces
........
r61246 | neal.norwitz | 2008-03-05 06:50:20 +0100 (Wed, 05 Mar 2008) | 1 line
Use -u urlfetch to run more tests
........
r61247 | neal.norwitz | 2008-03-05 06:51:20 +0100 (Wed, 05 Mar 2008) | 1 line
test_smtplib sometimes reports leaks too, suppress it
........
r61248 | jeffrey.yasskin | 2008-03-05 07:19:56 +0100 (Wed, 05 Mar 2008) | 5 lines
Fix test_socketserver on Windows after r61099 added several signal.alarm()
calls (which don't exist on non-Unix platforms).
Thanks to Trent Nelson for the report and patch.
........
r61249 | georg.brandl | 2008-03-05 08:10:35 +0100 (Wed, 05 Mar 2008) | 2 lines
Fix some rst.
........
r61252 | thomas.heller | 2008-03-05 15:53:39 +0100 (Wed, 05 Mar 2008) | 2 lines
News entry for yesterdays commit.
........
r61253 | thomas.heller | 2008-03-05 16:34:29 +0100 (Wed, 05 Mar 2008) | 3 lines
Issue 1872: Changed the struct module typecode from 't' to '?', for
compatibility with PEP3118.
........
r61254 | skip.montanaro | 2008-03-05 17:41:09 +0100 (Wed, 05 Mar 2008) | 4 lines
Elaborate on the role of the altinstall target when installing multiple
versions.
........
r61255 | georg.brandl | 2008-03-05 20:31:44 +0100 (Wed, 05 Mar 2008) | 2 lines
#2239: PYTHONPATH delimiter is os.pathsep.
........
r61256 | raymond.hettinger | 2008-03-05 21:59:58 +0100 (Wed, 05 Mar 2008) | 1 line
C implementation of itertools.permutations().
........
r61257 | raymond.hettinger | 2008-03-05 22:04:32 +0100 (Wed, 05 Mar 2008) | 1 line
Small code cleanup.
........
r61260 | martin.v.loewis | 2008-03-05 23:24:31 +0100 (Wed, 05 Mar 2008) | 2 lines
cd PCbuild only after deleting all pyc files.
........
r61261 | raymond.hettinger | 2008-03-06 02:15:52 +0100 (Thu, 06 Mar 2008) | 1 line
Add examples.
........
r61262 | andrew.kuchling | 2008-03-06 02:36:27 +0100 (Thu, 06 Mar 2008) | 1 line
Add two items
........
r61263 | georg.brandl | 2008-03-06 07:47:18 +0100 (Thu, 06 Mar 2008) | 2 lines
#1725737: ignore other VC directories other than CVS and SVN's too.
........
r61264 | martin.v.loewis | 2008-03-06 07:55:22 +0100 (Thu, 06 Mar 2008) | 4 lines
Patch #2232: os.tmpfile might fail on Windows if the user has no
permission to create files in the root directory.
Will backport to 2.5.
........
r61269 | georg.brandl | 2008-03-06 08:19:15 +0100 (Thu, 06 Mar 2008) | 2 lines
Expand on re.split behavior with captured expressions.
........
r61270 | georg.brandl | 2008-03-06 08:22:09 +0100 (Thu, 06 Mar 2008) | 2 lines
Little clarification of assignments.
........
r61271 | georg.brandl | 2008-03-06 08:31:34 +0100 (Thu, 06 Mar 2008) | 2 lines
Add isinstance/issubclass to tutorial.
........
r61272 | georg.brandl | 2008-03-06 08:34:52 +0100 (Thu, 06 Mar 2008) | 2 lines
Add missing NEWS entry for r61263.
........
r61273 | georg.brandl | 2008-03-06 08:41:16 +0100 (Thu, 06 Mar 2008) | 2 lines
#2225: return nonzero status code from py_compile if not all files could be compiled.
........
r61274 | georg.brandl | 2008-03-06 08:43:02 +0100 (Thu, 06 Mar 2008) | 2 lines
#2220: handle matching failure more gracefully.
........
r61275 | georg.brandl | 2008-03-06 08:45:52 +0100 (Thu, 06 Mar 2008) | 2 lines
Bug #2220: handle rlcompleter attribute match failure more gracefully.
........
r61278 | martin.v.loewis | 2008-03-06 14:49:47 +0100 (Thu, 06 Mar 2008) | 1 line
Rely on x64 platform configuration when building _bsddb on AMD64.
........
r61279 | martin.v.loewis | 2008-03-06 14:50:28 +0100 (Thu, 06 Mar 2008) | 1 line
Update db-4.4.20 build procedure.
........
r61285 | raymond.hettinger | 2008-03-06 21:52:01 +0100 (Thu, 06 Mar 2008) | 1 line
More tests.
........
r61286 | raymond.hettinger | 2008-03-06 23:51:36 +0100 (Thu, 06 Mar 2008) | 1 line
Issue 2246: itertools grouper object did not participate in GC (should be backported).
........
r61288 | raymond.hettinger | 2008-03-07 02:33:20 +0100 (Fri, 07 Mar 2008) | 1 line
Tweak recipes and tests
........
r61289 | jeffrey.yasskin | 2008-03-07 07:22:15 +0100 (Fri, 07 Mar 2008) | 5 lines
Progress on issue #1193577 by adding a polling .shutdown() method to
SocketServers. The core of the patch was written by Pedro Werneck, but any bugs
are mine. I've also rearranged the code for timeouts in order to avoid
interfering with the shutdown poll.
........
r61290 | nick.coghlan | 2008-03-07 15:13:28 +0100 (Fri, 07 Mar 2008) | 1 line
Speed up with statements by storing the __exit__ method on the stack instead of in a temp variable (bumps the magic number for pyc files)
........
r61298 | andrew.kuchling | 2008-03-07 22:09:23 +0100 (Fri, 07 Mar 2008) | 1 line
Grammar fix
........
r61303 | georg.brandl | 2008-03-08 10:54:06 +0100 (Sat, 08 Mar 2008) | 2 lines
#2253: fix continue vs. finally docs.
........
r61304 | marc-andre.lemburg | 2008-03-08 11:01:43 +0100 (Sat, 08 Mar 2008) | 3 lines
Add new name for Mandrake: Mandriva.
........
r61305 | georg.brandl | 2008-03-08 11:05:24 +0100 (Sat, 08 Mar 2008) | 2 lines
#1533486: fix types in refcount intro.
........
r61312 | facundo.batista | 2008-03-08 17:50:27 +0100 (Sat, 08 Mar 2008) | 5 lines
Issue 1106316. post_mortem()'s parameter, traceback, is now
optional: it defaults to the traceback of the exception that is currently
being handled.
........
r61313 | jeffrey.yasskin | 2008-03-08 19:26:54 +0100 (Sat, 08 Mar 2008) | 2 lines
Add tests for with and finally performance to pybench.
........
r61314 | jeffrey.yasskin | 2008-03-08 21:08:21 +0100 (Sat, 08 Mar 2008) | 2 lines
Fix pybench for pythons < 2.6, tested back to 2.3.
........
r61317 | jeffrey.yasskin | 2008-03-08 22:35:15 +0100 (Sat, 08 Mar 2008) | 3 lines
Well that was dumb. platform.python_implementation returns a function, not a
string.
........
r61329 | georg.brandl | 2008-03-09 16:11:39 +0100 (Sun, 09 Mar 2008) | 2 lines
#2249: document assertTrue and assertFalse.
........
r61332 | neal.norwitz | 2008-03-09 20:03:42 +0100 (Sun, 09 Mar 2008) | 4 lines
Introduce a lock to fix a race condition which caused an exception in the test.
Some buildbots were consistently failing (e.g., amd64).
Also remove a couple of semi-colons.
........
r61344 | raymond.hettinger | 2008-03-11 01:19:07 +0100 (Tue, 11 Mar 2008) | 1 line
Add recipe to docs.
........
r61350 | guido.van.rossum | 2008-03-11 22:18:06 +0100 (Tue, 11 Mar 2008) | 3 lines
Fix the overflows in expandtabs(). "This time for sure!"
(Exploit at request.)
........
r61351 | raymond.hettinger | 2008-03-11 22:37:46 +0100 (Tue, 11 Mar 2008) | 1 line
Improve docs for itemgetter(). Show that it works with slices.
........
r61363 | georg.brandl | 2008-03-13 08:15:56 +0100 (Thu, 13 Mar 2008) | 2 lines
#2265: fix example.
........
r61364 | georg.brandl | 2008-03-13 08:17:14 +0100 (Thu, 13 Mar 2008) | 2 lines
#2270: fix typo.
........
r61365 | georg.brandl | 2008-03-13 08:21:41 +0100 (Thu, 13 Mar 2008) | 2 lines
#1720705: add docs about import/threading interaction, wording by Nick.
........
r61366 | andrew.kuchling | 2008-03-13 12:07:35 +0100 (Thu, 13 Mar 2008) | 1 line
Add class decorators
........
r61367 | raymond.hettinger | 2008-03-13 17:43:17 +0100 (Thu, 13 Mar 2008) | 1 line
Add 2-to-3 support for the itertools moved to builtins or renamed.
........
r61368 | raymond.hettinger | 2008-03-13 17:43:59 +0100 (Thu, 13 Mar 2008) | 1 line
Consistent tense.
........
r61369 | raymond.hettinger | 2008-03-13 20:03:51 +0100 (Thu, 13 Mar 2008) | 1 line
Issue 2274: Add heapq.heappushpop().
........
r61370 | raymond.hettinger | 2008-03-13 20:33:34 +0100 (Thu, 13 Mar 2008) | 1 line
Simplify the nlargest() code using heappushpop().
........
r61371 | brett.cannon | 2008-03-13 21:27:00 +0100 (Thu, 13 Mar 2008) | 4 lines
Move test_thread over to unittest. Commits GHOP 237.
Thanks Benjamin Peterson for the patch.
........
r61372 | brett.cannon | 2008-03-13 21:33:10 +0100 (Thu, 13 Mar 2008) | 4 lines
Move test_tokenize to doctest.
Done as GHOP 238 by Josip Dzolonga.
........
r61373 | brett.cannon | 2008-03-13 21:47:41 +0100 (Thu, 13 Mar 2008) | 4 lines
Convert test_contains, test_crypt, and test_select to unittest.
Patch from GHOP 294 by David Marek.
........
r61374 | brett.cannon | 2008-03-13 22:02:16 +0100 (Thu, 13 Mar 2008) | 4 lines
Move test_gdbm to use unittest.
Closes issue #1960. Thanks Giampaolo Rodola.
........
r61375 | brett.cannon | 2008-03-13 22:09:28 +0100 (Thu, 13 Mar 2008) | 4 lines
Convert test_fcntl to unittest.
Closes issue #2055. Thanks Giampaolo Rodola.
........
r61376 | raymond.hettinger | 2008-03-14 06:03:44 +0100 (Fri, 14 Mar 2008) | 1 line
Leave heapreplace() unchanged.
........
r61378 | martin.v.loewis | 2008-03-14 14:56:09 +0100 (Fri, 14 Mar 2008) | 2 lines
Patch #2284: add -x64 option to rt.bat.
........
r61379 | martin.v.loewis | 2008-03-14 14:57:59 +0100 (Fri, 14 Mar 2008) | 2 lines
Use -x64 flag.
........
r61382 | brett.cannon | 2008-03-14 15:03:10 +0100 (Fri, 14 Mar 2008) | 2 lines
Remove a bad test.
........
r61383 | mark.dickinson | 2008-03-14 15:23:37 +0100 (Fri, 14 Mar 2008) | 9 lines
Issue 705836: Fix struct.pack(">f", 1e40) to behave consistently
across platforms: it should now raise OverflowError on all
platforms. (Previously it raised OverflowError only on
non IEEE 754 platforms.)
Also fix the (already existing) test for this behaviour
so that it actually raises TestFailed instead of just
referencing it.
........
r61387 | thomas.heller | 2008-03-14 22:06:21 +0100 (Fri, 14 Mar 2008) | 1 line
Remove unneeded initializer.
........
r61388 | martin.v.loewis | 2008-03-14 22:19:28 +0100 (Fri, 14 Mar 2008) | 2 lines
Run debug version, cd to PCbuild.
........
r61392 | georg.brandl | 2008-03-15 00:10:34 +0100 (Sat, 15 Mar 2008) | 2 lines
Remove obsolete paragraph. #2288.
........
r61395 | georg.brandl | 2008-03-15 01:20:19 +0100 (Sat, 15 Mar 2008) | 2 lines
Fix lots of broken links in the docs, found by Sphinx' external link checker.
........
r61396 | skip.montanaro | 2008-03-15 03:32:49 +0100 (Sat, 15 Mar 2008) | 1 line
note that fork and forkpty raise OSError on failure
........
r61402 | skip.montanaro | 2008-03-15 17:04:45 +0100 (Sat, 15 Mar 2008) | 1 line
add %f format to datetime - issue 1158
........
r61403 | skip.montanaro | 2008-03-15 17:07:11 +0100 (Sat, 15 Mar 2008) | 2 lines
.
........
2008-03-15 21:07:10 -03:00
|
|
|
}
|
|
|
|
|
2002-12-16 16:18:38 -04:00
|
|
|
/* I sure don't want to reproduce the strftime code from the time module,
|
|
|
|
* so this imports the module and calls it. All the hair is due to
|
Merged revisions 61239-61249,61252-61257,61260-61264,61269-61275,61278-61279,61285-61286,61288-61290,61298,61303-61305,61312-61314,61317,61329,61332,61344,61350-61351,61363-61376,61378-61379,61382-61383,61387-61388,61392,61395-61396,61402-61403 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r61239 | andrew.kuchling | 2008-03-05 01:44:41 +0100 (Wed, 05 Mar 2008) | 1 line
Add more items; add fragmentary notes
........
r61240 | amaury.forgeotdarc | 2008-03-05 02:50:33 +0100 (Wed, 05 Mar 2008) | 13 lines
Issue#2238: some syntax errors from *args or **kwargs expressions
would give bogus error messages, because of untested exceptions::
>>> f(**g(1=2))
XXX undetected error
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is not iterable
instead of the expected SyntaxError: keyword can't be an expression
Will backport.
........
r61241 | neal.norwitz | 2008-03-05 06:10:48 +0100 (Wed, 05 Mar 2008) | 3 lines
Remove the files/dirs after closing the DB so the tests work on Windows.
Patch from Trent Nelson. Also simplified removing a file by using test_support.
........
r61242 | neal.norwitz | 2008-03-05 06:14:18 +0100 (Wed, 05 Mar 2008) | 3 lines
Get this test to pass even when there is no sound card in the system.
Patch from Trent Nelson. (I can't test this.)
........
r61243 | neal.norwitz | 2008-03-05 06:20:44 +0100 (Wed, 05 Mar 2008) | 3 lines
Catch OSError when trying to remove a file in case removal fails. This
should prevent a failure in tearDown masking any real test failure.
........
r61244 | neal.norwitz | 2008-03-05 06:38:06 +0100 (Wed, 05 Mar 2008) | 5 lines
Make the timeout longer to give slow machines a chance to pass the test
before timing out. This doesn't change the duration of the test under
normal circumstances. This is targetted at fixing the spurious failures
on the FreeBSD buildbot primarily.
........
r61245 | neal.norwitz | 2008-03-05 06:49:03 +0100 (Wed, 05 Mar 2008) | 1 line
Tabs -> spaces
........
r61246 | neal.norwitz | 2008-03-05 06:50:20 +0100 (Wed, 05 Mar 2008) | 1 line
Use -u urlfetch to run more tests
........
r61247 | neal.norwitz | 2008-03-05 06:51:20 +0100 (Wed, 05 Mar 2008) | 1 line
test_smtplib sometimes reports leaks too, suppress it
........
r61248 | jeffrey.yasskin | 2008-03-05 07:19:56 +0100 (Wed, 05 Mar 2008) | 5 lines
Fix test_socketserver on Windows after r61099 added several signal.alarm()
calls (which don't exist on non-Unix platforms).
Thanks to Trent Nelson for the report and patch.
........
r61249 | georg.brandl | 2008-03-05 08:10:35 +0100 (Wed, 05 Mar 2008) | 2 lines
Fix some rst.
........
r61252 | thomas.heller | 2008-03-05 15:53:39 +0100 (Wed, 05 Mar 2008) | 2 lines
News entry for yesterdays commit.
........
r61253 | thomas.heller | 2008-03-05 16:34:29 +0100 (Wed, 05 Mar 2008) | 3 lines
Issue 1872: Changed the struct module typecode from 't' to '?', for
compatibility with PEP3118.
........
r61254 | skip.montanaro | 2008-03-05 17:41:09 +0100 (Wed, 05 Mar 2008) | 4 lines
Elaborate on the role of the altinstall target when installing multiple
versions.
........
r61255 | georg.brandl | 2008-03-05 20:31:44 +0100 (Wed, 05 Mar 2008) | 2 lines
#2239: PYTHONPATH delimiter is os.pathsep.
........
r61256 | raymond.hettinger | 2008-03-05 21:59:58 +0100 (Wed, 05 Mar 2008) | 1 line
C implementation of itertools.permutations().
........
r61257 | raymond.hettinger | 2008-03-05 22:04:32 +0100 (Wed, 05 Mar 2008) | 1 line
Small code cleanup.
........
r61260 | martin.v.loewis | 2008-03-05 23:24:31 +0100 (Wed, 05 Mar 2008) | 2 lines
cd PCbuild only after deleting all pyc files.
........
r61261 | raymond.hettinger | 2008-03-06 02:15:52 +0100 (Thu, 06 Mar 2008) | 1 line
Add examples.
........
r61262 | andrew.kuchling | 2008-03-06 02:36:27 +0100 (Thu, 06 Mar 2008) | 1 line
Add two items
........
r61263 | georg.brandl | 2008-03-06 07:47:18 +0100 (Thu, 06 Mar 2008) | 2 lines
#1725737: ignore other VC directories other than CVS and SVN's too.
........
r61264 | martin.v.loewis | 2008-03-06 07:55:22 +0100 (Thu, 06 Mar 2008) | 4 lines
Patch #2232: os.tmpfile might fail on Windows if the user has no
permission to create files in the root directory.
Will backport to 2.5.
........
r61269 | georg.brandl | 2008-03-06 08:19:15 +0100 (Thu, 06 Mar 2008) | 2 lines
Expand on re.split behavior with captured expressions.
........
r61270 | georg.brandl | 2008-03-06 08:22:09 +0100 (Thu, 06 Mar 2008) | 2 lines
Little clarification of assignments.
........
r61271 | georg.brandl | 2008-03-06 08:31:34 +0100 (Thu, 06 Mar 2008) | 2 lines
Add isinstance/issubclass to tutorial.
........
r61272 | georg.brandl | 2008-03-06 08:34:52 +0100 (Thu, 06 Mar 2008) | 2 lines
Add missing NEWS entry for r61263.
........
r61273 | georg.brandl | 2008-03-06 08:41:16 +0100 (Thu, 06 Mar 2008) | 2 lines
#2225: return nonzero status code from py_compile if not all files could be compiled.
........
r61274 | georg.brandl | 2008-03-06 08:43:02 +0100 (Thu, 06 Mar 2008) | 2 lines
#2220: handle matching failure more gracefully.
........
r61275 | georg.brandl | 2008-03-06 08:45:52 +0100 (Thu, 06 Mar 2008) | 2 lines
Bug #2220: handle rlcompleter attribute match failure more gracefully.
........
r61278 | martin.v.loewis | 2008-03-06 14:49:47 +0100 (Thu, 06 Mar 2008) | 1 line
Rely on x64 platform configuration when building _bsddb on AMD64.
........
r61279 | martin.v.loewis | 2008-03-06 14:50:28 +0100 (Thu, 06 Mar 2008) | 1 line
Update db-4.4.20 build procedure.
........
r61285 | raymond.hettinger | 2008-03-06 21:52:01 +0100 (Thu, 06 Mar 2008) | 1 line
More tests.
........
r61286 | raymond.hettinger | 2008-03-06 23:51:36 +0100 (Thu, 06 Mar 2008) | 1 line
Issue 2246: itertools grouper object did not participate in GC (should be backported).
........
r61288 | raymond.hettinger | 2008-03-07 02:33:20 +0100 (Fri, 07 Mar 2008) | 1 line
Tweak recipes and tests
........
r61289 | jeffrey.yasskin | 2008-03-07 07:22:15 +0100 (Fri, 07 Mar 2008) | 5 lines
Progress on issue #1193577 by adding a polling .shutdown() method to
SocketServers. The core of the patch was written by Pedro Werneck, but any bugs
are mine. I've also rearranged the code for timeouts in order to avoid
interfering with the shutdown poll.
........
r61290 | nick.coghlan | 2008-03-07 15:13:28 +0100 (Fri, 07 Mar 2008) | 1 line
Speed up with statements by storing the __exit__ method on the stack instead of in a temp variable (bumps the magic number for pyc files)
........
r61298 | andrew.kuchling | 2008-03-07 22:09:23 +0100 (Fri, 07 Mar 2008) | 1 line
Grammar fix
........
r61303 | georg.brandl | 2008-03-08 10:54:06 +0100 (Sat, 08 Mar 2008) | 2 lines
#2253: fix continue vs. finally docs.
........
r61304 | marc-andre.lemburg | 2008-03-08 11:01:43 +0100 (Sat, 08 Mar 2008) | 3 lines
Add new name for Mandrake: Mandriva.
........
r61305 | georg.brandl | 2008-03-08 11:05:24 +0100 (Sat, 08 Mar 2008) | 2 lines
#1533486: fix types in refcount intro.
........
r61312 | facundo.batista | 2008-03-08 17:50:27 +0100 (Sat, 08 Mar 2008) | 5 lines
Issue 1106316. post_mortem()'s parameter, traceback, is now
optional: it defaults to the traceback of the exception that is currently
being handled.
........
r61313 | jeffrey.yasskin | 2008-03-08 19:26:54 +0100 (Sat, 08 Mar 2008) | 2 lines
Add tests for with and finally performance to pybench.
........
r61314 | jeffrey.yasskin | 2008-03-08 21:08:21 +0100 (Sat, 08 Mar 2008) | 2 lines
Fix pybench for pythons < 2.6, tested back to 2.3.
........
r61317 | jeffrey.yasskin | 2008-03-08 22:35:15 +0100 (Sat, 08 Mar 2008) | 3 lines
Well that was dumb. platform.python_implementation returns a function, not a
string.
........
r61329 | georg.brandl | 2008-03-09 16:11:39 +0100 (Sun, 09 Mar 2008) | 2 lines
#2249: document assertTrue and assertFalse.
........
r61332 | neal.norwitz | 2008-03-09 20:03:42 +0100 (Sun, 09 Mar 2008) | 4 lines
Introduce a lock to fix a race condition which caused an exception in the test.
Some buildbots were consistently failing (e.g., amd64).
Also remove a couple of semi-colons.
........
r61344 | raymond.hettinger | 2008-03-11 01:19:07 +0100 (Tue, 11 Mar 2008) | 1 line
Add recipe to docs.
........
r61350 | guido.van.rossum | 2008-03-11 22:18:06 +0100 (Tue, 11 Mar 2008) | 3 lines
Fix the overflows in expandtabs(). "This time for sure!"
(Exploit at request.)
........
r61351 | raymond.hettinger | 2008-03-11 22:37:46 +0100 (Tue, 11 Mar 2008) | 1 line
Improve docs for itemgetter(). Show that it works with slices.
........
r61363 | georg.brandl | 2008-03-13 08:15:56 +0100 (Thu, 13 Mar 2008) | 2 lines
#2265: fix example.
........
r61364 | georg.brandl | 2008-03-13 08:17:14 +0100 (Thu, 13 Mar 2008) | 2 lines
#2270: fix typo.
........
r61365 | georg.brandl | 2008-03-13 08:21:41 +0100 (Thu, 13 Mar 2008) | 2 lines
#1720705: add docs about import/threading interaction, wording by Nick.
........
r61366 | andrew.kuchling | 2008-03-13 12:07:35 +0100 (Thu, 13 Mar 2008) | 1 line
Add class decorators
........
r61367 | raymond.hettinger | 2008-03-13 17:43:17 +0100 (Thu, 13 Mar 2008) | 1 line
Add 2-to-3 support for the itertools moved to builtins or renamed.
........
r61368 | raymond.hettinger | 2008-03-13 17:43:59 +0100 (Thu, 13 Mar 2008) | 1 line
Consistent tense.
........
r61369 | raymond.hettinger | 2008-03-13 20:03:51 +0100 (Thu, 13 Mar 2008) | 1 line
Issue 2274: Add heapq.heappushpop().
........
r61370 | raymond.hettinger | 2008-03-13 20:33:34 +0100 (Thu, 13 Mar 2008) | 1 line
Simplify the nlargest() code using heappushpop().
........
r61371 | brett.cannon | 2008-03-13 21:27:00 +0100 (Thu, 13 Mar 2008) | 4 lines
Move test_thread over to unittest. Commits GHOP 237.
Thanks Benjamin Peterson for the patch.
........
r61372 | brett.cannon | 2008-03-13 21:33:10 +0100 (Thu, 13 Mar 2008) | 4 lines
Move test_tokenize to doctest.
Done as GHOP 238 by Josip Dzolonga.
........
r61373 | brett.cannon | 2008-03-13 21:47:41 +0100 (Thu, 13 Mar 2008) | 4 lines
Convert test_contains, test_crypt, and test_select to unittest.
Patch from GHOP 294 by David Marek.
........
r61374 | brett.cannon | 2008-03-13 22:02:16 +0100 (Thu, 13 Mar 2008) | 4 lines
Move test_gdbm to use unittest.
Closes issue #1960. Thanks Giampaolo Rodola.
........
r61375 | brett.cannon | 2008-03-13 22:09:28 +0100 (Thu, 13 Mar 2008) | 4 lines
Convert test_fcntl to unittest.
Closes issue #2055. Thanks Giampaolo Rodola.
........
r61376 | raymond.hettinger | 2008-03-14 06:03:44 +0100 (Fri, 14 Mar 2008) | 1 line
Leave heapreplace() unchanged.
........
r61378 | martin.v.loewis | 2008-03-14 14:56:09 +0100 (Fri, 14 Mar 2008) | 2 lines
Patch #2284: add -x64 option to rt.bat.
........
r61379 | martin.v.loewis | 2008-03-14 14:57:59 +0100 (Fri, 14 Mar 2008) | 2 lines
Use -x64 flag.
........
r61382 | brett.cannon | 2008-03-14 15:03:10 +0100 (Fri, 14 Mar 2008) | 2 lines
Remove a bad test.
........
r61383 | mark.dickinson | 2008-03-14 15:23:37 +0100 (Fri, 14 Mar 2008) | 9 lines
Issue 705836: Fix struct.pack(">f", 1e40) to behave consistently
across platforms: it should now raise OverflowError on all
platforms. (Previously it raised OverflowError only on
non IEEE 754 platforms.)
Also fix the (already existing) test for this behaviour
so that it actually raises TestFailed instead of just
referencing it.
........
r61387 | thomas.heller | 2008-03-14 22:06:21 +0100 (Fri, 14 Mar 2008) | 1 line
Remove unneeded initializer.
........
r61388 | martin.v.loewis | 2008-03-14 22:19:28 +0100 (Fri, 14 Mar 2008) | 2 lines
Run debug version, cd to PCbuild.
........
r61392 | georg.brandl | 2008-03-15 00:10:34 +0100 (Sat, 15 Mar 2008) | 2 lines
Remove obsolete paragraph. #2288.
........
r61395 | georg.brandl | 2008-03-15 01:20:19 +0100 (Sat, 15 Mar 2008) | 2 lines
Fix lots of broken links in the docs, found by Sphinx' external link checker.
........
r61396 | skip.montanaro | 2008-03-15 03:32:49 +0100 (Sat, 15 Mar 2008) | 1 line
note that fork and forkpty raise OSError on failure
........
r61402 | skip.montanaro | 2008-03-15 17:04:45 +0100 (Sat, 15 Mar 2008) | 1 line
add %f format to datetime - issue 1158
........
r61403 | skip.montanaro | 2008-03-15 17:07:11 +0100 (Sat, 15 Mar 2008) | 2 lines
.
........
2008-03-15 21:07:10 -03:00
|
|
|
* giving special meanings to the %z, %Z and %f format codes via a
|
|
|
|
* preprocessing step on the format string.
|
2002-12-30 16:52:32 -04:00
|
|
|
* tzinfoarg is the argument to pass to the object's tzinfo method, if
|
|
|
|
* needed.
|
2002-12-16 16:18:38 -04:00
|
|
|
*/
|
|
|
|
static PyObject *
|
2002-12-30 16:52:32 -04:00
|
|
|
wrap_strftime(PyObject *object, PyObject *format, PyObject *timetuple,
|
|
|
|
PyObject *tzinfoarg)
|
2002-12-16 16:18:38 -04:00
|
|
|
{
|
|
|
|
PyObject *result = NULL; /* guilty until proved innocent */
|
|
|
|
|
|
|
|
PyObject *zreplacement = NULL; /* py string, replacement for %z */
|
|
|
|
PyObject *Zreplacement = NULL; /* py string, replacement for %Z */
|
Merged revisions 61239-61249,61252-61257,61260-61264,61269-61275,61278-61279,61285-61286,61288-61290,61298,61303-61305,61312-61314,61317,61329,61332,61344,61350-61351,61363-61376,61378-61379,61382-61383,61387-61388,61392,61395-61396,61402-61403 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r61239 | andrew.kuchling | 2008-03-05 01:44:41 +0100 (Wed, 05 Mar 2008) | 1 line
Add more items; add fragmentary notes
........
r61240 | amaury.forgeotdarc | 2008-03-05 02:50:33 +0100 (Wed, 05 Mar 2008) | 13 lines
Issue#2238: some syntax errors from *args or **kwargs expressions
would give bogus error messages, because of untested exceptions::
>>> f(**g(1=2))
XXX undetected error
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is not iterable
instead of the expected SyntaxError: keyword can't be an expression
Will backport.
........
r61241 | neal.norwitz | 2008-03-05 06:10:48 +0100 (Wed, 05 Mar 2008) | 3 lines
Remove the files/dirs after closing the DB so the tests work on Windows.
Patch from Trent Nelson. Also simplified removing a file by using test_support.
........
r61242 | neal.norwitz | 2008-03-05 06:14:18 +0100 (Wed, 05 Mar 2008) | 3 lines
Get this test to pass even when there is no sound card in the system.
Patch from Trent Nelson. (I can't test this.)
........
r61243 | neal.norwitz | 2008-03-05 06:20:44 +0100 (Wed, 05 Mar 2008) | 3 lines
Catch OSError when trying to remove a file in case removal fails. This
should prevent a failure in tearDown masking any real test failure.
........
r61244 | neal.norwitz | 2008-03-05 06:38:06 +0100 (Wed, 05 Mar 2008) | 5 lines
Make the timeout longer to give slow machines a chance to pass the test
before timing out. This doesn't change the duration of the test under
normal circumstances. This is targetted at fixing the spurious failures
on the FreeBSD buildbot primarily.
........
r61245 | neal.norwitz | 2008-03-05 06:49:03 +0100 (Wed, 05 Mar 2008) | 1 line
Tabs -> spaces
........
r61246 | neal.norwitz | 2008-03-05 06:50:20 +0100 (Wed, 05 Mar 2008) | 1 line
Use -u urlfetch to run more tests
........
r61247 | neal.norwitz | 2008-03-05 06:51:20 +0100 (Wed, 05 Mar 2008) | 1 line
test_smtplib sometimes reports leaks too, suppress it
........
r61248 | jeffrey.yasskin | 2008-03-05 07:19:56 +0100 (Wed, 05 Mar 2008) | 5 lines
Fix test_socketserver on Windows after r61099 added several signal.alarm()
calls (which don't exist on non-Unix platforms).
Thanks to Trent Nelson for the report and patch.
........
r61249 | georg.brandl | 2008-03-05 08:10:35 +0100 (Wed, 05 Mar 2008) | 2 lines
Fix some rst.
........
r61252 | thomas.heller | 2008-03-05 15:53:39 +0100 (Wed, 05 Mar 2008) | 2 lines
News entry for yesterdays commit.
........
r61253 | thomas.heller | 2008-03-05 16:34:29 +0100 (Wed, 05 Mar 2008) | 3 lines
Issue 1872: Changed the struct module typecode from 't' to '?', for
compatibility with PEP3118.
........
r61254 | skip.montanaro | 2008-03-05 17:41:09 +0100 (Wed, 05 Mar 2008) | 4 lines
Elaborate on the role of the altinstall target when installing multiple
versions.
........
r61255 | georg.brandl | 2008-03-05 20:31:44 +0100 (Wed, 05 Mar 2008) | 2 lines
#2239: PYTHONPATH delimiter is os.pathsep.
........
r61256 | raymond.hettinger | 2008-03-05 21:59:58 +0100 (Wed, 05 Mar 2008) | 1 line
C implementation of itertools.permutations().
........
r61257 | raymond.hettinger | 2008-03-05 22:04:32 +0100 (Wed, 05 Mar 2008) | 1 line
Small code cleanup.
........
r61260 | martin.v.loewis | 2008-03-05 23:24:31 +0100 (Wed, 05 Mar 2008) | 2 lines
cd PCbuild only after deleting all pyc files.
........
r61261 | raymond.hettinger | 2008-03-06 02:15:52 +0100 (Thu, 06 Mar 2008) | 1 line
Add examples.
........
r61262 | andrew.kuchling | 2008-03-06 02:36:27 +0100 (Thu, 06 Mar 2008) | 1 line
Add two items
........
r61263 | georg.brandl | 2008-03-06 07:47:18 +0100 (Thu, 06 Mar 2008) | 2 lines
#1725737: ignore other VC directories other than CVS and SVN's too.
........
r61264 | martin.v.loewis | 2008-03-06 07:55:22 +0100 (Thu, 06 Mar 2008) | 4 lines
Patch #2232: os.tmpfile might fail on Windows if the user has no
permission to create files in the root directory.
Will backport to 2.5.
........
r61269 | georg.brandl | 2008-03-06 08:19:15 +0100 (Thu, 06 Mar 2008) | 2 lines
Expand on re.split behavior with captured expressions.
........
r61270 | georg.brandl | 2008-03-06 08:22:09 +0100 (Thu, 06 Mar 2008) | 2 lines
Little clarification of assignments.
........
r61271 | georg.brandl | 2008-03-06 08:31:34 +0100 (Thu, 06 Mar 2008) | 2 lines
Add isinstance/issubclass to tutorial.
........
r61272 | georg.brandl | 2008-03-06 08:34:52 +0100 (Thu, 06 Mar 2008) | 2 lines
Add missing NEWS entry for r61263.
........
r61273 | georg.brandl | 2008-03-06 08:41:16 +0100 (Thu, 06 Mar 2008) | 2 lines
#2225: return nonzero status code from py_compile if not all files could be compiled.
........
r61274 | georg.brandl | 2008-03-06 08:43:02 +0100 (Thu, 06 Mar 2008) | 2 lines
#2220: handle matching failure more gracefully.
........
r61275 | georg.brandl | 2008-03-06 08:45:52 +0100 (Thu, 06 Mar 2008) | 2 lines
Bug #2220: handle rlcompleter attribute match failure more gracefully.
........
r61278 | martin.v.loewis | 2008-03-06 14:49:47 +0100 (Thu, 06 Mar 2008) | 1 line
Rely on x64 platform configuration when building _bsddb on AMD64.
........
r61279 | martin.v.loewis | 2008-03-06 14:50:28 +0100 (Thu, 06 Mar 2008) | 1 line
Update db-4.4.20 build procedure.
........
r61285 | raymond.hettinger | 2008-03-06 21:52:01 +0100 (Thu, 06 Mar 2008) | 1 line
More tests.
........
r61286 | raymond.hettinger | 2008-03-06 23:51:36 +0100 (Thu, 06 Mar 2008) | 1 line
Issue 2246: itertools grouper object did not participate in GC (should be backported).
........
r61288 | raymond.hettinger | 2008-03-07 02:33:20 +0100 (Fri, 07 Mar 2008) | 1 line
Tweak recipes and tests
........
r61289 | jeffrey.yasskin | 2008-03-07 07:22:15 +0100 (Fri, 07 Mar 2008) | 5 lines
Progress on issue #1193577 by adding a polling .shutdown() method to
SocketServers. The core of the patch was written by Pedro Werneck, but any bugs
are mine. I've also rearranged the code for timeouts in order to avoid
interfering with the shutdown poll.
........
r61290 | nick.coghlan | 2008-03-07 15:13:28 +0100 (Fri, 07 Mar 2008) | 1 line
Speed up with statements by storing the __exit__ method on the stack instead of in a temp variable (bumps the magic number for pyc files)
........
r61298 | andrew.kuchling | 2008-03-07 22:09:23 +0100 (Fri, 07 Mar 2008) | 1 line
Grammar fix
........
r61303 | georg.brandl | 2008-03-08 10:54:06 +0100 (Sat, 08 Mar 2008) | 2 lines
#2253: fix continue vs. finally docs.
........
r61304 | marc-andre.lemburg | 2008-03-08 11:01:43 +0100 (Sat, 08 Mar 2008) | 3 lines
Add new name for Mandrake: Mandriva.
........
r61305 | georg.brandl | 2008-03-08 11:05:24 +0100 (Sat, 08 Mar 2008) | 2 lines
#1533486: fix types in refcount intro.
........
r61312 | facundo.batista | 2008-03-08 17:50:27 +0100 (Sat, 08 Mar 2008) | 5 lines
Issue 1106316. post_mortem()'s parameter, traceback, is now
optional: it defaults to the traceback of the exception that is currently
being handled.
........
r61313 | jeffrey.yasskin | 2008-03-08 19:26:54 +0100 (Sat, 08 Mar 2008) | 2 lines
Add tests for with and finally performance to pybench.
........
r61314 | jeffrey.yasskin | 2008-03-08 21:08:21 +0100 (Sat, 08 Mar 2008) | 2 lines
Fix pybench for pythons < 2.6, tested back to 2.3.
........
r61317 | jeffrey.yasskin | 2008-03-08 22:35:15 +0100 (Sat, 08 Mar 2008) | 3 lines
Well that was dumb. platform.python_implementation returns a function, not a
string.
........
r61329 | georg.brandl | 2008-03-09 16:11:39 +0100 (Sun, 09 Mar 2008) | 2 lines
#2249: document assertTrue and assertFalse.
........
r61332 | neal.norwitz | 2008-03-09 20:03:42 +0100 (Sun, 09 Mar 2008) | 4 lines
Introduce a lock to fix a race condition which caused an exception in the test.
Some buildbots were consistently failing (e.g., amd64).
Also remove a couple of semi-colons.
........
r61344 | raymond.hettinger | 2008-03-11 01:19:07 +0100 (Tue, 11 Mar 2008) | 1 line
Add recipe to docs.
........
r61350 | guido.van.rossum | 2008-03-11 22:18:06 +0100 (Tue, 11 Mar 2008) | 3 lines
Fix the overflows in expandtabs(). "This time for sure!"
(Exploit at request.)
........
r61351 | raymond.hettinger | 2008-03-11 22:37:46 +0100 (Tue, 11 Mar 2008) | 1 line
Improve docs for itemgetter(). Show that it works with slices.
........
r61363 | georg.brandl | 2008-03-13 08:15:56 +0100 (Thu, 13 Mar 2008) | 2 lines
#2265: fix example.
........
r61364 | georg.brandl | 2008-03-13 08:17:14 +0100 (Thu, 13 Mar 2008) | 2 lines
#2270: fix typo.
........
r61365 | georg.brandl | 2008-03-13 08:21:41 +0100 (Thu, 13 Mar 2008) | 2 lines
#1720705: add docs about import/threading interaction, wording by Nick.
........
r61366 | andrew.kuchling | 2008-03-13 12:07:35 +0100 (Thu, 13 Mar 2008) | 1 line
Add class decorators
........
r61367 | raymond.hettinger | 2008-03-13 17:43:17 +0100 (Thu, 13 Mar 2008) | 1 line
Add 2-to-3 support for the itertools moved to builtins or renamed.
........
r61368 | raymond.hettinger | 2008-03-13 17:43:59 +0100 (Thu, 13 Mar 2008) | 1 line
Consistent tense.
........
r61369 | raymond.hettinger | 2008-03-13 20:03:51 +0100 (Thu, 13 Mar 2008) | 1 line
Issue 2274: Add heapq.heappushpop().
........
r61370 | raymond.hettinger | 2008-03-13 20:33:34 +0100 (Thu, 13 Mar 2008) | 1 line
Simplify the nlargest() code using heappushpop().
........
r61371 | brett.cannon | 2008-03-13 21:27:00 +0100 (Thu, 13 Mar 2008) | 4 lines
Move test_thread over to unittest. Commits GHOP 237.
Thanks Benjamin Peterson for the patch.
........
r61372 | brett.cannon | 2008-03-13 21:33:10 +0100 (Thu, 13 Mar 2008) | 4 lines
Move test_tokenize to doctest.
Done as GHOP 238 by Josip Dzolonga.
........
r61373 | brett.cannon | 2008-03-13 21:47:41 +0100 (Thu, 13 Mar 2008) | 4 lines
Convert test_contains, test_crypt, and test_select to unittest.
Patch from GHOP 294 by David Marek.
........
r61374 | brett.cannon | 2008-03-13 22:02:16 +0100 (Thu, 13 Mar 2008) | 4 lines
Move test_gdbm to use unittest.
Closes issue #1960. Thanks Giampaolo Rodola.
........
r61375 | brett.cannon | 2008-03-13 22:09:28 +0100 (Thu, 13 Mar 2008) | 4 lines
Convert test_fcntl to unittest.
Closes issue #2055. Thanks Giampaolo Rodola.
........
r61376 | raymond.hettinger | 2008-03-14 06:03:44 +0100 (Fri, 14 Mar 2008) | 1 line
Leave heapreplace() unchanged.
........
r61378 | martin.v.loewis | 2008-03-14 14:56:09 +0100 (Fri, 14 Mar 2008) | 2 lines
Patch #2284: add -x64 option to rt.bat.
........
r61379 | martin.v.loewis | 2008-03-14 14:57:59 +0100 (Fri, 14 Mar 2008) | 2 lines
Use -x64 flag.
........
r61382 | brett.cannon | 2008-03-14 15:03:10 +0100 (Fri, 14 Mar 2008) | 2 lines
Remove a bad test.
........
r61383 | mark.dickinson | 2008-03-14 15:23:37 +0100 (Fri, 14 Mar 2008) | 9 lines
Issue 705836: Fix struct.pack(">f", 1e40) to behave consistently
across platforms: it should now raise OverflowError on all
platforms. (Previously it raised OverflowError only on
non IEEE 754 platforms.)
Also fix the (already existing) test for this behaviour
so that it actually raises TestFailed instead of just
referencing it.
........
r61387 | thomas.heller | 2008-03-14 22:06:21 +0100 (Fri, 14 Mar 2008) | 1 line
Remove unneeded initializer.
........
r61388 | martin.v.loewis | 2008-03-14 22:19:28 +0100 (Fri, 14 Mar 2008) | 2 lines
Run debug version, cd to PCbuild.
........
r61392 | georg.brandl | 2008-03-15 00:10:34 +0100 (Sat, 15 Mar 2008) | 2 lines
Remove obsolete paragraph. #2288.
........
r61395 | georg.brandl | 2008-03-15 01:20:19 +0100 (Sat, 15 Mar 2008) | 2 lines
Fix lots of broken links in the docs, found by Sphinx' external link checker.
........
r61396 | skip.montanaro | 2008-03-15 03:32:49 +0100 (Sat, 15 Mar 2008) | 1 line
note that fork and forkpty raise OSError on failure
........
r61402 | skip.montanaro | 2008-03-15 17:04:45 +0100 (Sat, 15 Mar 2008) | 1 line
add %f format to datetime - issue 1158
........
r61403 | skip.montanaro | 2008-03-15 17:07:11 +0100 (Sat, 15 Mar 2008) | 2 lines
.
........
2008-03-15 21:07:10 -03:00
|
|
|
PyObject *freplacement = NULL; /* py string, replacement for %f */
|
2002-12-16 16:18:38 -04:00
|
|
|
|
Merged revisions 63562,63570,63728,63734,63784,63788,63802,63817,63827,63839,63887,63975,63998 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r63562 | martin.v.loewis | 2008-05-23 17:06:50 +0200 (Fri, 23 May 2008) | 2 lines
Patch #1722225: Support QNX 6.
........
r63570 | trent.nelson | 2008-05-23 22:33:14 +0200 (Fri, 23 May 2008) | 1 line
Introduce a user macro named $(externalsDir), which should point to the root directory of where all the external sources should live. Developers can change this value if their external sources live elsewhere. The default of '..\..' matches the current status quo.
........
r63728 | gregory.p.smith | 2008-05-26 23:16:34 +0200 (Mon, 26 May 2008) | 4 lines
Fix issue2589: there was a potential integer overflow leading to
memory corruption on esoteric platforms and incorrect behavior on
normal platforms.
........
r63734 | gregory.p.smith | 2008-05-27 00:07:28 +0200 (Tue, 27 May 2008) | 3 lines
Fix issue2588: Do not execute str[size-1] = '\0' when a 0 size is
passed in. (The assert won't prevent this in non-debug builds).
........
r63784 | raymond.hettinger | 2008-05-29 10:38:23 +0200 (Thu, 29 May 2008) | 1 line
Fix two typos.
........
r63788 | facundo.batista | 2008-05-29 18:39:26 +0200 (Thu, 29 May 2008) | 6 lines
Fixed the semantic of timeout for socket.create_connection and
all the upper level libraries that use it, including urllib2.
Added and fixed some tests, and changed docs correspondingly.
Thanks to John J Lee for the patch and the pusing, :)
........
r63802 | mark.dickinson | 2008-05-30 04:46:53 +0200 (Fri, 30 May 2008) | 2 lines
Fix typo in testSum
........
r63817 | raymond.hettinger | 2008-05-30 20:20:50 +0200 (Fri, 30 May 2008) | 8 lines
* Mark intermedidate computes values (hi, lo, yr) as volatile.
* Expand comments.
* Swap variable names in the sum_exact code so that x and y
are consistently chosen as the larger and smaller magnitude
values respectively.
........
r63827 | raymond.hettinger | 2008-05-31 05:24:31 +0200 (Sat, 31 May 2008) | 1 line
Implement heapq in terms of less-than (to match list.sort()).
........
r63839 | gerhard.haering | 2008-05-31 23:33:27 +0200 (Sat, 31 May 2008) | 2 lines
Fixed rowcount for SELECT statements. They're -1 now (again), for better DB-API 2.0 compliance.
........
r63887 | gregory.p.smith | 2008-06-02 06:05:52 +0200 (Mon, 02 Jun 2008) | 4 lines
Fix issue 2782: be less strict about the format string type in strftime.
Accept unicode and anything else ParseTuple "s#" can deal with. This
matches the time.strftime behavior.
........
r63975 | neal.norwitz | 2008-06-06 06:47:01 +0200 (Fri, 06 Jun 2008) | 3 lines
Aldo Cortesi confirmed this is still needed for OpenBSD 4.2 and 4.3.
(I didn't regen configure, since I don't have a working autoconf.)
........
r63998 | raymond.hettinger | 2008-06-06 23:47:51 +0200 (Fri, 06 Jun 2008) | 1 line
Issue 3501: Make heapq support both __le__ and __lt__.
........
2008-06-10 14:40:04 -03:00
|
|
|
const char *pin; /* pointer to next char in input format */
|
|
|
|
Py_ssize_t flen; /* length of input format */
|
|
|
|
char ch; /* next char in input format */
|
2002-12-16 16:18:38 -04:00
|
|
|
|
|
|
|
PyObject *newfmt = NULL; /* py string, the output format */
|
|
|
|
char *pnew; /* pointer to available byte in output format */
|
Merged revisions 63562,63570,63728,63734,63784,63788,63802,63817,63827,63839,63887,63975,63998 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r63562 | martin.v.loewis | 2008-05-23 17:06:50 +0200 (Fri, 23 May 2008) | 2 lines
Patch #1722225: Support QNX 6.
........
r63570 | trent.nelson | 2008-05-23 22:33:14 +0200 (Fri, 23 May 2008) | 1 line
Introduce a user macro named $(externalsDir), which should point to the root directory of where all the external sources should live. Developers can change this value if their external sources live elsewhere. The default of '..\..' matches the current status quo.
........
r63728 | gregory.p.smith | 2008-05-26 23:16:34 +0200 (Mon, 26 May 2008) | 4 lines
Fix issue2589: there was a potential integer overflow leading to
memory corruption on esoteric platforms and incorrect behavior on
normal platforms.
........
r63734 | gregory.p.smith | 2008-05-27 00:07:28 +0200 (Tue, 27 May 2008) | 3 lines
Fix issue2588: Do not execute str[size-1] = '\0' when a 0 size is
passed in. (The assert won't prevent this in non-debug builds).
........
r63784 | raymond.hettinger | 2008-05-29 10:38:23 +0200 (Thu, 29 May 2008) | 1 line
Fix two typos.
........
r63788 | facundo.batista | 2008-05-29 18:39:26 +0200 (Thu, 29 May 2008) | 6 lines
Fixed the semantic of timeout for socket.create_connection and
all the upper level libraries that use it, including urllib2.
Added and fixed some tests, and changed docs correspondingly.
Thanks to John J Lee for the patch and the pusing, :)
........
r63802 | mark.dickinson | 2008-05-30 04:46:53 +0200 (Fri, 30 May 2008) | 2 lines
Fix typo in testSum
........
r63817 | raymond.hettinger | 2008-05-30 20:20:50 +0200 (Fri, 30 May 2008) | 8 lines
* Mark intermedidate computes values (hi, lo, yr) as volatile.
* Expand comments.
* Swap variable names in the sum_exact code so that x and y
are consistently chosen as the larger and smaller magnitude
values respectively.
........
r63827 | raymond.hettinger | 2008-05-31 05:24:31 +0200 (Sat, 31 May 2008) | 1 line
Implement heapq in terms of less-than (to match list.sort()).
........
r63839 | gerhard.haering | 2008-05-31 23:33:27 +0200 (Sat, 31 May 2008) | 2 lines
Fixed rowcount for SELECT statements. They're -1 now (again), for better DB-API 2.0 compliance.
........
r63887 | gregory.p.smith | 2008-06-02 06:05:52 +0200 (Mon, 02 Jun 2008) | 4 lines
Fix issue 2782: be less strict about the format string type in strftime.
Accept unicode and anything else ParseTuple "s#" can deal with. This
matches the time.strftime behavior.
........
r63975 | neal.norwitz | 2008-06-06 06:47:01 +0200 (Fri, 06 Jun 2008) | 3 lines
Aldo Cortesi confirmed this is still needed for OpenBSD 4.2 and 4.3.
(I didn't regen configure, since I don't have a working autoconf.)
........
r63998 | raymond.hettinger | 2008-06-06 23:47:51 +0200 (Fri, 06 Jun 2008) | 1 line
Issue 3501: Make heapq support both __le__ and __lt__.
........
2008-06-10 14:40:04 -03:00
|
|
|
size_t totalnew; /* number bytes total in output format buffer,
|
|
|
|
exclusive of trailing \0 */
|
|
|
|
size_t usednew; /* number bytes used so far in output format buffer */
|
2002-12-16 16:18:38 -04:00
|
|
|
|
Merged revisions 63562,63570,63728,63734,63784,63788,63802,63817,63827,63839,63887,63975,63998 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r63562 | martin.v.loewis | 2008-05-23 17:06:50 +0200 (Fri, 23 May 2008) | 2 lines
Patch #1722225: Support QNX 6.
........
r63570 | trent.nelson | 2008-05-23 22:33:14 +0200 (Fri, 23 May 2008) | 1 line
Introduce a user macro named $(externalsDir), which should point to the root directory of where all the external sources should live. Developers can change this value if their external sources live elsewhere. The default of '..\..' matches the current status quo.
........
r63728 | gregory.p.smith | 2008-05-26 23:16:34 +0200 (Mon, 26 May 2008) | 4 lines
Fix issue2589: there was a potential integer overflow leading to
memory corruption on esoteric platforms and incorrect behavior on
normal platforms.
........
r63734 | gregory.p.smith | 2008-05-27 00:07:28 +0200 (Tue, 27 May 2008) | 3 lines
Fix issue2588: Do not execute str[size-1] = '\0' when a 0 size is
passed in. (The assert won't prevent this in non-debug builds).
........
r63784 | raymond.hettinger | 2008-05-29 10:38:23 +0200 (Thu, 29 May 2008) | 1 line
Fix two typos.
........
r63788 | facundo.batista | 2008-05-29 18:39:26 +0200 (Thu, 29 May 2008) | 6 lines
Fixed the semantic of timeout for socket.create_connection and
all the upper level libraries that use it, including urllib2.
Added and fixed some tests, and changed docs correspondingly.
Thanks to John J Lee for the patch and the pusing, :)
........
r63802 | mark.dickinson | 2008-05-30 04:46:53 +0200 (Fri, 30 May 2008) | 2 lines
Fix typo in testSum
........
r63817 | raymond.hettinger | 2008-05-30 20:20:50 +0200 (Fri, 30 May 2008) | 8 lines
* Mark intermedidate computes values (hi, lo, yr) as volatile.
* Expand comments.
* Swap variable names in the sum_exact code so that x and y
are consistently chosen as the larger and smaller magnitude
values respectively.
........
r63827 | raymond.hettinger | 2008-05-31 05:24:31 +0200 (Sat, 31 May 2008) | 1 line
Implement heapq in terms of less-than (to match list.sort()).
........
r63839 | gerhard.haering | 2008-05-31 23:33:27 +0200 (Sat, 31 May 2008) | 2 lines
Fixed rowcount for SELECT statements. They're -1 now (again), for better DB-API 2.0 compliance.
........
r63887 | gregory.p.smith | 2008-06-02 06:05:52 +0200 (Mon, 02 Jun 2008) | 4 lines
Fix issue 2782: be less strict about the format string type in strftime.
Accept unicode and anything else ParseTuple "s#" can deal with. This
matches the time.strftime behavior.
........
r63975 | neal.norwitz | 2008-06-06 06:47:01 +0200 (Fri, 06 Jun 2008) | 3 lines
Aldo Cortesi confirmed this is still needed for OpenBSD 4.2 and 4.3.
(I didn't regen configure, since I don't have a working autoconf.)
........
r63998 | raymond.hettinger | 2008-06-06 23:47:51 +0200 (Fri, 06 Jun 2008) | 1 line
Issue 3501: Make heapq support both __le__ and __lt__.
........
2008-06-10 14:40:04 -03:00
|
|
|
const char *ptoappend; /* ptr to string to append to output buffer */
|
2007-11-06 19:15:11 -04:00
|
|
|
Py_ssize_t ntoappend; /* # of bytes to append to output buffer */
|
2002-12-16 16:18:38 -04:00
|
|
|
|
|
|
|
assert(object && format && timetuple);
|
2007-08-24 01:05:13 -03:00
|
|
|
assert(PyUnicode_Check(format));
|
2007-08-27 01:58:38 -03:00
|
|
|
/* Convert the input format to a C string and size */
|
2008-08-07 15:54:33 -03:00
|
|
|
pin = _PyUnicode_AsStringAndSize(format, &flen);
|
2007-08-27 01:58:38 -03:00
|
|
|
if (!pin)
|
|
|
|
return NULL;
|
2002-12-16 16:18:38 -04:00
|
|
|
|
2002-12-22 16:58:42 -04:00
|
|
|
/* Give up if the year is before 1900.
|
|
|
|
* Python strftime() plays games with the year, and different
|
|
|
|
* games depending on whether envar PYTHON2K is set. This makes
|
|
|
|
* years before 1900 a nightmare, even if the platform strftime
|
|
|
|
* supports them (and not all do).
|
|
|
|
* We could get a lot farther here by avoiding Python's strftime
|
|
|
|
* wrapper and calling the C strftime() directly, but that isn't
|
|
|
|
* an option in the Python implementation of this module.
|
|
|
|
*/
|
|
|
|
{
|
|
|
|
long year;
|
|
|
|
PyObject *pyyear = PySequence_GetItem(timetuple, 0);
|
|
|
|
if (pyyear == NULL) return NULL;
|
2007-12-02 10:31:20 -04:00
|
|
|
assert(PyLong_Check(pyyear));
|
|
|
|
year = PyLong_AsLong(pyyear);
|
2002-12-22 16:58:42 -04:00
|
|
|
Py_DECREF(pyyear);
|
|
|
|
if (year < 1900) {
|
|
|
|
PyErr_Format(PyExc_ValueError, "year=%ld is before "
|
|
|
|
"1900; the datetime strftime() "
|
|
|
|
"methods require year >= 1900",
|
|
|
|
year);
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
Merged revisions 61239-61249,61252-61257,61260-61264,61269-61275,61278-61279,61285-61286,61288-61290,61298,61303-61305,61312-61314,61317,61329,61332,61344,61350-61351,61363-61376,61378-61379,61382-61383,61387-61388,61392,61395-61396,61402-61403 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r61239 | andrew.kuchling | 2008-03-05 01:44:41 +0100 (Wed, 05 Mar 2008) | 1 line
Add more items; add fragmentary notes
........
r61240 | amaury.forgeotdarc | 2008-03-05 02:50:33 +0100 (Wed, 05 Mar 2008) | 13 lines
Issue#2238: some syntax errors from *args or **kwargs expressions
would give bogus error messages, because of untested exceptions::
>>> f(**g(1=2))
XXX undetected error
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is not iterable
instead of the expected SyntaxError: keyword can't be an expression
Will backport.
........
r61241 | neal.norwitz | 2008-03-05 06:10:48 +0100 (Wed, 05 Mar 2008) | 3 lines
Remove the files/dirs after closing the DB so the tests work on Windows.
Patch from Trent Nelson. Also simplified removing a file by using test_support.
........
r61242 | neal.norwitz | 2008-03-05 06:14:18 +0100 (Wed, 05 Mar 2008) | 3 lines
Get this test to pass even when there is no sound card in the system.
Patch from Trent Nelson. (I can't test this.)
........
r61243 | neal.norwitz | 2008-03-05 06:20:44 +0100 (Wed, 05 Mar 2008) | 3 lines
Catch OSError when trying to remove a file in case removal fails. This
should prevent a failure in tearDown masking any real test failure.
........
r61244 | neal.norwitz | 2008-03-05 06:38:06 +0100 (Wed, 05 Mar 2008) | 5 lines
Make the timeout longer to give slow machines a chance to pass the test
before timing out. This doesn't change the duration of the test under
normal circumstances. This is targetted at fixing the spurious failures
on the FreeBSD buildbot primarily.
........
r61245 | neal.norwitz | 2008-03-05 06:49:03 +0100 (Wed, 05 Mar 2008) | 1 line
Tabs -> spaces
........
r61246 | neal.norwitz | 2008-03-05 06:50:20 +0100 (Wed, 05 Mar 2008) | 1 line
Use -u urlfetch to run more tests
........
r61247 | neal.norwitz | 2008-03-05 06:51:20 +0100 (Wed, 05 Mar 2008) | 1 line
test_smtplib sometimes reports leaks too, suppress it
........
r61248 | jeffrey.yasskin | 2008-03-05 07:19:56 +0100 (Wed, 05 Mar 2008) | 5 lines
Fix test_socketserver on Windows after r61099 added several signal.alarm()
calls (which don't exist on non-Unix platforms).
Thanks to Trent Nelson for the report and patch.
........
r61249 | georg.brandl | 2008-03-05 08:10:35 +0100 (Wed, 05 Mar 2008) | 2 lines
Fix some rst.
........
r61252 | thomas.heller | 2008-03-05 15:53:39 +0100 (Wed, 05 Mar 2008) | 2 lines
News entry for yesterdays commit.
........
r61253 | thomas.heller | 2008-03-05 16:34:29 +0100 (Wed, 05 Mar 2008) | 3 lines
Issue 1872: Changed the struct module typecode from 't' to '?', for
compatibility with PEP3118.
........
r61254 | skip.montanaro | 2008-03-05 17:41:09 +0100 (Wed, 05 Mar 2008) | 4 lines
Elaborate on the role of the altinstall target when installing multiple
versions.
........
r61255 | georg.brandl | 2008-03-05 20:31:44 +0100 (Wed, 05 Mar 2008) | 2 lines
#2239: PYTHONPATH delimiter is os.pathsep.
........
r61256 | raymond.hettinger | 2008-03-05 21:59:58 +0100 (Wed, 05 Mar 2008) | 1 line
C implementation of itertools.permutations().
........
r61257 | raymond.hettinger | 2008-03-05 22:04:32 +0100 (Wed, 05 Mar 2008) | 1 line
Small code cleanup.
........
r61260 | martin.v.loewis | 2008-03-05 23:24:31 +0100 (Wed, 05 Mar 2008) | 2 lines
cd PCbuild only after deleting all pyc files.
........
r61261 | raymond.hettinger | 2008-03-06 02:15:52 +0100 (Thu, 06 Mar 2008) | 1 line
Add examples.
........
r61262 | andrew.kuchling | 2008-03-06 02:36:27 +0100 (Thu, 06 Mar 2008) | 1 line
Add two items
........
r61263 | georg.brandl | 2008-03-06 07:47:18 +0100 (Thu, 06 Mar 2008) | 2 lines
#1725737: ignore other VC directories other than CVS and SVN's too.
........
r61264 | martin.v.loewis | 2008-03-06 07:55:22 +0100 (Thu, 06 Mar 2008) | 4 lines
Patch #2232: os.tmpfile might fail on Windows if the user has no
permission to create files in the root directory.
Will backport to 2.5.
........
r61269 | georg.brandl | 2008-03-06 08:19:15 +0100 (Thu, 06 Mar 2008) | 2 lines
Expand on re.split behavior with captured expressions.
........
r61270 | georg.brandl | 2008-03-06 08:22:09 +0100 (Thu, 06 Mar 2008) | 2 lines
Little clarification of assignments.
........
r61271 | georg.brandl | 2008-03-06 08:31:34 +0100 (Thu, 06 Mar 2008) | 2 lines
Add isinstance/issubclass to tutorial.
........
r61272 | georg.brandl | 2008-03-06 08:34:52 +0100 (Thu, 06 Mar 2008) | 2 lines
Add missing NEWS entry for r61263.
........
r61273 | georg.brandl | 2008-03-06 08:41:16 +0100 (Thu, 06 Mar 2008) | 2 lines
#2225: return nonzero status code from py_compile if not all files could be compiled.
........
r61274 | georg.brandl | 2008-03-06 08:43:02 +0100 (Thu, 06 Mar 2008) | 2 lines
#2220: handle matching failure more gracefully.
........
r61275 | georg.brandl | 2008-03-06 08:45:52 +0100 (Thu, 06 Mar 2008) | 2 lines
Bug #2220: handle rlcompleter attribute match failure more gracefully.
........
r61278 | martin.v.loewis | 2008-03-06 14:49:47 +0100 (Thu, 06 Mar 2008) | 1 line
Rely on x64 platform configuration when building _bsddb on AMD64.
........
r61279 | martin.v.loewis | 2008-03-06 14:50:28 +0100 (Thu, 06 Mar 2008) | 1 line
Update db-4.4.20 build procedure.
........
r61285 | raymond.hettinger | 2008-03-06 21:52:01 +0100 (Thu, 06 Mar 2008) | 1 line
More tests.
........
r61286 | raymond.hettinger | 2008-03-06 23:51:36 +0100 (Thu, 06 Mar 2008) | 1 line
Issue 2246: itertools grouper object did not participate in GC (should be backported).
........
r61288 | raymond.hettinger | 2008-03-07 02:33:20 +0100 (Fri, 07 Mar 2008) | 1 line
Tweak recipes and tests
........
r61289 | jeffrey.yasskin | 2008-03-07 07:22:15 +0100 (Fri, 07 Mar 2008) | 5 lines
Progress on issue #1193577 by adding a polling .shutdown() method to
SocketServers. The core of the patch was written by Pedro Werneck, but any bugs
are mine. I've also rearranged the code for timeouts in order to avoid
interfering with the shutdown poll.
........
r61290 | nick.coghlan | 2008-03-07 15:13:28 +0100 (Fri, 07 Mar 2008) | 1 line
Speed up with statements by storing the __exit__ method on the stack instead of in a temp variable (bumps the magic number for pyc files)
........
r61298 | andrew.kuchling | 2008-03-07 22:09:23 +0100 (Fri, 07 Mar 2008) | 1 line
Grammar fix
........
r61303 | georg.brandl | 2008-03-08 10:54:06 +0100 (Sat, 08 Mar 2008) | 2 lines
#2253: fix continue vs. finally docs.
........
r61304 | marc-andre.lemburg | 2008-03-08 11:01:43 +0100 (Sat, 08 Mar 2008) | 3 lines
Add new name for Mandrake: Mandriva.
........
r61305 | georg.brandl | 2008-03-08 11:05:24 +0100 (Sat, 08 Mar 2008) | 2 lines
#1533486: fix types in refcount intro.
........
r61312 | facundo.batista | 2008-03-08 17:50:27 +0100 (Sat, 08 Mar 2008) | 5 lines
Issue 1106316. post_mortem()'s parameter, traceback, is now
optional: it defaults to the traceback of the exception that is currently
being handled.
........
r61313 | jeffrey.yasskin | 2008-03-08 19:26:54 +0100 (Sat, 08 Mar 2008) | 2 lines
Add tests for with and finally performance to pybench.
........
r61314 | jeffrey.yasskin | 2008-03-08 21:08:21 +0100 (Sat, 08 Mar 2008) | 2 lines
Fix pybench for pythons < 2.6, tested back to 2.3.
........
r61317 | jeffrey.yasskin | 2008-03-08 22:35:15 +0100 (Sat, 08 Mar 2008) | 3 lines
Well that was dumb. platform.python_implementation returns a function, not a
string.
........
r61329 | georg.brandl | 2008-03-09 16:11:39 +0100 (Sun, 09 Mar 2008) | 2 lines
#2249: document assertTrue and assertFalse.
........
r61332 | neal.norwitz | 2008-03-09 20:03:42 +0100 (Sun, 09 Mar 2008) | 4 lines
Introduce a lock to fix a race condition which caused an exception in the test.
Some buildbots were consistently failing (e.g., amd64).
Also remove a couple of semi-colons.
........
r61344 | raymond.hettinger | 2008-03-11 01:19:07 +0100 (Tue, 11 Mar 2008) | 1 line
Add recipe to docs.
........
r61350 | guido.van.rossum | 2008-03-11 22:18:06 +0100 (Tue, 11 Mar 2008) | 3 lines
Fix the overflows in expandtabs(). "This time for sure!"
(Exploit at request.)
........
r61351 | raymond.hettinger | 2008-03-11 22:37:46 +0100 (Tue, 11 Mar 2008) | 1 line
Improve docs for itemgetter(). Show that it works with slices.
........
r61363 | georg.brandl | 2008-03-13 08:15:56 +0100 (Thu, 13 Mar 2008) | 2 lines
#2265: fix example.
........
r61364 | georg.brandl | 2008-03-13 08:17:14 +0100 (Thu, 13 Mar 2008) | 2 lines
#2270: fix typo.
........
r61365 | georg.brandl | 2008-03-13 08:21:41 +0100 (Thu, 13 Mar 2008) | 2 lines
#1720705: add docs about import/threading interaction, wording by Nick.
........
r61366 | andrew.kuchling | 2008-03-13 12:07:35 +0100 (Thu, 13 Mar 2008) | 1 line
Add class decorators
........
r61367 | raymond.hettinger | 2008-03-13 17:43:17 +0100 (Thu, 13 Mar 2008) | 1 line
Add 2-to-3 support for the itertools moved to builtins or renamed.
........
r61368 | raymond.hettinger | 2008-03-13 17:43:59 +0100 (Thu, 13 Mar 2008) | 1 line
Consistent tense.
........
r61369 | raymond.hettinger | 2008-03-13 20:03:51 +0100 (Thu, 13 Mar 2008) | 1 line
Issue 2274: Add heapq.heappushpop().
........
r61370 | raymond.hettinger | 2008-03-13 20:33:34 +0100 (Thu, 13 Mar 2008) | 1 line
Simplify the nlargest() code using heappushpop().
........
r61371 | brett.cannon | 2008-03-13 21:27:00 +0100 (Thu, 13 Mar 2008) | 4 lines
Move test_thread over to unittest. Commits GHOP 237.
Thanks Benjamin Peterson for the patch.
........
r61372 | brett.cannon | 2008-03-13 21:33:10 +0100 (Thu, 13 Mar 2008) | 4 lines
Move test_tokenize to doctest.
Done as GHOP 238 by Josip Dzolonga.
........
r61373 | brett.cannon | 2008-03-13 21:47:41 +0100 (Thu, 13 Mar 2008) | 4 lines
Convert test_contains, test_crypt, and test_select to unittest.
Patch from GHOP 294 by David Marek.
........
r61374 | brett.cannon | 2008-03-13 22:02:16 +0100 (Thu, 13 Mar 2008) | 4 lines
Move test_gdbm to use unittest.
Closes issue #1960. Thanks Giampaolo Rodola.
........
r61375 | brett.cannon | 2008-03-13 22:09:28 +0100 (Thu, 13 Mar 2008) | 4 lines
Convert test_fcntl to unittest.
Closes issue #2055. Thanks Giampaolo Rodola.
........
r61376 | raymond.hettinger | 2008-03-14 06:03:44 +0100 (Fri, 14 Mar 2008) | 1 line
Leave heapreplace() unchanged.
........
r61378 | martin.v.loewis | 2008-03-14 14:56:09 +0100 (Fri, 14 Mar 2008) | 2 lines
Patch #2284: add -x64 option to rt.bat.
........
r61379 | martin.v.loewis | 2008-03-14 14:57:59 +0100 (Fri, 14 Mar 2008) | 2 lines
Use -x64 flag.
........
r61382 | brett.cannon | 2008-03-14 15:03:10 +0100 (Fri, 14 Mar 2008) | 2 lines
Remove a bad test.
........
r61383 | mark.dickinson | 2008-03-14 15:23:37 +0100 (Fri, 14 Mar 2008) | 9 lines
Issue 705836: Fix struct.pack(">f", 1e40) to behave consistently
across platforms: it should now raise OverflowError on all
platforms. (Previously it raised OverflowError only on
non IEEE 754 platforms.)
Also fix the (already existing) test for this behaviour
so that it actually raises TestFailed instead of just
referencing it.
........
r61387 | thomas.heller | 2008-03-14 22:06:21 +0100 (Fri, 14 Mar 2008) | 1 line
Remove unneeded initializer.
........
r61388 | martin.v.loewis | 2008-03-14 22:19:28 +0100 (Fri, 14 Mar 2008) | 2 lines
Run debug version, cd to PCbuild.
........
r61392 | georg.brandl | 2008-03-15 00:10:34 +0100 (Sat, 15 Mar 2008) | 2 lines
Remove obsolete paragraph. #2288.
........
r61395 | georg.brandl | 2008-03-15 01:20:19 +0100 (Sat, 15 Mar 2008) | 2 lines
Fix lots of broken links in the docs, found by Sphinx' external link checker.
........
r61396 | skip.montanaro | 2008-03-15 03:32:49 +0100 (Sat, 15 Mar 2008) | 1 line
note that fork and forkpty raise OSError on failure
........
r61402 | skip.montanaro | 2008-03-15 17:04:45 +0100 (Sat, 15 Mar 2008) | 1 line
add %f format to datetime - issue 1158
........
r61403 | skip.montanaro | 2008-03-15 17:07:11 +0100 (Sat, 15 Mar 2008) | 2 lines
.
........
2008-03-15 21:07:10 -03:00
|
|
|
/* Scan the input format, looking for %z/%Z/%f escapes, building
|
2002-12-19 21:31:27 -04:00
|
|
|
* a new format. Since computing the replacements for those codes
|
|
|
|
* is expensive, don't unless they're actually used.
|
2002-12-16 16:18:38 -04:00
|
|
|
*/
|
2008-06-17 21:47:36 -03:00
|
|
|
if (flen > INT_MAX - 1) {
|
|
|
|
PyErr_NoMemory();
|
|
|
|
goto Done;
|
|
|
|
}
|
|
|
|
|
2007-05-10 15:04:33 -03:00
|
|
|
totalnew = flen + 1; /* realistic if no %z/%Z */
|
2008-05-26 10:28:38 -03:00
|
|
|
newfmt = PyBytes_FromStringAndSize(NULL, totalnew);
|
2002-12-16 16:18:38 -04:00
|
|
|
if (newfmt == NULL) goto Done;
|
2008-05-26 10:28:38 -03:00
|
|
|
pnew = PyBytes_AsString(newfmt);
|
2002-12-16 16:18:38 -04:00
|
|
|
usednew = 0;
|
|
|
|
|
|
|
|
while ((ch = *pin++) != '\0') {
|
|
|
|
if (ch != '%') {
|
2002-12-19 21:31:27 -04:00
|
|
|
ptoappend = pin - 1;
|
2002-12-16 16:18:38 -04:00
|
|
|
ntoappend = 1;
|
|
|
|
}
|
|
|
|
else if ((ch = *pin++) == '\0') {
|
|
|
|
/* There's a lone trailing %; doesn't make sense. */
|
|
|
|
PyErr_SetString(PyExc_ValueError, "strftime format "
|
|
|
|
"ends with raw %");
|
|
|
|
goto Done;
|
|
|
|
}
|
|
|
|
/* A % has been seen and ch is the character after it. */
|
|
|
|
else if (ch == 'z') {
|
|
|
|
if (zreplacement == NULL) {
|
|
|
|
/* format utcoffset */
|
2002-12-19 21:31:27 -04:00
|
|
|
char buf[100];
|
2002-12-16 16:18:38 -04:00
|
|
|
PyObject *tzinfo = get_tzinfo_member(object);
|
2008-05-26 10:28:38 -03:00
|
|
|
zreplacement = PyBytes_FromStringAndSize("", 0);
|
2002-12-16 16:18:38 -04:00
|
|
|
if (zreplacement == NULL) goto Done;
|
|
|
|
if (tzinfo != Py_None && tzinfo != NULL) {
|
2002-12-30 16:52:32 -04:00
|
|
|
assert(tzinfoarg != NULL);
|
2002-12-16 16:18:38 -04:00
|
|
|
if (format_utcoffset(buf,
|
2002-12-19 21:31:27 -04:00
|
|
|
sizeof(buf),
|
2002-12-16 16:18:38 -04:00
|
|
|
"",
|
|
|
|
tzinfo,
|
2002-12-30 16:52:32 -04:00
|
|
|
tzinfoarg) < 0)
|
2002-12-16 16:18:38 -04:00
|
|
|
goto Done;
|
|
|
|
Py_DECREF(zreplacement);
|
2007-08-24 01:05:13 -03:00
|
|
|
zreplacement =
|
2008-05-26 10:28:38 -03:00
|
|
|
PyBytes_FromStringAndSize(buf,
|
2007-08-24 01:05:13 -03:00
|
|
|
strlen(buf));
|
|
|
|
if (zreplacement == NULL)
|
|
|
|
goto Done;
|
2002-12-16 16:18:38 -04:00
|
|
|
}
|
|
|
|
}
|
|
|
|
assert(zreplacement != NULL);
|
2008-05-26 10:28:38 -03:00
|
|
|
ptoappend = PyBytes_AS_STRING(zreplacement);
|
|
|
|
ntoappend = PyBytes_GET_SIZE(zreplacement);
|
2002-12-16 16:18:38 -04:00
|
|
|
}
|
|
|
|
else if (ch == 'Z') {
|
|
|
|
/* format tzname */
|
|
|
|
if (Zreplacement == NULL) {
|
2007-05-23 18:36:49 -03:00
|
|
|
Zreplacement = make_Zreplacement(object,
|
|
|
|
tzinfoarg);
|
|
|
|
if (Zreplacement == NULL)
|
|
|
|
goto Done;
|
2002-12-16 16:18:38 -04:00
|
|
|
}
|
|
|
|
assert(Zreplacement != NULL);
|
2007-11-06 17:34:58 -04:00
|
|
|
assert(PyUnicode_Check(Zreplacement));
|
2008-08-07 15:54:33 -03:00
|
|
|
ptoappend = _PyUnicode_AsStringAndSize(Zreplacement,
|
2007-11-06 17:34:58 -04:00
|
|
|
&ntoappend);
|
2007-12-18 22:45:37 -04:00
|
|
|
ntoappend = Py_SIZE(Zreplacement);
|
2002-12-16 16:18:38 -04:00
|
|
|
}
|
Merged revisions 61239-61249,61252-61257,61260-61264,61269-61275,61278-61279,61285-61286,61288-61290,61298,61303-61305,61312-61314,61317,61329,61332,61344,61350-61351,61363-61376,61378-61379,61382-61383,61387-61388,61392,61395-61396,61402-61403 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r61239 | andrew.kuchling | 2008-03-05 01:44:41 +0100 (Wed, 05 Mar 2008) | 1 line
Add more items; add fragmentary notes
........
r61240 | amaury.forgeotdarc | 2008-03-05 02:50:33 +0100 (Wed, 05 Mar 2008) | 13 lines
Issue#2238: some syntax errors from *args or **kwargs expressions
would give bogus error messages, because of untested exceptions::
>>> f(**g(1=2))
XXX undetected error
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is not iterable
instead of the expected SyntaxError: keyword can't be an expression
Will backport.
........
r61241 | neal.norwitz | 2008-03-05 06:10:48 +0100 (Wed, 05 Mar 2008) | 3 lines
Remove the files/dirs after closing the DB so the tests work on Windows.
Patch from Trent Nelson. Also simplified removing a file by using test_support.
........
r61242 | neal.norwitz | 2008-03-05 06:14:18 +0100 (Wed, 05 Mar 2008) | 3 lines
Get this test to pass even when there is no sound card in the system.
Patch from Trent Nelson. (I can't test this.)
........
r61243 | neal.norwitz | 2008-03-05 06:20:44 +0100 (Wed, 05 Mar 2008) | 3 lines
Catch OSError when trying to remove a file in case removal fails. This
should prevent a failure in tearDown masking any real test failure.
........
r61244 | neal.norwitz | 2008-03-05 06:38:06 +0100 (Wed, 05 Mar 2008) | 5 lines
Make the timeout longer to give slow machines a chance to pass the test
before timing out. This doesn't change the duration of the test under
normal circumstances. This is targetted at fixing the spurious failures
on the FreeBSD buildbot primarily.
........
r61245 | neal.norwitz | 2008-03-05 06:49:03 +0100 (Wed, 05 Mar 2008) | 1 line
Tabs -> spaces
........
r61246 | neal.norwitz | 2008-03-05 06:50:20 +0100 (Wed, 05 Mar 2008) | 1 line
Use -u urlfetch to run more tests
........
r61247 | neal.norwitz | 2008-03-05 06:51:20 +0100 (Wed, 05 Mar 2008) | 1 line
test_smtplib sometimes reports leaks too, suppress it
........
r61248 | jeffrey.yasskin | 2008-03-05 07:19:56 +0100 (Wed, 05 Mar 2008) | 5 lines
Fix test_socketserver on Windows after r61099 added several signal.alarm()
calls (which don't exist on non-Unix platforms).
Thanks to Trent Nelson for the report and patch.
........
r61249 | georg.brandl | 2008-03-05 08:10:35 +0100 (Wed, 05 Mar 2008) | 2 lines
Fix some rst.
........
r61252 | thomas.heller | 2008-03-05 15:53:39 +0100 (Wed, 05 Mar 2008) | 2 lines
News entry for yesterdays commit.
........
r61253 | thomas.heller | 2008-03-05 16:34:29 +0100 (Wed, 05 Mar 2008) | 3 lines
Issue 1872: Changed the struct module typecode from 't' to '?', for
compatibility with PEP3118.
........
r61254 | skip.montanaro | 2008-03-05 17:41:09 +0100 (Wed, 05 Mar 2008) | 4 lines
Elaborate on the role of the altinstall target when installing multiple
versions.
........
r61255 | georg.brandl | 2008-03-05 20:31:44 +0100 (Wed, 05 Mar 2008) | 2 lines
#2239: PYTHONPATH delimiter is os.pathsep.
........
r61256 | raymond.hettinger | 2008-03-05 21:59:58 +0100 (Wed, 05 Mar 2008) | 1 line
C implementation of itertools.permutations().
........
r61257 | raymond.hettinger | 2008-03-05 22:04:32 +0100 (Wed, 05 Mar 2008) | 1 line
Small code cleanup.
........
r61260 | martin.v.loewis | 2008-03-05 23:24:31 +0100 (Wed, 05 Mar 2008) | 2 lines
cd PCbuild only after deleting all pyc files.
........
r61261 | raymond.hettinger | 2008-03-06 02:15:52 +0100 (Thu, 06 Mar 2008) | 1 line
Add examples.
........
r61262 | andrew.kuchling | 2008-03-06 02:36:27 +0100 (Thu, 06 Mar 2008) | 1 line
Add two items
........
r61263 | georg.brandl | 2008-03-06 07:47:18 +0100 (Thu, 06 Mar 2008) | 2 lines
#1725737: ignore other VC directories other than CVS and SVN's too.
........
r61264 | martin.v.loewis | 2008-03-06 07:55:22 +0100 (Thu, 06 Mar 2008) | 4 lines
Patch #2232: os.tmpfile might fail on Windows if the user has no
permission to create files in the root directory.
Will backport to 2.5.
........
r61269 | georg.brandl | 2008-03-06 08:19:15 +0100 (Thu, 06 Mar 2008) | 2 lines
Expand on re.split behavior with captured expressions.
........
r61270 | georg.brandl | 2008-03-06 08:22:09 +0100 (Thu, 06 Mar 2008) | 2 lines
Little clarification of assignments.
........
r61271 | georg.brandl | 2008-03-06 08:31:34 +0100 (Thu, 06 Mar 2008) | 2 lines
Add isinstance/issubclass to tutorial.
........
r61272 | georg.brandl | 2008-03-06 08:34:52 +0100 (Thu, 06 Mar 2008) | 2 lines
Add missing NEWS entry for r61263.
........
r61273 | georg.brandl | 2008-03-06 08:41:16 +0100 (Thu, 06 Mar 2008) | 2 lines
#2225: return nonzero status code from py_compile if not all files could be compiled.
........
r61274 | georg.brandl | 2008-03-06 08:43:02 +0100 (Thu, 06 Mar 2008) | 2 lines
#2220: handle matching failure more gracefully.
........
r61275 | georg.brandl | 2008-03-06 08:45:52 +0100 (Thu, 06 Mar 2008) | 2 lines
Bug #2220: handle rlcompleter attribute match failure more gracefully.
........
r61278 | martin.v.loewis | 2008-03-06 14:49:47 +0100 (Thu, 06 Mar 2008) | 1 line
Rely on x64 platform configuration when building _bsddb on AMD64.
........
r61279 | martin.v.loewis | 2008-03-06 14:50:28 +0100 (Thu, 06 Mar 2008) | 1 line
Update db-4.4.20 build procedure.
........
r61285 | raymond.hettinger | 2008-03-06 21:52:01 +0100 (Thu, 06 Mar 2008) | 1 line
More tests.
........
r61286 | raymond.hettinger | 2008-03-06 23:51:36 +0100 (Thu, 06 Mar 2008) | 1 line
Issue 2246: itertools grouper object did not participate in GC (should be backported).
........
r61288 | raymond.hettinger | 2008-03-07 02:33:20 +0100 (Fri, 07 Mar 2008) | 1 line
Tweak recipes and tests
........
r61289 | jeffrey.yasskin | 2008-03-07 07:22:15 +0100 (Fri, 07 Mar 2008) | 5 lines
Progress on issue #1193577 by adding a polling .shutdown() method to
SocketServers. The core of the patch was written by Pedro Werneck, but any bugs
are mine. I've also rearranged the code for timeouts in order to avoid
interfering with the shutdown poll.
........
r61290 | nick.coghlan | 2008-03-07 15:13:28 +0100 (Fri, 07 Mar 2008) | 1 line
Speed up with statements by storing the __exit__ method on the stack instead of in a temp variable (bumps the magic number for pyc files)
........
r61298 | andrew.kuchling | 2008-03-07 22:09:23 +0100 (Fri, 07 Mar 2008) | 1 line
Grammar fix
........
r61303 | georg.brandl | 2008-03-08 10:54:06 +0100 (Sat, 08 Mar 2008) | 2 lines
#2253: fix continue vs. finally docs.
........
r61304 | marc-andre.lemburg | 2008-03-08 11:01:43 +0100 (Sat, 08 Mar 2008) | 3 lines
Add new name for Mandrake: Mandriva.
........
r61305 | georg.brandl | 2008-03-08 11:05:24 +0100 (Sat, 08 Mar 2008) | 2 lines
#1533486: fix types in refcount intro.
........
r61312 | facundo.batista | 2008-03-08 17:50:27 +0100 (Sat, 08 Mar 2008) | 5 lines
Issue 1106316. post_mortem()'s parameter, traceback, is now
optional: it defaults to the traceback of the exception that is currently
being handled.
........
r61313 | jeffrey.yasskin | 2008-03-08 19:26:54 +0100 (Sat, 08 Mar 2008) | 2 lines
Add tests for with and finally performance to pybench.
........
r61314 | jeffrey.yasskin | 2008-03-08 21:08:21 +0100 (Sat, 08 Mar 2008) | 2 lines
Fix pybench for pythons < 2.6, tested back to 2.3.
........
r61317 | jeffrey.yasskin | 2008-03-08 22:35:15 +0100 (Sat, 08 Mar 2008) | 3 lines
Well that was dumb. platform.python_implementation returns a function, not a
string.
........
r61329 | georg.brandl | 2008-03-09 16:11:39 +0100 (Sun, 09 Mar 2008) | 2 lines
#2249: document assertTrue and assertFalse.
........
r61332 | neal.norwitz | 2008-03-09 20:03:42 +0100 (Sun, 09 Mar 2008) | 4 lines
Introduce a lock to fix a race condition which caused an exception in the test.
Some buildbots were consistently failing (e.g., amd64).
Also remove a couple of semi-colons.
........
r61344 | raymond.hettinger | 2008-03-11 01:19:07 +0100 (Tue, 11 Mar 2008) | 1 line
Add recipe to docs.
........
r61350 | guido.van.rossum | 2008-03-11 22:18:06 +0100 (Tue, 11 Mar 2008) | 3 lines
Fix the overflows in expandtabs(). "This time for sure!"
(Exploit at request.)
........
r61351 | raymond.hettinger | 2008-03-11 22:37:46 +0100 (Tue, 11 Mar 2008) | 1 line
Improve docs for itemgetter(). Show that it works with slices.
........
r61363 | georg.brandl | 2008-03-13 08:15:56 +0100 (Thu, 13 Mar 2008) | 2 lines
#2265: fix example.
........
r61364 | georg.brandl | 2008-03-13 08:17:14 +0100 (Thu, 13 Mar 2008) | 2 lines
#2270: fix typo.
........
r61365 | georg.brandl | 2008-03-13 08:21:41 +0100 (Thu, 13 Mar 2008) | 2 lines
#1720705: add docs about import/threading interaction, wording by Nick.
........
r61366 | andrew.kuchling | 2008-03-13 12:07:35 +0100 (Thu, 13 Mar 2008) | 1 line
Add class decorators
........
r61367 | raymond.hettinger | 2008-03-13 17:43:17 +0100 (Thu, 13 Mar 2008) | 1 line
Add 2-to-3 support for the itertools moved to builtins or renamed.
........
r61368 | raymond.hettinger | 2008-03-13 17:43:59 +0100 (Thu, 13 Mar 2008) | 1 line
Consistent tense.
........
r61369 | raymond.hettinger | 2008-03-13 20:03:51 +0100 (Thu, 13 Mar 2008) | 1 line
Issue 2274: Add heapq.heappushpop().
........
r61370 | raymond.hettinger | 2008-03-13 20:33:34 +0100 (Thu, 13 Mar 2008) | 1 line
Simplify the nlargest() code using heappushpop().
........
r61371 | brett.cannon | 2008-03-13 21:27:00 +0100 (Thu, 13 Mar 2008) | 4 lines
Move test_thread over to unittest. Commits GHOP 237.
Thanks Benjamin Peterson for the patch.
........
r61372 | brett.cannon | 2008-03-13 21:33:10 +0100 (Thu, 13 Mar 2008) | 4 lines
Move test_tokenize to doctest.
Done as GHOP 238 by Josip Dzolonga.
........
r61373 | brett.cannon | 2008-03-13 21:47:41 +0100 (Thu, 13 Mar 2008) | 4 lines
Convert test_contains, test_crypt, and test_select to unittest.
Patch from GHOP 294 by David Marek.
........
r61374 | brett.cannon | 2008-03-13 22:02:16 +0100 (Thu, 13 Mar 2008) | 4 lines
Move test_gdbm to use unittest.
Closes issue #1960. Thanks Giampaolo Rodola.
........
r61375 | brett.cannon | 2008-03-13 22:09:28 +0100 (Thu, 13 Mar 2008) | 4 lines
Convert test_fcntl to unittest.
Closes issue #2055. Thanks Giampaolo Rodola.
........
r61376 | raymond.hettinger | 2008-03-14 06:03:44 +0100 (Fri, 14 Mar 2008) | 1 line
Leave heapreplace() unchanged.
........
r61378 | martin.v.loewis | 2008-03-14 14:56:09 +0100 (Fri, 14 Mar 2008) | 2 lines
Patch #2284: add -x64 option to rt.bat.
........
r61379 | martin.v.loewis | 2008-03-14 14:57:59 +0100 (Fri, 14 Mar 2008) | 2 lines
Use -x64 flag.
........
r61382 | brett.cannon | 2008-03-14 15:03:10 +0100 (Fri, 14 Mar 2008) | 2 lines
Remove a bad test.
........
r61383 | mark.dickinson | 2008-03-14 15:23:37 +0100 (Fri, 14 Mar 2008) | 9 lines
Issue 705836: Fix struct.pack(">f", 1e40) to behave consistently
across platforms: it should now raise OverflowError on all
platforms. (Previously it raised OverflowError only on
non IEEE 754 platforms.)
Also fix the (already existing) test for this behaviour
so that it actually raises TestFailed instead of just
referencing it.
........
r61387 | thomas.heller | 2008-03-14 22:06:21 +0100 (Fri, 14 Mar 2008) | 1 line
Remove unneeded initializer.
........
r61388 | martin.v.loewis | 2008-03-14 22:19:28 +0100 (Fri, 14 Mar 2008) | 2 lines
Run debug version, cd to PCbuild.
........
r61392 | georg.brandl | 2008-03-15 00:10:34 +0100 (Sat, 15 Mar 2008) | 2 lines
Remove obsolete paragraph. #2288.
........
r61395 | georg.brandl | 2008-03-15 01:20:19 +0100 (Sat, 15 Mar 2008) | 2 lines
Fix lots of broken links in the docs, found by Sphinx' external link checker.
........
r61396 | skip.montanaro | 2008-03-15 03:32:49 +0100 (Sat, 15 Mar 2008) | 1 line
note that fork and forkpty raise OSError on failure
........
r61402 | skip.montanaro | 2008-03-15 17:04:45 +0100 (Sat, 15 Mar 2008) | 1 line
add %f format to datetime - issue 1158
........
r61403 | skip.montanaro | 2008-03-15 17:07:11 +0100 (Sat, 15 Mar 2008) | 2 lines
.
........
2008-03-15 21:07:10 -03:00
|
|
|
else if (ch == 'f') {
|
|
|
|
/* format microseconds */
|
|
|
|
if (freplacement == NULL) {
|
|
|
|
freplacement = make_freplacement(object);
|
|
|
|
if (freplacement == NULL)
|
|
|
|
goto Done;
|
|
|
|
}
|
|
|
|
assert(freplacement != NULL);
|
2008-05-26 10:28:38 -03:00
|
|
|
assert(PyBytes_Check(freplacement));
|
|
|
|
ptoappend = PyBytes_AS_STRING(freplacement);
|
|
|
|
ntoappend = PyBytes_GET_SIZE(freplacement);
|
Merged revisions 61239-61249,61252-61257,61260-61264,61269-61275,61278-61279,61285-61286,61288-61290,61298,61303-61305,61312-61314,61317,61329,61332,61344,61350-61351,61363-61376,61378-61379,61382-61383,61387-61388,61392,61395-61396,61402-61403 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r61239 | andrew.kuchling | 2008-03-05 01:44:41 +0100 (Wed, 05 Mar 2008) | 1 line
Add more items; add fragmentary notes
........
r61240 | amaury.forgeotdarc | 2008-03-05 02:50:33 +0100 (Wed, 05 Mar 2008) | 13 lines
Issue#2238: some syntax errors from *args or **kwargs expressions
would give bogus error messages, because of untested exceptions::
>>> f(**g(1=2))
XXX undetected error
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is not iterable
instead of the expected SyntaxError: keyword can't be an expression
Will backport.
........
r61241 | neal.norwitz | 2008-03-05 06:10:48 +0100 (Wed, 05 Mar 2008) | 3 lines
Remove the files/dirs after closing the DB so the tests work on Windows.
Patch from Trent Nelson. Also simplified removing a file by using test_support.
........
r61242 | neal.norwitz | 2008-03-05 06:14:18 +0100 (Wed, 05 Mar 2008) | 3 lines
Get this test to pass even when there is no sound card in the system.
Patch from Trent Nelson. (I can't test this.)
........
r61243 | neal.norwitz | 2008-03-05 06:20:44 +0100 (Wed, 05 Mar 2008) | 3 lines
Catch OSError when trying to remove a file in case removal fails. This
should prevent a failure in tearDown masking any real test failure.
........
r61244 | neal.norwitz | 2008-03-05 06:38:06 +0100 (Wed, 05 Mar 2008) | 5 lines
Make the timeout longer to give slow machines a chance to pass the test
before timing out. This doesn't change the duration of the test under
normal circumstances. This is targetted at fixing the spurious failures
on the FreeBSD buildbot primarily.
........
r61245 | neal.norwitz | 2008-03-05 06:49:03 +0100 (Wed, 05 Mar 2008) | 1 line
Tabs -> spaces
........
r61246 | neal.norwitz | 2008-03-05 06:50:20 +0100 (Wed, 05 Mar 2008) | 1 line
Use -u urlfetch to run more tests
........
r61247 | neal.norwitz | 2008-03-05 06:51:20 +0100 (Wed, 05 Mar 2008) | 1 line
test_smtplib sometimes reports leaks too, suppress it
........
r61248 | jeffrey.yasskin | 2008-03-05 07:19:56 +0100 (Wed, 05 Mar 2008) | 5 lines
Fix test_socketserver on Windows after r61099 added several signal.alarm()
calls (which don't exist on non-Unix platforms).
Thanks to Trent Nelson for the report and patch.
........
r61249 | georg.brandl | 2008-03-05 08:10:35 +0100 (Wed, 05 Mar 2008) | 2 lines
Fix some rst.
........
r61252 | thomas.heller | 2008-03-05 15:53:39 +0100 (Wed, 05 Mar 2008) | 2 lines
News entry for yesterdays commit.
........
r61253 | thomas.heller | 2008-03-05 16:34:29 +0100 (Wed, 05 Mar 2008) | 3 lines
Issue 1872: Changed the struct module typecode from 't' to '?', for
compatibility with PEP3118.
........
r61254 | skip.montanaro | 2008-03-05 17:41:09 +0100 (Wed, 05 Mar 2008) | 4 lines
Elaborate on the role of the altinstall target when installing multiple
versions.
........
r61255 | georg.brandl | 2008-03-05 20:31:44 +0100 (Wed, 05 Mar 2008) | 2 lines
#2239: PYTHONPATH delimiter is os.pathsep.
........
r61256 | raymond.hettinger | 2008-03-05 21:59:58 +0100 (Wed, 05 Mar 2008) | 1 line
C implementation of itertools.permutations().
........
r61257 | raymond.hettinger | 2008-03-05 22:04:32 +0100 (Wed, 05 Mar 2008) | 1 line
Small code cleanup.
........
r61260 | martin.v.loewis | 2008-03-05 23:24:31 +0100 (Wed, 05 Mar 2008) | 2 lines
cd PCbuild only after deleting all pyc files.
........
r61261 | raymond.hettinger | 2008-03-06 02:15:52 +0100 (Thu, 06 Mar 2008) | 1 line
Add examples.
........
r61262 | andrew.kuchling | 2008-03-06 02:36:27 +0100 (Thu, 06 Mar 2008) | 1 line
Add two items
........
r61263 | georg.brandl | 2008-03-06 07:47:18 +0100 (Thu, 06 Mar 2008) | 2 lines
#1725737: ignore other VC directories other than CVS and SVN's too.
........
r61264 | martin.v.loewis | 2008-03-06 07:55:22 +0100 (Thu, 06 Mar 2008) | 4 lines
Patch #2232: os.tmpfile might fail on Windows if the user has no
permission to create files in the root directory.
Will backport to 2.5.
........
r61269 | georg.brandl | 2008-03-06 08:19:15 +0100 (Thu, 06 Mar 2008) | 2 lines
Expand on re.split behavior with captured expressions.
........
r61270 | georg.brandl | 2008-03-06 08:22:09 +0100 (Thu, 06 Mar 2008) | 2 lines
Little clarification of assignments.
........
r61271 | georg.brandl | 2008-03-06 08:31:34 +0100 (Thu, 06 Mar 2008) | 2 lines
Add isinstance/issubclass to tutorial.
........
r61272 | georg.brandl | 2008-03-06 08:34:52 +0100 (Thu, 06 Mar 2008) | 2 lines
Add missing NEWS entry for r61263.
........
r61273 | georg.brandl | 2008-03-06 08:41:16 +0100 (Thu, 06 Mar 2008) | 2 lines
#2225: return nonzero status code from py_compile if not all files could be compiled.
........
r61274 | georg.brandl | 2008-03-06 08:43:02 +0100 (Thu, 06 Mar 2008) | 2 lines
#2220: handle matching failure more gracefully.
........
r61275 | georg.brandl | 2008-03-06 08:45:52 +0100 (Thu, 06 Mar 2008) | 2 lines
Bug #2220: handle rlcompleter attribute match failure more gracefully.
........
r61278 | martin.v.loewis | 2008-03-06 14:49:47 +0100 (Thu, 06 Mar 2008) | 1 line
Rely on x64 platform configuration when building _bsddb on AMD64.
........
r61279 | martin.v.loewis | 2008-03-06 14:50:28 +0100 (Thu, 06 Mar 2008) | 1 line
Update db-4.4.20 build procedure.
........
r61285 | raymond.hettinger | 2008-03-06 21:52:01 +0100 (Thu, 06 Mar 2008) | 1 line
More tests.
........
r61286 | raymond.hettinger | 2008-03-06 23:51:36 +0100 (Thu, 06 Mar 2008) | 1 line
Issue 2246: itertools grouper object did not participate in GC (should be backported).
........
r61288 | raymond.hettinger | 2008-03-07 02:33:20 +0100 (Fri, 07 Mar 2008) | 1 line
Tweak recipes and tests
........
r61289 | jeffrey.yasskin | 2008-03-07 07:22:15 +0100 (Fri, 07 Mar 2008) | 5 lines
Progress on issue #1193577 by adding a polling .shutdown() method to
SocketServers. The core of the patch was written by Pedro Werneck, but any bugs
are mine. I've also rearranged the code for timeouts in order to avoid
interfering with the shutdown poll.
........
r61290 | nick.coghlan | 2008-03-07 15:13:28 +0100 (Fri, 07 Mar 2008) | 1 line
Speed up with statements by storing the __exit__ method on the stack instead of in a temp variable (bumps the magic number for pyc files)
........
r61298 | andrew.kuchling | 2008-03-07 22:09:23 +0100 (Fri, 07 Mar 2008) | 1 line
Grammar fix
........
r61303 | georg.brandl | 2008-03-08 10:54:06 +0100 (Sat, 08 Mar 2008) | 2 lines
#2253: fix continue vs. finally docs.
........
r61304 | marc-andre.lemburg | 2008-03-08 11:01:43 +0100 (Sat, 08 Mar 2008) | 3 lines
Add new name for Mandrake: Mandriva.
........
r61305 | georg.brandl | 2008-03-08 11:05:24 +0100 (Sat, 08 Mar 2008) | 2 lines
#1533486: fix types in refcount intro.
........
r61312 | facundo.batista | 2008-03-08 17:50:27 +0100 (Sat, 08 Mar 2008) | 5 lines
Issue 1106316. post_mortem()'s parameter, traceback, is now
optional: it defaults to the traceback of the exception that is currently
being handled.
........
r61313 | jeffrey.yasskin | 2008-03-08 19:26:54 +0100 (Sat, 08 Mar 2008) | 2 lines
Add tests for with and finally performance to pybench.
........
r61314 | jeffrey.yasskin | 2008-03-08 21:08:21 +0100 (Sat, 08 Mar 2008) | 2 lines
Fix pybench for pythons < 2.6, tested back to 2.3.
........
r61317 | jeffrey.yasskin | 2008-03-08 22:35:15 +0100 (Sat, 08 Mar 2008) | 3 lines
Well that was dumb. platform.python_implementation returns a function, not a
string.
........
r61329 | georg.brandl | 2008-03-09 16:11:39 +0100 (Sun, 09 Mar 2008) | 2 lines
#2249: document assertTrue and assertFalse.
........
r61332 | neal.norwitz | 2008-03-09 20:03:42 +0100 (Sun, 09 Mar 2008) | 4 lines
Introduce a lock to fix a race condition which caused an exception in the test.
Some buildbots were consistently failing (e.g., amd64).
Also remove a couple of semi-colons.
........
r61344 | raymond.hettinger | 2008-03-11 01:19:07 +0100 (Tue, 11 Mar 2008) | 1 line
Add recipe to docs.
........
r61350 | guido.van.rossum | 2008-03-11 22:18:06 +0100 (Tue, 11 Mar 2008) | 3 lines
Fix the overflows in expandtabs(). "This time for sure!"
(Exploit at request.)
........
r61351 | raymond.hettinger | 2008-03-11 22:37:46 +0100 (Tue, 11 Mar 2008) | 1 line
Improve docs for itemgetter(). Show that it works with slices.
........
r61363 | georg.brandl | 2008-03-13 08:15:56 +0100 (Thu, 13 Mar 2008) | 2 lines
#2265: fix example.
........
r61364 | georg.brandl | 2008-03-13 08:17:14 +0100 (Thu, 13 Mar 2008) | 2 lines
#2270: fix typo.
........
r61365 | georg.brandl | 2008-03-13 08:21:41 +0100 (Thu, 13 Mar 2008) | 2 lines
#1720705: add docs about import/threading interaction, wording by Nick.
........
r61366 | andrew.kuchling | 2008-03-13 12:07:35 +0100 (Thu, 13 Mar 2008) | 1 line
Add class decorators
........
r61367 | raymond.hettinger | 2008-03-13 17:43:17 +0100 (Thu, 13 Mar 2008) | 1 line
Add 2-to-3 support for the itertools moved to builtins or renamed.
........
r61368 | raymond.hettinger | 2008-03-13 17:43:59 +0100 (Thu, 13 Mar 2008) | 1 line
Consistent tense.
........
r61369 | raymond.hettinger | 2008-03-13 20:03:51 +0100 (Thu, 13 Mar 2008) | 1 line
Issue 2274: Add heapq.heappushpop().
........
r61370 | raymond.hettinger | 2008-03-13 20:33:34 +0100 (Thu, 13 Mar 2008) | 1 line
Simplify the nlargest() code using heappushpop().
........
r61371 | brett.cannon | 2008-03-13 21:27:00 +0100 (Thu, 13 Mar 2008) | 4 lines
Move test_thread over to unittest. Commits GHOP 237.
Thanks Benjamin Peterson for the patch.
........
r61372 | brett.cannon | 2008-03-13 21:33:10 +0100 (Thu, 13 Mar 2008) | 4 lines
Move test_tokenize to doctest.
Done as GHOP 238 by Josip Dzolonga.
........
r61373 | brett.cannon | 2008-03-13 21:47:41 +0100 (Thu, 13 Mar 2008) | 4 lines
Convert test_contains, test_crypt, and test_select to unittest.
Patch from GHOP 294 by David Marek.
........
r61374 | brett.cannon | 2008-03-13 22:02:16 +0100 (Thu, 13 Mar 2008) | 4 lines
Move test_gdbm to use unittest.
Closes issue #1960. Thanks Giampaolo Rodola.
........
r61375 | brett.cannon | 2008-03-13 22:09:28 +0100 (Thu, 13 Mar 2008) | 4 lines
Convert test_fcntl to unittest.
Closes issue #2055. Thanks Giampaolo Rodola.
........
r61376 | raymond.hettinger | 2008-03-14 06:03:44 +0100 (Fri, 14 Mar 2008) | 1 line
Leave heapreplace() unchanged.
........
r61378 | martin.v.loewis | 2008-03-14 14:56:09 +0100 (Fri, 14 Mar 2008) | 2 lines
Patch #2284: add -x64 option to rt.bat.
........
r61379 | martin.v.loewis | 2008-03-14 14:57:59 +0100 (Fri, 14 Mar 2008) | 2 lines
Use -x64 flag.
........
r61382 | brett.cannon | 2008-03-14 15:03:10 +0100 (Fri, 14 Mar 2008) | 2 lines
Remove a bad test.
........
r61383 | mark.dickinson | 2008-03-14 15:23:37 +0100 (Fri, 14 Mar 2008) | 9 lines
Issue 705836: Fix struct.pack(">f", 1e40) to behave consistently
across platforms: it should now raise OverflowError on all
platforms. (Previously it raised OverflowError only on
non IEEE 754 platforms.)
Also fix the (already existing) test for this behaviour
so that it actually raises TestFailed instead of just
referencing it.
........
r61387 | thomas.heller | 2008-03-14 22:06:21 +0100 (Fri, 14 Mar 2008) | 1 line
Remove unneeded initializer.
........
r61388 | martin.v.loewis | 2008-03-14 22:19:28 +0100 (Fri, 14 Mar 2008) | 2 lines
Run debug version, cd to PCbuild.
........
r61392 | georg.brandl | 2008-03-15 00:10:34 +0100 (Sat, 15 Mar 2008) | 2 lines
Remove obsolete paragraph. #2288.
........
r61395 | georg.brandl | 2008-03-15 01:20:19 +0100 (Sat, 15 Mar 2008) | 2 lines
Fix lots of broken links in the docs, found by Sphinx' external link checker.
........
r61396 | skip.montanaro | 2008-03-15 03:32:49 +0100 (Sat, 15 Mar 2008) | 1 line
note that fork and forkpty raise OSError on failure
........
r61402 | skip.montanaro | 2008-03-15 17:04:45 +0100 (Sat, 15 Mar 2008) | 1 line
add %f format to datetime - issue 1158
........
r61403 | skip.montanaro | 2008-03-15 17:07:11 +0100 (Sat, 15 Mar 2008) | 2 lines
.
........
2008-03-15 21:07:10 -03:00
|
|
|
}
|
2002-12-16 16:18:38 -04:00
|
|
|
else {
|
2002-12-19 21:31:27 -04:00
|
|
|
/* percent followed by neither z nor Z */
|
|
|
|
ptoappend = pin - 2;
|
2002-12-16 16:18:38 -04:00
|
|
|
ntoappend = 2;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Append the ntoappend chars starting at ptoappend to
|
|
|
|
* the new format.
|
|
|
|
*/
|
|
|
|
if (ntoappend == 0)
|
|
|
|
continue;
|
2007-08-24 01:05:13 -03:00
|
|
|
assert(ptoappend != NULL);
|
|
|
|
assert(ntoappend > 0);
|
2002-12-16 16:18:38 -04:00
|
|
|
while (usednew + ntoappend > totalnew) {
|
Merged revisions 63562,63570,63728,63734,63784,63788,63802,63817,63827,63839,63887,63975,63998 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r63562 | martin.v.loewis | 2008-05-23 17:06:50 +0200 (Fri, 23 May 2008) | 2 lines
Patch #1722225: Support QNX 6.
........
r63570 | trent.nelson | 2008-05-23 22:33:14 +0200 (Fri, 23 May 2008) | 1 line
Introduce a user macro named $(externalsDir), which should point to the root directory of where all the external sources should live. Developers can change this value if their external sources live elsewhere. The default of '..\..' matches the current status quo.
........
r63728 | gregory.p.smith | 2008-05-26 23:16:34 +0200 (Mon, 26 May 2008) | 4 lines
Fix issue2589: there was a potential integer overflow leading to
memory corruption on esoteric platforms and incorrect behavior on
normal platforms.
........
r63734 | gregory.p.smith | 2008-05-27 00:07:28 +0200 (Tue, 27 May 2008) | 3 lines
Fix issue2588: Do not execute str[size-1] = '\0' when a 0 size is
passed in. (The assert won't prevent this in non-debug builds).
........
r63784 | raymond.hettinger | 2008-05-29 10:38:23 +0200 (Thu, 29 May 2008) | 1 line
Fix two typos.
........
r63788 | facundo.batista | 2008-05-29 18:39:26 +0200 (Thu, 29 May 2008) | 6 lines
Fixed the semantic of timeout for socket.create_connection and
all the upper level libraries that use it, including urllib2.
Added and fixed some tests, and changed docs correspondingly.
Thanks to John J Lee for the patch and the pusing, :)
........
r63802 | mark.dickinson | 2008-05-30 04:46:53 +0200 (Fri, 30 May 2008) | 2 lines
Fix typo in testSum
........
r63817 | raymond.hettinger | 2008-05-30 20:20:50 +0200 (Fri, 30 May 2008) | 8 lines
* Mark intermedidate computes values (hi, lo, yr) as volatile.
* Expand comments.
* Swap variable names in the sum_exact code so that x and y
are consistently chosen as the larger and smaller magnitude
values respectively.
........
r63827 | raymond.hettinger | 2008-05-31 05:24:31 +0200 (Sat, 31 May 2008) | 1 line
Implement heapq in terms of less-than (to match list.sort()).
........
r63839 | gerhard.haering | 2008-05-31 23:33:27 +0200 (Sat, 31 May 2008) | 2 lines
Fixed rowcount for SELECT statements. They're -1 now (again), for better DB-API 2.0 compliance.
........
r63887 | gregory.p.smith | 2008-06-02 06:05:52 +0200 (Mon, 02 Jun 2008) | 4 lines
Fix issue 2782: be less strict about the format string type in strftime.
Accept unicode and anything else ParseTuple "s#" can deal with. This
matches the time.strftime behavior.
........
r63975 | neal.norwitz | 2008-06-06 06:47:01 +0200 (Fri, 06 Jun 2008) | 3 lines
Aldo Cortesi confirmed this is still needed for OpenBSD 4.2 and 4.3.
(I didn't regen configure, since I don't have a working autoconf.)
........
r63998 | raymond.hettinger | 2008-06-06 23:47:51 +0200 (Fri, 06 Jun 2008) | 1 line
Issue 3501: Make heapq support both __le__ and __lt__.
........
2008-06-10 14:40:04 -03:00
|
|
|
size_t bigger = totalnew << 1;
|
2002-12-16 16:18:38 -04:00
|
|
|
if ((bigger >> 1) != totalnew) { /* overflow */
|
|
|
|
PyErr_NoMemory();
|
|
|
|
goto Done;
|
|
|
|
}
|
2008-05-26 10:28:38 -03:00
|
|
|
if (_PyBytes_Resize(&newfmt, bigger) < 0)
|
2002-12-16 16:18:38 -04:00
|
|
|
goto Done;
|
|
|
|
totalnew = bigger;
|
2008-05-26 10:28:38 -03:00
|
|
|
pnew = PyBytes_AsString(newfmt) + usednew;
|
2002-12-16 16:18:38 -04:00
|
|
|
}
|
|
|
|
memcpy(pnew, ptoappend, ntoappend);
|
|
|
|
pnew += ntoappend;
|
|
|
|
usednew += ntoappend;
|
|
|
|
assert(usednew <= totalnew);
|
|
|
|
} /* end while() */
|
|
|
|
|
2008-05-26 10:28:38 -03:00
|
|
|
if (_PyBytes_Resize(&newfmt, usednew) < 0)
|
2002-12-16 16:18:38 -04:00
|
|
|
goto Done;
|
|
|
|
{
|
2007-08-27 01:58:38 -03:00
|
|
|
PyObject *format;
|
Merged revisions 59666-59679 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r59666 | christian.heimes | 2008-01-02 19:28:32 +0100 (Wed, 02 Jan 2008) | 1 line
Made vs9to8 Unix compatible
........
r59669 | guido.van.rossum | 2008-01-02 20:00:46 +0100 (Wed, 02 Jan 2008) | 2 lines
Patch #1696. Don't attempt to close None in dry-run mode.
........
r59671 | jeffrey.yasskin | 2008-01-03 03:21:52 +0100 (Thu, 03 Jan 2008) | 6 lines
Backport PEP 3141 from the py3k branch to the trunk. This includes r50877 (just
the complex_pow part), r56649, r56652, r56715, r57296, r57302, r57359, r57361,
r57372, r57738, r57739, r58017, r58039, r58040, and r59390, and new
documentation. The only significant difference is that round(x) returns a float
to preserve backward-compatibility. See http://bugs.python.org/issue1689.
........
r59672 | christian.heimes | 2008-01-03 16:41:30 +0100 (Thu, 03 Jan 2008) | 1 line
Issue #1726: Remove Python/atof.c from PCBuild/pythoncore.vcproj
........
r59675 | guido.van.rossum | 2008-01-03 20:12:44 +0100 (Thu, 03 Jan 2008) | 4 lines
Issue #1700, reported by Nguyen Quan Son, fix by Fredruk Lundh:
Regular Expression inline flags not handled correctly for some unicode
characters. (Forward port from 2.5.2.)
........
r59676 | christian.heimes | 2008-01-03 21:23:15 +0100 (Thu, 03 Jan 2008) | 1 line
Added math.isinf() and math.isnan()
........
r59677 | christian.heimes | 2008-01-03 22:14:48 +0100 (Thu, 03 Jan 2008) | 1 line
Some build bots don't compile mathmodule. There is an issue with the long definition of pi and euler
........
r59678 | christian.heimes | 2008-01-03 23:16:32 +0100 (Thu, 03 Jan 2008) | 2 lines
Modified PyImport_Import and PyImport_ImportModule to always use absolute imports by calling __import__ with an explicit level of 0
Added a new API function PyImport_ImportModuleNoBlock. It solves the problem with dead locks when mixing threads and imports
........
r59679 | christian.heimes | 2008-01-03 23:32:26 +0100 (Thu, 03 Jan 2008) | 1 line
Added copysign(x, y) function to the math module
........
2008-01-03 19:01:04 -04:00
|
|
|
PyObject *time = PyImport_ImportModuleNoBlock("time");
|
2002-12-16 16:18:38 -04:00
|
|
|
if (time == NULL)
|
|
|
|
goto Done;
|
2008-05-26 10:28:38 -03:00
|
|
|
format = PyUnicode_FromString(PyBytes_AS_STRING(newfmt));
|
2007-08-27 01:58:38 -03:00
|
|
|
if (format != NULL) {
|
|
|
|
result = PyObject_CallMethod(time, "strftime", "OO",
|
|
|
|
format, timetuple);
|
|
|
|
Py_DECREF(format);
|
|
|
|
}
|
2002-12-16 16:18:38 -04:00
|
|
|
Py_DECREF(time);
|
|
|
|
}
|
|
|
|
Done:
|
Merged revisions 61239-61249,61252-61257,61260-61264,61269-61275,61278-61279,61285-61286,61288-61290,61298,61303-61305,61312-61314,61317,61329,61332,61344,61350-61351,61363-61376,61378-61379,61382-61383,61387-61388,61392,61395-61396,61402-61403 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r61239 | andrew.kuchling | 2008-03-05 01:44:41 +0100 (Wed, 05 Mar 2008) | 1 line
Add more items; add fragmentary notes
........
r61240 | amaury.forgeotdarc | 2008-03-05 02:50:33 +0100 (Wed, 05 Mar 2008) | 13 lines
Issue#2238: some syntax errors from *args or **kwargs expressions
would give bogus error messages, because of untested exceptions::
>>> f(**g(1=2))
XXX undetected error
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is not iterable
instead of the expected SyntaxError: keyword can't be an expression
Will backport.
........
r61241 | neal.norwitz | 2008-03-05 06:10:48 +0100 (Wed, 05 Mar 2008) | 3 lines
Remove the files/dirs after closing the DB so the tests work on Windows.
Patch from Trent Nelson. Also simplified removing a file by using test_support.
........
r61242 | neal.norwitz | 2008-03-05 06:14:18 +0100 (Wed, 05 Mar 2008) | 3 lines
Get this test to pass even when there is no sound card in the system.
Patch from Trent Nelson. (I can't test this.)
........
r61243 | neal.norwitz | 2008-03-05 06:20:44 +0100 (Wed, 05 Mar 2008) | 3 lines
Catch OSError when trying to remove a file in case removal fails. This
should prevent a failure in tearDown masking any real test failure.
........
r61244 | neal.norwitz | 2008-03-05 06:38:06 +0100 (Wed, 05 Mar 2008) | 5 lines
Make the timeout longer to give slow machines a chance to pass the test
before timing out. This doesn't change the duration of the test under
normal circumstances. This is targetted at fixing the spurious failures
on the FreeBSD buildbot primarily.
........
r61245 | neal.norwitz | 2008-03-05 06:49:03 +0100 (Wed, 05 Mar 2008) | 1 line
Tabs -> spaces
........
r61246 | neal.norwitz | 2008-03-05 06:50:20 +0100 (Wed, 05 Mar 2008) | 1 line
Use -u urlfetch to run more tests
........
r61247 | neal.norwitz | 2008-03-05 06:51:20 +0100 (Wed, 05 Mar 2008) | 1 line
test_smtplib sometimes reports leaks too, suppress it
........
r61248 | jeffrey.yasskin | 2008-03-05 07:19:56 +0100 (Wed, 05 Mar 2008) | 5 lines
Fix test_socketserver on Windows after r61099 added several signal.alarm()
calls (which don't exist on non-Unix platforms).
Thanks to Trent Nelson for the report and patch.
........
r61249 | georg.brandl | 2008-03-05 08:10:35 +0100 (Wed, 05 Mar 2008) | 2 lines
Fix some rst.
........
r61252 | thomas.heller | 2008-03-05 15:53:39 +0100 (Wed, 05 Mar 2008) | 2 lines
News entry for yesterdays commit.
........
r61253 | thomas.heller | 2008-03-05 16:34:29 +0100 (Wed, 05 Mar 2008) | 3 lines
Issue 1872: Changed the struct module typecode from 't' to '?', for
compatibility with PEP3118.
........
r61254 | skip.montanaro | 2008-03-05 17:41:09 +0100 (Wed, 05 Mar 2008) | 4 lines
Elaborate on the role of the altinstall target when installing multiple
versions.
........
r61255 | georg.brandl | 2008-03-05 20:31:44 +0100 (Wed, 05 Mar 2008) | 2 lines
#2239: PYTHONPATH delimiter is os.pathsep.
........
r61256 | raymond.hettinger | 2008-03-05 21:59:58 +0100 (Wed, 05 Mar 2008) | 1 line
C implementation of itertools.permutations().
........
r61257 | raymond.hettinger | 2008-03-05 22:04:32 +0100 (Wed, 05 Mar 2008) | 1 line
Small code cleanup.
........
r61260 | martin.v.loewis | 2008-03-05 23:24:31 +0100 (Wed, 05 Mar 2008) | 2 lines
cd PCbuild only after deleting all pyc files.
........
r61261 | raymond.hettinger | 2008-03-06 02:15:52 +0100 (Thu, 06 Mar 2008) | 1 line
Add examples.
........
r61262 | andrew.kuchling | 2008-03-06 02:36:27 +0100 (Thu, 06 Mar 2008) | 1 line
Add two items
........
r61263 | georg.brandl | 2008-03-06 07:47:18 +0100 (Thu, 06 Mar 2008) | 2 lines
#1725737: ignore other VC directories other than CVS and SVN's too.
........
r61264 | martin.v.loewis | 2008-03-06 07:55:22 +0100 (Thu, 06 Mar 2008) | 4 lines
Patch #2232: os.tmpfile might fail on Windows if the user has no
permission to create files in the root directory.
Will backport to 2.5.
........
r61269 | georg.brandl | 2008-03-06 08:19:15 +0100 (Thu, 06 Mar 2008) | 2 lines
Expand on re.split behavior with captured expressions.
........
r61270 | georg.brandl | 2008-03-06 08:22:09 +0100 (Thu, 06 Mar 2008) | 2 lines
Little clarification of assignments.
........
r61271 | georg.brandl | 2008-03-06 08:31:34 +0100 (Thu, 06 Mar 2008) | 2 lines
Add isinstance/issubclass to tutorial.
........
r61272 | georg.brandl | 2008-03-06 08:34:52 +0100 (Thu, 06 Mar 2008) | 2 lines
Add missing NEWS entry for r61263.
........
r61273 | georg.brandl | 2008-03-06 08:41:16 +0100 (Thu, 06 Mar 2008) | 2 lines
#2225: return nonzero status code from py_compile if not all files could be compiled.
........
r61274 | georg.brandl | 2008-03-06 08:43:02 +0100 (Thu, 06 Mar 2008) | 2 lines
#2220: handle matching failure more gracefully.
........
r61275 | georg.brandl | 2008-03-06 08:45:52 +0100 (Thu, 06 Mar 2008) | 2 lines
Bug #2220: handle rlcompleter attribute match failure more gracefully.
........
r61278 | martin.v.loewis | 2008-03-06 14:49:47 +0100 (Thu, 06 Mar 2008) | 1 line
Rely on x64 platform configuration when building _bsddb on AMD64.
........
r61279 | martin.v.loewis | 2008-03-06 14:50:28 +0100 (Thu, 06 Mar 2008) | 1 line
Update db-4.4.20 build procedure.
........
r61285 | raymond.hettinger | 2008-03-06 21:52:01 +0100 (Thu, 06 Mar 2008) | 1 line
More tests.
........
r61286 | raymond.hettinger | 2008-03-06 23:51:36 +0100 (Thu, 06 Mar 2008) | 1 line
Issue 2246: itertools grouper object did not participate in GC (should be backported).
........
r61288 | raymond.hettinger | 2008-03-07 02:33:20 +0100 (Fri, 07 Mar 2008) | 1 line
Tweak recipes and tests
........
r61289 | jeffrey.yasskin | 2008-03-07 07:22:15 +0100 (Fri, 07 Mar 2008) | 5 lines
Progress on issue #1193577 by adding a polling .shutdown() method to
SocketServers. The core of the patch was written by Pedro Werneck, but any bugs
are mine. I've also rearranged the code for timeouts in order to avoid
interfering with the shutdown poll.
........
r61290 | nick.coghlan | 2008-03-07 15:13:28 +0100 (Fri, 07 Mar 2008) | 1 line
Speed up with statements by storing the __exit__ method on the stack instead of in a temp variable (bumps the magic number for pyc files)
........
r61298 | andrew.kuchling | 2008-03-07 22:09:23 +0100 (Fri, 07 Mar 2008) | 1 line
Grammar fix
........
r61303 | georg.brandl | 2008-03-08 10:54:06 +0100 (Sat, 08 Mar 2008) | 2 lines
#2253: fix continue vs. finally docs.
........
r61304 | marc-andre.lemburg | 2008-03-08 11:01:43 +0100 (Sat, 08 Mar 2008) | 3 lines
Add new name for Mandrake: Mandriva.
........
r61305 | georg.brandl | 2008-03-08 11:05:24 +0100 (Sat, 08 Mar 2008) | 2 lines
#1533486: fix types in refcount intro.
........
r61312 | facundo.batista | 2008-03-08 17:50:27 +0100 (Sat, 08 Mar 2008) | 5 lines
Issue 1106316. post_mortem()'s parameter, traceback, is now
optional: it defaults to the traceback of the exception that is currently
being handled.
........
r61313 | jeffrey.yasskin | 2008-03-08 19:26:54 +0100 (Sat, 08 Mar 2008) | 2 lines
Add tests for with and finally performance to pybench.
........
r61314 | jeffrey.yasskin | 2008-03-08 21:08:21 +0100 (Sat, 08 Mar 2008) | 2 lines
Fix pybench for pythons < 2.6, tested back to 2.3.
........
r61317 | jeffrey.yasskin | 2008-03-08 22:35:15 +0100 (Sat, 08 Mar 2008) | 3 lines
Well that was dumb. platform.python_implementation returns a function, not a
string.
........
r61329 | georg.brandl | 2008-03-09 16:11:39 +0100 (Sun, 09 Mar 2008) | 2 lines
#2249: document assertTrue and assertFalse.
........
r61332 | neal.norwitz | 2008-03-09 20:03:42 +0100 (Sun, 09 Mar 2008) | 4 lines
Introduce a lock to fix a race condition which caused an exception in the test.
Some buildbots were consistently failing (e.g., amd64).
Also remove a couple of semi-colons.
........
r61344 | raymond.hettinger | 2008-03-11 01:19:07 +0100 (Tue, 11 Mar 2008) | 1 line
Add recipe to docs.
........
r61350 | guido.van.rossum | 2008-03-11 22:18:06 +0100 (Tue, 11 Mar 2008) | 3 lines
Fix the overflows in expandtabs(). "This time for sure!"
(Exploit at request.)
........
r61351 | raymond.hettinger | 2008-03-11 22:37:46 +0100 (Tue, 11 Mar 2008) | 1 line
Improve docs for itemgetter(). Show that it works with slices.
........
r61363 | georg.brandl | 2008-03-13 08:15:56 +0100 (Thu, 13 Mar 2008) | 2 lines
#2265: fix example.
........
r61364 | georg.brandl | 2008-03-13 08:17:14 +0100 (Thu, 13 Mar 2008) | 2 lines
#2270: fix typo.
........
r61365 | georg.brandl | 2008-03-13 08:21:41 +0100 (Thu, 13 Mar 2008) | 2 lines
#1720705: add docs about import/threading interaction, wording by Nick.
........
r61366 | andrew.kuchling | 2008-03-13 12:07:35 +0100 (Thu, 13 Mar 2008) | 1 line
Add class decorators
........
r61367 | raymond.hettinger | 2008-03-13 17:43:17 +0100 (Thu, 13 Mar 2008) | 1 line
Add 2-to-3 support for the itertools moved to builtins or renamed.
........
r61368 | raymond.hettinger | 2008-03-13 17:43:59 +0100 (Thu, 13 Mar 2008) | 1 line
Consistent tense.
........
r61369 | raymond.hettinger | 2008-03-13 20:03:51 +0100 (Thu, 13 Mar 2008) | 1 line
Issue 2274: Add heapq.heappushpop().
........
r61370 | raymond.hettinger | 2008-03-13 20:33:34 +0100 (Thu, 13 Mar 2008) | 1 line
Simplify the nlargest() code using heappushpop().
........
r61371 | brett.cannon | 2008-03-13 21:27:00 +0100 (Thu, 13 Mar 2008) | 4 lines
Move test_thread over to unittest. Commits GHOP 237.
Thanks Benjamin Peterson for the patch.
........
r61372 | brett.cannon | 2008-03-13 21:33:10 +0100 (Thu, 13 Mar 2008) | 4 lines
Move test_tokenize to doctest.
Done as GHOP 238 by Josip Dzolonga.
........
r61373 | brett.cannon | 2008-03-13 21:47:41 +0100 (Thu, 13 Mar 2008) | 4 lines
Convert test_contains, test_crypt, and test_select to unittest.
Patch from GHOP 294 by David Marek.
........
r61374 | brett.cannon | 2008-03-13 22:02:16 +0100 (Thu, 13 Mar 2008) | 4 lines
Move test_gdbm to use unittest.
Closes issue #1960. Thanks Giampaolo Rodola.
........
r61375 | brett.cannon | 2008-03-13 22:09:28 +0100 (Thu, 13 Mar 2008) | 4 lines
Convert test_fcntl to unittest.
Closes issue #2055. Thanks Giampaolo Rodola.
........
r61376 | raymond.hettinger | 2008-03-14 06:03:44 +0100 (Fri, 14 Mar 2008) | 1 line
Leave heapreplace() unchanged.
........
r61378 | martin.v.loewis | 2008-03-14 14:56:09 +0100 (Fri, 14 Mar 2008) | 2 lines
Patch #2284: add -x64 option to rt.bat.
........
r61379 | martin.v.loewis | 2008-03-14 14:57:59 +0100 (Fri, 14 Mar 2008) | 2 lines
Use -x64 flag.
........
r61382 | brett.cannon | 2008-03-14 15:03:10 +0100 (Fri, 14 Mar 2008) | 2 lines
Remove a bad test.
........
r61383 | mark.dickinson | 2008-03-14 15:23:37 +0100 (Fri, 14 Mar 2008) | 9 lines
Issue 705836: Fix struct.pack(">f", 1e40) to behave consistently
across platforms: it should now raise OverflowError on all
platforms. (Previously it raised OverflowError only on
non IEEE 754 platforms.)
Also fix the (already existing) test for this behaviour
so that it actually raises TestFailed instead of just
referencing it.
........
r61387 | thomas.heller | 2008-03-14 22:06:21 +0100 (Fri, 14 Mar 2008) | 1 line
Remove unneeded initializer.
........
r61388 | martin.v.loewis | 2008-03-14 22:19:28 +0100 (Fri, 14 Mar 2008) | 2 lines
Run debug version, cd to PCbuild.
........
r61392 | georg.brandl | 2008-03-15 00:10:34 +0100 (Sat, 15 Mar 2008) | 2 lines
Remove obsolete paragraph. #2288.
........
r61395 | georg.brandl | 2008-03-15 01:20:19 +0100 (Sat, 15 Mar 2008) | 2 lines
Fix lots of broken links in the docs, found by Sphinx' external link checker.
........
r61396 | skip.montanaro | 2008-03-15 03:32:49 +0100 (Sat, 15 Mar 2008) | 1 line
note that fork and forkpty raise OSError on failure
........
r61402 | skip.montanaro | 2008-03-15 17:04:45 +0100 (Sat, 15 Mar 2008) | 1 line
add %f format to datetime - issue 1158
........
r61403 | skip.montanaro | 2008-03-15 17:07:11 +0100 (Sat, 15 Mar 2008) | 2 lines
.
........
2008-03-15 21:07:10 -03:00
|
|
|
Py_XDECREF(freplacement);
|
2002-12-16 16:18:38 -04:00
|
|
|
Py_XDECREF(zreplacement);
|
|
|
|
Py_XDECREF(Zreplacement);
|
|
|
|
Py_XDECREF(newfmt);
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* ---------------------------------------------------------------------------
|
|
|
|
* Wrap functions from the time module. These aren't directly available
|
|
|
|
* from C. Perhaps they should be.
|
|
|
|
*/
|
|
|
|
|
|
|
|
/* Call time.time() and return its result (a Python float). */
|
|
|
|
static PyObject *
|
2002-12-16 16:34:55 -04:00
|
|
|
time_time(void)
|
2002-12-16 16:18:38 -04:00
|
|
|
{
|
|
|
|
PyObject *result = NULL;
|
Merged revisions 59666-59679 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r59666 | christian.heimes | 2008-01-02 19:28:32 +0100 (Wed, 02 Jan 2008) | 1 line
Made vs9to8 Unix compatible
........
r59669 | guido.van.rossum | 2008-01-02 20:00:46 +0100 (Wed, 02 Jan 2008) | 2 lines
Patch #1696. Don't attempt to close None in dry-run mode.
........
r59671 | jeffrey.yasskin | 2008-01-03 03:21:52 +0100 (Thu, 03 Jan 2008) | 6 lines
Backport PEP 3141 from the py3k branch to the trunk. This includes r50877 (just
the complex_pow part), r56649, r56652, r56715, r57296, r57302, r57359, r57361,
r57372, r57738, r57739, r58017, r58039, r58040, and r59390, and new
documentation. The only significant difference is that round(x) returns a float
to preserve backward-compatibility. See http://bugs.python.org/issue1689.
........
r59672 | christian.heimes | 2008-01-03 16:41:30 +0100 (Thu, 03 Jan 2008) | 1 line
Issue #1726: Remove Python/atof.c from PCBuild/pythoncore.vcproj
........
r59675 | guido.van.rossum | 2008-01-03 20:12:44 +0100 (Thu, 03 Jan 2008) | 4 lines
Issue #1700, reported by Nguyen Quan Son, fix by Fredruk Lundh:
Regular Expression inline flags not handled correctly for some unicode
characters. (Forward port from 2.5.2.)
........
r59676 | christian.heimes | 2008-01-03 21:23:15 +0100 (Thu, 03 Jan 2008) | 1 line
Added math.isinf() and math.isnan()
........
r59677 | christian.heimes | 2008-01-03 22:14:48 +0100 (Thu, 03 Jan 2008) | 1 line
Some build bots don't compile mathmodule. There is an issue with the long definition of pi and euler
........
r59678 | christian.heimes | 2008-01-03 23:16:32 +0100 (Thu, 03 Jan 2008) | 2 lines
Modified PyImport_Import and PyImport_ImportModule to always use absolute imports by calling __import__ with an explicit level of 0
Added a new API function PyImport_ImportModuleNoBlock. It solves the problem with dead locks when mixing threads and imports
........
r59679 | christian.heimes | 2008-01-03 23:32:26 +0100 (Thu, 03 Jan 2008) | 1 line
Added copysign(x, y) function to the math module
........
2008-01-03 19:01:04 -04:00
|
|
|
PyObject *time = PyImport_ImportModuleNoBlock("time");
|
2002-12-16 16:18:38 -04:00
|
|
|
|
|
|
|
if (time != NULL) {
|
|
|
|
result = PyObject_CallMethod(time, "time", "()");
|
|
|
|
Py_DECREF(time);
|
|
|
|
}
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Build a time.struct_time. The weekday and day number are automatically
|
|
|
|
* computed from the y,m,d args.
|
|
|
|
*/
|
|
|
|
static PyObject *
|
|
|
|
build_struct_time(int y, int m, int d, int hh, int mm, int ss, int dstflag)
|
|
|
|
{
|
|
|
|
PyObject *time;
|
|
|
|
PyObject *result = NULL;
|
|
|
|
|
Merged revisions 59666-59679 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r59666 | christian.heimes | 2008-01-02 19:28:32 +0100 (Wed, 02 Jan 2008) | 1 line
Made vs9to8 Unix compatible
........
r59669 | guido.van.rossum | 2008-01-02 20:00:46 +0100 (Wed, 02 Jan 2008) | 2 lines
Patch #1696. Don't attempt to close None in dry-run mode.
........
r59671 | jeffrey.yasskin | 2008-01-03 03:21:52 +0100 (Thu, 03 Jan 2008) | 6 lines
Backport PEP 3141 from the py3k branch to the trunk. This includes r50877 (just
the complex_pow part), r56649, r56652, r56715, r57296, r57302, r57359, r57361,
r57372, r57738, r57739, r58017, r58039, r58040, and r59390, and new
documentation. The only significant difference is that round(x) returns a float
to preserve backward-compatibility. See http://bugs.python.org/issue1689.
........
r59672 | christian.heimes | 2008-01-03 16:41:30 +0100 (Thu, 03 Jan 2008) | 1 line
Issue #1726: Remove Python/atof.c from PCBuild/pythoncore.vcproj
........
r59675 | guido.van.rossum | 2008-01-03 20:12:44 +0100 (Thu, 03 Jan 2008) | 4 lines
Issue #1700, reported by Nguyen Quan Son, fix by Fredruk Lundh:
Regular Expression inline flags not handled correctly for some unicode
characters. (Forward port from 2.5.2.)
........
r59676 | christian.heimes | 2008-01-03 21:23:15 +0100 (Thu, 03 Jan 2008) | 1 line
Added math.isinf() and math.isnan()
........
r59677 | christian.heimes | 2008-01-03 22:14:48 +0100 (Thu, 03 Jan 2008) | 1 line
Some build bots don't compile mathmodule. There is an issue with the long definition of pi and euler
........
r59678 | christian.heimes | 2008-01-03 23:16:32 +0100 (Thu, 03 Jan 2008) | 2 lines
Modified PyImport_Import and PyImport_ImportModule to always use absolute imports by calling __import__ with an explicit level of 0
Added a new API function PyImport_ImportModuleNoBlock. It solves the problem with dead locks when mixing threads and imports
........
r59679 | christian.heimes | 2008-01-03 23:32:26 +0100 (Thu, 03 Jan 2008) | 1 line
Added copysign(x, y) function to the math module
........
2008-01-03 19:01:04 -04:00
|
|
|
time = PyImport_ImportModuleNoBlock("time");
|
2002-12-16 16:18:38 -04:00
|
|
|
if (time != NULL) {
|
|
|
|
result = PyObject_CallMethod(time, "struct_time",
|
|
|
|
"((iiiiiiiii))",
|
|
|
|
y, m, d,
|
|
|
|
hh, mm, ss,
|
|
|
|
weekday(y, m, d),
|
|
|
|
days_before_month(y, m) + d,
|
|
|
|
dstflag);
|
|
|
|
Py_DECREF(time);
|
|
|
|
}
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* ---------------------------------------------------------------------------
|
|
|
|
* Miscellaneous helpers.
|
|
|
|
*/
|
|
|
|
|
2009-02-02 16:36:42 -04:00
|
|
|
/* For various reasons, we need to use tp_richcompare instead of tp_reserved.
|
2002-12-16 16:18:38 -04:00
|
|
|
* The comparisons here all most naturally compute a cmp()-like result.
|
|
|
|
* This little helper turns that into a bool result for rich comparisons.
|
|
|
|
*/
|
|
|
|
static PyObject *
|
|
|
|
diff_to_bool(int diff, int op)
|
|
|
|
{
|
|
|
|
PyObject *result;
|
|
|
|
int istrue;
|
|
|
|
|
|
|
|
switch (op) {
|
|
|
|
case Py_EQ: istrue = diff == 0; break;
|
|
|
|
case Py_NE: istrue = diff != 0; break;
|
|
|
|
case Py_LE: istrue = diff <= 0; break;
|
|
|
|
case Py_GE: istrue = diff >= 0; break;
|
|
|
|
case Py_LT: istrue = diff < 0; break;
|
|
|
|
case Py_GT: istrue = diff > 0; break;
|
|
|
|
default:
|
|
|
|
assert(! "op unknown");
|
|
|
|
istrue = 0; /* To shut up compiler */
|
|
|
|
}
|
|
|
|
result = istrue ? Py_True : Py_False;
|
|
|
|
Py_INCREF(result);
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
2003-02-07 18:50:28 -04:00
|
|
|
/* Raises a "can't compare" TypeError and returns NULL. */
|
|
|
|
static PyObject *
|
|
|
|
cmperror(PyObject *a, PyObject *b)
|
|
|
|
{
|
|
|
|
PyErr_Format(PyExc_TypeError,
|
|
|
|
"can't compare %s to %s",
|
2007-12-18 22:45:37 -04:00
|
|
|
Py_TYPE(a)->tp_name, Py_TYPE(b)->tp_name);
|
2003-02-07 18:50:28 -04:00
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
|
2002-12-16 16:18:38 -04:00
|
|
|
/* ---------------------------------------------------------------------------
|
|
|
|
* Cached Python objects; these are set by the module init function.
|
|
|
|
*/
|
|
|
|
|
|
|
|
/* Conversion factors. */
|
|
|
|
static PyObject *us_per_us = NULL; /* 1 */
|
|
|
|
static PyObject *us_per_ms = NULL; /* 1000 */
|
|
|
|
static PyObject *us_per_second = NULL; /* 1000000 */
|
|
|
|
static PyObject *us_per_minute = NULL; /* 1e6 * 60 as Python int */
|
|
|
|
static PyObject *us_per_hour = NULL; /* 1e6 * 3600 as Python long */
|
|
|
|
static PyObject *us_per_day = NULL; /* 1e6 * 3600 * 24 as Python long */
|
|
|
|
static PyObject *us_per_week = NULL; /* 1e6*3600*24*7 as Python long */
|
|
|
|
static PyObject *seconds_per_day = NULL; /* 3600*24 as Python int */
|
|
|
|
|
|
|
|
/* ---------------------------------------------------------------------------
|
|
|
|
* Class implementations.
|
|
|
|
*/
|
|
|
|
|
|
|
|
/*
|
|
|
|
* PyDateTime_Delta implementation.
|
|
|
|
*/
|
|
|
|
|
|
|
|
/* Convert a timedelta to a number of us,
|
|
|
|
* (24*3600*self.days + self.seconds)*1000000 + self.microseconds
|
|
|
|
* as a Python int or long.
|
|
|
|
* Doing mixed-radix arithmetic by hand instead is excruciating in C,
|
|
|
|
* due to ubiquitous overflow possibilities.
|
|
|
|
*/
|
|
|
|
static PyObject *
|
|
|
|
delta_to_microseconds(PyDateTime_Delta *self)
|
|
|
|
{
|
|
|
|
PyObject *x1 = NULL;
|
|
|
|
PyObject *x2 = NULL;
|
|
|
|
PyObject *x3 = NULL;
|
|
|
|
PyObject *result = NULL;
|
|
|
|
|
2007-12-02 10:31:20 -04:00
|
|
|
x1 = PyLong_FromLong(GET_TD_DAYS(self));
|
2002-12-16 16:18:38 -04:00
|
|
|
if (x1 == NULL)
|
|
|
|
goto Done;
|
|
|
|
x2 = PyNumber_Multiply(x1, seconds_per_day); /* days in seconds */
|
|
|
|
if (x2 == NULL)
|
|
|
|
goto Done;
|
|
|
|
Py_DECREF(x1);
|
|
|
|
x1 = NULL;
|
|
|
|
|
|
|
|
/* x2 has days in seconds */
|
2007-12-02 10:31:20 -04:00
|
|
|
x1 = PyLong_FromLong(GET_TD_SECONDS(self)); /* seconds */
|
2002-12-16 16:18:38 -04:00
|
|
|
if (x1 == NULL)
|
|
|
|
goto Done;
|
|
|
|
x3 = PyNumber_Add(x1, x2); /* days and seconds in seconds */
|
|
|
|
if (x3 == NULL)
|
|
|
|
goto Done;
|
|
|
|
Py_DECREF(x1);
|
|
|
|
Py_DECREF(x2);
|
|
|
|
x1 = x2 = NULL;
|
|
|
|
|
|
|
|
/* x3 has days+seconds in seconds */
|
|
|
|
x1 = PyNumber_Multiply(x3, us_per_second); /* us */
|
|
|
|
if (x1 == NULL)
|
|
|
|
goto Done;
|
|
|
|
Py_DECREF(x3);
|
|
|
|
x3 = NULL;
|
|
|
|
|
|
|
|
/* x1 has days+seconds in us */
|
2007-12-02 10:31:20 -04:00
|
|
|
x2 = PyLong_FromLong(GET_TD_MICROSECONDS(self));
|
2002-12-16 16:18:38 -04:00
|
|
|
if (x2 == NULL)
|
|
|
|
goto Done;
|
|
|
|
result = PyNumber_Add(x1, x2);
|
|
|
|
|
|
|
|
Done:
|
|
|
|
Py_XDECREF(x1);
|
|
|
|
Py_XDECREF(x2);
|
|
|
|
Py_XDECREF(x3);
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Convert a number of us (as a Python int or long) to a timedelta.
|
|
|
|
*/
|
|
|
|
static PyObject *
|
2003-05-17 12:57:00 -03:00
|
|
|
microseconds_to_delta_ex(PyObject *pyus, PyTypeObject *type)
|
2002-12-16 16:18:38 -04:00
|
|
|
{
|
|
|
|
int us;
|
|
|
|
int s;
|
|
|
|
int d;
|
2002-12-18 21:44:38 -04:00
|
|
|
long temp;
|
2002-12-16 16:18:38 -04:00
|
|
|
|
|
|
|
PyObject *tuple = NULL;
|
|
|
|
PyObject *num = NULL;
|
|
|
|
PyObject *result = NULL;
|
|
|
|
|
|
|
|
tuple = PyNumber_Divmod(pyus, us_per_second);
|
|
|
|
if (tuple == NULL)
|
|
|
|
goto Done;
|
|
|
|
|
|
|
|
num = PyTuple_GetItem(tuple, 1); /* us */
|
|
|
|
if (num == NULL)
|
|
|
|
goto Done;
|
2002-12-18 21:44:38 -04:00
|
|
|
temp = PyLong_AsLong(num);
|
2002-12-16 16:18:38 -04:00
|
|
|
num = NULL;
|
2002-12-18 21:44:38 -04:00
|
|
|
if (temp == -1 && PyErr_Occurred())
|
|
|
|
goto Done;
|
|
|
|
assert(0 <= temp && temp < 1000000);
|
|
|
|
us = (int)temp;
|
2002-12-16 16:18:38 -04:00
|
|
|
if (us < 0) {
|
|
|
|
/* The divisor was positive, so this must be an error. */
|
|
|
|
assert(PyErr_Occurred());
|
|
|
|
goto Done;
|
|
|
|
}
|
|
|
|
|
|
|
|
num = PyTuple_GetItem(tuple, 0); /* leftover seconds */
|
|
|
|
if (num == NULL)
|
|
|
|
goto Done;
|
|
|
|
Py_INCREF(num);
|
|
|
|
Py_DECREF(tuple);
|
|
|
|
|
|
|
|
tuple = PyNumber_Divmod(num, seconds_per_day);
|
|
|
|
if (tuple == NULL)
|
|
|
|
goto Done;
|
|
|
|
Py_DECREF(num);
|
|
|
|
|
|
|
|
num = PyTuple_GetItem(tuple, 1); /* seconds */
|
|
|
|
if (num == NULL)
|
|
|
|
goto Done;
|
2002-12-18 21:44:38 -04:00
|
|
|
temp = PyLong_AsLong(num);
|
2002-12-16 16:18:38 -04:00
|
|
|
num = NULL;
|
2002-12-18 21:44:38 -04:00
|
|
|
if (temp == -1 && PyErr_Occurred())
|
|
|
|
goto Done;
|
|
|
|
assert(0 <= temp && temp < 24*3600);
|
|
|
|
s = (int)temp;
|
|
|
|
|
2002-12-16 16:18:38 -04:00
|
|
|
if (s < 0) {
|
|
|
|
/* The divisor was positive, so this must be an error. */
|
|
|
|
assert(PyErr_Occurred());
|
|
|
|
goto Done;
|
|
|
|
}
|
|
|
|
|
|
|
|
num = PyTuple_GetItem(tuple, 0); /* leftover days */
|
|
|
|
if (num == NULL)
|
|
|
|
goto Done;
|
|
|
|
Py_INCREF(num);
|
2002-12-18 21:44:38 -04:00
|
|
|
temp = PyLong_AsLong(num);
|
|
|
|
if (temp == -1 && PyErr_Occurred())
|
|
|
|
goto Done;
|
|
|
|
d = (int)temp;
|
|
|
|
if ((long)d != temp) {
|
|
|
|
PyErr_SetString(PyExc_OverflowError, "normalized days too "
|
|
|
|
"large to fit in a C int");
|
2002-12-16 16:18:38 -04:00
|
|
|
goto Done;
|
2002-12-18 21:44:38 -04:00
|
|
|
}
|
2003-05-17 12:57:00 -03:00
|
|
|
result = new_delta_ex(d, s, us, 0, type);
|
2002-12-16 16:18:38 -04:00
|
|
|
|
|
|
|
Done:
|
|
|
|
Py_XDECREF(tuple);
|
|
|
|
Py_XDECREF(num);
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
2003-05-17 12:57:00 -03:00
|
|
|
#define microseconds_to_delta(pymicros) \
|
|
|
|
microseconds_to_delta_ex(pymicros, &PyDateTime_DeltaType)
|
|
|
|
|
2002-12-16 16:18:38 -04:00
|
|
|
static PyObject *
|
|
|
|
multiply_int_timedelta(PyObject *intobj, PyDateTime_Delta *delta)
|
|
|
|
{
|
|
|
|
PyObject *pyus_in;
|
|
|
|
PyObject *pyus_out;
|
|
|
|
PyObject *result;
|
|
|
|
|
|
|
|
pyus_in = delta_to_microseconds(delta);
|
|
|
|
if (pyus_in == NULL)
|
|
|
|
return NULL;
|
|
|
|
|
|
|
|
pyus_out = PyNumber_Multiply(pyus_in, intobj);
|
|
|
|
Py_DECREF(pyus_in);
|
|
|
|
if (pyus_out == NULL)
|
|
|
|
return NULL;
|
|
|
|
|
|
|
|
result = microseconds_to_delta(pyus_out);
|
|
|
|
Py_DECREF(pyus_out);
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
|
|
|
static PyObject *
|
|
|
|
divide_timedelta_int(PyDateTime_Delta *delta, PyObject *intobj)
|
|
|
|
{
|
|
|
|
PyObject *pyus_in;
|
|
|
|
PyObject *pyus_out;
|
|
|
|
PyObject *result;
|
|
|
|
|
|
|
|
pyus_in = delta_to_microseconds(delta);
|
|
|
|
if (pyus_in == NULL)
|
|
|
|
return NULL;
|
|
|
|
|
|
|
|
pyus_out = PyNumber_FloorDivide(pyus_in, intobj);
|
|
|
|
Py_DECREF(pyus_in);
|
|
|
|
if (pyus_out == NULL)
|
|
|
|
return NULL;
|
|
|
|
|
|
|
|
result = microseconds_to_delta(pyus_out);
|
|
|
|
Py_DECREF(pyus_out);
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
2010-04-20 19:32:49 -03:00
|
|
|
static PyObject *
|
|
|
|
divide_timedelta_timedelta(PyDateTime_Delta *left, PyDateTime_Delta *right)
|
|
|
|
{
|
|
|
|
PyObject *pyus_left;
|
|
|
|
PyObject *pyus_right;
|
|
|
|
PyObject *result;
|
|
|
|
|
|
|
|
pyus_left = delta_to_microseconds(left);
|
|
|
|
if (pyus_left == NULL)
|
|
|
|
return NULL;
|
|
|
|
|
|
|
|
pyus_right = delta_to_microseconds(right);
|
|
|
|
if (pyus_right == NULL) {
|
|
|
|
Py_DECREF(pyus_left);
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
|
|
|
|
result = PyNumber_FloorDivide(pyus_left, pyus_right);
|
|
|
|
Py_DECREF(pyus_left);
|
|
|
|
Py_DECREF(pyus_right);
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
|
|
|
static PyObject *
|
|
|
|
truedivide_timedelta_timedelta(PyDateTime_Delta *left, PyDateTime_Delta *right)
|
|
|
|
{
|
|
|
|
PyObject *pyus_left;
|
|
|
|
PyObject *pyus_right;
|
|
|
|
PyObject *result;
|
|
|
|
|
|
|
|
pyus_left = delta_to_microseconds(left);
|
|
|
|
if (pyus_left == NULL)
|
|
|
|
return NULL;
|
|
|
|
|
|
|
|
pyus_right = delta_to_microseconds(right);
|
|
|
|
if (pyus_right == NULL) {
|
|
|
|
Py_DECREF(pyus_left);
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
|
|
|
|
result = PyNumber_TrueDivide(pyus_left, pyus_right);
|
|
|
|
Py_DECREF(pyus_left);
|
|
|
|
Py_DECREF(pyus_right);
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
2002-12-16 16:18:38 -04:00
|
|
|
static PyObject *
|
|
|
|
delta_add(PyObject *left, PyObject *right)
|
|
|
|
{
|
|
|
|
PyObject *result = Py_NotImplemented;
|
|
|
|
|
|
|
|
if (PyDelta_Check(left) && PyDelta_Check(right)) {
|
|
|
|
/* delta + delta */
|
|
|
|
/* The C-level additions can't overflow because of the
|
|
|
|
* invariant bounds.
|
|
|
|
*/
|
|
|
|
int days = GET_TD_DAYS(left) + GET_TD_DAYS(right);
|
|
|
|
int seconds = GET_TD_SECONDS(left) + GET_TD_SECONDS(right);
|
|
|
|
int microseconds = GET_TD_MICROSECONDS(left) +
|
|
|
|
GET_TD_MICROSECONDS(right);
|
|
|
|
result = new_delta(days, seconds, microseconds, 1);
|
|
|
|
}
|
|
|
|
|
|
|
|
if (result == Py_NotImplemented)
|
|
|
|
Py_INCREF(result);
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
|
|
|
static PyObject *
|
|
|
|
delta_negative(PyDateTime_Delta *self)
|
|
|
|
{
|
|
|
|
return new_delta(-GET_TD_DAYS(self),
|
|
|
|
-GET_TD_SECONDS(self),
|
|
|
|
-GET_TD_MICROSECONDS(self),
|
|
|
|
1);
|
|
|
|
}
|
|
|
|
|
|
|
|
static PyObject *
|
|
|
|
delta_positive(PyDateTime_Delta *self)
|
|
|
|
{
|
|
|
|
/* Could optimize this (by returning self) if this isn't a
|
|
|
|
* subclass -- but who uses unary + ? Approximately nobody.
|
|
|
|
*/
|
|
|
|
return new_delta(GET_TD_DAYS(self),
|
|
|
|
GET_TD_SECONDS(self),
|
|
|
|
GET_TD_MICROSECONDS(self),
|
|
|
|
0);
|
|
|
|
}
|
|
|
|
|
|
|
|
static PyObject *
|
|
|
|
delta_abs(PyDateTime_Delta *self)
|
|
|
|
{
|
|
|
|
PyObject *result;
|
|
|
|
|
|
|
|
assert(GET_TD_MICROSECONDS(self) >= 0);
|
|
|
|
assert(GET_TD_SECONDS(self) >= 0);
|
|
|
|
|
|
|
|
if (GET_TD_DAYS(self) < 0)
|
|
|
|
result = delta_negative(self);
|
|
|
|
else
|
|
|
|
result = delta_positive(self);
|
|
|
|
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
|
|
|
static PyObject *
|
|
|
|
delta_subtract(PyObject *left, PyObject *right)
|
|
|
|
{
|
|
|
|
PyObject *result = Py_NotImplemented;
|
|
|
|
|
|
|
|
if (PyDelta_Check(left) && PyDelta_Check(right)) {
|
|
|
|
/* delta - delta */
|
|
|
|
PyObject *minus_right = PyNumber_Negative(right);
|
|
|
|
if (minus_right) {
|
|
|
|
result = delta_add(left, minus_right);
|
|
|
|
Py_DECREF(minus_right);
|
|
|
|
}
|
|
|
|
else
|
|
|
|
result = NULL;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (result == Py_NotImplemented)
|
|
|
|
Py_INCREF(result);
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
|
|
|
static PyObject *
|
2006-08-24 14:29:38 -03:00
|
|
|
delta_richcompare(PyObject *self, PyObject *other, int op)
|
2002-12-16 16:18:38 -04:00
|
|
|
{
|
2003-02-07 23:28:59 -04:00
|
|
|
if (PyDelta_Check(other)) {
|
2006-08-24 14:29:38 -03:00
|
|
|
int diff = GET_TD_DAYS(self) - GET_TD_DAYS(other);
|
2003-02-07 18:50:28 -04:00
|
|
|
if (diff == 0) {
|
|
|
|
diff = GET_TD_SECONDS(self) - GET_TD_SECONDS(other);
|
|
|
|
if (diff == 0)
|
|
|
|
diff = GET_TD_MICROSECONDS(self) -
|
|
|
|
GET_TD_MICROSECONDS(other);
|
|
|
|
}
|
2006-08-24 14:29:38 -03:00
|
|
|
return diff_to_bool(diff, op);
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
Py_INCREF(Py_NotImplemented);
|
|
|
|
return Py_NotImplemented;
|
2002-12-16 16:18:38 -04:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
static PyObject *delta_getstate(PyDateTime_Delta *self);
|
|
|
|
|
|
|
|
static long
|
|
|
|
delta_hash(PyDateTime_Delta *self)
|
|
|
|
{
|
|
|
|
if (self->hashcode == -1) {
|
|
|
|
PyObject *temp = delta_getstate(self);
|
|
|
|
if (temp != NULL) {
|
|
|
|
self->hashcode = PyObject_Hash(temp);
|
|
|
|
Py_DECREF(temp);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return self->hashcode;
|
|
|
|
}
|
|
|
|
|
|
|
|
static PyObject *
|
|
|
|
delta_multiply(PyObject *left, PyObject *right)
|
|
|
|
{
|
|
|
|
PyObject *result = Py_NotImplemented;
|
|
|
|
|
|
|
|
if (PyDelta_Check(left)) {
|
|
|
|
/* delta * ??? */
|
2007-08-31 01:32:55 -03:00
|
|
|
if (PyLong_Check(right))
|
2002-12-16 16:18:38 -04:00
|
|
|
result = multiply_int_timedelta(right,
|
|
|
|
(PyDateTime_Delta *) left);
|
|
|
|
}
|
2007-08-31 01:32:55 -03:00
|
|
|
else if (PyLong_Check(left))
|
2002-12-16 16:18:38 -04:00
|
|
|
result = multiply_int_timedelta(left,
|
|
|
|
(PyDateTime_Delta *) right);
|
|
|
|
|
|
|
|
if (result == Py_NotImplemented)
|
|
|
|
Py_INCREF(result);
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
|
|
|
static PyObject *
|
|
|
|
delta_divide(PyObject *left, PyObject *right)
|
|
|
|
{
|
|
|
|
PyObject *result = Py_NotImplemented;
|
|
|
|
|
|
|
|
if (PyDelta_Check(left)) {
|
|
|
|
/* delta * ??? */
|
2007-08-31 01:32:55 -03:00
|
|
|
if (PyLong_Check(right))
|
2002-12-16 16:18:38 -04:00
|
|
|
result = divide_timedelta_int(
|
|
|
|
(PyDateTime_Delta *)left,
|
|
|
|
right);
|
2010-04-20 19:32:49 -03:00
|
|
|
else if (PyDelta_Check(right))
|
|
|
|
result = divide_timedelta_timedelta(
|
|
|
|
(PyDateTime_Delta *)left,
|
|
|
|
(PyDateTime_Delta *)right);
|
|
|
|
}
|
|
|
|
|
|
|
|
if (result == Py_NotImplemented)
|
|
|
|
Py_INCREF(result);
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
|
|
|
static PyObject *
|
|
|
|
delta_truedivide(PyObject *left, PyObject *right)
|
|
|
|
{
|
|
|
|
PyObject *result = Py_NotImplemented;
|
|
|
|
|
|
|
|
if (PyDelta_Check(left)) {
|
|
|
|
if (PyDelta_Check(right))
|
|
|
|
result = truedivide_timedelta_timedelta(
|
|
|
|
(PyDateTime_Delta *)left,
|
|
|
|
(PyDateTime_Delta *)right);
|
2002-12-16 16:18:38 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
if (result == Py_NotImplemented)
|
|
|
|
Py_INCREF(result);
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
2010-04-20 19:32:49 -03:00
|
|
|
static PyObject *
|
|
|
|
delta_remainder(PyObject *left, PyObject *right)
|
|
|
|
{
|
|
|
|
PyObject *pyus_left;
|
|
|
|
PyObject *pyus_right;
|
|
|
|
PyObject *pyus_remainder;
|
|
|
|
PyObject *remainder;
|
|
|
|
|
|
|
|
if (!PyDelta_Check(left) || !PyDelta_Check(right)) {
|
|
|
|
Py_INCREF(Py_NotImplemented);
|
|
|
|
return Py_NotImplemented;
|
|
|
|
}
|
|
|
|
|
|
|
|
pyus_left = delta_to_microseconds((PyDateTime_Delta *)left);
|
|
|
|
if (pyus_left == NULL)
|
|
|
|
return NULL;
|
|
|
|
|
|
|
|
pyus_right = delta_to_microseconds((PyDateTime_Delta *)right);
|
|
|
|
if (pyus_right == NULL) {
|
|
|
|
Py_DECREF(pyus_left);
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
|
|
|
|
pyus_remainder = PyNumber_Remainder(pyus_left, pyus_right);
|
|
|
|
Py_DECREF(pyus_left);
|
|
|
|
Py_DECREF(pyus_right);
|
|
|
|
if (pyus_remainder == NULL)
|
|
|
|
return NULL;
|
|
|
|
|
|
|
|
remainder = microseconds_to_delta(pyus_remainder);
|
2010-04-20 19:39:53 -03:00
|
|
|
Py_DECREF(pyus_remainder);
|
|
|
|
if (remainder == NULL)
|
2010-04-20 19:32:49 -03:00
|
|
|
return NULL;
|
|
|
|
|
|
|
|
return remainder;
|
|
|
|
}
|
|
|
|
|
|
|
|
static PyObject *
|
|
|
|
delta_divmod(PyObject *left, PyObject *right)
|
|
|
|
{
|
|
|
|
PyObject *pyus_left;
|
|
|
|
PyObject *pyus_right;
|
|
|
|
PyObject *divmod;
|
2010-04-20 20:24:25 -03:00
|
|
|
PyObject *delta;
|
|
|
|
PyObject *result;
|
2010-04-20 19:32:49 -03:00
|
|
|
|
|
|
|
if (!PyDelta_Check(left) || !PyDelta_Check(right)) {
|
|
|
|
Py_INCREF(Py_NotImplemented);
|
|
|
|
return Py_NotImplemented;
|
|
|
|
}
|
|
|
|
|
|
|
|
pyus_left = delta_to_microseconds((PyDateTime_Delta *)left);
|
|
|
|
if (pyus_left == NULL)
|
|
|
|
return NULL;
|
|
|
|
|
|
|
|
pyus_right = delta_to_microseconds((PyDateTime_Delta *)right);
|
|
|
|
if (pyus_right == NULL) {
|
|
|
|
Py_DECREF(pyus_left);
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
|
|
|
|
divmod = PyNumber_Divmod(pyus_left, pyus_right);
|
|
|
|
Py_DECREF(pyus_left);
|
|
|
|
Py_DECREF(pyus_right);
|
|
|
|
if (divmod == NULL)
|
|
|
|
return NULL;
|
|
|
|
|
2010-04-20 20:24:25 -03:00
|
|
|
assert(PyTuple_Size(divmod) == 2);
|
|
|
|
delta = microseconds_to_delta(PyTuple_GET_ITEM(divmod, 1));
|
2010-04-20 19:32:49 -03:00
|
|
|
if (delta == NULL) {
|
|
|
|
Py_DECREF(divmod);
|
|
|
|
return NULL;
|
|
|
|
}
|
2010-04-20 20:24:25 -03:00
|
|
|
result = PyTuple_Pack(2, PyTuple_GET_ITEM(divmod, 0), delta);
|
|
|
|
Py_DECREF(delta);
|
|
|
|
Py_DECREF(divmod);
|
|
|
|
return result;
|
2010-04-20 19:32:49 -03:00
|
|
|
}
|
|
|
|
|
2002-12-16 16:18:38 -04:00
|
|
|
/* Fold in the value of the tag ("seconds", "weeks", etc) component of a
|
|
|
|
* timedelta constructor. sofar is the # of microseconds accounted for
|
|
|
|
* so far, and there are factor microseconds per current unit, the number
|
|
|
|
* of which is given by num. num * factor is added to sofar in a
|
|
|
|
* numerically careful way, and that's the result. Any fractional
|
|
|
|
* microseconds left over (this can happen if num is a float type) are
|
|
|
|
* added into *leftover.
|
|
|
|
* Note that there are many ways this can give an error (NULL) return.
|
|
|
|
*/
|
|
|
|
static PyObject *
|
|
|
|
accum(const char* tag, PyObject *sofar, PyObject *num, PyObject *factor,
|
|
|
|
double *leftover)
|
|
|
|
{
|
|
|
|
PyObject *prod;
|
|
|
|
PyObject *sum;
|
|
|
|
|
|
|
|
assert(num != NULL);
|
|
|
|
|
2007-08-31 01:32:55 -03:00
|
|
|
if (PyLong_Check(num)) {
|
2002-12-16 16:18:38 -04:00
|
|
|
prod = PyNumber_Multiply(num, factor);
|
|
|
|
if (prod == NULL)
|
|
|
|
return NULL;
|
|
|
|
sum = PyNumber_Add(sofar, prod);
|
|
|
|
Py_DECREF(prod);
|
|
|
|
return sum;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (PyFloat_Check(num)) {
|
|
|
|
double dnum;
|
|
|
|
double fracpart;
|
|
|
|
double intpart;
|
|
|
|
PyObject *x;
|
|
|
|
PyObject *y;
|
|
|
|
|
|
|
|
/* The Plan: decompose num into an integer part and a
|
|
|
|
* fractional part, num = intpart + fracpart.
|
|
|
|
* Then num * factor ==
|
|
|
|
* intpart * factor + fracpart * factor
|
|
|
|
* and the LHS can be computed exactly in long arithmetic.
|
|
|
|
* The RHS is again broken into an int part and frac part.
|
|
|
|
* and the frac part is added into *leftover.
|
|
|
|
*/
|
|
|
|
dnum = PyFloat_AsDouble(num);
|
|
|
|
if (dnum == -1.0 && PyErr_Occurred())
|
|
|
|
return NULL;
|
|
|
|
fracpart = modf(dnum, &intpart);
|
|
|
|
x = PyLong_FromDouble(intpart);
|
|
|
|
if (x == NULL)
|
|
|
|
return NULL;
|
|
|
|
|
|
|
|
prod = PyNumber_Multiply(x, factor);
|
|
|
|
Py_DECREF(x);
|
|
|
|
if (prod == NULL)
|
|
|
|
return NULL;
|
|
|
|
|
|
|
|
sum = PyNumber_Add(sofar, prod);
|
|
|
|
Py_DECREF(prod);
|
|
|
|
if (sum == NULL)
|
|
|
|
return NULL;
|
|
|
|
|
|
|
|
if (fracpart == 0.0)
|
|
|
|
return sum;
|
|
|
|
/* So far we've lost no information. Dealing with the
|
|
|
|
* fractional part requires float arithmetic, and may
|
|
|
|
* lose a little info.
|
|
|
|
*/
|
2007-08-31 01:32:55 -03:00
|
|
|
assert(PyLong_Check(factor));
|
2007-01-13 23:31:43 -04:00
|
|
|
dnum = PyLong_AsDouble(factor);
|
2002-12-16 16:18:38 -04:00
|
|
|
|
|
|
|
dnum *= fracpart;
|
|
|
|
fracpart = modf(dnum, &intpart);
|
|
|
|
x = PyLong_FromDouble(intpart);
|
|
|
|
if (x == NULL) {
|
|
|
|
Py_DECREF(sum);
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
|
|
|
|
y = PyNumber_Add(sum, x);
|
|
|
|
Py_DECREF(sum);
|
|
|
|
Py_DECREF(x);
|
|
|
|
*leftover += fracpart;
|
|
|
|
return y;
|
|
|
|
}
|
|
|
|
|
|
|
|
PyErr_Format(PyExc_TypeError,
|
|
|
|
"unsupported type for timedelta %s component: %s",
|
2007-12-18 22:45:37 -04:00
|
|
|
tag, Py_TYPE(num)->tp_name);
|
2002-12-16 16:18:38 -04:00
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
|
|
|
|
static PyObject *
|
|
|
|
delta_new(PyTypeObject *type, PyObject *args, PyObject *kw)
|
|
|
|
{
|
|
|
|
PyObject *self = NULL;
|
|
|
|
|
|
|
|
/* Argument objects. */
|
|
|
|
PyObject *day = NULL;
|
|
|
|
PyObject *second = NULL;
|
|
|
|
PyObject *us = NULL;
|
|
|
|
PyObject *ms = NULL;
|
|
|
|
PyObject *minute = NULL;
|
|
|
|
PyObject *hour = NULL;
|
|
|
|
PyObject *week = NULL;
|
|
|
|
|
|
|
|
PyObject *x = NULL; /* running sum of microseconds */
|
|
|
|
PyObject *y = NULL; /* temp sum of microseconds */
|
|
|
|
double leftover_us = 0.0;
|
|
|
|
|
2006-02-27 13:20:04 -04:00
|
|
|
static char *keywords[] = {
|
2002-12-16 16:18:38 -04:00
|
|
|
"days", "seconds", "microseconds", "milliseconds",
|
|
|
|
"minutes", "hours", "weeks", NULL
|
|
|
|
};
|
|
|
|
|
|
|
|
if (PyArg_ParseTupleAndKeywords(args, kw, "|OOOOOOO:__new__",
|
|
|
|
keywords,
|
|
|
|
&day, &second, &us,
|
|
|
|
&ms, &minute, &hour, &week) == 0)
|
|
|
|
goto Done;
|
|
|
|
|
2007-12-02 10:31:20 -04:00
|
|
|
x = PyLong_FromLong(0);
|
2002-12-16 16:18:38 -04:00
|
|
|
if (x == NULL)
|
|
|
|
goto Done;
|
|
|
|
|
|
|
|
#define CLEANUP \
|
|
|
|
Py_DECREF(x); \
|
|
|
|
x = y; \
|
|
|
|
if (x == NULL) \
|
|
|
|
goto Done
|
|
|
|
|
|
|
|
if (us) {
|
|
|
|
y = accum("microseconds", x, us, us_per_us, &leftover_us);
|
|
|
|
CLEANUP;
|
|
|
|
}
|
|
|
|
if (ms) {
|
|
|
|
y = accum("milliseconds", x, ms, us_per_ms, &leftover_us);
|
|
|
|
CLEANUP;
|
|
|
|
}
|
|
|
|
if (second) {
|
|
|
|
y = accum("seconds", x, second, us_per_second, &leftover_us);
|
|
|
|
CLEANUP;
|
|
|
|
}
|
|
|
|
if (minute) {
|
|
|
|
y = accum("minutes", x, minute, us_per_minute, &leftover_us);
|
|
|
|
CLEANUP;
|
|
|
|
}
|
|
|
|
if (hour) {
|
|
|
|
y = accum("hours", x, hour, us_per_hour, &leftover_us);
|
|
|
|
CLEANUP;
|
|
|
|
}
|
|
|
|
if (day) {
|
|
|
|
y = accum("days", x, day, us_per_day, &leftover_us);
|
|
|
|
CLEANUP;
|
|
|
|
}
|
|
|
|
if (week) {
|
|
|
|
y = accum("weeks", x, week, us_per_week, &leftover_us);
|
|
|
|
CLEANUP;
|
|
|
|
}
|
|
|
|
if (leftover_us) {
|
|
|
|
/* Round to nearest whole # of us, and add into x. */
|
2003-01-02 12:32:54 -04:00
|
|
|
PyObject *temp = PyLong_FromLong(round_to_long(leftover_us));
|
2002-12-16 16:18:38 -04:00
|
|
|
if (temp == NULL) {
|
|
|
|
Py_DECREF(x);
|
|
|
|
goto Done;
|
|
|
|
}
|
|
|
|
y = PyNumber_Add(x, temp);
|
|
|
|
Py_DECREF(temp);
|
|
|
|
CLEANUP;
|
|
|
|
}
|
|
|
|
|
2003-05-17 12:57:00 -03:00
|
|
|
self = microseconds_to_delta_ex(x, type);
|
2002-12-16 16:18:38 -04:00
|
|
|
Py_DECREF(x);
|
|
|
|
Done:
|
|
|
|
return self;
|
|
|
|
|
|
|
|
#undef CLEANUP
|
|
|
|
}
|
|
|
|
|
|
|
|
static int
|
2006-11-28 15:15:13 -04:00
|
|
|
delta_bool(PyDateTime_Delta *self)
|
2002-12-16 16:18:38 -04:00
|
|
|
{
|
|
|
|
return (GET_TD_DAYS(self) != 0
|
|
|
|
|| GET_TD_SECONDS(self) != 0
|
|
|
|
|| GET_TD_MICROSECONDS(self) != 0);
|
|
|
|
}
|
|
|
|
|
|
|
|
static PyObject *
|
|
|
|
delta_repr(PyDateTime_Delta *self)
|
|
|
|
{
|
|
|
|
if (GET_TD_MICROSECONDS(self) != 0)
|
2007-05-18 14:15:44 -03:00
|
|
|
return PyUnicode_FromFormat("%s(%d, %d, %d)",
|
2007-12-18 22:45:37 -04:00
|
|
|
Py_TYPE(self)->tp_name,
|
2007-05-19 18:49:49 -03:00
|
|
|
GET_TD_DAYS(self),
|
|
|
|
GET_TD_SECONDS(self),
|
|
|
|
GET_TD_MICROSECONDS(self));
|
2002-12-16 16:18:38 -04:00
|
|
|
if (GET_TD_SECONDS(self) != 0)
|
2007-05-18 14:15:44 -03:00
|
|
|
return PyUnicode_FromFormat("%s(%d, %d)",
|
2007-12-18 22:45:37 -04:00
|
|
|
Py_TYPE(self)->tp_name,
|
2007-05-19 18:49:49 -03:00
|
|
|
GET_TD_DAYS(self),
|
|
|
|
GET_TD_SECONDS(self));
|
2002-12-16 16:18:38 -04:00
|
|
|
|
2007-05-18 14:15:44 -03:00
|
|
|
return PyUnicode_FromFormat("%s(%d)",
|
2007-12-18 22:45:37 -04:00
|
|
|
Py_TYPE(self)->tp_name,
|
2007-05-19 18:49:49 -03:00
|
|
|
GET_TD_DAYS(self));
|
2002-12-16 16:18:38 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
static PyObject *
|
|
|
|
delta_str(PyDateTime_Delta *self)
|
|
|
|
{
|
|
|
|
int us = GET_TD_MICROSECONDS(self);
|
2007-05-31 15:42:47 -03:00
|
|
|
int seconds = GET_TD_SECONDS(self);
|
|
|
|
int minutes = divmod(seconds, 60, &seconds);
|
|
|
|
int hours = divmod(minutes, 60, &minutes);
|
|
|
|
int days = GET_TD_DAYS(self);
|
2002-12-16 16:18:38 -04:00
|
|
|
|
|
|
|
if (days) {
|
2007-05-31 15:42:47 -03:00
|
|
|
if (us)
|
|
|
|
return PyUnicode_FromFormat("%d day%s, %d:%02d:%02d.%06d",
|
|
|
|
days, (days == 1 || days == -1) ? "" : "s",
|
|
|
|
hours, minutes, seconds, us);
|
|
|
|
else
|
|
|
|
return PyUnicode_FromFormat("%d day%s, %d:%02d:%02d",
|
|
|
|
days, (days == 1 || days == -1) ? "" : "s",
|
|
|
|
hours, minutes, seconds);
|
|
|
|
} else {
|
|
|
|
if (us)
|
|
|
|
return PyUnicode_FromFormat("%d:%02d:%02d.%06d",
|
|
|
|
hours, minutes, seconds, us);
|
|
|
|
else
|
|
|
|
return PyUnicode_FromFormat("%d:%02d:%02d",
|
|
|
|
hours, minutes, seconds);
|
2002-12-16 16:18:38 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
2003-01-31 21:52:50 -04:00
|
|
|
/* Pickle support, a simple use of __reduce__. */
|
|
|
|
|
2003-01-31 22:54:15 -04:00
|
|
|
/* __getstate__ isn't exposed */
|
2002-12-16 16:18:38 -04:00
|
|
|
static PyObject *
|
|
|
|
delta_getstate(PyDateTime_Delta *self)
|
|
|
|
{
|
|
|
|
return Py_BuildValue("iii", GET_TD_DAYS(self),
|
|
|
|
GET_TD_SECONDS(self),
|
|
|
|
GET_TD_MICROSECONDS(self));
|
|
|
|
}
|
|
|
|
|
2009-11-25 19:02:32 -04:00
|
|
|
static PyObject *
|
|
|
|
delta_total_seconds(PyObject *self)
|
|
|
|
{
|
2010-05-08 11:35:02 -03:00
|
|
|
PyObject *total_seconds;
|
|
|
|
PyObject *total_microseconds;
|
|
|
|
PyObject *one_million;
|
|
|
|
|
|
|
|
total_microseconds = delta_to_microseconds((PyDateTime_Delta *)self);
|
|
|
|
if (total_microseconds == NULL)
|
|
|
|
return NULL;
|
|
|
|
|
|
|
|
one_million = PyLong_FromLong(1000000L);
|
|
|
|
if (one_million == NULL) {
|
|
|
|
Py_DECREF(total_microseconds);
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
|
|
|
|
total_seconds = PyNumber_TrueDivide(total_microseconds, one_million);
|
|
|
|
|
|
|
|
Py_DECREF(total_microseconds);
|
|
|
|
Py_DECREF(one_million);
|
|
|
|
return total_seconds;
|
2009-11-25 19:02:32 -04:00
|
|
|
}
|
|
|
|
|
2002-12-16 16:18:38 -04:00
|
|
|
static PyObject *
|
|
|
|
delta_reduce(PyDateTime_Delta* self)
|
|
|
|
{
|
2007-12-18 22:45:37 -04:00
|
|
|
return Py_BuildValue("ON", Py_TYPE(self), delta_getstate(self));
|
2002-12-16 16:18:38 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
#define OFFSET(field) offsetof(PyDateTime_Delta, field)
|
|
|
|
|
|
|
|
static PyMemberDef delta_members[] = {
|
2003-01-30 18:06:23 -04:00
|
|
|
|
2002-12-18 22:30:56 -04:00
|
|
|
{"days", T_INT, OFFSET(days), READONLY,
|
2002-12-16 16:18:38 -04:00
|
|
|
PyDoc_STR("Number of days.")},
|
|
|
|
|
2002-12-18 22:30:56 -04:00
|
|
|
{"seconds", T_INT, OFFSET(seconds), READONLY,
|
2002-12-16 16:18:38 -04:00
|
|
|
PyDoc_STR("Number of seconds (>= 0 and less than 1 day).")},
|
|
|
|
|
2002-12-18 22:30:56 -04:00
|
|
|
{"microseconds", T_INT, OFFSET(microseconds), READONLY,
|
2002-12-16 16:18:38 -04:00
|
|
|
PyDoc_STR("Number of microseconds (>= 0 and less than 1 second).")},
|
|
|
|
{NULL}
|
|
|
|
};
|
|
|
|
|
|
|
|
static PyMethodDef delta_methods[] = {
|
2009-11-25 19:02:32 -04:00
|
|
|
{"total_seconds", (PyCFunction)delta_total_seconds, METH_NOARGS,
|
|
|
|
PyDoc_STR("Total seconds in the duration.")},
|
|
|
|
|
|
|
|
{"__reduce__", (PyCFunction)delta_reduce, METH_NOARGS,
|
2003-01-30 18:06:23 -04:00
|
|
|
PyDoc_STR("__reduce__() -> (cls, state)")},
|
|
|
|
|
2002-12-16 16:18:38 -04:00
|
|
|
{NULL, NULL},
|
|
|
|
};
|
|
|
|
|
|
|
|
static char delta_doc[] =
|
|
|
|
PyDoc_STR("Difference between two datetime values.");
|
|
|
|
|
|
|
|
static PyNumberMethods delta_as_number = {
|
|
|
|
delta_add, /* nb_add */
|
|
|
|
delta_subtract, /* nb_subtract */
|
|
|
|
delta_multiply, /* nb_multiply */
|
2010-04-20 19:32:49 -03:00
|
|
|
delta_remainder, /* nb_remainder */
|
|
|
|
delta_divmod, /* nb_divmod */
|
2002-12-16 16:18:38 -04:00
|
|
|
0, /* nb_power */
|
|
|
|
(unaryfunc)delta_negative, /* nb_negative */
|
|
|
|
(unaryfunc)delta_positive, /* nb_positive */
|
|
|
|
(unaryfunc)delta_abs, /* nb_absolute */
|
2006-11-28 15:15:13 -04:00
|
|
|
(inquiry)delta_bool, /* nb_bool */
|
2002-12-16 16:18:38 -04:00
|
|
|
0, /*nb_invert*/
|
|
|
|
0, /*nb_lshift*/
|
|
|
|
0, /*nb_rshift*/
|
|
|
|
0, /*nb_and*/
|
|
|
|
0, /*nb_xor*/
|
|
|
|
0, /*nb_or*/
|
|
|
|
0, /*nb_int*/
|
2009-01-17 06:04:45 -04:00
|
|
|
0, /*nb_reserved*/
|
2002-12-16 16:18:38 -04:00
|
|
|
0, /*nb_float*/
|
|
|
|
0, /*nb_inplace_add*/
|
|
|
|
0, /*nb_inplace_subtract*/
|
|
|
|
0, /*nb_inplace_multiply*/
|
|
|
|
0, /*nb_inplace_remainder*/
|
|
|
|
0, /*nb_inplace_power*/
|
|
|
|
0, /*nb_inplace_lshift*/
|
|
|
|
0, /*nb_inplace_rshift*/
|
|
|
|
0, /*nb_inplace_and*/
|
|
|
|
0, /*nb_inplace_xor*/
|
|
|
|
0, /*nb_inplace_or*/
|
|
|
|
delta_divide, /* nb_floor_divide */
|
2010-04-20 19:32:49 -03:00
|
|
|
delta_truedivide, /* nb_true_divide */
|
2002-12-16 16:18:38 -04:00
|
|
|
0, /* nb_inplace_floor_divide */
|
|
|
|
0, /* nb_inplace_true_divide */
|
|
|
|
};
|
|
|
|
|
|
|
|
static PyTypeObject PyDateTime_DeltaType = {
|
Merged revisions 56467-56482 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/p3yk
................
r56477 | martin.v.loewis | 2007-07-21 09:04:38 +0200 (Sa, 21 Jul 2007) | 11 lines
Merged revisions 56466-56476 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r56476 | martin.v.loewis | 2007-07-21 08:55:02 +0200 (Sa, 21 Jul 2007) | 4 lines
PEP 3123: Provide forward compatibility with Python 3.0, while keeping
backwards compatibility. Add Py_Refcnt, Py_Type, Py_Size, and
PyVarObject_HEAD_INIT.
........
................
r56478 | martin.v.loewis | 2007-07-21 09:47:23 +0200 (Sa, 21 Jul 2007) | 2 lines
PEP 3123: Use proper C inheritance for PyObject.
................
r56479 | martin.v.loewis | 2007-07-21 10:06:55 +0200 (Sa, 21 Jul 2007) | 3 lines
Add longintrepr.h to Python.h, so that the compiler can
see that PyFalse is really some kind of PyObject*.
................
r56480 | martin.v.loewis | 2007-07-21 10:47:18 +0200 (Sa, 21 Jul 2007) | 2 lines
Qualify SHIFT, MASK, BASE.
................
r56482 | martin.v.loewis | 2007-07-21 19:10:57 +0200 (Sa, 21 Jul 2007) | 2 lines
Correctly refer to _ob_next.
................
2007-07-21 14:22:18 -03:00
|
|
|
PyVarObject_HEAD_INIT(NULL, 0)
|
2002-12-16 16:18:38 -04:00
|
|
|
"datetime.timedelta", /* tp_name */
|
|
|
|
sizeof(PyDateTime_Delta), /* tp_basicsize */
|
|
|
|
0, /* tp_itemsize */
|
|
|
|
0, /* tp_dealloc */
|
|
|
|
0, /* tp_print */
|
|
|
|
0, /* tp_getattr */
|
|
|
|
0, /* tp_setattr */
|
2009-02-02 16:36:42 -04:00
|
|
|
0, /* tp_reserved */
|
2002-12-16 16:18:38 -04:00
|
|
|
(reprfunc)delta_repr, /* tp_repr */
|
|
|
|
&delta_as_number, /* tp_as_number */
|
|
|
|
0, /* tp_as_sequence */
|
|
|
|
0, /* tp_as_mapping */
|
|
|
|
(hashfunc)delta_hash, /* tp_hash */
|
|
|
|
0, /* tp_call */
|
|
|
|
(reprfunc)delta_str, /* tp_str */
|
|
|
|
PyObject_GenericGetAttr, /* tp_getattro */
|
|
|
|
0, /* tp_setattro */
|
|
|
|
0, /* tp_as_buffer */
|
2006-07-27 18:53:35 -03:00
|
|
|
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /* tp_flags */
|
2002-12-16 16:18:38 -04:00
|
|
|
delta_doc, /* tp_doc */
|
|
|
|
0, /* tp_traverse */
|
|
|
|
0, /* tp_clear */
|
2006-08-24 14:29:38 -03:00
|
|
|
delta_richcompare, /* tp_richcompare */
|
2002-12-16 16:18:38 -04:00
|
|
|
0, /* tp_weaklistoffset */
|
|
|
|
0, /* tp_iter */
|
|
|
|
0, /* tp_iternext */
|
|
|
|
delta_methods, /* tp_methods */
|
|
|
|
delta_members, /* tp_members */
|
|
|
|
0, /* tp_getset */
|
|
|
|
0, /* tp_base */
|
|
|
|
0, /* tp_dict */
|
|
|
|
0, /* tp_descr_get */
|
|
|
|
0, /* tp_descr_set */
|
|
|
|
0, /* tp_dictoffset */
|
|
|
|
0, /* tp_init */
|
|
|
|
0, /* tp_alloc */
|
|
|
|
delta_new, /* tp_new */
|
2003-05-16 19:44:06 -03:00
|
|
|
0, /* tp_free */
|
2002-12-16 16:18:38 -04:00
|
|
|
};
|
|
|
|
|
|
|
|
/*
|
|
|
|
* PyDateTime_Date implementation.
|
|
|
|
*/
|
|
|
|
|
|
|
|
/* Accessor properties. */
|
|
|
|
|
|
|
|
static PyObject *
|
|
|
|
date_year(PyDateTime_Date *self, void *unused)
|
|
|
|
{
|
2007-12-02 10:31:20 -04:00
|
|
|
return PyLong_FromLong(GET_YEAR(self));
|
2002-12-16 16:18:38 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
static PyObject *
|
|
|
|
date_month(PyDateTime_Date *self, void *unused)
|
|
|
|
{
|
2007-12-02 10:31:20 -04:00
|
|
|
return PyLong_FromLong(GET_MONTH(self));
|
2002-12-16 16:18:38 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
static PyObject *
|
|
|
|
date_day(PyDateTime_Date *self, void *unused)
|
|
|
|
{
|
2007-12-02 10:31:20 -04:00
|
|
|
return PyLong_FromLong(GET_DAY(self));
|
2002-12-16 16:18:38 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
static PyGetSetDef date_getset[] = {
|
|
|
|
{"year", (getter)date_year},
|
|
|
|
{"month", (getter)date_month},
|
|
|
|
{"day", (getter)date_day},
|
|
|
|
{NULL}
|
|
|
|
};
|
|
|
|
|
|
|
|
/* Constructors. */
|
|
|
|
|
2006-02-27 13:20:04 -04:00
|
|
|
static char *date_kws[] = {"year", "month", "day", NULL};
|
2002-12-24 01:41:27 -04:00
|
|
|
|
2002-12-16 16:18:38 -04:00
|
|
|
static PyObject *
|
|
|
|
date_new(PyTypeObject *type, PyObject *args, PyObject *kw)
|
|
|
|
{
|
|
|
|
PyObject *self = NULL;
|
2003-02-01 00:40:04 -04:00
|
|
|
PyObject *state;
|
2002-12-16 16:18:38 -04:00
|
|
|
int year;
|
|
|
|
int month;
|
|
|
|
int day;
|
|
|
|
|
2003-01-30 18:06:23 -04:00
|
|
|
/* Check for invocation from pickle with __getstate__ state */
|
|
|
|
if (PyTuple_GET_SIZE(args) == 1 &&
|
2008-05-26 10:28:38 -03:00
|
|
|
PyBytes_Check(state = PyTuple_GET_ITEM(args, 0)) &&
|
|
|
|
PyBytes_GET_SIZE(state) == _PyDateTime_DATE_DATASIZE &&
|
|
|
|
MONTH_IS_SANE(PyBytes_AS_STRING(state)[2]))
|
2003-01-30 18:06:23 -04:00
|
|
|
{
|
2003-02-01 00:40:04 -04:00
|
|
|
PyDateTime_Date *me;
|
|
|
|
|
2004-06-07 20:04:33 -03:00
|
|
|
me = (PyDateTime_Date *) (type->tp_alloc(type, 0));
|
2003-02-01 00:40:04 -04:00
|
|
|
if (me != NULL) {
|
2008-05-26 10:28:38 -03:00
|
|
|
char *pdata = PyBytes_AS_STRING(state);
|
2003-02-01 00:40:04 -04:00
|
|
|
memcpy(me->data, pdata, _PyDateTime_DATE_DATASIZE);
|
|
|
|
me->hashcode = -1;
|
2003-01-30 18:06:23 -04:00
|
|
|
}
|
2003-02-01 00:40:04 -04:00
|
|
|
return (PyObject *)me;
|
2003-01-30 18:06:23 -04:00
|
|
|
}
|
|
|
|
|
2002-12-24 01:41:27 -04:00
|
|
|
if (PyArg_ParseTupleAndKeywords(args, kw, "iii", date_kws,
|
2002-12-16 16:18:38 -04:00
|
|
|
&year, &month, &day)) {
|
|
|
|
if (check_date_args(year, month, day) < 0)
|
|
|
|
return NULL;
|
2003-04-14 19:01:58 -03:00
|
|
|
self = new_date_ex(year, month, day, type);
|
2002-12-16 16:18:38 -04:00
|
|
|
}
|
|
|
|
return self;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Return new date from localtime(t). */
|
|
|
|
static PyObject *
|
2004-06-19 23:50:16 -03:00
|
|
|
date_local_from_time_t(PyObject *cls, double ts)
|
2002-12-16 16:18:38 -04:00
|
|
|
{
|
|
|
|
struct tm *tm;
|
2004-06-19 23:50:16 -03:00
|
|
|
time_t t;
|
2002-12-16 16:18:38 -04:00
|
|
|
PyObject *result = NULL;
|
|
|
|
|
2004-06-19 23:50:16 -03:00
|
|
|
t = _PyTime_DoubleToTimet(ts);
|
|
|
|
if (t == (time_t)-1 && PyErr_Occurred())
|
|
|
|
return NULL;
|
2002-12-16 16:18:38 -04:00
|
|
|
tm = localtime(&t);
|
|
|
|
if (tm)
|
|
|
|
result = PyObject_CallFunction(cls, "iii",
|
|
|
|
tm->tm_year + 1900,
|
|
|
|
tm->tm_mon + 1,
|
|
|
|
tm->tm_mday);
|
|
|
|
else
|
|
|
|
PyErr_SetString(PyExc_ValueError,
|
|
|
|
"timestamp out of range for "
|
|
|
|
"platform localtime() function");
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Return new date from current time.
|
|
|
|
* We say this is equivalent to fromtimestamp(time.time()), and the
|
|
|
|
* only way to be sure of that is to *call* time.time(). That's not
|
|
|
|
* generally the same as calling C's time.
|
|
|
|
*/
|
|
|
|
static PyObject *
|
|
|
|
date_today(PyObject *cls, PyObject *dummy)
|
|
|
|
{
|
|
|
|
PyObject *time;
|
|
|
|
PyObject *result;
|
|
|
|
|
|
|
|
time = time_time();
|
|
|
|
if (time == NULL)
|
|
|
|
return NULL;
|
|
|
|
|
|
|
|
/* Note well: today() is a class method, so this may not call
|
|
|
|
* date.fromtimestamp. For example, it may call
|
|
|
|
* datetime.fromtimestamp. That's why we need all the accuracy
|
|
|
|
* time.time() delivers; if someone were gonzo about optimization,
|
|
|
|
* date.today() could get away with plain C time().
|
|
|
|
*/
|
|
|
|
result = PyObject_CallMethod(cls, "fromtimestamp", "O", time);
|
|
|
|
Py_DECREF(time);
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Return new date from given timestamp (Python timestamp -- a double). */
|
|
|
|
static PyObject *
|
|
|
|
date_fromtimestamp(PyObject *cls, PyObject *args)
|
|
|
|
{
|
|
|
|
double timestamp;
|
|
|
|
PyObject *result = NULL;
|
|
|
|
|
|
|
|
if (PyArg_ParseTuple(args, "d:fromtimestamp", ×tamp))
|
2004-06-19 23:50:16 -03:00
|
|
|
result = date_local_from_time_t(cls, timestamp);
|
2002-12-16 16:18:38 -04:00
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Return new date from proleptic Gregorian ordinal. Raises ValueError if
|
|
|
|
* the ordinal is out of range.
|
|
|
|
*/
|
|
|
|
static PyObject *
|
|
|
|
date_fromordinal(PyObject *cls, PyObject *args)
|
|
|
|
{
|
|
|
|
PyObject *result = NULL;
|
|
|
|
int ordinal;
|
|
|
|
|
|
|
|
if (PyArg_ParseTuple(args, "i:fromordinal", &ordinal)) {
|
|
|
|
int year;
|
|
|
|
int month;
|
|
|
|
int day;
|
|
|
|
|
|
|
|
if (ordinal < 1)
|
|
|
|
PyErr_SetString(PyExc_ValueError, "ordinal must be "
|
|
|
|
">= 1");
|
|
|
|
else {
|
|
|
|
ord_to_ymd(ordinal, &year, &month, &day);
|
|
|
|
result = PyObject_CallFunction(cls, "iii",
|
|
|
|
year, month, day);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Date arithmetic.
|
|
|
|
*/
|
|
|
|
|
|
|
|
/* date + timedelta -> date. If arg negate is true, subtract the timedelta
|
|
|
|
* instead.
|
|
|
|
*/
|
|
|
|
static PyObject *
|
|
|
|
add_date_timedelta(PyDateTime_Date *date, PyDateTime_Delta *delta, int negate)
|
|
|
|
{
|
|
|
|
PyObject *result = NULL;
|
|
|
|
int year = GET_YEAR(date);
|
|
|
|
int month = GET_MONTH(date);
|
|
|
|
int deltadays = GET_TD_DAYS(delta);
|
|
|
|
/* C-level overflow is impossible because |deltadays| < 1e9. */
|
|
|
|
int day = GET_DAY(date) + (negate ? -deltadays : deltadays);
|
|
|
|
|
|
|
|
if (normalize_date(&year, &month, &day) >= 0)
|
|
|
|
result = new_date(year, month, day);
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
|
|
|
static PyObject *
|
|
|
|
date_add(PyObject *left, PyObject *right)
|
|
|
|
{
|
|
|
|
if (PyDateTime_Check(left) || PyDateTime_Check(right)) {
|
|
|
|
Py_INCREF(Py_NotImplemented);
|
|
|
|
return Py_NotImplemented;
|
|
|
|
}
|
2003-02-07 23:28:59 -04:00
|
|
|
if (PyDate_Check(left)) {
|
2002-12-16 16:18:38 -04:00
|
|
|
/* date + ??? */
|
|
|
|
if (PyDelta_Check(right))
|
|
|
|
/* date + delta */
|
|
|
|
return add_date_timedelta((PyDateTime_Date *) left,
|
|
|
|
(PyDateTime_Delta *) right,
|
|
|
|
0);
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
/* ??? + date
|
|
|
|
* 'right' must be one of us, or we wouldn't have been called
|
|
|
|
*/
|
|
|
|
if (PyDelta_Check(left))
|
|
|
|
/* delta + date */
|
|
|
|
return add_date_timedelta((PyDateTime_Date *) right,
|
|
|
|
(PyDateTime_Delta *) left,
|
|
|
|
0);
|
|
|
|
}
|
|
|
|
Py_INCREF(Py_NotImplemented);
|
|
|
|
return Py_NotImplemented;
|
|
|
|
}
|
|
|
|
|
|
|
|
static PyObject *
|
|
|
|
date_subtract(PyObject *left, PyObject *right)
|
|
|
|
{
|
|
|
|
if (PyDateTime_Check(left) || PyDateTime_Check(right)) {
|
|
|
|
Py_INCREF(Py_NotImplemented);
|
|
|
|
return Py_NotImplemented;
|
|
|
|
}
|
2003-02-07 23:28:59 -04:00
|
|
|
if (PyDate_Check(left)) {
|
|
|
|
if (PyDate_Check(right)) {
|
2002-12-16 16:18:38 -04:00
|
|
|
/* date - date */
|
|
|
|
int left_ord = ymd_to_ord(GET_YEAR(left),
|
|
|
|
GET_MONTH(left),
|
|
|
|
GET_DAY(left));
|
|
|
|
int right_ord = ymd_to_ord(GET_YEAR(right),
|
|
|
|
GET_MONTH(right),
|
|
|
|
GET_DAY(right));
|
|
|
|
return new_delta(left_ord - right_ord, 0, 0, 0);
|
|
|
|
}
|
|
|
|
if (PyDelta_Check(right)) {
|
|
|
|
/* date - delta */
|
|
|
|
return add_date_timedelta((PyDateTime_Date *) left,
|
|
|
|
(PyDateTime_Delta *) right,
|
|
|
|
1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
Py_INCREF(Py_NotImplemented);
|
|
|
|
return Py_NotImplemented;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Various ways to turn a date into a string. */
|
|
|
|
|
|
|
|
static PyObject *
|
|
|
|
date_repr(PyDateTime_Date *self)
|
|
|
|
{
|
2007-05-19 18:49:49 -03:00
|
|
|
return PyUnicode_FromFormat("%s(%d, %d, %d)",
|
2007-12-18 22:45:37 -04:00
|
|
|
Py_TYPE(self)->tp_name,
|
2007-05-19 18:49:49 -03:00
|
|
|
GET_YEAR(self), GET_MONTH(self), GET_DAY(self));
|
2002-12-16 16:18:38 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
static PyObject *
|
|
|
|
date_isoformat(PyDateTime_Date *self)
|
|
|
|
{
|
2007-05-31 14:50:48 -03:00
|
|
|
return PyUnicode_FromFormat("%04d-%02d-%02d",
|
|
|
|
GET_YEAR(self), GET_MONTH(self), GET_DAY(self));
|
2002-12-16 16:18:38 -04:00
|
|
|
}
|
|
|
|
|
2003-05-02 15:39:55 -03:00
|
|
|
/* str() calls the appropriate isoformat() method. */
|
2002-12-16 16:18:38 -04:00
|
|
|
static PyObject *
|
|
|
|
date_str(PyDateTime_Date *self)
|
|
|
|
{
|
|
|
|
return PyObject_CallMethod((PyObject *)self, "isoformat", "()");
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
static PyObject *
|
|
|
|
date_ctime(PyDateTime_Date *self)
|
|
|
|
{
|
|
|
|
return format_ctime(self, 0, 0, 0);
|
|
|
|
}
|
|
|
|
|
|
|
|
static PyObject *
|
|
|
|
date_strftime(PyDateTime_Date *self, PyObject *args, PyObject *kw)
|
|
|
|
{
|
|
|
|
/* This method can be inherited, and needs to call the
|
|
|
|
* timetuple() method appropriate to self's class.
|
|
|
|
*/
|
|
|
|
PyObject *result;
|
|
|
|
PyObject *tuple;
|
Merged revisions 63562,63570,63728,63734,63784,63788,63802,63817,63827,63839,63887,63975,63998 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r63562 | martin.v.loewis | 2008-05-23 17:06:50 +0200 (Fri, 23 May 2008) | 2 lines
Patch #1722225: Support QNX 6.
........
r63570 | trent.nelson | 2008-05-23 22:33:14 +0200 (Fri, 23 May 2008) | 1 line
Introduce a user macro named $(externalsDir), which should point to the root directory of where all the external sources should live. Developers can change this value if their external sources live elsewhere. The default of '..\..' matches the current status quo.
........
r63728 | gregory.p.smith | 2008-05-26 23:16:34 +0200 (Mon, 26 May 2008) | 4 lines
Fix issue2589: there was a potential integer overflow leading to
memory corruption on esoteric platforms and incorrect behavior on
normal platforms.
........
r63734 | gregory.p.smith | 2008-05-27 00:07:28 +0200 (Tue, 27 May 2008) | 3 lines
Fix issue2588: Do not execute str[size-1] = '\0' when a 0 size is
passed in. (The assert won't prevent this in non-debug builds).
........
r63784 | raymond.hettinger | 2008-05-29 10:38:23 +0200 (Thu, 29 May 2008) | 1 line
Fix two typos.
........
r63788 | facundo.batista | 2008-05-29 18:39:26 +0200 (Thu, 29 May 2008) | 6 lines
Fixed the semantic of timeout for socket.create_connection and
all the upper level libraries that use it, including urllib2.
Added and fixed some tests, and changed docs correspondingly.
Thanks to John J Lee for the patch and the pusing, :)
........
r63802 | mark.dickinson | 2008-05-30 04:46:53 +0200 (Fri, 30 May 2008) | 2 lines
Fix typo in testSum
........
r63817 | raymond.hettinger | 2008-05-30 20:20:50 +0200 (Fri, 30 May 2008) | 8 lines
* Mark intermedidate computes values (hi, lo, yr) as volatile.
* Expand comments.
* Swap variable names in the sum_exact code so that x and y
are consistently chosen as the larger and smaller magnitude
values respectively.
........
r63827 | raymond.hettinger | 2008-05-31 05:24:31 +0200 (Sat, 31 May 2008) | 1 line
Implement heapq in terms of less-than (to match list.sort()).
........
r63839 | gerhard.haering | 2008-05-31 23:33:27 +0200 (Sat, 31 May 2008) | 2 lines
Fixed rowcount for SELECT statements. They're -1 now (again), for better DB-API 2.0 compliance.
........
r63887 | gregory.p.smith | 2008-06-02 06:05:52 +0200 (Mon, 02 Jun 2008) | 4 lines
Fix issue 2782: be less strict about the format string type in strftime.
Accept unicode and anything else ParseTuple "s#" can deal with. This
matches the time.strftime behavior.
........
r63975 | neal.norwitz | 2008-06-06 06:47:01 +0200 (Fri, 06 Jun 2008) | 3 lines
Aldo Cortesi confirmed this is still needed for OpenBSD 4.2 and 4.3.
(I didn't regen configure, since I don't have a working autoconf.)
........
r63998 | raymond.hettinger | 2008-06-06 23:47:51 +0200 (Fri, 06 Jun 2008) | 1 line
Issue 3501: Make heapq support both __le__ and __lt__.
........
2008-06-10 14:40:04 -03:00
|
|
|
PyObject *format;
|
2006-02-27 13:20:04 -04:00
|
|
|
static char *keywords[] = {"format", NULL};
|
2002-12-16 16:18:38 -04:00
|
|
|
|
2007-08-24 01:05:13 -03:00
|
|
|
if (! PyArg_ParseTupleAndKeywords(args, kw, "U:strftime", keywords,
|
2007-05-10 15:04:33 -03:00
|
|
|
&format))
|
2002-12-16 16:18:38 -04:00
|
|
|
return NULL;
|
|
|
|
|
|
|
|
tuple = PyObject_CallMethod((PyObject *)self, "timetuple", "()");
|
|
|
|
if (tuple == NULL)
|
|
|
|
return NULL;
|
2002-12-30 16:52:32 -04:00
|
|
|
result = wrap_strftime((PyObject *)self, format, tuple,
|
|
|
|
(PyObject *)self);
|
2002-12-16 16:18:38 -04:00
|
|
|
Py_DECREF(tuple);
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
2007-09-11 15:06:02 -03:00
|
|
|
static PyObject *
|
|
|
|
date_format(PyDateTime_Date *self, PyObject *args)
|
|
|
|
{
|
|
|
|
PyObject *format;
|
|
|
|
|
|
|
|
if (!PyArg_ParseTuple(args, "U:__format__", &format))
|
|
|
|
return NULL;
|
|
|
|
|
|
|
|
/* if the format is zero length, return str(self) */
|
|
|
|
if (PyUnicode_GetSize(format) == 0)
|
2007-11-15 16:48:54 -04:00
|
|
|
return PyObject_Str((PyObject *)self);
|
2007-09-11 15:06:02 -03:00
|
|
|
|
|
|
|
return PyObject_CallMethod((PyObject *)self, "strftime", "O", format);
|
|
|
|
}
|
|
|
|
|
2002-12-16 16:18:38 -04:00
|
|
|
/* ISO methods. */
|
|
|
|
|
|
|
|
static PyObject *
|
|
|
|
date_isoweekday(PyDateTime_Date *self)
|
|
|
|
{
|
|
|
|
int dow = weekday(GET_YEAR(self), GET_MONTH(self), GET_DAY(self));
|
|
|
|
|
2007-12-02 10:31:20 -04:00
|
|
|
return PyLong_FromLong(dow + 1);
|
2002-12-16 16:18:38 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
static PyObject *
|
|
|
|
date_isocalendar(PyDateTime_Date *self)
|
|
|
|
{
|
|
|
|
int year = GET_YEAR(self);
|
|
|
|
int week1_monday = iso_week1_monday(year);
|
|
|
|
int today = ymd_to_ord(year, GET_MONTH(self), GET_DAY(self));
|
|
|
|
int week;
|
|
|
|
int day;
|
|
|
|
|
|
|
|
week = divmod(today - week1_monday, 7, &day);
|
|
|
|
if (week < 0) {
|
|
|
|
--year;
|
|
|
|
week1_monday = iso_week1_monday(year);
|
|
|
|
week = divmod(today - week1_monday, 7, &day);
|
|
|
|
}
|
|
|
|
else if (week >= 52 && today >= iso_week1_monday(year + 1)) {
|
|
|
|
++year;
|
|
|
|
week = 0;
|
|
|
|
}
|
|
|
|
return Py_BuildValue("iii", year, week + 1, day + 1);
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Miscellaneous methods. */
|
|
|
|
|
|
|
|
static PyObject *
|
2006-08-24 14:29:38 -03:00
|
|
|
date_richcompare(PyObject *self, PyObject *other, int op)
|
2002-12-16 16:18:38 -04:00
|
|
|
{
|
2006-08-24 14:29:38 -03:00
|
|
|
if (PyDate_Check(other)) {
|
|
|
|
int diff = memcmp(((PyDateTime_Date *)self)->data,
|
|
|
|
((PyDateTime_Date *)other)->data,
|
|
|
|
_PyDateTime_DATE_DATASIZE);
|
|
|
|
return diff_to_bool(diff, op);
|
|
|
|
}
|
|
|
|
else {
|
2003-02-07 18:50:28 -04:00
|
|
|
Py_INCREF(Py_NotImplemented);
|
|
|
|
return Py_NotImplemented;
|
2002-12-16 16:18:38 -04:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
static PyObject *
|
|
|
|
date_timetuple(PyDateTime_Date *self)
|
|
|
|
{
|
|
|
|
return build_struct_time(GET_YEAR(self),
|
|
|
|
GET_MONTH(self),
|
|
|
|
GET_DAY(self),
|
|
|
|
0, 0, 0, -1);
|
|
|
|
}
|
|
|
|
|
2002-12-24 01:41:27 -04:00
|
|
|
static PyObject *
|
|
|
|
date_replace(PyDateTime_Date *self, PyObject *args, PyObject *kw)
|
|
|
|
{
|
|
|
|
PyObject *clone;
|
|
|
|
PyObject *tuple;
|
|
|
|
int year = GET_YEAR(self);
|
|
|
|
int month = GET_MONTH(self);
|
|
|
|
int day = GET_DAY(self);
|
|
|
|
|
|
|
|
if (! PyArg_ParseTupleAndKeywords(args, kw, "|iii:replace", date_kws,
|
|
|
|
&year, &month, &day))
|
|
|
|
return NULL;
|
|
|
|
tuple = Py_BuildValue("iii", year, month, day);
|
|
|
|
if (tuple == NULL)
|
|
|
|
return NULL;
|
2007-12-18 22:45:37 -04:00
|
|
|
clone = date_new(Py_TYPE(self), tuple, NULL);
|
2002-12-24 01:41:27 -04:00
|
|
|
Py_DECREF(tuple);
|
|
|
|
return clone;
|
|
|
|
}
|
|
|
|
|
2007-08-24 01:05:13 -03:00
|
|
|
/*
|
|
|
|
Borrowed from stringobject.c, originally it was string_hash()
|
|
|
|
*/
|
|
|
|
static long
|
|
|
|
generic_hash(unsigned char *data, int len)
|
|
|
|
{
|
|
|
|
register unsigned char *p;
|
|
|
|
register long x;
|
|
|
|
|
|
|
|
p = (unsigned char *) data;
|
|
|
|
x = *p << 7;
|
|
|
|
while (--len >= 0)
|
|
|
|
x = (1000003*x) ^ *p++;
|
|
|
|
x ^= len;
|
|
|
|
if (x == -1)
|
|
|
|
x = -2;
|
|
|
|
|
|
|
|
return x;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
static PyObject *date_getstate(PyDateTime_Date *self);
|
2002-12-16 16:18:38 -04:00
|
|
|
|
|
|
|
static long
|
|
|
|
date_hash(PyDateTime_Date *self)
|
|
|
|
{
|
2007-08-24 01:05:13 -03:00
|
|
|
if (self->hashcode == -1)
|
|
|
|
self->hashcode = generic_hash(
|
|
|
|
(unsigned char *)self->data, _PyDateTime_DATE_DATASIZE);
|
2007-11-21 15:29:53 -04:00
|
|
|
|
2002-12-16 16:18:38 -04:00
|
|
|
return self->hashcode;
|
|
|
|
}
|
|
|
|
|
|
|
|
static PyObject *
|
|
|
|
date_toordinal(PyDateTime_Date *self)
|
|
|
|
{
|
2007-12-02 10:31:20 -04:00
|
|
|
return PyLong_FromLong(ymd_to_ord(GET_YEAR(self), GET_MONTH(self),
|
2002-12-16 16:18:38 -04:00
|
|
|
GET_DAY(self)));
|
|
|
|
}
|
|
|
|
|
|
|
|
static PyObject *
|
|
|
|
date_weekday(PyDateTime_Date *self)
|
|
|
|
{
|
|
|
|
int dow = weekday(GET_YEAR(self), GET_MONTH(self), GET_DAY(self));
|
|
|
|
|
2007-12-02 10:31:20 -04:00
|
|
|
return PyLong_FromLong(dow);
|
2002-12-16 16:18:38 -04:00
|
|
|
}
|
|
|
|
|
2003-01-31 21:52:50 -04:00
|
|
|
/* Pickle support, a simple use of __reduce__. */
|
2002-12-16 16:18:38 -04:00
|
|
|
|
2003-01-31 22:54:15 -04:00
|
|
|
/* __getstate__ isn't exposed */
|
2002-12-16 16:18:38 -04:00
|
|
|
static PyObject *
|
2007-08-24 01:05:13 -03:00
|
|
|
date_getstate(PyDateTime_Date *self)
|
2002-12-16 16:18:38 -04:00
|
|
|
{
|
2007-07-17 23:28:27 -03:00
|
|
|
PyObject* field;
|
2008-05-26 10:28:38 -03:00
|
|
|
field = PyBytes_FromStringAndSize((char*)self->data,
|
2007-11-21 15:29:53 -04:00
|
|
|
_PyDateTime_DATE_DATASIZE);
|
2007-07-17 23:28:27 -03:00
|
|
|
return Py_BuildValue("(N)", field);
|
2002-12-16 16:18:38 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
static PyObject *
|
2003-01-30 18:06:23 -04:00
|
|
|
date_reduce(PyDateTime_Date *self, PyObject *arg)
|
2002-12-16 16:18:38 -04:00
|
|
|
{
|
2007-12-18 22:45:37 -04:00
|
|
|
return Py_BuildValue("(ON)", Py_TYPE(self), date_getstate(self));
|
2002-12-16 16:18:38 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
static PyMethodDef date_methods[] = {
|
2003-01-30 18:06:23 -04:00
|
|
|
|
2002-12-16 16:18:38 -04:00
|
|
|
/* Class methods: */
|
2003-01-30 18:06:23 -04:00
|
|
|
|
2002-12-16 16:18:38 -04:00
|
|
|
{"fromtimestamp", (PyCFunction)date_fromtimestamp, METH_VARARGS |
|
|
|
|
METH_CLASS,
|
|
|
|
PyDoc_STR("timestamp -> local date from a POSIX timestamp (like "
|
|
|
|
"time.time()).")},
|
|
|
|
|
|
|
|
{"fromordinal", (PyCFunction)date_fromordinal, METH_VARARGS |
|
|
|
|
METH_CLASS,
|
|
|
|
PyDoc_STR("int -> date corresponding to a proleptic Gregorian "
|
|
|
|
"ordinal.")},
|
|
|
|
|
|
|
|
{"today", (PyCFunction)date_today, METH_NOARGS | METH_CLASS,
|
|
|
|
PyDoc_STR("Current date or datetime: same as "
|
|
|
|
"self.__class__.fromtimestamp(time.time()).")},
|
|
|
|
|
|
|
|
/* Instance methods: */
|
|
|
|
|
|
|
|
{"ctime", (PyCFunction)date_ctime, METH_NOARGS,
|
|
|
|
PyDoc_STR("Return ctime() style string.")},
|
|
|
|
|
Merged revisions 55407-55513 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/p3yk
................
r55413 | fred.drake | 2007-05-17 12:30:10 -0700 (Thu, 17 May 2007) | 1 line
fix argument name in documentation; match the implementation
................
r55430 | jack.diederich | 2007-05-18 06:39:59 -0700 (Fri, 18 May 2007) | 1 line
Implements class decorators, PEP 3129.
................
r55432 | guido.van.rossum | 2007-05-18 08:09:41 -0700 (Fri, 18 May 2007) | 2 lines
obsubmit.
................
r55434 | guido.van.rossum | 2007-05-18 09:39:10 -0700 (Fri, 18 May 2007) | 3 lines
Fix bug in test_inspect. (I presume this is how it should be fixed;
Jack Diedrich, please verify.)
................
r55460 | brett.cannon | 2007-05-20 00:31:57 -0700 (Sun, 20 May 2007) | 4 lines
Remove the imageop module. With imgfile already removed in Python 3.0 and
rgbimg gone in Python 2.6 the unit tests themselves were made worthless. Plus
third-party libraries perform the same function much better.
................
r55469 | neal.norwitz | 2007-05-20 11:28:20 -0700 (Sun, 20 May 2007) | 118 lines
Merged revisions 55324-55467 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r55348 | georg.brandl | 2007-05-15 13:19:34 -0700 (Tue, 15 May 2007) | 4 lines
HTML-escape the plain traceback in cgitb's HTML output, to prevent
the traceback inadvertently or maliciously closing the comment and
injecting HTML into the error page.
........
r55372 | neal.norwitz | 2007-05-15 21:33:50 -0700 (Tue, 15 May 2007) | 6 lines
Port rev 55353 from Guido:
Add what looks like a necessary call to PyErr_NoMemory() when PyMem_MALLOC()
fails.
Will backport.
........
r55377 | neal.norwitz | 2007-05-15 22:06:33 -0700 (Tue, 15 May 2007) | 1 line
Mention removal of some directories for obsolete platforms
........
r55380 | brett.cannon | 2007-05-15 22:50:03 -0700 (Tue, 15 May 2007) | 2 lines
Change the maintainer of the BeOS port.
........
r55383 | georg.brandl | 2007-05-16 06:44:18 -0700 (Wed, 16 May 2007) | 2 lines
Bug #1719995: don't use deprecated method in sets example.
........
r55386 | neal.norwitz | 2007-05-16 13:05:11 -0700 (Wed, 16 May 2007) | 5 lines
Fix bug in marshal where bad data would cause a segfault due to
lack of an infinite recursion check.
Contributed by Damien Miller at Google.
........
r55389 | brett.cannon | 2007-05-16 15:42:29 -0700 (Wed, 16 May 2007) | 6 lines
Remove the gopherlib module. It has been raising a DeprecationWarning since
Python 2.5.
Also remove gopher support from urllib/urllib2. As both imported gopherlib the
usage of the support would have raised a DeprecationWarning.
........
r55394 | raymond.hettinger | 2007-05-16 18:08:04 -0700 (Wed, 16 May 2007) | 1 line
calendar.py gets no benefit from xrange() instead of range()
........
r55395 | brett.cannon | 2007-05-16 19:02:56 -0700 (Wed, 16 May 2007) | 3 lines
Complete deprecation of BaseException.message. Some subclasses were directly
accessing the message attribute instead of using the descriptor.
........
r55396 | neal.norwitz | 2007-05-16 23:11:36 -0700 (Wed, 16 May 2007) | 4 lines
Reduce the max stack depth to see if this fixes the segfaults on
Windows and some other boxes. If this is successful, this rev should
be backported. I'm not sure how close to the limit we should push this.
........
r55397 | neal.norwitz | 2007-05-16 23:23:50 -0700 (Wed, 16 May 2007) | 4 lines
Set the depth to something very small to try to determine if the
crashes on Windows are really due to the stack size or possibly
some other problem.
........
r55398 | neal.norwitz | 2007-05-17 00:04:46 -0700 (Thu, 17 May 2007) | 4 lines
Last try for tweaking the max stack depth. 5000 was the original value,
4000 didn't work either. 1000 does work on Windows. If 2000 works,
that will hopefully be a reasonable balance.
........
r55412 | fred.drake | 2007-05-17 12:29:58 -0700 (Thu, 17 May 2007) | 1 line
fix argument name in documentation; match the implementation
........
r55427 | neal.norwitz | 2007-05-17 22:47:16 -0700 (Thu, 17 May 2007) | 1 line
Verify neither dumps or loads overflow the stack and segfault.
........
r55446 | collin.winter | 2007-05-18 16:11:24 -0700 (Fri, 18 May 2007) | 1 line
Backport PEP 3110's new 'except' syntax to 2.6.
........
r55448 | raymond.hettinger | 2007-05-18 18:11:16 -0700 (Fri, 18 May 2007) | 1 line
Improvements to NamedTuple's implementation, tests, and documentation
........
r55449 | raymond.hettinger | 2007-05-18 18:50:11 -0700 (Fri, 18 May 2007) | 1 line
Fix beginner mistake -- don't mix spaces and tabs.
........
r55450 | neal.norwitz | 2007-05-18 20:48:47 -0700 (Fri, 18 May 2007) | 1 line
Clear data so random memory does not get freed. Will backport.
........
r55452 | neal.norwitz | 2007-05-18 21:34:55 -0700 (Fri, 18 May 2007) | 3 lines
Whoops, need to pay attention to those test failures.
Move the clear to *before* the first use, not after.
........
r55453 | neal.norwitz | 2007-05-18 21:35:52 -0700 (Fri, 18 May 2007) | 1 line
Give some clue as to what happened if the test fails.
........
r55455 | georg.brandl | 2007-05-19 11:09:26 -0700 (Sat, 19 May 2007) | 2 lines
Fix docstring for add_package in site.py.
........
r55458 | brett.cannon | 2007-05-20 00:09:50 -0700 (Sun, 20 May 2007) | 2 lines
Remove the rgbimg module. It has been deprecated since Python 2.5.
........
r55465 | nick.coghlan | 2007-05-20 04:12:49 -0700 (Sun, 20 May 2007) | 1 line
Fix typo in example (should be backported, but my maintenance branch is woefully out of date)
........
................
r55472 | brett.cannon | 2007-05-20 12:06:18 -0700 (Sun, 20 May 2007) | 2 lines
Remove imageop from the Windows build process.
................
r55486 | neal.norwitz | 2007-05-20 23:59:52 -0700 (Sun, 20 May 2007) | 1 line
Remove callable() builtin
................
r55506 | neal.norwitz | 2007-05-22 00:43:29 -0700 (Tue, 22 May 2007) | 78 lines
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
........
................
2007-05-22 15:11:13 -03:00
|
|
|
{"strftime", (PyCFunction)date_strftime, METH_VARARGS | METH_KEYWORDS,
|
2002-12-16 16:18:38 -04:00
|
|
|
PyDoc_STR("format -> strftime() style string.")},
|
|
|
|
|
2007-09-11 15:06:02 -03:00
|
|
|
{"__format__", (PyCFunction)date_format, METH_VARARGS,
|
|
|
|
PyDoc_STR("Formats self with strftime.")},
|
|
|
|
|
2002-12-16 16:18:38 -04:00
|
|
|
{"timetuple", (PyCFunction)date_timetuple, METH_NOARGS,
|
|
|
|
PyDoc_STR("Return time tuple, compatible with time.localtime().")},
|
|
|
|
|
|
|
|
{"isocalendar", (PyCFunction)date_isocalendar, METH_NOARGS,
|
|
|
|
PyDoc_STR("Return a 3-tuple containing ISO year, week number, and "
|
|
|
|
"weekday.")},
|
|
|
|
|
|
|
|
{"isoformat", (PyCFunction)date_isoformat, METH_NOARGS,
|
|
|
|
PyDoc_STR("Return string in ISO 8601 format, YYYY-MM-DD.")},
|
|
|
|
|
|
|
|
{"isoweekday", (PyCFunction)date_isoweekday, METH_NOARGS,
|
|
|
|
PyDoc_STR("Return the day of the week represented by the date.\n"
|
|
|
|
"Monday == 1 ... Sunday == 7")},
|
|
|
|
|
|
|
|
{"toordinal", (PyCFunction)date_toordinal, METH_NOARGS,
|
|
|
|
PyDoc_STR("Return proleptic Gregorian ordinal. January 1 of year "
|
|
|
|
"1 is day 1.")},
|
|
|
|
|
|
|
|
{"weekday", (PyCFunction)date_weekday, METH_NOARGS,
|
|
|
|
PyDoc_STR("Return the day of the week represented by the date.\n"
|
|
|
|
"Monday == 0 ... Sunday == 6")},
|
|
|
|
|
Merged revisions 55407-55513 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/p3yk
................
r55413 | fred.drake | 2007-05-17 12:30:10 -0700 (Thu, 17 May 2007) | 1 line
fix argument name in documentation; match the implementation
................
r55430 | jack.diederich | 2007-05-18 06:39:59 -0700 (Fri, 18 May 2007) | 1 line
Implements class decorators, PEP 3129.
................
r55432 | guido.van.rossum | 2007-05-18 08:09:41 -0700 (Fri, 18 May 2007) | 2 lines
obsubmit.
................
r55434 | guido.van.rossum | 2007-05-18 09:39:10 -0700 (Fri, 18 May 2007) | 3 lines
Fix bug in test_inspect. (I presume this is how it should be fixed;
Jack Diedrich, please verify.)
................
r55460 | brett.cannon | 2007-05-20 00:31:57 -0700 (Sun, 20 May 2007) | 4 lines
Remove the imageop module. With imgfile already removed in Python 3.0 and
rgbimg gone in Python 2.6 the unit tests themselves were made worthless. Plus
third-party libraries perform the same function much better.
................
r55469 | neal.norwitz | 2007-05-20 11:28:20 -0700 (Sun, 20 May 2007) | 118 lines
Merged revisions 55324-55467 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r55348 | georg.brandl | 2007-05-15 13:19:34 -0700 (Tue, 15 May 2007) | 4 lines
HTML-escape the plain traceback in cgitb's HTML output, to prevent
the traceback inadvertently or maliciously closing the comment and
injecting HTML into the error page.
........
r55372 | neal.norwitz | 2007-05-15 21:33:50 -0700 (Tue, 15 May 2007) | 6 lines
Port rev 55353 from Guido:
Add what looks like a necessary call to PyErr_NoMemory() when PyMem_MALLOC()
fails.
Will backport.
........
r55377 | neal.norwitz | 2007-05-15 22:06:33 -0700 (Tue, 15 May 2007) | 1 line
Mention removal of some directories for obsolete platforms
........
r55380 | brett.cannon | 2007-05-15 22:50:03 -0700 (Tue, 15 May 2007) | 2 lines
Change the maintainer of the BeOS port.
........
r55383 | georg.brandl | 2007-05-16 06:44:18 -0700 (Wed, 16 May 2007) | 2 lines
Bug #1719995: don't use deprecated method in sets example.
........
r55386 | neal.norwitz | 2007-05-16 13:05:11 -0700 (Wed, 16 May 2007) | 5 lines
Fix bug in marshal where bad data would cause a segfault due to
lack of an infinite recursion check.
Contributed by Damien Miller at Google.
........
r55389 | brett.cannon | 2007-05-16 15:42:29 -0700 (Wed, 16 May 2007) | 6 lines
Remove the gopherlib module. It has been raising a DeprecationWarning since
Python 2.5.
Also remove gopher support from urllib/urllib2. As both imported gopherlib the
usage of the support would have raised a DeprecationWarning.
........
r55394 | raymond.hettinger | 2007-05-16 18:08:04 -0700 (Wed, 16 May 2007) | 1 line
calendar.py gets no benefit from xrange() instead of range()
........
r55395 | brett.cannon | 2007-05-16 19:02:56 -0700 (Wed, 16 May 2007) | 3 lines
Complete deprecation of BaseException.message. Some subclasses were directly
accessing the message attribute instead of using the descriptor.
........
r55396 | neal.norwitz | 2007-05-16 23:11:36 -0700 (Wed, 16 May 2007) | 4 lines
Reduce the max stack depth to see if this fixes the segfaults on
Windows and some other boxes. If this is successful, this rev should
be backported. I'm not sure how close to the limit we should push this.
........
r55397 | neal.norwitz | 2007-05-16 23:23:50 -0700 (Wed, 16 May 2007) | 4 lines
Set the depth to something very small to try to determine if the
crashes on Windows are really due to the stack size or possibly
some other problem.
........
r55398 | neal.norwitz | 2007-05-17 00:04:46 -0700 (Thu, 17 May 2007) | 4 lines
Last try for tweaking the max stack depth. 5000 was the original value,
4000 didn't work either. 1000 does work on Windows. If 2000 works,
that will hopefully be a reasonable balance.
........
r55412 | fred.drake | 2007-05-17 12:29:58 -0700 (Thu, 17 May 2007) | 1 line
fix argument name in documentation; match the implementation
........
r55427 | neal.norwitz | 2007-05-17 22:47:16 -0700 (Thu, 17 May 2007) | 1 line
Verify neither dumps or loads overflow the stack and segfault.
........
r55446 | collin.winter | 2007-05-18 16:11:24 -0700 (Fri, 18 May 2007) | 1 line
Backport PEP 3110's new 'except' syntax to 2.6.
........
r55448 | raymond.hettinger | 2007-05-18 18:11:16 -0700 (Fri, 18 May 2007) | 1 line
Improvements to NamedTuple's implementation, tests, and documentation
........
r55449 | raymond.hettinger | 2007-05-18 18:50:11 -0700 (Fri, 18 May 2007) | 1 line
Fix beginner mistake -- don't mix spaces and tabs.
........
r55450 | neal.norwitz | 2007-05-18 20:48:47 -0700 (Fri, 18 May 2007) | 1 line
Clear data so random memory does not get freed. Will backport.
........
r55452 | neal.norwitz | 2007-05-18 21:34:55 -0700 (Fri, 18 May 2007) | 3 lines
Whoops, need to pay attention to those test failures.
Move the clear to *before* the first use, not after.
........
r55453 | neal.norwitz | 2007-05-18 21:35:52 -0700 (Fri, 18 May 2007) | 1 line
Give some clue as to what happened if the test fails.
........
r55455 | georg.brandl | 2007-05-19 11:09:26 -0700 (Sat, 19 May 2007) | 2 lines
Fix docstring for add_package in site.py.
........
r55458 | brett.cannon | 2007-05-20 00:09:50 -0700 (Sun, 20 May 2007) | 2 lines
Remove the rgbimg module. It has been deprecated since Python 2.5.
........
r55465 | nick.coghlan | 2007-05-20 04:12:49 -0700 (Sun, 20 May 2007) | 1 line
Fix typo in example (should be backported, but my maintenance branch is woefully out of date)
........
................
r55472 | brett.cannon | 2007-05-20 12:06:18 -0700 (Sun, 20 May 2007) | 2 lines
Remove imageop from the Windows build process.
................
r55486 | neal.norwitz | 2007-05-20 23:59:52 -0700 (Sun, 20 May 2007) | 1 line
Remove callable() builtin
................
r55506 | neal.norwitz | 2007-05-22 00:43:29 -0700 (Tue, 22 May 2007) | 78 lines
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
........
................
2007-05-22 15:11:13 -03:00
|
|
|
{"replace", (PyCFunction)date_replace, METH_VARARGS | METH_KEYWORDS,
|
2002-12-24 01:41:27 -04:00
|
|
|
PyDoc_STR("Return date with new specified fields.")},
|
|
|
|
|
2003-01-30 18:06:23 -04:00
|
|
|
{"__reduce__", (PyCFunction)date_reduce, METH_NOARGS,
|
|
|
|
PyDoc_STR("__reduce__() -> (cls, state)")},
|
|
|
|
|
2002-12-16 16:18:38 -04:00
|
|
|
{NULL, NULL}
|
|
|
|
};
|
|
|
|
|
|
|
|
static char date_doc[] =
|
2004-12-19 16:13:24 -04:00
|
|
|
PyDoc_STR("date(year, month, day) --> date object");
|
2002-12-16 16:18:38 -04:00
|
|
|
|
|
|
|
static PyNumberMethods date_as_number = {
|
|
|
|
date_add, /* nb_add */
|
|
|
|
date_subtract, /* nb_subtract */
|
|
|
|
0, /* nb_multiply */
|
|
|
|
0, /* nb_remainder */
|
|
|
|
0, /* nb_divmod */
|
|
|
|
0, /* nb_power */
|
|
|
|
0, /* nb_negative */
|
|
|
|
0, /* nb_positive */
|
|
|
|
0, /* nb_absolute */
|
2006-11-28 15:15:13 -04:00
|
|
|
0, /* nb_bool */
|
2002-12-16 16:18:38 -04:00
|
|
|
};
|
|
|
|
|
|
|
|
static PyTypeObject PyDateTime_DateType = {
|
Merged revisions 56467-56482 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/p3yk
................
r56477 | martin.v.loewis | 2007-07-21 09:04:38 +0200 (Sa, 21 Jul 2007) | 11 lines
Merged revisions 56466-56476 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r56476 | martin.v.loewis | 2007-07-21 08:55:02 +0200 (Sa, 21 Jul 2007) | 4 lines
PEP 3123: Provide forward compatibility with Python 3.0, while keeping
backwards compatibility. Add Py_Refcnt, Py_Type, Py_Size, and
PyVarObject_HEAD_INIT.
........
................
r56478 | martin.v.loewis | 2007-07-21 09:47:23 +0200 (Sa, 21 Jul 2007) | 2 lines
PEP 3123: Use proper C inheritance for PyObject.
................
r56479 | martin.v.loewis | 2007-07-21 10:06:55 +0200 (Sa, 21 Jul 2007) | 3 lines
Add longintrepr.h to Python.h, so that the compiler can
see that PyFalse is really some kind of PyObject*.
................
r56480 | martin.v.loewis | 2007-07-21 10:47:18 +0200 (Sa, 21 Jul 2007) | 2 lines
Qualify SHIFT, MASK, BASE.
................
r56482 | martin.v.loewis | 2007-07-21 19:10:57 +0200 (Sa, 21 Jul 2007) | 2 lines
Correctly refer to _ob_next.
................
2007-07-21 14:22:18 -03:00
|
|
|
PyVarObject_HEAD_INIT(NULL, 0)
|
2002-12-16 16:18:38 -04:00
|
|
|
"datetime.date", /* tp_name */
|
|
|
|
sizeof(PyDateTime_Date), /* tp_basicsize */
|
|
|
|
0, /* tp_itemsize */
|
2003-04-14 19:01:58 -03:00
|
|
|
0, /* tp_dealloc */
|
2002-12-16 16:18:38 -04:00
|
|
|
0, /* tp_print */
|
|
|
|
0, /* tp_getattr */
|
|
|
|
0, /* tp_setattr */
|
2009-02-02 16:36:42 -04:00
|
|
|
0, /* tp_reserved */
|
2002-12-16 16:18:38 -04:00
|
|
|
(reprfunc)date_repr, /* tp_repr */
|
|
|
|
&date_as_number, /* tp_as_number */
|
|
|
|
0, /* tp_as_sequence */
|
|
|
|
0, /* tp_as_mapping */
|
|
|
|
(hashfunc)date_hash, /* tp_hash */
|
|
|
|
0, /* tp_call */
|
|
|
|
(reprfunc)date_str, /* tp_str */
|
|
|
|
PyObject_GenericGetAttr, /* tp_getattro */
|
|
|
|
0, /* tp_setattro */
|
|
|
|
0, /* tp_as_buffer */
|
2006-07-27 18:53:35 -03:00
|
|
|
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /* tp_flags */
|
2002-12-16 16:18:38 -04:00
|
|
|
date_doc, /* tp_doc */
|
|
|
|
0, /* tp_traverse */
|
|
|
|
0, /* tp_clear */
|
2006-08-24 14:29:38 -03:00
|
|
|
date_richcompare, /* tp_richcompare */
|
2002-12-16 16:18:38 -04:00
|
|
|
0, /* tp_weaklistoffset */
|
|
|
|
0, /* tp_iter */
|
|
|
|
0, /* tp_iternext */
|
|
|
|
date_methods, /* tp_methods */
|
|
|
|
0, /* tp_members */
|
|
|
|
date_getset, /* tp_getset */
|
|
|
|
0, /* tp_base */
|
|
|
|
0, /* tp_dict */
|
|
|
|
0, /* tp_descr_get */
|
|
|
|
0, /* tp_descr_set */
|
|
|
|
0, /* tp_dictoffset */
|
|
|
|
0, /* tp_init */
|
|
|
|
0, /* tp_alloc */
|
|
|
|
date_new, /* tp_new */
|
2003-05-16 19:44:06 -03:00
|
|
|
0, /* tp_free */
|
2002-12-16 16:18:38 -04:00
|
|
|
};
|
|
|
|
|
|
|
|
/*
|
2003-01-10 23:39:11 -04:00
|
|
|
* PyDateTime_TZInfo implementation.
|
2002-12-16 16:18:38 -04:00
|
|
|
*/
|
|
|
|
|
2003-01-10 23:39:11 -04:00
|
|
|
/* This is a pure abstract base class, so doesn't do anything beyond
|
|
|
|
* raising NotImplemented exceptions. Real tzinfo classes need
|
|
|
|
* to derive from this. This is mostly for clarity, and for efficiency in
|
|
|
|
* datetime and time constructors (their tzinfo arguments need to
|
|
|
|
* be subclasses of this tzinfo class, which is easy and quick to check).
|
|
|
|
*
|
|
|
|
* Note: For reasons having to do with pickling of subclasses, we have
|
|
|
|
* to allow tzinfo objects to be instantiated. This wasn't an issue
|
|
|
|
* in the Python implementation (__init__() could raise NotImplementedError
|
|
|
|
* there without ill effect), but doing so in the C implementation hit a
|
|
|
|
* brick wall.
|
|
|
|
*/
|
2002-12-16 16:18:38 -04:00
|
|
|
|
|
|
|
static PyObject *
|
2003-01-10 23:39:11 -04:00
|
|
|
tzinfo_nogo(const char* methodname)
|
2002-12-16 16:18:38 -04:00
|
|
|
{
|
2003-01-10 23:39:11 -04:00
|
|
|
PyErr_Format(PyExc_NotImplementedError,
|
|
|
|
"a tzinfo subclass must implement %s()",
|
|
|
|
methodname);
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Methods. A subclass must implement these. */
|
|
|
|
|
2003-01-23 12:36:11 -04:00
|
|
|
static PyObject *
|
2003-01-10 23:39:11 -04:00
|
|
|
tzinfo_tzname(PyDateTime_TZInfo *self, PyObject *dt)
|
|
|
|
{
|
|
|
|
return tzinfo_nogo("tzname");
|
|
|
|
}
|
|
|
|
|
2003-01-23 12:36:11 -04:00
|
|
|
static PyObject *
|
2003-01-10 23:39:11 -04:00
|
|
|
tzinfo_utcoffset(PyDateTime_TZInfo *self, PyObject *dt)
|
|
|
|
{
|
|
|
|
return tzinfo_nogo("utcoffset");
|
|
|
|
}
|
|
|
|
|
2003-01-23 12:36:11 -04:00
|
|
|
static PyObject *
|
2003-01-10 23:39:11 -04:00
|
|
|
tzinfo_dst(PyDateTime_TZInfo *self, PyObject *dt)
|
|
|
|
{
|
|
|
|
return tzinfo_nogo("dst");
|
|
|
|
}
|
|
|
|
|
2003-01-23 12:36:11 -04:00
|
|
|
static PyObject *
|
|
|
|
tzinfo_fromutc(PyDateTime_TZInfo *self, PyDateTime_DateTime *dt)
|
|
|
|
{
|
|
|
|
int y, m, d, hh, mm, ss, us;
|
|
|
|
|
|
|
|
PyObject *result;
|
|
|
|
int off, dst;
|
|
|
|
int none;
|
|
|
|
int delta;
|
|
|
|
|
|
|
|
if (! PyDateTime_Check(dt)) {
|
|
|
|
PyErr_SetString(PyExc_TypeError,
|
|
|
|
"fromutc: argument must be a datetime");
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
if (! HASTZINFO(dt) || dt->tzinfo != (PyObject *)self) {
|
|
|
|
PyErr_SetString(PyExc_ValueError, "fromutc: dt.tzinfo "
|
|
|
|
"is not self");
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
|
|
|
|
off = call_utcoffset(dt->tzinfo, (PyObject *)dt, &none);
|
|
|
|
if (off == -1 && PyErr_Occurred())
|
|
|
|
return NULL;
|
|
|
|
if (none) {
|
|
|
|
PyErr_SetString(PyExc_ValueError, "fromutc: non-None "
|
|
|
|
"utcoffset() result required");
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
|
|
|
|
dst = call_dst(dt->tzinfo, (PyObject *)dt, &none);
|
|
|
|
if (dst == -1 && PyErr_Occurred())
|
|
|
|
return NULL;
|
|
|
|
if (none) {
|
|
|
|
PyErr_SetString(PyExc_ValueError, "fromutc: non-None "
|
|
|
|
"dst() result required");
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
|
|
|
|
y = GET_YEAR(dt);
|
|
|
|
m = GET_MONTH(dt);
|
|
|
|
d = GET_DAY(dt);
|
|
|
|
hh = DATE_GET_HOUR(dt);
|
|
|
|
mm = DATE_GET_MINUTE(dt);
|
|
|
|
ss = DATE_GET_SECOND(dt);
|
|
|
|
us = DATE_GET_MICROSECOND(dt);
|
|
|
|
|
|
|
|
delta = off - dst;
|
|
|
|
mm += delta;
|
|
|
|
if ((mm < 0 || mm >= 60) &&
|
|
|
|
normalize_datetime(&y, &m, &d, &hh, &mm, &ss, &us) < 0)
|
2003-01-23 13:20:36 -04:00
|
|
|
return NULL;
|
2003-01-23 12:36:11 -04:00
|
|
|
result = new_datetime(y, m, d, hh, mm, ss, us, dt->tzinfo);
|
|
|
|
if (result == NULL)
|
|
|
|
return result;
|
|
|
|
|
|
|
|
dst = call_dst(dt->tzinfo, result, &none);
|
|
|
|
if (dst == -1 && PyErr_Occurred())
|
|
|
|
goto Fail;
|
|
|
|
if (none)
|
|
|
|
goto Inconsistent;
|
|
|
|
if (dst == 0)
|
|
|
|
return result;
|
|
|
|
|
|
|
|
mm += dst;
|
|
|
|
if ((mm < 0 || mm >= 60) &&
|
|
|
|
normalize_datetime(&y, &m, &d, &hh, &mm, &ss, &us) < 0)
|
|
|
|
goto Fail;
|
|
|
|
Py_DECREF(result);
|
|
|
|
result = new_datetime(y, m, d, hh, mm, ss, us, dt->tzinfo);
|
|
|
|
return result;
|
|
|
|
|
|
|
|
Inconsistent:
|
|
|
|
PyErr_SetString(PyExc_ValueError, "fromutc: tz.dst() gave"
|
|
|
|
"inconsistent results; cannot convert");
|
|
|
|
|
|
|
|
/* fall thru to failure */
|
|
|
|
Fail:
|
|
|
|
Py_DECREF(result);
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
|
2003-01-10 23:39:11 -04:00
|
|
|
/*
|
|
|
|
* Pickle support. This is solely so that tzinfo subclasses can use
|
2003-01-30 18:06:23 -04:00
|
|
|
* pickling -- tzinfo itself is supposed to be uninstantiable.
|
2003-01-10 23:39:11 -04:00
|
|
|
*/
|
|
|
|
|
2003-01-30 18:06:23 -04:00
|
|
|
static PyObject *
|
|
|
|
tzinfo_reduce(PyObject *self)
|
|
|
|
{
|
|
|
|
PyObject *args, *state, *tmp;
|
|
|
|
PyObject *getinitargs, *getstate;
|
2003-01-10 23:39:11 -04:00
|
|
|
|
2003-01-30 18:06:23 -04:00
|
|
|
tmp = PyTuple_New(0);
|
|
|
|
if (tmp == NULL)
|
|
|
|
return NULL;
|
|
|
|
|
|
|
|
getinitargs = PyObject_GetAttrString(self, "__getinitargs__");
|
|
|
|
if (getinitargs != NULL) {
|
|
|
|
args = PyObject_CallObject(getinitargs, tmp);
|
|
|
|
Py_DECREF(getinitargs);
|
|
|
|
if (args == NULL) {
|
|
|
|
Py_DECREF(tmp);
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
PyErr_Clear();
|
|
|
|
args = tmp;
|
|
|
|
Py_INCREF(args);
|
|
|
|
}
|
|
|
|
|
|
|
|
getstate = PyObject_GetAttrString(self, "__getstate__");
|
|
|
|
if (getstate != NULL) {
|
|
|
|
state = PyObject_CallObject(getstate, tmp);
|
|
|
|
Py_DECREF(getstate);
|
|
|
|
if (state == NULL) {
|
|
|
|
Py_DECREF(args);
|
|
|
|
Py_DECREF(tmp);
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
PyObject **dictptr;
|
|
|
|
PyErr_Clear();
|
|
|
|
state = Py_None;
|
|
|
|
dictptr = _PyObject_GetDictPtr(self);
|
|
|
|
if (dictptr && *dictptr && PyDict_Size(*dictptr))
|
|
|
|
state = *dictptr;
|
|
|
|
Py_INCREF(state);
|
|
|
|
}
|
|
|
|
|
|
|
|
Py_DECREF(tmp);
|
2003-01-10 23:39:11 -04:00
|
|
|
|
2003-01-30 18:06:23 -04:00
|
|
|
if (state == Py_None) {
|
|
|
|
Py_DECREF(state);
|
2007-12-18 22:45:37 -04:00
|
|
|
return Py_BuildValue("(ON)", Py_TYPE(self), args);
|
2003-01-30 18:06:23 -04:00
|
|
|
}
|
|
|
|
else
|
2007-12-18 22:45:37 -04:00
|
|
|
return Py_BuildValue("(ONN)", Py_TYPE(self), args, state);
|
2003-01-30 18:06:23 -04:00
|
|
|
}
|
2003-01-10 23:39:11 -04:00
|
|
|
|
|
|
|
static PyMethodDef tzinfo_methods[] = {
|
2003-01-30 18:06:23 -04:00
|
|
|
|
2003-01-10 23:39:11 -04:00
|
|
|
{"tzname", (PyCFunction)tzinfo_tzname, METH_O,
|
|
|
|
PyDoc_STR("datetime -> string name of time zone.")},
|
|
|
|
|
|
|
|
{"utcoffset", (PyCFunction)tzinfo_utcoffset, METH_O,
|
|
|
|
PyDoc_STR("datetime -> minutes east of UTC (negative for "
|
|
|
|
"west of UTC).")},
|
|
|
|
|
|
|
|
{"dst", (PyCFunction)tzinfo_dst, METH_O,
|
|
|
|
PyDoc_STR("datetime -> DST offset in minutes east of UTC.")},
|
|
|
|
|
2003-01-23 12:36:11 -04:00
|
|
|
{"fromutc", (PyCFunction)tzinfo_fromutc, METH_O,
|
|
|
|
PyDoc_STR("datetime in UTC -> datetime in local time.")},
|
|
|
|
|
2003-01-30 18:06:23 -04:00
|
|
|
{"__reduce__", (PyCFunction)tzinfo_reduce, METH_NOARGS,
|
|
|
|
PyDoc_STR("-> (cls, state)")},
|
|
|
|
|
2003-01-10 23:39:11 -04:00
|
|
|
{NULL, NULL}
|
|
|
|
};
|
|
|
|
|
|
|
|
static char tzinfo_doc[] =
|
|
|
|
PyDoc_STR("Abstract base class for time zone info objects.");
|
|
|
|
|
2006-03-22 05:28:35 -04:00
|
|
|
static PyTypeObject PyDateTime_TZInfoType = {
|
Merged revisions 56467-56482 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/p3yk
................
r56477 | martin.v.loewis | 2007-07-21 09:04:38 +0200 (Sa, 21 Jul 2007) | 11 lines
Merged revisions 56466-56476 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r56476 | martin.v.loewis | 2007-07-21 08:55:02 +0200 (Sa, 21 Jul 2007) | 4 lines
PEP 3123: Provide forward compatibility with Python 3.0, while keeping
backwards compatibility. Add Py_Refcnt, Py_Type, Py_Size, and
PyVarObject_HEAD_INIT.
........
................
r56478 | martin.v.loewis | 2007-07-21 09:47:23 +0200 (Sa, 21 Jul 2007) | 2 lines
PEP 3123: Use proper C inheritance for PyObject.
................
r56479 | martin.v.loewis | 2007-07-21 10:06:55 +0200 (Sa, 21 Jul 2007) | 3 lines
Add longintrepr.h to Python.h, so that the compiler can
see that PyFalse is really some kind of PyObject*.
................
r56480 | martin.v.loewis | 2007-07-21 10:47:18 +0200 (Sa, 21 Jul 2007) | 2 lines
Qualify SHIFT, MASK, BASE.
................
r56482 | martin.v.loewis | 2007-07-21 19:10:57 +0200 (Sa, 21 Jul 2007) | 2 lines
Correctly refer to _ob_next.
................
2007-07-21 14:22:18 -03:00
|
|
|
PyVarObject_HEAD_INIT(NULL, 0)
|
2003-01-10 23:39:11 -04:00
|
|
|
"datetime.tzinfo", /* tp_name */
|
|
|
|
sizeof(PyDateTime_TZInfo), /* tp_basicsize */
|
|
|
|
0, /* tp_itemsize */
|
|
|
|
0, /* tp_dealloc */
|
|
|
|
0, /* tp_print */
|
|
|
|
0, /* tp_getattr */
|
|
|
|
0, /* tp_setattr */
|
2009-02-02 16:36:42 -04:00
|
|
|
0, /* tp_reserved */
|
2003-01-10 23:39:11 -04:00
|
|
|
0, /* tp_repr */
|
|
|
|
0, /* tp_as_number */
|
|
|
|
0, /* tp_as_sequence */
|
|
|
|
0, /* tp_as_mapping */
|
|
|
|
0, /* tp_hash */
|
|
|
|
0, /* tp_call */
|
|
|
|
0, /* tp_str */
|
|
|
|
PyObject_GenericGetAttr, /* tp_getattro */
|
|
|
|
0, /* tp_setattro */
|
|
|
|
0, /* tp_as_buffer */
|
2006-07-27 18:53:35 -03:00
|
|
|
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /* tp_flags */
|
2003-01-10 23:39:11 -04:00
|
|
|
tzinfo_doc, /* tp_doc */
|
|
|
|
0, /* tp_traverse */
|
|
|
|
0, /* tp_clear */
|
|
|
|
0, /* tp_richcompare */
|
|
|
|
0, /* tp_weaklistoffset */
|
|
|
|
0, /* tp_iter */
|
|
|
|
0, /* tp_iternext */
|
|
|
|
tzinfo_methods, /* tp_methods */
|
|
|
|
0, /* tp_members */
|
|
|
|
0, /* tp_getset */
|
|
|
|
0, /* tp_base */
|
|
|
|
0, /* tp_dict */
|
|
|
|
0, /* tp_descr_get */
|
|
|
|
0, /* tp_descr_set */
|
|
|
|
0, /* tp_dictoffset */
|
|
|
|
0, /* tp_init */
|
|
|
|
0, /* tp_alloc */
|
|
|
|
PyType_GenericNew, /* tp_new */
|
|
|
|
0, /* tp_free */
|
|
|
|
};
|
|
|
|
|
|
|
|
/*
|
|
|
|
* PyDateTime_Time implementation.
|
|
|
|
*/
|
|
|
|
|
|
|
|
/* Accessor properties.
|
|
|
|
*/
|
|
|
|
|
|
|
|
static PyObject *
|
|
|
|
time_hour(PyDateTime_Time *self, void *unused)
|
|
|
|
{
|
2007-12-02 10:31:20 -04:00
|
|
|
return PyLong_FromLong(TIME_GET_HOUR(self));
|
2002-12-16 16:18:38 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
static PyObject *
|
2003-01-10 23:39:11 -04:00
|
|
|
time_minute(PyDateTime_Time *self, void *unused)
|
2002-12-16 16:18:38 -04:00
|
|
|
{
|
2007-12-02 10:31:20 -04:00
|
|
|
return PyLong_FromLong(TIME_GET_MINUTE(self));
|
2002-12-16 16:18:38 -04:00
|
|
|
}
|
|
|
|
|
2003-01-10 23:39:11 -04:00
|
|
|
/* The name time_second conflicted with some platform header file. */
|
2002-12-16 16:18:38 -04:00
|
|
|
static PyObject *
|
2003-01-10 23:39:11 -04:00
|
|
|
py_time_second(PyDateTime_Time *self, void *unused)
|
2002-12-16 16:18:38 -04:00
|
|
|
{
|
2007-12-02 10:31:20 -04:00
|
|
|
return PyLong_FromLong(TIME_GET_SECOND(self));
|
2002-12-16 16:18:38 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
static PyObject *
|
2003-01-10 23:39:11 -04:00
|
|
|
time_microsecond(PyDateTime_Time *self, void *unused)
|
2002-12-16 16:18:38 -04:00
|
|
|
{
|
2007-12-02 10:31:20 -04:00
|
|
|
return PyLong_FromLong(TIME_GET_MICROSECOND(self));
|
2002-12-16 16:18:38 -04:00
|
|
|
}
|
|
|
|
|
2003-01-10 23:39:11 -04:00
|
|
|
static PyObject *
|
|
|
|
time_tzinfo(PyDateTime_Time *self, void *unused)
|
|
|
|
{
|
|
|
|
PyObject *result = HASTZINFO(self) ? self->tzinfo : Py_None;
|
|
|
|
Py_INCREF(result);
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
|
|
|
static PyGetSetDef time_getset[] = {
|
|
|
|
{"hour", (getter)time_hour},
|
|
|
|
{"minute", (getter)time_minute},
|
|
|
|
{"second", (getter)py_time_second},
|
|
|
|
{"microsecond", (getter)time_microsecond},
|
|
|
|
{"tzinfo", (getter)time_tzinfo},
|
2002-12-16 16:18:38 -04:00
|
|
|
{NULL}
|
|
|
|
};
|
|
|
|
|
2003-01-10 23:39:11 -04:00
|
|
|
/*
|
|
|
|
* Constructors.
|
|
|
|
*/
|
2002-12-24 01:41:27 -04:00
|
|
|
|
2006-02-27 13:20:04 -04:00
|
|
|
static char *time_kws[] = {"hour", "minute", "second", "microsecond",
|
2003-01-10 23:39:11 -04:00
|
|
|
"tzinfo", NULL};
|
2002-12-24 01:41:27 -04:00
|
|
|
|
2002-12-16 16:18:38 -04:00
|
|
|
static PyObject *
|
2003-01-10 23:39:11 -04:00
|
|
|
time_new(PyTypeObject *type, PyObject *args, PyObject *kw)
|
2002-12-16 16:18:38 -04:00
|
|
|
{
|
|
|
|
PyObject *self = NULL;
|
2003-02-01 00:40:04 -04:00
|
|
|
PyObject *state;
|
2002-12-16 16:18:38 -04:00
|
|
|
int hour = 0;
|
|
|
|
int minute = 0;
|
|
|
|
int second = 0;
|
|
|
|
int usecond = 0;
|
2003-01-10 23:39:11 -04:00
|
|
|
PyObject *tzinfo = Py_None;
|
2002-12-16 16:18:38 -04:00
|
|
|
|
2003-01-30 18:06:23 -04:00
|
|
|
/* Check for invocation from pickle with __getstate__ state */
|
|
|
|
if (PyTuple_GET_SIZE(args) >= 1 &&
|
|
|
|
PyTuple_GET_SIZE(args) <= 2 &&
|
2008-05-26 10:28:38 -03:00
|
|
|
PyBytes_Check(state = PyTuple_GET_ITEM(args, 0)) &&
|
|
|
|
PyBytes_GET_SIZE(state) == _PyDateTime_TIME_DATASIZE &&
|
|
|
|
((unsigned char) (PyBytes_AS_STRING(state)[0])) < 24)
|
2003-01-30 18:06:23 -04:00
|
|
|
{
|
2003-02-01 00:40:04 -04:00
|
|
|
PyDateTime_Time *me;
|
|
|
|
char aware;
|
|
|
|
|
|
|
|
if (PyTuple_GET_SIZE(args) == 2) {
|
2003-01-30 18:06:23 -04:00
|
|
|
tzinfo = PyTuple_GET_ITEM(args, 1);
|
2003-02-01 00:40:04 -04:00
|
|
|
if (check_tzinfo_subclass(tzinfo) < 0) {
|
|
|
|
PyErr_SetString(PyExc_TypeError, "bad "
|
|
|
|
"tzinfo state arg");
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
aware = (char)(tzinfo != Py_None);
|
2004-06-07 20:04:33 -03:00
|
|
|
me = (PyDateTime_Time *) (type->tp_alloc(type, aware));
|
2003-02-01 00:40:04 -04:00
|
|
|
if (me != NULL) {
|
2008-05-26 10:28:38 -03:00
|
|
|
char *pdata = PyBytes_AS_STRING(state);
|
2003-02-01 00:40:04 -04:00
|
|
|
|
|
|
|
memcpy(me->data, pdata, _PyDateTime_TIME_DATASIZE);
|
|
|
|
me->hashcode = -1;
|
|
|
|
me->hastzinfo = aware;
|
|
|
|
if (aware) {
|
|
|
|
Py_INCREF(tzinfo);
|
|
|
|
me->tzinfo = tzinfo;
|
2003-01-30 18:06:23 -04:00
|
|
|
}
|
|
|
|
}
|
2003-02-01 00:40:04 -04:00
|
|
|
return (PyObject *)me;
|
2003-01-30 18:06:23 -04:00
|
|
|
}
|
|
|
|
|
2003-01-10 23:39:11 -04:00
|
|
|
if (PyArg_ParseTupleAndKeywords(args, kw, "|iiiiO", time_kws,
|
|
|
|
&hour, &minute, &second, &usecond,
|
|
|
|
&tzinfo)) {
|
2002-12-16 16:18:38 -04:00
|
|
|
if (check_time_args(hour, minute, second, usecond) < 0)
|
|
|
|
return NULL;
|
2003-01-10 23:39:11 -04:00
|
|
|
if (check_tzinfo_subclass(tzinfo) < 0)
|
|
|
|
return NULL;
|
2003-05-17 02:55:19 -03:00
|
|
|
self = new_time_ex(hour, minute, second, usecond, tzinfo,
|
|
|
|
type);
|
2002-12-16 16:18:38 -04:00
|
|
|
}
|
|
|
|
return self;
|
|
|
|
}
|
|
|
|
|
2003-01-10 23:39:11 -04:00
|
|
|
/*
|
|
|
|
* Destructor.
|
|
|
|
*/
|
2002-12-16 16:18:38 -04:00
|
|
|
|
2003-01-10 23:39:11 -04:00
|
|
|
static void
|
|
|
|
time_dealloc(PyDateTime_Time *self)
|
|
|
|
{
|
|
|
|
if (HASTZINFO(self)) {
|
|
|
|
Py_XDECREF(self->tzinfo);
|
|
|
|
}
|
2007-12-18 22:45:37 -04:00
|
|
|
Py_TYPE(self)->tp_free((PyObject *)self);
|
2003-01-10 23:39:11 -04:00
|
|
|
}
|
2002-12-16 16:18:38 -04:00
|
|
|
|
2003-01-10 23:39:11 -04:00
|
|
|
/*
|
|
|
|
* Indirect access to tzinfo methods.
|
2002-12-16 16:18:38 -04:00
|
|
|
*/
|
2003-01-10 23:39:11 -04:00
|
|
|
|
|
|
|
/* These are all METH_NOARGS, so don't need to check the arglist. */
|
2002-12-16 16:18:38 -04:00
|
|
|
static PyObject *
|
2003-01-10 23:39:11 -04:00
|
|
|
time_utcoffset(PyDateTime_Time *self, PyObject *unused) {
|
|
|
|
return offset_as_timedelta(HASTZINFO(self) ? self->tzinfo : Py_None,
|
|
|
|
"utcoffset", Py_None);
|
|
|
|
}
|
2003-01-09 23:49:02 -04:00
|
|
|
|
|
|
|
static PyObject *
|
|
|
|
time_dst(PyDateTime_Time *self, PyObject *unused) {
|
2003-01-10 20:15:54 -04:00
|
|
|
return offset_as_timedelta(HASTZINFO(self) ? self->tzinfo : Py_None,
|
2003-01-09 23:49:02 -04:00
|
|
|
"dst", Py_None);
|
|
|
|
}
|
|
|
|
|
|
|
|
static PyObject *
|
|
|
|
time_tzname(PyDateTime_Time *self, PyObject *unused) {
|
2003-01-10 20:15:54 -04:00
|
|
|
return call_tzname(HASTZINFO(self) ? self->tzinfo : Py_None,
|
2003-01-09 23:49:02 -04:00
|
|
|
Py_None);
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Various ways to turn a time into a string.
|
|
|
|
*/
|
2002-12-16 16:18:38 -04:00
|
|
|
|
|
|
|
static PyObject *
|
|
|
|
time_repr(PyDateTime_Time *self)
|
|
|
|
{
|
2007-12-18 22:45:37 -04:00
|
|
|
const char *type_name = Py_TYPE(self)->tp_name;
|
2002-12-16 16:18:38 -04:00
|
|
|
int h = TIME_GET_HOUR(self);
|
|
|
|
int m = TIME_GET_MINUTE(self);
|
|
|
|
int s = TIME_GET_SECOND(self);
|
|
|
|
int us = TIME_GET_MICROSECOND(self);
|
2003-01-09 23:49:02 -04:00
|
|
|
PyObject *result = NULL;
|
2002-12-16 16:18:38 -04:00
|
|
|
|
|
|
|
if (us)
|
2007-05-19 18:49:49 -03:00
|
|
|
result = PyUnicode_FromFormat("%s(%d, %d, %d, %d)",
|
|
|
|
type_name, h, m, s, us);
|
2002-12-16 16:18:38 -04:00
|
|
|
else if (s)
|
2007-05-19 18:49:49 -03:00
|
|
|
result = PyUnicode_FromFormat("%s(%d, %d, %d)",
|
|
|
|
type_name, h, m, s);
|
2002-12-16 16:18:38 -04:00
|
|
|
else
|
2007-05-19 18:49:49 -03:00
|
|
|
result = PyUnicode_FromFormat("%s(%d, %d)", type_name, h, m);
|
2003-01-10 20:15:54 -04:00
|
|
|
if (result != NULL && HASTZINFO(self))
|
2003-01-09 23:49:02 -04:00
|
|
|
result = append_keyword_tzinfo(result, self->tzinfo);
|
|
|
|
return result;
|
2002-12-16 16:18:38 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
static PyObject *
|
|
|
|
time_str(PyDateTime_Time *self)
|
|
|
|
{
|
|
|
|
return PyObject_CallMethod((PyObject *)self, "isoformat", "()");
|
|
|
|
}
|
|
|
|
|
|
|
|
static PyObject *
|
Merged revisions 53623-53858 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r53624 | peter.astrand | 2007-02-02 20:06:36 +0100 (Fri, 02 Feb 2007) | 1 line
We had several if statements checking the value of a fd. This is unsafe, since valid fds might be zero. We should check for not None instead.
........
r53635 | kurt.kaiser | 2007-02-05 07:03:18 +0100 (Mon, 05 Feb 2007) | 2 lines
Add 'raw' support to configHandler. Patch 1650174 Tal Einat.
........
r53641 | kurt.kaiser | 2007-02-06 00:02:16 +0100 (Tue, 06 Feb 2007) | 5 lines
1. Calltips now 'handle' tuples in the argument list (display '<tuple>' :)
Suggested solution by Christos Georgiou, Bug 791968.
2. Clean up tests, were not failing when they should have been.
4. Remove some camelcase and an unneeded try/except block.
........
r53644 | kurt.kaiser | 2007-02-06 04:21:40 +0100 (Tue, 06 Feb 2007) | 2 lines
Clean up ModifiedInterpreter.runcode() structure
........
r53646 | peter.astrand | 2007-02-06 16:37:50 +0100 (Tue, 06 Feb 2007) | 1 line
Applied patch 1124861.3.patch to solve bug #1124861: Automatically create pipes on Windows, if GetStdHandle fails. Will backport.
........
r53648 | lars.gustaebel | 2007-02-06 19:38:13 +0100 (Tue, 06 Feb 2007) | 4 lines
Patch #1652681: create nonexistent files in append mode and
allow appending to empty files.
........
r53649 | kurt.kaiser | 2007-02-06 20:09:43 +0100 (Tue, 06 Feb 2007) | 4 lines
Updated patch (CodeContext.061217.patch) to
[ 1362975 ] CodeContext - Improved text indentation
Tal Einat 16Dec06
........
r53650 | kurt.kaiser | 2007-02-06 20:21:19 +0100 (Tue, 06 Feb 2007) | 2 lines
narrow exception per [ 1540849 ] except too broad
........
r53653 | kurt.kaiser | 2007-02-07 04:39:41 +0100 (Wed, 07 Feb 2007) | 4 lines
[ 1621265 ] Auto-completion list placement
Move AC window below input line unless not enough space, then put it above.
Patch: Tal Einat
........
r53654 | kurt.kaiser | 2007-02-07 09:07:13 +0100 (Wed, 07 Feb 2007) | 2 lines
Handle AttributeError during calltip lookup
........
r53656 | raymond.hettinger | 2007-02-07 21:08:22 +0100 (Wed, 07 Feb 2007) | 3 lines
SF #1615701: make d.update(m) honor __getitem__() and keys() in dict subclasses
........
r53658 | raymond.hettinger | 2007-02-07 22:04:20 +0100 (Wed, 07 Feb 2007) | 1 line
SF: 1397711 Set docs conflated immutable and hashable
........
r53660 | raymond.hettinger | 2007-02-07 22:42:17 +0100 (Wed, 07 Feb 2007) | 1 line
Check for a common user error with defaultdict().
........
r53662 | raymond.hettinger | 2007-02-07 23:24:07 +0100 (Wed, 07 Feb 2007) | 1 line
Bug #1575169: operator.isSequenceType() now returns False for subclasses of dict.
........
r53664 | raymond.hettinger | 2007-02-08 00:49:03 +0100 (Thu, 08 Feb 2007) | 1 line
Silence compiler warning
........
r53666 | raymond.hettinger | 2007-02-08 01:07:32 +0100 (Thu, 08 Feb 2007) | 1 line
Do not let overflows in enumerate() and count() pass silently.
........
r53668 | raymond.hettinger | 2007-02-08 01:50:39 +0100 (Thu, 08 Feb 2007) | 1 line
Bypass set specific optimizations for set and frozenset subclasses.
........
r53670 | raymond.hettinger | 2007-02-08 02:42:35 +0100 (Thu, 08 Feb 2007) | 1 line
Fix docstring bug
........
r53671 | martin.v.loewis | 2007-02-08 10:13:36 +0100 (Thu, 08 Feb 2007) | 3 lines
Bug #1653736: Complain about keyword arguments to time.isoformat.
Will backport to 2.5.
........
r53679 | kurt.kaiser | 2007-02-08 23:58:18 +0100 (Thu, 08 Feb 2007) | 6 lines
Corrected some bugs in AutoComplete. Also, Page Up/Down in ACW implemented;
mouse and cursor selection in ACWindow implemented; double Tab inserts current
selection and closes ACW (similar to double-click and Return); scroll wheel now
works in ACW. Added AutoComplete instructions to IDLE Help.
........
r53689 | martin.v.loewis | 2007-02-09 13:19:32 +0100 (Fri, 09 Feb 2007) | 3 lines
Bug #1653736: Properly discard third argument to slot_nb_inplace_power.
Will backport.
........
r53691 | martin.v.loewis | 2007-02-09 13:36:48 +0100 (Fri, 09 Feb 2007) | 4 lines
Bug #1600860: Search for shared python library in LIBDIR, not
lib/python/config, on "linux" and "gnu" systems.
Will backport.
........
r53693 | martin.v.loewis | 2007-02-09 13:58:49 +0100 (Fri, 09 Feb 2007) | 2 lines
Update broken link. Will backport to 2.5.
........
r53697 | georg.brandl | 2007-02-09 19:48:41 +0100 (Fri, 09 Feb 2007) | 2 lines
Bug #1656078: typo in in profile docs.
........
r53731 | brett.cannon | 2007-02-11 06:36:00 +0100 (Sun, 11 Feb 2007) | 3 lines
Change a very minor inconsistency (that is purely cosmetic) in the AST
definition.
........
r53735 | skip.montanaro | 2007-02-11 19:24:37 +0100 (Sun, 11 Feb 2007) | 1 line
fix trace.py --ignore-dir
........
r53741 | brett.cannon | 2007-02-11 20:44:41 +0100 (Sun, 11 Feb 2007) | 3 lines
Check in changed Python-ast.c from a cosmetic change to Python.asdl (in
r53731).
........
r53751 | brett.cannon | 2007-02-12 04:51:02 +0100 (Mon, 12 Feb 2007) | 5 lines
Modify Parser/asdl_c.py so that the __version__ number for Python/Python-ast.c
is specified at the top of the file. Also add a note that Python/Python-ast.c
needs to be committed separately after a change to the AST grammar to capture
the revision number of the change (which is what __version__ is set to).
........
r53752 | lars.gustaebel | 2007-02-12 10:25:53 +0100 (Mon, 12 Feb 2007) | 3 lines
Bug #1656581: Point out that external file objects are supposed to be
at position 0.
........
r53754 | martin.v.loewis | 2007-02-12 13:21:10 +0100 (Mon, 12 Feb 2007) | 3 lines
Patch 1463026: Support default namespace in XMLGenerator.
Fixes #847665. Will backport.
........
r53757 | armin.rigo | 2007-02-12 17:23:24 +0100 (Mon, 12 Feb 2007) | 4 lines
Fix the line to what is my guess at the original author's meaning.
(The line has no effect anyway, but is present because it's
customary call the base class __init__).
........
r53763 | martin.v.loewis | 2007-02-13 09:34:45 +0100 (Tue, 13 Feb 2007) | 3 lines
Patch #685268: Consider a package's __path__ in imputil.
Will backport.
........
r53765 | martin.v.loewis | 2007-02-13 10:49:38 +0100 (Tue, 13 Feb 2007) | 2 lines
Patch #698833: Support file decryption in zipfile.
........
r53766 | martin.v.loewis | 2007-02-13 11:10:39 +0100 (Tue, 13 Feb 2007) | 3 lines
Patch #1517891: Make 'a' create the file if it doesn't exist.
Fixes #1514451.
........
r53767 | martin.v.loewis | 2007-02-13 13:08:24 +0100 (Tue, 13 Feb 2007) | 3 lines
Bug #1658794: Remove extraneous 'this'.
Will backport to 2.5.
........
r53769 | martin.v.loewis | 2007-02-13 13:14:19 +0100 (Tue, 13 Feb 2007) | 3 lines
Patch #1657276: Make NETLINK_DNRTMSG conditional.
Will backport.
........
r53771 | lars.gustaebel | 2007-02-13 17:09:24 +0100 (Tue, 13 Feb 2007) | 4 lines
Patch #1647484: Renamed GzipFile's filename attribute to name. The
filename attribute is still accessible as a property that emits a
DeprecationWarning.
........
r53772 | lars.gustaebel | 2007-02-13 17:24:00 +0100 (Tue, 13 Feb 2007) | 3 lines
Strip the '.gz' extension from the filename that is written to the
gzip header.
........
r53774 | martin.v.loewis | 2007-02-14 11:07:37 +0100 (Wed, 14 Feb 2007) | 2 lines
Patch #1432399: Add HCI sockets.
........
r53775 | martin.v.loewis | 2007-02-14 12:30:07 +0100 (Wed, 14 Feb 2007) | 2 lines
Update 1432399 to removal of _BT_SOCKADDR_MEMB.
........
r53776 | martin.v.loewis | 2007-02-14 12:30:56 +0100 (Wed, 14 Feb 2007) | 3 lines
Ignore directory time stamps when considering
whether to rerun libffi configure.
........
r53778 | lars.gustaebel | 2007-02-14 15:45:12 +0100 (Wed, 14 Feb 2007) | 4 lines
A missing binary mode in AppendTest caused failures in Windows
Buildbot.
........
r53782 | martin.v.loewis | 2007-02-15 10:51:35 +0100 (Thu, 15 Feb 2007) | 2 lines
Patch #1397848: add the reasoning behind no-resize-on-shrinkage.
........
r53783 | georg.brandl | 2007-02-15 11:37:59 +0100 (Thu, 15 Feb 2007) | 2 lines
Make functools.wraps() docs a bit clearer.
........
r53785 | georg.brandl | 2007-02-15 12:29:04 +0100 (Thu, 15 Feb 2007) | 2 lines
Patch #1494140: Add documentation for the new struct.Struct object.
........
r53787 | georg.brandl | 2007-02-15 12:29:55 +0100 (Thu, 15 Feb 2007) | 2 lines
Add missing \versionadded.
........
r53800 | brett.cannon | 2007-02-15 23:54:39 +0100 (Thu, 15 Feb 2007) | 11 lines
Update the encoding package's search function to use absolute imports when
calling __import__. This helps make the expected search locations for encoding
modules be more explicit.
One could use an explicit value for __path__ when making the call to __import__
to force the exact location searched for encodings. This would give the most
strict search path possible if one is worried about malicious code being
imported. The unfortunate side-effect of that is that if __path__ was modified
on 'encodings' on purpose in a safe way it would not be picked up in future
__import__ calls.
........
r53801 | brett.cannon | 2007-02-16 20:33:01 +0100 (Fri, 16 Feb 2007) | 2 lines
Make the __import__ call in encodings.__init__ absolute with a level 0 call.
........
r53809 | vinay.sajip | 2007-02-16 23:36:24 +0100 (Fri, 16 Feb 2007) | 1 line
Minor fix for currentframe (SF #1652788).
........
r53818 | raymond.hettinger | 2007-02-19 03:03:19 +0100 (Mon, 19 Feb 2007) | 3 lines
Extend work on revision 52962: Eliminate redundant calls to PyObject_Hash().
........
r53820 | raymond.hettinger | 2007-02-19 05:08:43 +0100 (Mon, 19 Feb 2007) | 1 line
Add merge() function to heapq.
........
r53821 | raymond.hettinger | 2007-02-19 06:28:28 +0100 (Mon, 19 Feb 2007) | 1 line
Add tie-breaker count to preserve sort stability.
........
r53822 | raymond.hettinger | 2007-02-19 07:59:32 +0100 (Mon, 19 Feb 2007) | 1 line
Use C heapreplace() instead of slower _siftup() in pure python.
........
r53823 | raymond.hettinger | 2007-02-19 08:30:21 +0100 (Mon, 19 Feb 2007) | 1 line
Add test for merge stability
........
r53824 | raymond.hettinger | 2007-02-19 10:14:10 +0100 (Mon, 19 Feb 2007) | 1 line
Provide an example of defaultdict with non-zero constant factory function.
........
r53825 | lars.gustaebel | 2007-02-19 10:54:47 +0100 (Mon, 19 Feb 2007) | 2 lines
Moved misplaced news item.
........
r53826 | martin.v.loewis | 2007-02-19 11:55:19 +0100 (Mon, 19 Feb 2007) | 3 lines
Patch #1490190: posixmodule now includes os.chflags() and os.lchflags()
functions on platforms where the underlying system calls are available.
........
r53827 | raymond.hettinger | 2007-02-19 19:15:04 +0100 (Mon, 19 Feb 2007) | 1 line
Fixup docstrings for merge().
........
r53829 | raymond.hettinger | 2007-02-19 21:44:04 +0100 (Mon, 19 Feb 2007) | 1 line
Fixup set/dict interoperability.
........
r53837 | raymond.hettinger | 2007-02-21 06:20:38 +0100 (Wed, 21 Feb 2007) | 1 line
Add itertools.izip_longest().
........
r53838 | raymond.hettinger | 2007-02-21 18:22:05 +0100 (Wed, 21 Feb 2007) | 1 line
Remove filler struct item and fix leak.
........
2007-02-23 11:07:44 -04:00
|
|
|
time_isoformat(PyDateTime_Time *self, PyObject *unused)
|
2002-12-16 16:18:38 -04:00
|
|
|
{
|
2003-01-09 23:49:02 -04:00
|
|
|
char buf[100];
|
|
|
|
PyObject *result;
|
2007-05-31 14:50:48 -03:00
|
|
|
int us = TIME_GET_MICROSECOND(self);;
|
2002-12-16 16:18:38 -04:00
|
|
|
|
2007-05-31 14:50:48 -03:00
|
|
|
if (us)
|
|
|
|
result = PyUnicode_FromFormat("%02d:%02d:%02d.%06d",
|
|
|
|
TIME_GET_HOUR(self),
|
|
|
|
TIME_GET_MINUTE(self),
|
|
|
|
TIME_GET_SECOND(self),
|
|
|
|
us);
|
|
|
|
else
|
|
|
|
result = PyUnicode_FromFormat("%02d:%02d:%02d",
|
|
|
|
TIME_GET_HOUR(self),
|
|
|
|
TIME_GET_MINUTE(self),
|
|
|
|
TIME_GET_SECOND(self));
|
2002-12-16 16:18:38 -04:00
|
|
|
|
2003-01-10 20:15:54 -04:00
|
|
|
if (result == NULL || ! HASTZINFO(self) || self->tzinfo == Py_None)
|
2003-01-09 23:49:02 -04:00
|
|
|
return result;
|
|
|
|
|
|
|
|
/* We need to append the UTC offset. */
|
|
|
|
if (format_utcoffset(buf, sizeof(buf), ":", self->tzinfo,
|
|
|
|
Py_None) < 0) {
|
|
|
|
Py_DECREF(result);
|
|
|
|
return NULL;
|
|
|
|
}
|
2007-05-31 14:50:48 -03:00
|
|
|
PyUnicode_AppendAndDel(&result, PyUnicode_FromString(buf));
|
2003-01-09 23:49:02 -04:00
|
|
|
return result;
|
2002-12-16 16:18:38 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
static PyObject *
|
|
|
|
time_strftime(PyDateTime_Time *self, PyObject *args, PyObject *kw)
|
|
|
|
{
|
|
|
|
PyObject *result;
|
|
|
|
PyObject *tuple;
|
Merged revisions 63562,63570,63728,63734,63784,63788,63802,63817,63827,63839,63887,63975,63998 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r63562 | martin.v.loewis | 2008-05-23 17:06:50 +0200 (Fri, 23 May 2008) | 2 lines
Patch #1722225: Support QNX 6.
........
r63570 | trent.nelson | 2008-05-23 22:33:14 +0200 (Fri, 23 May 2008) | 1 line
Introduce a user macro named $(externalsDir), which should point to the root directory of where all the external sources should live. Developers can change this value if their external sources live elsewhere. The default of '..\..' matches the current status quo.
........
r63728 | gregory.p.smith | 2008-05-26 23:16:34 +0200 (Mon, 26 May 2008) | 4 lines
Fix issue2589: there was a potential integer overflow leading to
memory corruption on esoteric platforms and incorrect behavior on
normal platforms.
........
r63734 | gregory.p.smith | 2008-05-27 00:07:28 +0200 (Tue, 27 May 2008) | 3 lines
Fix issue2588: Do not execute str[size-1] = '\0' when a 0 size is
passed in. (The assert won't prevent this in non-debug builds).
........
r63784 | raymond.hettinger | 2008-05-29 10:38:23 +0200 (Thu, 29 May 2008) | 1 line
Fix two typos.
........
r63788 | facundo.batista | 2008-05-29 18:39:26 +0200 (Thu, 29 May 2008) | 6 lines
Fixed the semantic of timeout for socket.create_connection and
all the upper level libraries that use it, including urllib2.
Added and fixed some tests, and changed docs correspondingly.
Thanks to John J Lee for the patch and the pusing, :)
........
r63802 | mark.dickinson | 2008-05-30 04:46:53 +0200 (Fri, 30 May 2008) | 2 lines
Fix typo in testSum
........
r63817 | raymond.hettinger | 2008-05-30 20:20:50 +0200 (Fri, 30 May 2008) | 8 lines
* Mark intermedidate computes values (hi, lo, yr) as volatile.
* Expand comments.
* Swap variable names in the sum_exact code so that x and y
are consistently chosen as the larger and smaller magnitude
values respectively.
........
r63827 | raymond.hettinger | 2008-05-31 05:24:31 +0200 (Sat, 31 May 2008) | 1 line
Implement heapq in terms of less-than (to match list.sort()).
........
r63839 | gerhard.haering | 2008-05-31 23:33:27 +0200 (Sat, 31 May 2008) | 2 lines
Fixed rowcount for SELECT statements. They're -1 now (again), for better DB-API 2.0 compliance.
........
r63887 | gregory.p.smith | 2008-06-02 06:05:52 +0200 (Mon, 02 Jun 2008) | 4 lines
Fix issue 2782: be less strict about the format string type in strftime.
Accept unicode and anything else ParseTuple "s#" can deal with. This
matches the time.strftime behavior.
........
r63975 | neal.norwitz | 2008-06-06 06:47:01 +0200 (Fri, 06 Jun 2008) | 3 lines
Aldo Cortesi confirmed this is still needed for OpenBSD 4.2 and 4.3.
(I didn't regen configure, since I don't have a working autoconf.)
........
r63998 | raymond.hettinger | 2008-06-06 23:47:51 +0200 (Fri, 06 Jun 2008) | 1 line
Issue 3501: Make heapq support both __le__ and __lt__.
........
2008-06-10 14:40:04 -03:00
|
|
|
PyObject *format;
|
2006-02-27 13:20:04 -04:00
|
|
|
static char *keywords[] = {"format", NULL};
|
2002-12-16 16:18:38 -04:00
|
|
|
|
2007-11-06 17:34:58 -04:00
|
|
|
if (! PyArg_ParseTupleAndKeywords(args, kw, "U:strftime", keywords,
|
2007-05-10 15:04:33 -03:00
|
|
|
&format))
|
2002-12-16 16:18:38 -04:00
|
|
|
return NULL;
|
|
|
|
|
2002-12-22 16:34:46 -04:00
|
|
|
/* Python's strftime does insane things with the year part of the
|
|
|
|
* timetuple. The year is forced to (the otherwise nonsensical)
|
|
|
|
* 1900 to worm around that.
|
|
|
|
*/
|
2002-12-16 16:18:38 -04:00
|
|
|
tuple = Py_BuildValue("iiiiiiiii",
|
2004-03-02 00:38:10 -04:00
|
|
|
1900, 1, 1, /* year, month, day */
|
2002-12-16 16:18:38 -04:00
|
|
|
TIME_GET_HOUR(self),
|
|
|
|
TIME_GET_MINUTE(self),
|
|
|
|
TIME_GET_SECOND(self),
|
2004-03-02 00:38:10 -04:00
|
|
|
0, 1, -1); /* weekday, daynum, dst */
|
2002-12-16 16:18:38 -04:00
|
|
|
if (tuple == NULL)
|
|
|
|
return NULL;
|
|
|
|
assert(PyTuple_Size(tuple) == 9);
|
Merged revisions 63562,63570,63728,63734,63784,63788,63802,63817,63827,63839,63887,63975,63998 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r63562 | martin.v.loewis | 2008-05-23 17:06:50 +0200 (Fri, 23 May 2008) | 2 lines
Patch #1722225: Support QNX 6.
........
r63570 | trent.nelson | 2008-05-23 22:33:14 +0200 (Fri, 23 May 2008) | 1 line
Introduce a user macro named $(externalsDir), which should point to the root directory of where all the external sources should live. Developers can change this value if their external sources live elsewhere. The default of '..\..' matches the current status quo.
........
r63728 | gregory.p.smith | 2008-05-26 23:16:34 +0200 (Mon, 26 May 2008) | 4 lines
Fix issue2589: there was a potential integer overflow leading to
memory corruption on esoteric platforms and incorrect behavior on
normal platforms.
........
r63734 | gregory.p.smith | 2008-05-27 00:07:28 +0200 (Tue, 27 May 2008) | 3 lines
Fix issue2588: Do not execute str[size-1] = '\0' when a 0 size is
passed in. (The assert won't prevent this in non-debug builds).
........
r63784 | raymond.hettinger | 2008-05-29 10:38:23 +0200 (Thu, 29 May 2008) | 1 line
Fix two typos.
........
r63788 | facundo.batista | 2008-05-29 18:39:26 +0200 (Thu, 29 May 2008) | 6 lines
Fixed the semantic of timeout for socket.create_connection and
all the upper level libraries that use it, including urllib2.
Added and fixed some tests, and changed docs correspondingly.
Thanks to John J Lee for the patch and the pusing, :)
........
r63802 | mark.dickinson | 2008-05-30 04:46:53 +0200 (Fri, 30 May 2008) | 2 lines
Fix typo in testSum
........
r63817 | raymond.hettinger | 2008-05-30 20:20:50 +0200 (Fri, 30 May 2008) | 8 lines
* Mark intermedidate computes values (hi, lo, yr) as volatile.
* Expand comments.
* Swap variable names in the sum_exact code so that x and y
are consistently chosen as the larger and smaller magnitude
values respectively.
........
r63827 | raymond.hettinger | 2008-05-31 05:24:31 +0200 (Sat, 31 May 2008) | 1 line
Implement heapq in terms of less-than (to match list.sort()).
........
r63839 | gerhard.haering | 2008-05-31 23:33:27 +0200 (Sat, 31 May 2008) | 2 lines
Fixed rowcount for SELECT statements. They're -1 now (again), for better DB-API 2.0 compliance.
........
r63887 | gregory.p.smith | 2008-06-02 06:05:52 +0200 (Mon, 02 Jun 2008) | 4 lines
Fix issue 2782: be less strict about the format string type in strftime.
Accept unicode and anything else ParseTuple "s#" can deal with. This
matches the time.strftime behavior.
........
r63975 | neal.norwitz | 2008-06-06 06:47:01 +0200 (Fri, 06 Jun 2008) | 3 lines
Aldo Cortesi confirmed this is still needed for OpenBSD 4.2 and 4.3.
(I didn't regen configure, since I don't have a working autoconf.)
........
r63998 | raymond.hettinger | 2008-06-06 23:47:51 +0200 (Fri, 06 Jun 2008) | 1 line
Issue 3501: Make heapq support both __le__ and __lt__.
........
2008-06-10 14:40:04 -03:00
|
|
|
result = wrap_strftime((PyObject *)self, format, tuple,
|
|
|
|
Py_None);
|
2002-12-16 16:18:38 -04:00
|
|
|
Py_DECREF(tuple);
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
2003-01-09 23:49:02 -04:00
|
|
|
/*
|
|
|
|
* Miscellaneous methods.
|
|
|
|
*/
|
2002-12-16 16:18:38 -04:00
|
|
|
|
|
|
|
static PyObject *
|
2006-08-24 14:29:38 -03:00
|
|
|
time_richcompare(PyObject *self, PyObject *other, int op)
|
2002-12-16 16:18:38 -04:00
|
|
|
{
|
|
|
|
int diff;
|
|
|
|
naivety n1, n2;
|
|
|
|
int offset1, offset2;
|
|
|
|
|
|
|
|
if (! PyTime_Check(other)) {
|
2006-08-24 14:29:38 -03:00
|
|
|
Py_INCREF(Py_NotImplemented);
|
|
|
|
return Py_NotImplemented;
|
2002-12-16 16:18:38 -04:00
|
|
|
}
|
2006-08-24 14:29:38 -03:00
|
|
|
if (classify_two_utcoffsets(self, &offset1, &n1, Py_None,
|
|
|
|
other, &offset2, &n2, Py_None) < 0)
|
2002-12-26 22:21:51 -04:00
|
|
|
return NULL;
|
2002-12-26 22:26:16 -04:00
|
|
|
assert(n1 != OFFSET_UNKNOWN && n2 != OFFSET_UNKNOWN);
|
2002-12-16 16:18:38 -04:00
|
|
|
/* If they're both naive, or both aware and have the same offsets,
|
|
|
|
* we get off cheap. Note that if they're both naive, offset1 ==
|
|
|
|
* offset2 == 0 at this point.
|
|
|
|
*/
|
|
|
|
if (n1 == n2 && offset1 == offset2) {
|
2006-08-24 14:29:38 -03:00
|
|
|
diff = memcmp(((PyDateTime_Time *)self)->data,
|
|
|
|
((PyDateTime_Time *)other)->data,
|
2002-12-16 16:18:38 -04:00
|
|
|
_PyDateTime_TIME_DATASIZE);
|
|
|
|
return diff_to_bool(diff, op);
|
|
|
|
}
|
|
|
|
|
|
|
|
if (n1 == OFFSET_AWARE && n2 == OFFSET_AWARE) {
|
|
|
|
assert(offset1 != offset2); /* else last "if" handled it */
|
|
|
|
/* Convert everything except microseconds to seconds. These
|
|
|
|
* can't overflow (no more than the # of seconds in 2 days).
|
|
|
|
*/
|
|
|
|
offset1 = TIME_GET_HOUR(self) * 3600 +
|
|
|
|
(TIME_GET_MINUTE(self) - offset1) * 60 +
|
|
|
|
TIME_GET_SECOND(self);
|
|
|
|
offset2 = TIME_GET_HOUR(other) * 3600 +
|
|
|
|
(TIME_GET_MINUTE(other) - offset2) * 60 +
|
|
|
|
TIME_GET_SECOND(other);
|
|
|
|
diff = offset1 - offset2;
|
|
|
|
if (diff == 0)
|
|
|
|
diff = TIME_GET_MICROSECOND(self) -
|
|
|
|
TIME_GET_MICROSECOND(other);
|
|
|
|
return diff_to_bool(diff, op);
|
|
|
|
}
|
|
|
|
|
|
|
|
assert(n1 != n2);
|
|
|
|
PyErr_SetString(PyExc_TypeError,
|
|
|
|
"can't compare offset-naive and "
|
|
|
|
"offset-aware times");
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
|
|
|
|
static long
|
|
|
|
time_hash(PyDateTime_Time *self)
|
|
|
|
{
|
|
|
|
if (self->hashcode == -1) {
|
|
|
|
naivety n;
|
|
|
|
int offset;
|
|
|
|
PyObject *temp;
|
|
|
|
|
2002-12-30 17:28:52 -04:00
|
|
|
n = classify_utcoffset((PyObject *)self, Py_None, &offset);
|
2002-12-16 16:18:38 -04:00
|
|
|
assert(n != OFFSET_UNKNOWN);
|
|
|
|
if (n == OFFSET_ERROR)
|
|
|
|
return -1;
|
|
|
|
|
|
|
|
/* Reduce this to a hash of another object. */
|
2007-08-24 01:05:13 -03:00
|
|
|
if (offset == 0) {
|
|
|
|
self->hashcode = generic_hash(
|
|
|
|
(unsigned char *)self->data, _PyDateTime_TIME_DATASIZE);
|
|
|
|
return self->hashcode;
|
|
|
|
}
|
2002-12-16 16:18:38 -04:00
|
|
|
else {
|
|
|
|
int hour;
|
|
|
|
int minute;
|
|
|
|
|
|
|
|
assert(n == OFFSET_AWARE);
|
2003-01-10 20:15:54 -04:00
|
|
|
assert(HASTZINFO(self));
|
2002-12-16 16:18:38 -04:00
|
|
|
hour = divmod(TIME_GET_HOUR(self) * 60 +
|
|
|
|
TIME_GET_MINUTE(self) - offset,
|
|
|
|
60,
|
|
|
|
&minute);
|
|
|
|
if (0 <= hour && hour < 24)
|
|
|
|
temp = new_time(hour, minute,
|
|
|
|
TIME_GET_SECOND(self),
|
2003-01-09 23:49:02 -04:00
|
|
|
TIME_GET_MICROSECOND(self),
|
|
|
|
Py_None);
|
2002-12-16 16:18:38 -04:00
|
|
|
else
|
|
|
|
temp = Py_BuildValue("iiii",
|
|
|
|
hour, minute,
|
|
|
|
TIME_GET_SECOND(self),
|
|
|
|
TIME_GET_MICROSECOND(self));
|
|
|
|
}
|
|
|
|
if (temp != NULL) {
|
|
|
|
self->hashcode = PyObject_Hash(temp);
|
|
|
|
Py_DECREF(temp);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return self->hashcode;
|
|
|
|
}
|
|
|
|
|
2002-12-24 01:41:27 -04:00
|
|
|
static PyObject *
|
|
|
|
time_replace(PyDateTime_Time *self, PyObject *args, PyObject *kw)
|
|
|
|
{
|
|
|
|
PyObject *clone;
|
|
|
|
PyObject *tuple;
|
|
|
|
int hh = TIME_GET_HOUR(self);
|
|
|
|
int mm = TIME_GET_MINUTE(self);
|
|
|
|
int ss = TIME_GET_SECOND(self);
|
|
|
|
int us = TIME_GET_MICROSECOND(self);
|
2003-01-10 20:15:54 -04:00
|
|
|
PyObject *tzinfo = HASTZINFO(self) ? self->tzinfo : Py_None;
|
2002-12-24 01:41:27 -04:00
|
|
|
|
2003-01-09 23:49:02 -04:00
|
|
|
if (! PyArg_ParseTupleAndKeywords(args, kw, "|iiiiO:replace",
|
2002-12-24 01:41:27 -04:00
|
|
|
time_kws,
|
2003-01-09 23:49:02 -04:00
|
|
|
&hh, &mm, &ss, &us, &tzinfo))
|
2002-12-24 01:41:27 -04:00
|
|
|
return NULL;
|
2003-01-09 23:49:02 -04:00
|
|
|
tuple = Py_BuildValue("iiiiO", hh, mm, ss, us, tzinfo);
|
2002-12-24 01:41:27 -04:00
|
|
|
if (tuple == NULL)
|
|
|
|
return NULL;
|
2007-12-18 22:45:37 -04:00
|
|
|
clone = time_new(Py_TYPE(self), tuple, NULL);
|
2002-12-24 01:41:27 -04:00
|
|
|
Py_DECREF(tuple);
|
|
|
|
return clone;
|
|
|
|
}
|
|
|
|
|
2002-12-16 16:18:38 -04:00
|
|
|
static int
|
2006-11-28 15:15:13 -04:00
|
|
|
time_bool(PyDateTime_Time *self)
|
2002-12-16 16:18:38 -04:00
|
|
|
{
|
2003-01-09 23:49:02 -04:00
|
|
|
int offset;
|
|
|
|
int none;
|
|
|
|
|
|
|
|
if (TIME_GET_SECOND(self) || TIME_GET_MICROSECOND(self)) {
|
|
|
|
/* Since utcoffset is in whole minutes, nothing can
|
|
|
|
* alter the conclusion that this is nonzero.
|
|
|
|
*/
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
offset = 0;
|
2003-01-10 20:15:54 -04:00
|
|
|
if (HASTZINFO(self) && self->tzinfo != Py_None) {
|
2003-01-09 23:49:02 -04:00
|
|
|
offset = call_utcoffset(self->tzinfo, Py_None, &none);
|
|
|
|
if (offset == -1 && PyErr_Occurred())
|
|
|
|
return -1;
|
|
|
|
}
|
|
|
|
return (TIME_GET_MINUTE(self) - offset + TIME_GET_HOUR(self)*60) != 0;
|
2002-12-16 16:18:38 -04:00
|
|
|
}
|
|
|
|
|
2003-01-31 21:52:50 -04:00
|
|
|
/* Pickle support, a simple use of __reduce__. */
|
2002-12-16 16:18:38 -04:00
|
|
|
|
2003-01-09 23:49:02 -04:00
|
|
|
/* Let basestate be the non-tzinfo data string.
|
|
|
|
* If tzinfo is None, this returns (basestate,), else (basestate, tzinfo).
|
|
|
|
* So it's a tuple in any (non-error) case.
|
2003-01-31 22:54:15 -04:00
|
|
|
* __getstate__ isn't exposed.
|
2003-01-09 23:49:02 -04:00
|
|
|
*/
|
|
|
|
static PyObject *
|
|
|
|
time_getstate(PyDateTime_Time *self)
|
|
|
|
{
|
|
|
|
PyObject *basestate;
|
|
|
|
PyObject *result = NULL;
|
2002-12-16 16:18:38 -04:00
|
|
|
|
2008-05-26 10:28:38 -03:00
|
|
|
basestate = PyBytes_FromStringAndSize((char *)self->data,
|
2003-01-09 23:49:02 -04:00
|
|
|
_PyDateTime_TIME_DATASIZE);
|
|
|
|
if (basestate != NULL) {
|
2003-01-10 20:15:54 -04:00
|
|
|
if (! HASTZINFO(self) || self->tzinfo == Py_None)
|
2003-10-12 16:09:37 -03:00
|
|
|
result = PyTuple_Pack(1, basestate);
|
2003-01-09 23:49:02 -04:00
|
|
|
else
|
2003-10-12 16:09:37 -03:00
|
|
|
result = PyTuple_Pack(2, basestate, self->tzinfo);
|
2003-01-09 23:49:02 -04:00
|
|
|
Py_DECREF(basestate);
|
|
|
|
}
|
|
|
|
return result;
|
|
|
|
}
|
2002-12-16 16:18:38 -04:00
|
|
|
|
|
|
|
static PyObject *
|
2003-01-30 18:06:23 -04:00
|
|
|
time_reduce(PyDateTime_Time *self, PyObject *arg)
|
2002-12-16 16:18:38 -04:00
|
|
|
{
|
2007-12-18 22:45:37 -04:00
|
|
|
return Py_BuildValue("(ON)", Py_TYPE(self), time_getstate(self));
|
2002-12-16 16:18:38 -04:00
|
|
|
}
|
|
|
|
|
2003-01-09 23:49:02 -04:00
|
|
|
static PyMethodDef time_methods[] = {
|
2003-01-30 18:06:23 -04:00
|
|
|
|
Merged revisions 53623-53858 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r53624 | peter.astrand | 2007-02-02 20:06:36 +0100 (Fri, 02 Feb 2007) | 1 line
We had several if statements checking the value of a fd. This is unsafe, since valid fds might be zero. We should check for not None instead.
........
r53635 | kurt.kaiser | 2007-02-05 07:03:18 +0100 (Mon, 05 Feb 2007) | 2 lines
Add 'raw' support to configHandler. Patch 1650174 Tal Einat.
........
r53641 | kurt.kaiser | 2007-02-06 00:02:16 +0100 (Tue, 06 Feb 2007) | 5 lines
1. Calltips now 'handle' tuples in the argument list (display '<tuple>' :)
Suggested solution by Christos Georgiou, Bug 791968.
2. Clean up tests, were not failing when they should have been.
4. Remove some camelcase and an unneeded try/except block.
........
r53644 | kurt.kaiser | 2007-02-06 04:21:40 +0100 (Tue, 06 Feb 2007) | 2 lines
Clean up ModifiedInterpreter.runcode() structure
........
r53646 | peter.astrand | 2007-02-06 16:37:50 +0100 (Tue, 06 Feb 2007) | 1 line
Applied patch 1124861.3.patch to solve bug #1124861: Automatically create pipes on Windows, if GetStdHandle fails. Will backport.
........
r53648 | lars.gustaebel | 2007-02-06 19:38:13 +0100 (Tue, 06 Feb 2007) | 4 lines
Patch #1652681: create nonexistent files in append mode and
allow appending to empty files.
........
r53649 | kurt.kaiser | 2007-02-06 20:09:43 +0100 (Tue, 06 Feb 2007) | 4 lines
Updated patch (CodeContext.061217.patch) to
[ 1362975 ] CodeContext - Improved text indentation
Tal Einat 16Dec06
........
r53650 | kurt.kaiser | 2007-02-06 20:21:19 +0100 (Tue, 06 Feb 2007) | 2 lines
narrow exception per [ 1540849 ] except too broad
........
r53653 | kurt.kaiser | 2007-02-07 04:39:41 +0100 (Wed, 07 Feb 2007) | 4 lines
[ 1621265 ] Auto-completion list placement
Move AC window below input line unless not enough space, then put it above.
Patch: Tal Einat
........
r53654 | kurt.kaiser | 2007-02-07 09:07:13 +0100 (Wed, 07 Feb 2007) | 2 lines
Handle AttributeError during calltip lookup
........
r53656 | raymond.hettinger | 2007-02-07 21:08:22 +0100 (Wed, 07 Feb 2007) | 3 lines
SF #1615701: make d.update(m) honor __getitem__() and keys() in dict subclasses
........
r53658 | raymond.hettinger | 2007-02-07 22:04:20 +0100 (Wed, 07 Feb 2007) | 1 line
SF: 1397711 Set docs conflated immutable and hashable
........
r53660 | raymond.hettinger | 2007-02-07 22:42:17 +0100 (Wed, 07 Feb 2007) | 1 line
Check for a common user error with defaultdict().
........
r53662 | raymond.hettinger | 2007-02-07 23:24:07 +0100 (Wed, 07 Feb 2007) | 1 line
Bug #1575169: operator.isSequenceType() now returns False for subclasses of dict.
........
r53664 | raymond.hettinger | 2007-02-08 00:49:03 +0100 (Thu, 08 Feb 2007) | 1 line
Silence compiler warning
........
r53666 | raymond.hettinger | 2007-02-08 01:07:32 +0100 (Thu, 08 Feb 2007) | 1 line
Do not let overflows in enumerate() and count() pass silently.
........
r53668 | raymond.hettinger | 2007-02-08 01:50:39 +0100 (Thu, 08 Feb 2007) | 1 line
Bypass set specific optimizations for set and frozenset subclasses.
........
r53670 | raymond.hettinger | 2007-02-08 02:42:35 +0100 (Thu, 08 Feb 2007) | 1 line
Fix docstring bug
........
r53671 | martin.v.loewis | 2007-02-08 10:13:36 +0100 (Thu, 08 Feb 2007) | 3 lines
Bug #1653736: Complain about keyword arguments to time.isoformat.
Will backport to 2.5.
........
r53679 | kurt.kaiser | 2007-02-08 23:58:18 +0100 (Thu, 08 Feb 2007) | 6 lines
Corrected some bugs in AutoComplete. Also, Page Up/Down in ACW implemented;
mouse and cursor selection in ACWindow implemented; double Tab inserts current
selection and closes ACW (similar to double-click and Return); scroll wheel now
works in ACW. Added AutoComplete instructions to IDLE Help.
........
r53689 | martin.v.loewis | 2007-02-09 13:19:32 +0100 (Fri, 09 Feb 2007) | 3 lines
Bug #1653736: Properly discard third argument to slot_nb_inplace_power.
Will backport.
........
r53691 | martin.v.loewis | 2007-02-09 13:36:48 +0100 (Fri, 09 Feb 2007) | 4 lines
Bug #1600860: Search for shared python library in LIBDIR, not
lib/python/config, on "linux" and "gnu" systems.
Will backport.
........
r53693 | martin.v.loewis | 2007-02-09 13:58:49 +0100 (Fri, 09 Feb 2007) | 2 lines
Update broken link. Will backport to 2.5.
........
r53697 | georg.brandl | 2007-02-09 19:48:41 +0100 (Fri, 09 Feb 2007) | 2 lines
Bug #1656078: typo in in profile docs.
........
r53731 | brett.cannon | 2007-02-11 06:36:00 +0100 (Sun, 11 Feb 2007) | 3 lines
Change a very minor inconsistency (that is purely cosmetic) in the AST
definition.
........
r53735 | skip.montanaro | 2007-02-11 19:24:37 +0100 (Sun, 11 Feb 2007) | 1 line
fix trace.py --ignore-dir
........
r53741 | brett.cannon | 2007-02-11 20:44:41 +0100 (Sun, 11 Feb 2007) | 3 lines
Check in changed Python-ast.c from a cosmetic change to Python.asdl (in
r53731).
........
r53751 | brett.cannon | 2007-02-12 04:51:02 +0100 (Mon, 12 Feb 2007) | 5 lines
Modify Parser/asdl_c.py so that the __version__ number for Python/Python-ast.c
is specified at the top of the file. Also add a note that Python/Python-ast.c
needs to be committed separately after a change to the AST grammar to capture
the revision number of the change (which is what __version__ is set to).
........
r53752 | lars.gustaebel | 2007-02-12 10:25:53 +0100 (Mon, 12 Feb 2007) | 3 lines
Bug #1656581: Point out that external file objects are supposed to be
at position 0.
........
r53754 | martin.v.loewis | 2007-02-12 13:21:10 +0100 (Mon, 12 Feb 2007) | 3 lines
Patch 1463026: Support default namespace in XMLGenerator.
Fixes #847665. Will backport.
........
r53757 | armin.rigo | 2007-02-12 17:23:24 +0100 (Mon, 12 Feb 2007) | 4 lines
Fix the line to what is my guess at the original author's meaning.
(The line has no effect anyway, but is present because it's
customary call the base class __init__).
........
r53763 | martin.v.loewis | 2007-02-13 09:34:45 +0100 (Tue, 13 Feb 2007) | 3 lines
Patch #685268: Consider a package's __path__ in imputil.
Will backport.
........
r53765 | martin.v.loewis | 2007-02-13 10:49:38 +0100 (Tue, 13 Feb 2007) | 2 lines
Patch #698833: Support file decryption in zipfile.
........
r53766 | martin.v.loewis | 2007-02-13 11:10:39 +0100 (Tue, 13 Feb 2007) | 3 lines
Patch #1517891: Make 'a' create the file if it doesn't exist.
Fixes #1514451.
........
r53767 | martin.v.loewis | 2007-02-13 13:08:24 +0100 (Tue, 13 Feb 2007) | 3 lines
Bug #1658794: Remove extraneous 'this'.
Will backport to 2.5.
........
r53769 | martin.v.loewis | 2007-02-13 13:14:19 +0100 (Tue, 13 Feb 2007) | 3 lines
Patch #1657276: Make NETLINK_DNRTMSG conditional.
Will backport.
........
r53771 | lars.gustaebel | 2007-02-13 17:09:24 +0100 (Tue, 13 Feb 2007) | 4 lines
Patch #1647484: Renamed GzipFile's filename attribute to name. The
filename attribute is still accessible as a property that emits a
DeprecationWarning.
........
r53772 | lars.gustaebel | 2007-02-13 17:24:00 +0100 (Tue, 13 Feb 2007) | 3 lines
Strip the '.gz' extension from the filename that is written to the
gzip header.
........
r53774 | martin.v.loewis | 2007-02-14 11:07:37 +0100 (Wed, 14 Feb 2007) | 2 lines
Patch #1432399: Add HCI sockets.
........
r53775 | martin.v.loewis | 2007-02-14 12:30:07 +0100 (Wed, 14 Feb 2007) | 2 lines
Update 1432399 to removal of _BT_SOCKADDR_MEMB.
........
r53776 | martin.v.loewis | 2007-02-14 12:30:56 +0100 (Wed, 14 Feb 2007) | 3 lines
Ignore directory time stamps when considering
whether to rerun libffi configure.
........
r53778 | lars.gustaebel | 2007-02-14 15:45:12 +0100 (Wed, 14 Feb 2007) | 4 lines
A missing binary mode in AppendTest caused failures in Windows
Buildbot.
........
r53782 | martin.v.loewis | 2007-02-15 10:51:35 +0100 (Thu, 15 Feb 2007) | 2 lines
Patch #1397848: add the reasoning behind no-resize-on-shrinkage.
........
r53783 | georg.brandl | 2007-02-15 11:37:59 +0100 (Thu, 15 Feb 2007) | 2 lines
Make functools.wraps() docs a bit clearer.
........
r53785 | georg.brandl | 2007-02-15 12:29:04 +0100 (Thu, 15 Feb 2007) | 2 lines
Patch #1494140: Add documentation for the new struct.Struct object.
........
r53787 | georg.brandl | 2007-02-15 12:29:55 +0100 (Thu, 15 Feb 2007) | 2 lines
Add missing \versionadded.
........
r53800 | brett.cannon | 2007-02-15 23:54:39 +0100 (Thu, 15 Feb 2007) | 11 lines
Update the encoding package's search function to use absolute imports when
calling __import__. This helps make the expected search locations for encoding
modules be more explicit.
One could use an explicit value for __path__ when making the call to __import__
to force the exact location searched for encodings. This would give the most
strict search path possible if one is worried about malicious code being
imported. The unfortunate side-effect of that is that if __path__ was modified
on 'encodings' on purpose in a safe way it would not be picked up in future
__import__ calls.
........
r53801 | brett.cannon | 2007-02-16 20:33:01 +0100 (Fri, 16 Feb 2007) | 2 lines
Make the __import__ call in encodings.__init__ absolute with a level 0 call.
........
r53809 | vinay.sajip | 2007-02-16 23:36:24 +0100 (Fri, 16 Feb 2007) | 1 line
Minor fix for currentframe (SF #1652788).
........
r53818 | raymond.hettinger | 2007-02-19 03:03:19 +0100 (Mon, 19 Feb 2007) | 3 lines
Extend work on revision 52962: Eliminate redundant calls to PyObject_Hash().
........
r53820 | raymond.hettinger | 2007-02-19 05:08:43 +0100 (Mon, 19 Feb 2007) | 1 line
Add merge() function to heapq.
........
r53821 | raymond.hettinger | 2007-02-19 06:28:28 +0100 (Mon, 19 Feb 2007) | 1 line
Add tie-breaker count to preserve sort stability.
........
r53822 | raymond.hettinger | 2007-02-19 07:59:32 +0100 (Mon, 19 Feb 2007) | 1 line
Use C heapreplace() instead of slower _siftup() in pure python.
........
r53823 | raymond.hettinger | 2007-02-19 08:30:21 +0100 (Mon, 19 Feb 2007) | 1 line
Add test for merge stability
........
r53824 | raymond.hettinger | 2007-02-19 10:14:10 +0100 (Mon, 19 Feb 2007) | 1 line
Provide an example of defaultdict with non-zero constant factory function.
........
r53825 | lars.gustaebel | 2007-02-19 10:54:47 +0100 (Mon, 19 Feb 2007) | 2 lines
Moved misplaced news item.
........
r53826 | martin.v.loewis | 2007-02-19 11:55:19 +0100 (Mon, 19 Feb 2007) | 3 lines
Patch #1490190: posixmodule now includes os.chflags() and os.lchflags()
functions on platforms where the underlying system calls are available.
........
r53827 | raymond.hettinger | 2007-02-19 19:15:04 +0100 (Mon, 19 Feb 2007) | 1 line
Fixup docstrings for merge().
........
r53829 | raymond.hettinger | 2007-02-19 21:44:04 +0100 (Mon, 19 Feb 2007) | 1 line
Fixup set/dict interoperability.
........
r53837 | raymond.hettinger | 2007-02-21 06:20:38 +0100 (Wed, 21 Feb 2007) | 1 line
Add itertools.izip_longest().
........
r53838 | raymond.hettinger | 2007-02-21 18:22:05 +0100 (Wed, 21 Feb 2007) | 1 line
Remove filler struct item and fix leak.
........
2007-02-23 11:07:44 -04:00
|
|
|
{"isoformat", (PyCFunction)time_isoformat, METH_NOARGS,
|
2002-12-16 16:18:38 -04:00
|
|
|
PyDoc_STR("Return string in ISO 8601 format, HH:MM:SS[.mmmmmm]"
|
|
|
|
"[+HH:MM].")},
|
|
|
|
|
Merged revisions 55407-55513 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/p3yk
................
r55413 | fred.drake | 2007-05-17 12:30:10 -0700 (Thu, 17 May 2007) | 1 line
fix argument name in documentation; match the implementation
................
r55430 | jack.diederich | 2007-05-18 06:39:59 -0700 (Fri, 18 May 2007) | 1 line
Implements class decorators, PEP 3129.
................
r55432 | guido.van.rossum | 2007-05-18 08:09:41 -0700 (Fri, 18 May 2007) | 2 lines
obsubmit.
................
r55434 | guido.van.rossum | 2007-05-18 09:39:10 -0700 (Fri, 18 May 2007) | 3 lines
Fix bug in test_inspect. (I presume this is how it should be fixed;
Jack Diedrich, please verify.)
................
r55460 | brett.cannon | 2007-05-20 00:31:57 -0700 (Sun, 20 May 2007) | 4 lines
Remove the imageop module. With imgfile already removed in Python 3.0 and
rgbimg gone in Python 2.6 the unit tests themselves were made worthless. Plus
third-party libraries perform the same function much better.
................
r55469 | neal.norwitz | 2007-05-20 11:28:20 -0700 (Sun, 20 May 2007) | 118 lines
Merged revisions 55324-55467 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r55348 | georg.brandl | 2007-05-15 13:19:34 -0700 (Tue, 15 May 2007) | 4 lines
HTML-escape the plain traceback in cgitb's HTML output, to prevent
the traceback inadvertently or maliciously closing the comment and
injecting HTML into the error page.
........
r55372 | neal.norwitz | 2007-05-15 21:33:50 -0700 (Tue, 15 May 2007) | 6 lines
Port rev 55353 from Guido:
Add what looks like a necessary call to PyErr_NoMemory() when PyMem_MALLOC()
fails.
Will backport.
........
r55377 | neal.norwitz | 2007-05-15 22:06:33 -0700 (Tue, 15 May 2007) | 1 line
Mention removal of some directories for obsolete platforms
........
r55380 | brett.cannon | 2007-05-15 22:50:03 -0700 (Tue, 15 May 2007) | 2 lines
Change the maintainer of the BeOS port.
........
r55383 | georg.brandl | 2007-05-16 06:44:18 -0700 (Wed, 16 May 2007) | 2 lines
Bug #1719995: don't use deprecated method in sets example.
........
r55386 | neal.norwitz | 2007-05-16 13:05:11 -0700 (Wed, 16 May 2007) | 5 lines
Fix bug in marshal where bad data would cause a segfault due to
lack of an infinite recursion check.
Contributed by Damien Miller at Google.
........
r55389 | brett.cannon | 2007-05-16 15:42:29 -0700 (Wed, 16 May 2007) | 6 lines
Remove the gopherlib module. It has been raising a DeprecationWarning since
Python 2.5.
Also remove gopher support from urllib/urllib2. As both imported gopherlib the
usage of the support would have raised a DeprecationWarning.
........
r55394 | raymond.hettinger | 2007-05-16 18:08:04 -0700 (Wed, 16 May 2007) | 1 line
calendar.py gets no benefit from xrange() instead of range()
........
r55395 | brett.cannon | 2007-05-16 19:02:56 -0700 (Wed, 16 May 2007) | 3 lines
Complete deprecation of BaseException.message. Some subclasses were directly
accessing the message attribute instead of using the descriptor.
........
r55396 | neal.norwitz | 2007-05-16 23:11:36 -0700 (Wed, 16 May 2007) | 4 lines
Reduce the max stack depth to see if this fixes the segfaults on
Windows and some other boxes. If this is successful, this rev should
be backported. I'm not sure how close to the limit we should push this.
........
r55397 | neal.norwitz | 2007-05-16 23:23:50 -0700 (Wed, 16 May 2007) | 4 lines
Set the depth to something very small to try to determine if the
crashes on Windows are really due to the stack size or possibly
some other problem.
........
r55398 | neal.norwitz | 2007-05-17 00:04:46 -0700 (Thu, 17 May 2007) | 4 lines
Last try for tweaking the max stack depth. 5000 was the original value,
4000 didn't work either. 1000 does work on Windows. If 2000 works,
that will hopefully be a reasonable balance.
........
r55412 | fred.drake | 2007-05-17 12:29:58 -0700 (Thu, 17 May 2007) | 1 line
fix argument name in documentation; match the implementation
........
r55427 | neal.norwitz | 2007-05-17 22:47:16 -0700 (Thu, 17 May 2007) | 1 line
Verify neither dumps or loads overflow the stack and segfault.
........
r55446 | collin.winter | 2007-05-18 16:11:24 -0700 (Fri, 18 May 2007) | 1 line
Backport PEP 3110's new 'except' syntax to 2.6.
........
r55448 | raymond.hettinger | 2007-05-18 18:11:16 -0700 (Fri, 18 May 2007) | 1 line
Improvements to NamedTuple's implementation, tests, and documentation
........
r55449 | raymond.hettinger | 2007-05-18 18:50:11 -0700 (Fri, 18 May 2007) | 1 line
Fix beginner mistake -- don't mix spaces and tabs.
........
r55450 | neal.norwitz | 2007-05-18 20:48:47 -0700 (Fri, 18 May 2007) | 1 line
Clear data so random memory does not get freed. Will backport.
........
r55452 | neal.norwitz | 2007-05-18 21:34:55 -0700 (Fri, 18 May 2007) | 3 lines
Whoops, need to pay attention to those test failures.
Move the clear to *before* the first use, not after.
........
r55453 | neal.norwitz | 2007-05-18 21:35:52 -0700 (Fri, 18 May 2007) | 1 line
Give some clue as to what happened if the test fails.
........
r55455 | georg.brandl | 2007-05-19 11:09:26 -0700 (Sat, 19 May 2007) | 2 lines
Fix docstring for add_package in site.py.
........
r55458 | brett.cannon | 2007-05-20 00:09:50 -0700 (Sun, 20 May 2007) | 2 lines
Remove the rgbimg module. It has been deprecated since Python 2.5.
........
r55465 | nick.coghlan | 2007-05-20 04:12:49 -0700 (Sun, 20 May 2007) | 1 line
Fix typo in example (should be backported, but my maintenance branch is woefully out of date)
........
................
r55472 | brett.cannon | 2007-05-20 12:06:18 -0700 (Sun, 20 May 2007) | 2 lines
Remove imageop from the Windows build process.
................
r55486 | neal.norwitz | 2007-05-20 23:59:52 -0700 (Sun, 20 May 2007) | 1 line
Remove callable() builtin
................
r55506 | neal.norwitz | 2007-05-22 00:43:29 -0700 (Tue, 22 May 2007) | 78 lines
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
........
................
2007-05-22 15:11:13 -03:00
|
|
|
{"strftime", (PyCFunction)time_strftime, METH_VARARGS | METH_KEYWORDS,
|
2003-01-09 23:49:02 -04:00
|
|
|
PyDoc_STR("format -> strftime() style string.")},
|
|
|
|
|
2008-02-17 15:48:00 -04:00
|
|
|
{"__format__", (PyCFunction)date_format, METH_VARARGS,
|
2007-09-11 15:06:02 -03:00
|
|
|
PyDoc_STR("Formats self with strftime.")},
|
|
|
|
|
2003-01-09 23:49:02 -04:00
|
|
|
{"utcoffset", (PyCFunction)time_utcoffset, METH_NOARGS,
|
2002-12-16 16:18:38 -04:00
|
|
|
PyDoc_STR("Return self.tzinfo.utcoffset(self).")},
|
|
|
|
|
2003-01-09 23:49:02 -04:00
|
|
|
{"tzname", (PyCFunction)time_tzname, METH_NOARGS,
|
2002-12-16 16:18:38 -04:00
|
|
|
PyDoc_STR("Return self.tzinfo.tzname(self).")},
|
|
|
|
|
2003-01-09 23:49:02 -04:00
|
|
|
{"dst", (PyCFunction)time_dst, METH_NOARGS,
|
2002-12-16 16:18:38 -04:00
|
|
|
PyDoc_STR("Return self.tzinfo.dst(self).")},
|
|
|
|
|
Merged revisions 55407-55513 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/p3yk
................
r55413 | fred.drake | 2007-05-17 12:30:10 -0700 (Thu, 17 May 2007) | 1 line
fix argument name in documentation; match the implementation
................
r55430 | jack.diederich | 2007-05-18 06:39:59 -0700 (Fri, 18 May 2007) | 1 line
Implements class decorators, PEP 3129.
................
r55432 | guido.van.rossum | 2007-05-18 08:09:41 -0700 (Fri, 18 May 2007) | 2 lines
obsubmit.
................
r55434 | guido.van.rossum | 2007-05-18 09:39:10 -0700 (Fri, 18 May 2007) | 3 lines
Fix bug in test_inspect. (I presume this is how it should be fixed;
Jack Diedrich, please verify.)
................
r55460 | brett.cannon | 2007-05-20 00:31:57 -0700 (Sun, 20 May 2007) | 4 lines
Remove the imageop module. With imgfile already removed in Python 3.0 and
rgbimg gone in Python 2.6 the unit tests themselves were made worthless. Plus
third-party libraries perform the same function much better.
................
r55469 | neal.norwitz | 2007-05-20 11:28:20 -0700 (Sun, 20 May 2007) | 118 lines
Merged revisions 55324-55467 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r55348 | georg.brandl | 2007-05-15 13:19:34 -0700 (Tue, 15 May 2007) | 4 lines
HTML-escape the plain traceback in cgitb's HTML output, to prevent
the traceback inadvertently or maliciously closing the comment and
injecting HTML into the error page.
........
r55372 | neal.norwitz | 2007-05-15 21:33:50 -0700 (Tue, 15 May 2007) | 6 lines
Port rev 55353 from Guido:
Add what looks like a necessary call to PyErr_NoMemory() when PyMem_MALLOC()
fails.
Will backport.
........
r55377 | neal.norwitz | 2007-05-15 22:06:33 -0700 (Tue, 15 May 2007) | 1 line
Mention removal of some directories for obsolete platforms
........
r55380 | brett.cannon | 2007-05-15 22:50:03 -0700 (Tue, 15 May 2007) | 2 lines
Change the maintainer of the BeOS port.
........
r55383 | georg.brandl | 2007-05-16 06:44:18 -0700 (Wed, 16 May 2007) | 2 lines
Bug #1719995: don't use deprecated method in sets example.
........
r55386 | neal.norwitz | 2007-05-16 13:05:11 -0700 (Wed, 16 May 2007) | 5 lines
Fix bug in marshal where bad data would cause a segfault due to
lack of an infinite recursion check.
Contributed by Damien Miller at Google.
........
r55389 | brett.cannon | 2007-05-16 15:42:29 -0700 (Wed, 16 May 2007) | 6 lines
Remove the gopherlib module. It has been raising a DeprecationWarning since
Python 2.5.
Also remove gopher support from urllib/urllib2. As both imported gopherlib the
usage of the support would have raised a DeprecationWarning.
........
r55394 | raymond.hettinger | 2007-05-16 18:08:04 -0700 (Wed, 16 May 2007) | 1 line
calendar.py gets no benefit from xrange() instead of range()
........
r55395 | brett.cannon | 2007-05-16 19:02:56 -0700 (Wed, 16 May 2007) | 3 lines
Complete deprecation of BaseException.message. Some subclasses were directly
accessing the message attribute instead of using the descriptor.
........
r55396 | neal.norwitz | 2007-05-16 23:11:36 -0700 (Wed, 16 May 2007) | 4 lines
Reduce the max stack depth to see if this fixes the segfaults on
Windows and some other boxes. If this is successful, this rev should
be backported. I'm not sure how close to the limit we should push this.
........
r55397 | neal.norwitz | 2007-05-16 23:23:50 -0700 (Wed, 16 May 2007) | 4 lines
Set the depth to something very small to try to determine if the
crashes on Windows are really due to the stack size or possibly
some other problem.
........
r55398 | neal.norwitz | 2007-05-17 00:04:46 -0700 (Thu, 17 May 2007) | 4 lines
Last try for tweaking the max stack depth. 5000 was the original value,
4000 didn't work either. 1000 does work on Windows. If 2000 works,
that will hopefully be a reasonable balance.
........
r55412 | fred.drake | 2007-05-17 12:29:58 -0700 (Thu, 17 May 2007) | 1 line
fix argument name in documentation; match the implementation
........
r55427 | neal.norwitz | 2007-05-17 22:47:16 -0700 (Thu, 17 May 2007) | 1 line
Verify neither dumps or loads overflow the stack and segfault.
........
r55446 | collin.winter | 2007-05-18 16:11:24 -0700 (Fri, 18 May 2007) | 1 line
Backport PEP 3110's new 'except' syntax to 2.6.
........
r55448 | raymond.hettinger | 2007-05-18 18:11:16 -0700 (Fri, 18 May 2007) | 1 line
Improvements to NamedTuple's implementation, tests, and documentation
........
r55449 | raymond.hettinger | 2007-05-18 18:50:11 -0700 (Fri, 18 May 2007) | 1 line
Fix beginner mistake -- don't mix spaces and tabs.
........
r55450 | neal.norwitz | 2007-05-18 20:48:47 -0700 (Fri, 18 May 2007) | 1 line
Clear data so random memory does not get freed. Will backport.
........
r55452 | neal.norwitz | 2007-05-18 21:34:55 -0700 (Fri, 18 May 2007) | 3 lines
Whoops, need to pay attention to those test failures.
Move the clear to *before* the first use, not after.
........
r55453 | neal.norwitz | 2007-05-18 21:35:52 -0700 (Fri, 18 May 2007) | 1 line
Give some clue as to what happened if the test fails.
........
r55455 | georg.brandl | 2007-05-19 11:09:26 -0700 (Sat, 19 May 2007) | 2 lines
Fix docstring for add_package in site.py.
........
r55458 | brett.cannon | 2007-05-20 00:09:50 -0700 (Sun, 20 May 2007) | 2 lines
Remove the rgbimg module. It has been deprecated since Python 2.5.
........
r55465 | nick.coghlan | 2007-05-20 04:12:49 -0700 (Sun, 20 May 2007) | 1 line
Fix typo in example (should be backported, but my maintenance branch is woefully out of date)
........
................
r55472 | brett.cannon | 2007-05-20 12:06:18 -0700 (Sun, 20 May 2007) | 2 lines
Remove imageop from the Windows build process.
................
r55486 | neal.norwitz | 2007-05-20 23:59:52 -0700 (Sun, 20 May 2007) | 1 line
Remove callable() builtin
................
r55506 | neal.norwitz | 2007-05-22 00:43:29 -0700 (Tue, 22 May 2007) | 78 lines
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
........
................
2007-05-22 15:11:13 -03:00
|
|
|
{"replace", (PyCFunction)time_replace, METH_VARARGS | METH_KEYWORDS,
|
2003-01-09 23:49:02 -04:00
|
|
|
PyDoc_STR("Return time with new specified fields.")},
|
2002-12-24 01:41:27 -04:00
|
|
|
|
2003-01-30 18:06:23 -04:00
|
|
|
{"__reduce__", (PyCFunction)time_reduce, METH_NOARGS,
|
|
|
|
PyDoc_STR("__reduce__() -> (cls, state)")},
|
|
|
|
|
2002-12-16 16:18:38 -04:00
|
|
|
{NULL, NULL}
|
|
|
|
};
|
|
|
|
|
2003-01-09 23:49:02 -04:00
|
|
|
static char time_doc[] =
|
2004-12-19 16:13:24 -04:00
|
|
|
PyDoc_STR("time([hour[, minute[, second[, microsecond[, tzinfo]]]]]) --> a time object\n\
|
|
|
|
\n\
|
|
|
|
All arguments are optional. tzinfo may be None, or an instance of\n\
|
|
|
|
a tzinfo subclass. The remaining arguments may be ints or longs.\n");
|
2002-12-16 16:18:38 -04:00
|
|
|
|
2003-01-09 23:49:02 -04:00
|
|
|
static PyNumberMethods time_as_number = {
|
2002-12-16 16:18:38 -04:00
|
|
|
0, /* nb_add */
|
|
|
|
0, /* nb_subtract */
|
|
|
|
0, /* nb_multiply */
|
|
|
|
0, /* nb_remainder */
|
|
|
|
0, /* nb_divmod */
|
|
|
|
0, /* nb_power */
|
|
|
|
0, /* nb_negative */
|
|
|
|
0, /* nb_positive */
|
|
|
|
0, /* nb_absolute */
|
2006-11-28 15:15:13 -04:00
|
|
|
(inquiry)time_bool, /* nb_bool */
|
2002-12-16 16:18:38 -04:00
|
|
|
};
|
|
|
|
|
2006-03-22 05:28:35 -04:00
|
|
|
static PyTypeObject PyDateTime_TimeType = {
|
Merged revisions 56467-56482 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/p3yk
................
r56477 | martin.v.loewis | 2007-07-21 09:04:38 +0200 (Sa, 21 Jul 2007) | 11 lines
Merged revisions 56466-56476 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r56476 | martin.v.loewis | 2007-07-21 08:55:02 +0200 (Sa, 21 Jul 2007) | 4 lines
PEP 3123: Provide forward compatibility with Python 3.0, while keeping
backwards compatibility. Add Py_Refcnt, Py_Type, Py_Size, and
PyVarObject_HEAD_INIT.
........
................
r56478 | martin.v.loewis | 2007-07-21 09:47:23 +0200 (Sa, 21 Jul 2007) | 2 lines
PEP 3123: Use proper C inheritance for PyObject.
................
r56479 | martin.v.loewis | 2007-07-21 10:06:55 +0200 (Sa, 21 Jul 2007) | 3 lines
Add longintrepr.h to Python.h, so that the compiler can
see that PyFalse is really some kind of PyObject*.
................
r56480 | martin.v.loewis | 2007-07-21 10:47:18 +0200 (Sa, 21 Jul 2007) | 2 lines
Qualify SHIFT, MASK, BASE.
................
r56482 | martin.v.loewis | 2007-07-21 19:10:57 +0200 (Sa, 21 Jul 2007) | 2 lines
Correctly refer to _ob_next.
................
2007-07-21 14:22:18 -03:00
|
|
|
PyVarObject_HEAD_INIT(NULL, 0)
|
2003-01-08 16:40:01 -04:00
|
|
|
"datetime.time", /* tp_name */
|
2003-01-09 23:49:02 -04:00
|
|
|
sizeof(PyDateTime_Time), /* tp_basicsize */
|
2002-12-16 16:18:38 -04:00
|
|
|
0, /* tp_itemsize */
|
2003-01-09 23:49:02 -04:00
|
|
|
(destructor)time_dealloc, /* tp_dealloc */
|
2002-12-16 16:18:38 -04:00
|
|
|
0, /* tp_print */
|
|
|
|
0, /* tp_getattr */
|
|
|
|
0, /* tp_setattr */
|
2009-02-02 16:36:42 -04:00
|
|
|
0, /* tp_reserved */
|
2003-01-09 23:49:02 -04:00
|
|
|
(reprfunc)time_repr, /* tp_repr */
|
|
|
|
&time_as_number, /* tp_as_number */
|
2002-12-16 16:18:38 -04:00
|
|
|
0, /* tp_as_sequence */
|
|
|
|
0, /* tp_as_mapping */
|
2003-01-09 23:49:02 -04:00
|
|
|
(hashfunc)time_hash, /* tp_hash */
|
2002-12-16 16:18:38 -04:00
|
|
|
0, /* tp_call */
|
2003-01-09 23:49:02 -04:00
|
|
|
(reprfunc)time_str, /* tp_str */
|
2002-12-16 16:18:38 -04:00
|
|
|
PyObject_GenericGetAttr, /* tp_getattro */
|
|
|
|
0, /* tp_setattro */
|
|
|
|
0, /* tp_as_buffer */
|
2006-07-27 18:53:35 -03:00
|
|
|
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /* tp_flags */
|
2003-01-09 23:49:02 -04:00
|
|
|
time_doc, /* tp_doc */
|
2002-12-16 16:18:38 -04:00
|
|
|
0, /* tp_traverse */
|
|
|
|
0, /* tp_clear */
|
2006-08-24 14:29:38 -03:00
|
|
|
time_richcompare, /* tp_richcompare */
|
2002-12-16 16:18:38 -04:00
|
|
|
0, /* tp_weaklistoffset */
|
|
|
|
0, /* tp_iter */
|
|
|
|
0, /* tp_iternext */
|
2003-01-09 23:49:02 -04:00
|
|
|
time_methods, /* tp_methods */
|
2002-12-16 16:18:38 -04:00
|
|
|
0, /* tp_members */
|
2003-01-09 23:49:02 -04:00
|
|
|
time_getset, /* tp_getset */
|
|
|
|
0, /* tp_base */
|
2002-12-16 16:18:38 -04:00
|
|
|
0, /* tp_dict */
|
|
|
|
0, /* tp_descr_get */
|
|
|
|
0, /* tp_descr_set */
|
|
|
|
0, /* tp_dictoffset */
|
|
|
|
0, /* tp_init */
|
2003-05-17 02:55:19 -03:00
|
|
|
time_alloc, /* tp_alloc */
|
2003-01-09 23:49:02 -04:00
|
|
|
time_new, /* tp_new */
|
2003-05-16 19:44:06 -03:00
|
|
|
0, /* tp_free */
|
2002-12-16 16:18:38 -04:00
|
|
|
};
|
|
|
|
|
2003-01-10 23:39:11 -04:00
|
|
|
/*
|
|
|
|
* PyDateTime_DateTime implementation.
|
|
|
|
*/
|
|
|
|
|
|
|
|
/* Accessor properties. Properties for day, month, and year are inherited
|
|
|
|
* from date.
|
|
|
|
*/
|
|
|
|
|
|
|
|
static PyObject *
|
|
|
|
datetime_hour(PyDateTime_DateTime *self, void *unused)
|
|
|
|
{
|
2007-12-02 10:31:20 -04:00
|
|
|
return PyLong_FromLong(DATE_GET_HOUR(self));
|
2003-01-10 23:39:11 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
static PyObject *
|
|
|
|
datetime_minute(PyDateTime_DateTime *self, void *unused)
|
|
|
|
{
|
2007-12-02 10:31:20 -04:00
|
|
|
return PyLong_FromLong(DATE_GET_MINUTE(self));
|
2003-01-10 23:39:11 -04:00
|
|
|
}
|
2002-12-16 16:18:38 -04:00
|
|
|
|
2003-01-10 23:39:11 -04:00
|
|
|
static PyObject *
|
|
|
|
datetime_second(PyDateTime_DateTime *self, void *unused)
|
|
|
|
{
|
2007-12-02 10:31:20 -04:00
|
|
|
return PyLong_FromLong(DATE_GET_SECOND(self));
|
2003-01-10 23:39:11 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
static PyObject *
|
|
|
|
datetime_microsecond(PyDateTime_DateTime *self, void *unused)
|
|
|
|
{
|
2007-12-02 10:31:20 -04:00
|
|
|
return PyLong_FromLong(DATE_GET_MICROSECOND(self));
|
2003-01-10 23:39:11 -04:00
|
|
|
}
|
2002-12-16 16:18:38 -04:00
|
|
|
|
|
|
|
static PyObject *
|
2003-01-10 23:39:11 -04:00
|
|
|
datetime_tzinfo(PyDateTime_DateTime *self, void *unused)
|
2002-12-16 16:18:38 -04:00
|
|
|
{
|
2003-01-10 23:39:11 -04:00
|
|
|
PyObject *result = HASTZINFO(self) ? self->tzinfo : Py_None;
|
|
|
|
Py_INCREF(result);
|
|
|
|
return result;
|
2002-12-16 16:18:38 -04:00
|
|
|
}
|
|
|
|
|
2003-01-10 23:39:11 -04:00
|
|
|
static PyGetSetDef datetime_getset[] = {
|
|
|
|
{"hour", (getter)datetime_hour},
|
|
|
|
{"minute", (getter)datetime_minute},
|
|
|
|
{"second", (getter)datetime_second},
|
|
|
|
{"microsecond", (getter)datetime_microsecond},
|
|
|
|
{"tzinfo", (getter)datetime_tzinfo},
|
2002-12-16 16:18:38 -04:00
|
|
|
{NULL}
|
|
|
|
};
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Constructors.
|
|
|
|
*/
|
|
|
|
|
2006-02-27 13:20:04 -04:00
|
|
|
static char *datetime_kws[] = {
|
2002-12-24 01:41:27 -04:00
|
|
|
"year", "month", "day", "hour", "minute", "second",
|
|
|
|
"microsecond", "tzinfo", NULL
|
|
|
|
};
|
|
|
|
|
2002-12-16 16:18:38 -04:00
|
|
|
static PyObject *
|
2003-01-10 23:39:11 -04:00
|
|
|
datetime_new(PyTypeObject *type, PyObject *args, PyObject *kw)
|
2002-12-16 16:18:38 -04:00
|
|
|
{
|
|
|
|
PyObject *self = NULL;
|
2003-02-01 00:40:04 -04:00
|
|
|
PyObject *state;
|
2002-12-16 16:18:38 -04:00
|
|
|
int year;
|
|
|
|
int month;
|
|
|
|
int day;
|
|
|
|
int hour = 0;
|
|
|
|
int minute = 0;
|
|
|
|
int second = 0;
|
|
|
|
int usecond = 0;
|
|
|
|
PyObject *tzinfo = Py_None;
|
|
|
|
|
2003-01-30 18:06:23 -04:00
|
|
|
/* Check for invocation from pickle with __getstate__ state */
|
|
|
|
if (PyTuple_GET_SIZE(args) >= 1 &&
|
|
|
|
PyTuple_GET_SIZE(args) <= 2 &&
|
2008-05-26 10:28:38 -03:00
|
|
|
PyBytes_Check(state = PyTuple_GET_ITEM(args, 0)) &&
|
|
|
|
PyBytes_GET_SIZE(state) == _PyDateTime_DATETIME_DATASIZE &&
|
|
|
|
MONTH_IS_SANE(PyBytes_AS_STRING(state)[2]))
|
2003-01-30 18:06:23 -04:00
|
|
|
{
|
2003-02-01 00:40:04 -04:00
|
|
|
PyDateTime_DateTime *me;
|
|
|
|
char aware;
|
|
|
|
|
|
|
|
if (PyTuple_GET_SIZE(args) == 2) {
|
2003-01-30 18:06:23 -04:00
|
|
|
tzinfo = PyTuple_GET_ITEM(args, 1);
|
2003-02-01 00:40:04 -04:00
|
|
|
if (check_tzinfo_subclass(tzinfo) < 0) {
|
|
|
|
PyErr_SetString(PyExc_TypeError, "bad "
|
|
|
|
"tzinfo state arg");
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
aware = (char)(tzinfo != Py_None);
|
2004-06-07 20:04:33 -03:00
|
|
|
me = (PyDateTime_DateTime *) (type->tp_alloc(type , aware));
|
2003-02-01 00:40:04 -04:00
|
|
|
if (me != NULL) {
|
2008-05-26 10:28:38 -03:00
|
|
|
char *pdata = PyBytes_AS_STRING(state);
|
2003-02-01 00:40:04 -04:00
|
|
|
|
|
|
|
memcpy(me->data, pdata, _PyDateTime_DATETIME_DATASIZE);
|
|
|
|
me->hashcode = -1;
|
|
|
|
me->hastzinfo = aware;
|
|
|
|
if (aware) {
|
|
|
|
Py_INCREF(tzinfo);
|
|
|
|
me->tzinfo = tzinfo;
|
2003-01-30 18:06:23 -04:00
|
|
|
}
|
|
|
|
}
|
2003-02-01 00:40:04 -04:00
|
|
|
return (PyObject *)me;
|
2003-01-30 18:06:23 -04:00
|
|
|
}
|
|
|
|
|
2003-01-10 23:39:11 -04:00
|
|
|
if (PyArg_ParseTupleAndKeywords(args, kw, "iii|iiiiO", datetime_kws,
|
2002-12-16 16:18:38 -04:00
|
|
|
&year, &month, &day, &hour, &minute,
|
|
|
|
&second, &usecond, &tzinfo)) {
|
|
|
|
if (check_date_args(year, month, day) < 0)
|
|
|
|
return NULL;
|
|
|
|
if (check_time_args(hour, minute, second, usecond) < 0)
|
|
|
|
return NULL;
|
|
|
|
if (check_tzinfo_subclass(tzinfo) < 0)
|
|
|
|
return NULL;
|
2003-05-17 02:55:19 -03:00
|
|
|
self = new_datetime_ex(year, month, day,
|
|
|
|
hour, minute, second, usecond,
|
|
|
|
tzinfo, type);
|
2002-12-16 16:18:38 -04:00
|
|
|
}
|
|
|
|
return self;
|
|
|
|
}
|
|
|
|
|
2003-01-10 23:39:11 -04:00
|
|
|
/* TM_FUNC is the shared type of localtime() and gmtime(). */
|
|
|
|
typedef struct tm *(*TM_FUNC)(const time_t *timer);
|
|
|
|
|
|
|
|
/* Internal helper.
|
|
|
|
* Build datetime from a time_t and a distinct count of microseconds.
|
|
|
|
* Pass localtime or gmtime for f, to control the interpretation of timet.
|
|
|
|
*/
|
|
|
|
static PyObject *
|
|
|
|
datetime_from_timet_and_us(PyObject *cls, TM_FUNC f, time_t timet, int us,
|
|
|
|
PyObject *tzinfo)
|
|
|
|
{
|
|
|
|
struct tm *tm;
|
|
|
|
PyObject *result = NULL;
|
|
|
|
|
|
|
|
tm = f(&timet);
|
|
|
|
if (tm) {
|
|
|
|
/* The platform localtime/gmtime may insert leap seconds,
|
|
|
|
* indicated by tm->tm_sec > 59. We don't care about them,
|
|
|
|
* except to the extent that passing them on to the datetime
|
|
|
|
* constructor would raise ValueError for a reason that
|
|
|
|
* made no sense to the user.
|
|
|
|
*/
|
|
|
|
if (tm->tm_sec > 59)
|
|
|
|
tm->tm_sec = 59;
|
|
|
|
result = PyObject_CallFunction(cls, "iiiiiiiO",
|
|
|
|
tm->tm_year + 1900,
|
|
|
|
tm->tm_mon + 1,
|
|
|
|
tm->tm_mday,
|
|
|
|
tm->tm_hour,
|
|
|
|
tm->tm_min,
|
|
|
|
tm->tm_sec,
|
|
|
|
us,
|
|
|
|
tzinfo);
|
|
|
|
}
|
|
|
|
else
|
|
|
|
PyErr_SetString(PyExc_ValueError,
|
|
|
|
"timestamp out of range for "
|
|
|
|
"platform localtime()/gmtime() function");
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Internal helper.
|
|
|
|
* Build datetime from a Python timestamp. Pass localtime or gmtime for f,
|
|
|
|
* to control the interpretation of the timestamp. Since a double doesn't
|
|
|
|
* have enough bits to cover a datetime's full range of precision, it's
|
|
|
|
* better to call datetime_from_timet_and_us provided you have a way
|
|
|
|
* to get that much precision (e.g., C time() isn't good enough).
|
|
|
|
*/
|
|
|
|
static PyObject *
|
|
|
|
datetime_from_timestamp(PyObject *cls, TM_FUNC f, double timestamp,
|
|
|
|
PyObject *tzinfo)
|
|
|
|
{
|
2004-06-19 23:50:16 -03:00
|
|
|
time_t timet;
|
|
|
|
double fraction;
|
|
|
|
int us;
|
2003-01-10 23:39:11 -04:00
|
|
|
|
2004-06-19 23:50:16 -03:00
|
|
|
timet = _PyTime_DoubleToTimet(timestamp);
|
|
|
|
if (timet == (time_t)-1 && PyErr_Occurred())
|
|
|
|
return NULL;
|
|
|
|
fraction = timestamp - (double)timet;
|
|
|
|
us = (int)round_to_long(fraction * 1e6);
|
Merged revisions 53952-54987 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r53954 | jeremy.hylton | 2007-02-26 10:41:18 -0800 (Mon, 26 Feb 2007) | 10 lines
Do not copy free variables to locals in class namespaces.
Fixes bug 1569356, but at the cost of a minor incompatibility in
locals(). Add test that verifies that the class namespace is not
polluted. Also clarify the behavior in the library docs.
Along the way, cleaned up the dict_to_map and map_to_dict
implementations and added some comments that explain what they do.
........
r53955 | jeremy.hylton | 2007-02-26 11:00:20 -0800 (Mon, 26 Feb 2007) | 2 lines
Fix assertion.
........
r53969 | neal.norwitz | 2007-02-26 14:41:45 -0800 (Mon, 26 Feb 2007) | 3 lines
When printing an unraisable error, don't print exceptions. before the name.
This duplicates the behavior whening normally printing exceptions.
........
r53970 | andrew.kuchling | 2007-02-26 15:02:47 -0800 (Mon, 26 Feb 2007) | 1 line
Markup fix
........
r53975 | neal.norwitz | 2007-02-26 15:48:27 -0800 (Mon, 26 Feb 2007) | 3 lines
SF #1669182, 2.5 was already fixed. Just assert in 2.6 since string exceptions
are gone.
........
r53976 | andrew.kuchling | 2007-02-26 15:54:17 -0800 (Mon, 26 Feb 2007) | 1 line
Add some items
........
r53981 | jeremy.hylton | 2007-02-26 17:01:59 -0800 (Mon, 26 Feb 2007) | 4 lines
Fix long-standing bug in name mangling for package imports
Reported by Mike Verdone.
........
r53993 | jeremy.hylton | 2007-02-27 08:00:06 -0800 (Tue, 27 Feb 2007) | 2 lines
tabify
........
r53994 | jeremy.hylton | 2007-02-27 08:13:23 -0800 (Tue, 27 Feb 2007) | 5 lines
tabify
Note that ast.c still has a mix of tabs and spaces, because it
attempts to use four-space indents for more of the new code.
........
r53996 | jeremy.hylton | 2007-02-27 09:24:48 -0800 (Tue, 27 Feb 2007) | 2 lines
whitespace normalization
........
r53997 | jeremy.hylton | 2007-02-27 10:29:45 -0800 (Tue, 27 Feb 2007) | 24 lines
Add checking for a number of metaclass error conditions.
We add some new rules that are required for preserving internal
invariants of types.
1. If type (or a subclass of type) appears in bases, it must appear
before any non-type bases. If a non-type base (like a regular
new-style class) occurred first, it could trick type into
allocating the new class an __dict__ which must be impossible.
2. There are several checks that are made of bases when creating a
type. Those checks are now repeated when assigning to __bases__.
We also add the restriction that assignment to __bases__ may not
change the metaclass of the type.
Add new tests for these cases and for a few other oddball errors that
were no previously tested. Remove a crasher test that was fixed.
Also some internal refactoring: Extract the code to find the most
derived metaclass of a type and its bases. It is now needed in two
places. Rewrite the TypeError checks in test_descr to use doctest.
The tests now clearly show what exception they expect to see.
........
r53998 | jeremy.hylton | 2007-02-27 10:33:31 -0800 (Tue, 27 Feb 2007) | 2 lines
Add news about changes to metaclasses and __bases__ error checking.
........
r54016 | armin.rigo | 2007-02-28 01:25:29 -0800 (Wed, 28 Feb 2007) | 3 lines
Modify the segfaulting example to show why r53997 is not a solution to
it.
........
r54022 | brett.cannon | 2007-02-28 10:15:00 -0800 (Wed, 28 Feb 2007) | 2 lines
Add a test for instantiating SyntaxError with no arguments.
........
r54026 | raymond.hettinger | 2007-02-28 10:27:41 -0800 (Wed, 28 Feb 2007) | 1 line
Docstring nit.
........
r54033 | raymond.hettinger | 2007-02-28 10:37:52 -0800 (Wed, 28 Feb 2007) | 1 line
Prepare collections module for pure python code entries.
........
r54053 | raymond.hettinger | 2007-02-28 22:16:43 -0800 (Wed, 28 Feb 2007) | 1 line
Add collections.NamedTuple
........
r54054 | neal.norwitz | 2007-02-28 23:04:41 -0800 (Wed, 28 Feb 2007) | 1 line
Add Pat and Eric for work on PEP 3101 in the sandbox
........
r54061 | andrew.kuchling | 2007-03-01 06:36:12 -0800 (Thu, 01 Mar 2007) | 1 line
Add NamedTuple
........
r54080 | georg.brandl | 2007-03-02 06:37:12 -0800 (Fri, 02 Mar 2007) | 2 lines
Bug #1628895: some better tries to find HTML documentation in pydoc.
........
r54086 | raymond.hettinger | 2007-03-02 11:20:46 -0800 (Fri, 02 Mar 2007) | 1 line
Fix embarrassing typo and fix constantification of None
........
r54088 | georg.brandl | 2007-03-02 12:30:14 -0800 (Fri, 02 Mar 2007) | 2 lines
Bugs #1668032, #1668036, #1669304: clarify behavior of PyMem_Realloc and _Resize.
........
r54114 | georg.brandl | 2007-03-04 09:18:54 -0800 (Sun, 04 Mar 2007) | 2 lines
Fix a bug in test_dict and test_userdict, found at the PyPy sprint.
........
r54124 | skip.montanaro | 2007-03-04 12:52:28 -0800 (Sun, 04 Mar 2007) | 2 lines
Teach setup.py how to find Berkeley DB on Macs using MacPorts.
........
r54125 | skip.montanaro | 2007-03-04 12:54:12 -0800 (Sun, 04 Mar 2007) | 1 line
note MacPorts/BerkDB change in setup.py
........
r54136 | neal.norwitz | 2007-03-04 23:52:01 -0800 (Sun, 04 Mar 2007) | 1 line
Added Pete for 3101 too
........
r54138 | facundo.batista | 2007-03-05 08:31:54 -0800 (Mon, 05 Mar 2007) | 1 line
Minor corrections to docs, and an explanation comentary
........
r54139 | georg.brandl | 2007-03-05 14:28:08 -0800 (Mon, 05 Mar 2007) | 3 lines
Patch #1674228: when assigning a slice (old-style), check for the
sq_ass_slice instead of the sq_slice slot.
........
r54149 | georg.brandl | 2007-03-06 01:33:01 -0800 (Tue, 06 Mar 2007) | 3 lines
Nit: a struct field is set to GenericAlloc, not GenericAlloc().
........
r54150 | georg.brandl | 2007-03-06 02:02:47 -0800 (Tue, 06 Mar 2007) | 3 lines
Patch #1671450: add a section about subclassing builtin types to the
"extending and embedding" tutorial.
........
r54152 | martin.v.loewis | 2007-03-06 02:41:24 -0800 (Tue, 06 Mar 2007) | 2 lines
Patch #1121142: Implement ZipFile.open.
........
r54154 | georg.brandl | 2007-03-06 03:51:14 -0800 (Tue, 06 Mar 2007) | 2 lines
A test case for the fix in #1674228.
........
r54156 | georg.brandl | 2007-03-06 03:52:24 -0800 (Tue, 06 Mar 2007) | 2 lines
Patch #1672481: fix bug in idlelib.MultiCall.
........
r54159 | georg.brandl | 2007-03-06 04:17:50 -0800 (Tue, 06 Mar 2007) | 1 line
Bug #1674503: close the file opened by execfile() in an error condition.
........
r54160 | georg.brandl | 2007-03-06 05:32:52 -0800 (Tue, 06 Mar 2007) | 3 lines
Fix another reincarnation of bug #1576657 in defaultdict.
........
r54162 | georg.brandl | 2007-03-06 05:35:00 -0800 (Tue, 06 Mar 2007) | 2 lines
A test case for the defaultdict KeyError bug.
........
r54164 | georg.brandl | 2007-03-06 05:37:45 -0800 (Tue, 06 Mar 2007) | 3 lines
Patch #1663234: you can now run doctest on test files and modules
using "python -m doctest [-v] filename ...".
........
r54165 | martin.v.loewis | 2007-03-06 06:43:00 -0800 (Tue, 06 Mar 2007) | 3 lines
Patch #912410: Replace HTML entity references for attribute values
in HTMLParser.
........
r54166 | skip.montanaro | 2007-03-06 07:41:38 -0800 (Tue, 06 Mar 2007) | 1 line
patch 1673619 - identify extension modules which cannot be built
........
r54167 | guido.van.rossum | 2007-03-06 07:50:01 -0800 (Tue, 06 Mar 2007) | 5 lines
Patch #1646728: datetime.fromtimestamp fails with negative
fractional times. With unittest.
Somebody please backport to 2.5.
........
r54169 | georg.brandl | 2007-03-06 09:49:14 -0800 (Tue, 06 Mar 2007) | 2 lines
Fix cmp vs. key argument for list.sort.
........
r54170 | georg.brandl | 2007-03-06 10:21:32 -0800 (Tue, 06 Mar 2007) | 2 lines
Small nit, found by Neal.
........
r54171 | georg.brandl | 2007-03-06 10:29:58 -0800 (Tue, 06 Mar 2007) | 3 lines
Patch #1602128: clarify that richcmp methods can return NotImplemented
and should return True or False otherwise.
........
r54173 | georg.brandl | 2007-03-06 10:41:12 -0800 (Tue, 06 Mar 2007) | 2 lines
Patch #1638879: don't accept strings with embedded NUL bytes in long().
........
r54175 | georg.brandl | 2007-03-06 10:47:31 -0800 (Tue, 06 Mar 2007) | 2 lines
Patch #1673121: update README wrt. OSX default shell.
........
r54177 | georg.brandl | 2007-03-06 10:59:11 -0800 (Tue, 06 Mar 2007) | 3 lines
Patch #1654417: make operator.{get,set,del}slice use the full range
of Py_ssize_t.
........
r54180 | walter.doerwald | 2007-03-06 12:38:57 -0800 (Tue, 06 Mar 2007) | 4 lines
Patch for bug #1633621: if curses.resizeterm() or
curses.resize_term() is called, update _curses.LINES,
_curses.COLS, curses.LINES and curses.COLS.
........
r54182 | walter.doerwald | 2007-03-06 13:15:24 -0800 (Tue, 06 Mar 2007) | 2 lines
Document change to curses.
........
r54188 | georg.brandl | 2007-03-06 16:34:46 -0800 (Tue, 06 Mar 2007) | 5 lines
Variant of patch #697613: don't exit the interpreter on a SystemExit
exception if the -i command line option or PYTHONINSPECT environment
variable is given, but break into the interactive interpreter just like
on other exceptions or normal program exit.
(backport)
........
r54189 | georg.brandl | 2007-03-06 16:40:28 -0800 (Tue, 06 Mar 2007) | 4 lines
Patch #703779: unset __file__ in __main__ after running a file. This
makes the filenames the warning module prints much more sensible when
a PYTHONSTARTUP file is used.
........
r54192 | george.yoshida | 2007-03-06 20:21:18 -0800 (Tue, 06 Mar 2007) | 2 lines
add versionadded info
........
r54195 | georg.brandl | 2007-03-06 23:39:06 -0800 (Tue, 06 Mar 2007) | 2 lines
Patch #812285: allow multiple auth schemes in AbstractBasicAuthHandler.
........
r54197 | georg.brandl | 2007-03-07 00:31:51 -0800 (Wed, 07 Mar 2007) | 3 lines
Patch #1001604: glob.glob() now returns unicode filenames if it was
given a unicode argument and os.listdir() returns unicode filenames.
........
r54199 | georg.brandl | 2007-03-07 01:09:40 -0800 (Wed, 07 Mar 2007) | 3 lines
Patches #1550273, #1550272: fix a few bugs in unittest and add a
comprehensive test suite for the module.
........
r54201 | georg.brandl | 2007-03-07 01:21:06 -0800 (Wed, 07 Mar 2007) | 3 lines
Patch #787789: allow to pass custom TestRunner instances to unittest's
main() function.
........
r54202 | georg.brandl | 2007-03-07 01:34:45 -0800 (Wed, 07 Mar 2007) | 2 lines
Patch #1669331: clarify shutil.copyfileobj() behavior wrt. file position.
........
r54204 | martin.v.loewis | 2007-03-07 03:04:33 -0800 (Wed, 07 Mar 2007) | 2 lines
Bug #1115886: os.path.splitext('.cshrc') gives now ('.cshrc', '').
........
r54206 | georg.brandl | 2007-03-07 03:37:42 -0800 (Wed, 07 Mar 2007) | 2 lines
Patch #1675471: convert test_pty to unittest.
........
r54207 | georg.brandl | 2007-03-07 03:54:49 -0800 (Wed, 07 Mar 2007) | 4 lines
Add some sanity checks to unittest.TestSuite's addTest(s) methods.
Fixes #878275.
........
r54209 | guido.van.rossum | 2007-03-07 07:16:29 -0800 (Wed, 07 Mar 2007) | 3 lines
Windows doesn't support negative timestamps. Skip the tests involving them
if os.name == "nt".
........
r54219 | martin.v.loewis | 2007-03-08 05:42:43 -0800 (Thu, 08 Mar 2007) | 2 lines
Add missing ) in parenthical remark.
........
r54220 | georg.brandl | 2007-03-08 09:49:06 -0800 (Thu, 08 Mar 2007) | 2 lines
Fix #1676656: \em is different from \emph...
........
r54222 | georg.brandl | 2007-03-08 10:37:31 -0800 (Thu, 08 Mar 2007) | 2 lines
Add a NEWS entry for rev. 54207,8.
........
r54225 | raymond.hettinger | 2007-03-08 11:24:27 -0800 (Thu, 08 Mar 2007) | 1 line
SF 1676321: empty() returned wrong result
........
r54227 | collin.winter | 2007-03-08 11:58:14 -0800 (Thu, 08 Mar 2007) | 1 line
Backported r54226 from p3yk: Move test_unittest, test_doctest and test_doctest2 higher up in the testing order.
........
r54230 | raymond.hettinger | 2007-03-08 13:33:47 -0800 (Thu, 08 Mar 2007) | 1 line
SF #1637850: make_table in difflib did not work with unicode
........
r54232 | collin.winter | 2007-03-08 14:16:25 -0800 (Thu, 08 Mar 2007) | 1 line
Patch #1668482: don't use '-' in mkstemp
........
r54233 | brett.cannon | 2007-03-08 15:58:11 -0800 (Thu, 08 Mar 2007) | 10 lines
Introduce test.test_support.TransientResource. It's a context manager to
surround calls to resources that may or may not be available. Specifying the
expected exception and attributes to be raised if the resource is not available
prevents overly broad catching of exceptions.
This is meant to help suppress spurious failures by raising
test.test_support.ResourceDenied if the exception matches. It would probably
be good to go through the various network tests and surround the calls to catch
connection timeouts (as done with test_socket_ssl in this commit).
........
r54234 | collin.winter | 2007-03-08 19:15:56 -0800 (Thu, 08 Mar 2007) | 1 line
Patch #1481079: Support of HTTP_REFERER in CGIHTTPServer.py
........
r54235 | collin.winter | 2007-03-08 19:26:32 -0800 (Thu, 08 Mar 2007) | 1 line
Add NEWS item for patch #1481079 (r54234).
........
r54237 | neal.norwitz | 2007-03-08 21:59:01 -0800 (Thu, 08 Mar 2007) | 1 line
Fix SF #1676971, Complex OverflowError has a typo
........
r54239 | georg.brandl | 2007-03-09 04:58:41 -0800 (Fri, 09 Mar 2007) | 2 lines
Typo.
........
r54240 | martin.v.loewis | 2007-03-09 07:35:55 -0800 (Fri, 09 Mar 2007) | 2 lines
Patch #957003: Implement smtplib.LMTP.
........
r54243 | collin.winter | 2007-03-09 10:09:10 -0800 (Fri, 09 Mar 2007) | 2 lines
Bug #1629566: clarify the docs on the return values of parsedate() and parsedate_tz() in email.utils and rfc822.
........
r54244 | thomas.heller | 2007-03-09 11:21:28 -0800 (Fri, 09 Mar 2007) | 3 lines
Fix bug #1646630: ctypes.string_at(buf, 0) and ctypes.wstring_at(buf, 0)
returned string up to the first NUL character.
........
r54245 | martin.v.loewis | 2007-03-09 11:36:01 -0800 (Fri, 09 Mar 2007) | 2 lines
Add Ziga Seilnacht.
........
r54247 | collin.winter | 2007-03-09 12:33:07 -0800 (Fri, 09 Mar 2007) | 2 lines
Patch #1491866: change the complex() constructor to allow parthensized forms. This means complex(repr(x)) now works instead of raising a ValueError.
........
r54248 | thomas.heller | 2007-03-09 12:39:22 -0800 (Fri, 09 Mar 2007) | 7 lines
Bug #1651235: When a tuple was passed to a ctypes function call,
Python would crash instead of raising an error.
The crash was caused by a section of code that should have been
removed long ago, at that time ctypes had other ways to pass
parameters to function calls.
........
r54250 | collin.winter | 2007-03-09 15:30:39 -0800 (Fri, 09 Mar 2007) | 1 line
Hashing simplification pointed out by Thomas Wouters.
........
r54252 | collin.winter | 2007-03-09 18:23:40 -0800 (Fri, 09 Mar 2007) | 5 lines
* Unlink test files before and after each test; hopefully this will cut down on recent buildbot failures in test_islink.
* Drop safe_remove() in favor of test_support.unlink().
* Fix the indentation of test_samefile so that it runs.
........
r54253 | collin.winter | 2007-03-09 18:51:26 -0800 (Fri, 09 Mar 2007) | 3 lines
Bug #1531963: Make SocketServer.TCPServer's server_address always be equal to calling getsockname() on the server's socket.
Will backport.
........
r54254 | neal.norwitz | 2007-03-09 19:19:18 -0800 (Fri, 09 Mar 2007) | 4 lines
Simplify a little by handling the TCP case first.
Update to use predominant style of spaces around = in args list
and print to stderr if debugging.
........
r54256 | collin.winter | 2007-03-09 19:35:34 -0800 (Fri, 09 Mar 2007) | 1 line
Add proper attribution for a bug fix.
........
r54257 | georg.brandl | 2007-03-09 23:38:14 -0800 (Fri, 09 Mar 2007) | 2 lines
Typos.
........
r54260 | collin.winter | 2007-03-10 06:33:32 -0800 (Sat, 10 Mar 2007) | 1 line
Convert an assert to a raise so it works even in the presence of -O.
........
r54262 | collin.winter | 2007-03-10 06:41:48 -0800 (Sat, 10 Mar 2007) | 2 lines
Patch #1599845: Add an option to disable the implicit calls to server_bind() and server_activate() in the constructors for TCPServer, SimpleXMLRPCServer and DocXMLRPCServer.
........
r54268 | georg.brandl | 2007-03-11 00:28:46 -0800 (Sun, 11 Mar 2007) | 2 lines
Add missing "return" statements in exception handler.
........
r54270 | ziga.seilnacht | 2007-03-11 08:54:54 -0700 (Sun, 11 Mar 2007) | 3 lines
Patch #1675981: remove unreachable code from type.__new__() method.
__dict__ and __weakref__ are removed from the slots tuple earlier
in the code, in the loop that mangles slot names. Will backport.
........
r54271 | collin.winter | 2007-03-11 09:00:20 -0700 (Sun, 11 Mar 2007) | 3 lines
Patch #1192590: Fix pdb's "ignore" and "condition" commands so they trap the IndexError caused by passing in an invalid breakpoint number.
Will backport.
........
r54274 | vinay.sajip | 2007-03-11 11:32:07 -0700 (Sun, 11 Mar 2007) | 1 line
Fix resource leak reported in SF #1516995.
........
r54278 | collin.winter | 2007-03-11 18:55:54 -0700 (Sun, 11 Mar 2007) | 4 lines
Patch #1678662: ftp.python.org does not exist. So the testcode in urllib.py must use a more
stable FTP.
Will backport.
........
r54280 | barry.warsaw | 2007-03-11 20:20:01 -0700 (Sun, 11 Mar 2007) | 8 lines
Tokio Kikuchi's fix for SF bug #1629369; folding whitespace allowed in the
display name of an email address, e.g.
Foo
\tBar <foo@example.com>
Test case added by Barry.
........
r54282 | skip.montanaro | 2007-03-11 20:30:50 -0700 (Sun, 11 Mar 2007) | 4 lines
Sane humans would call these invalid tests, but Andrew McNamara pointed out
that given the inputs in these tests Excel does indeed produce the output
these tests expect. Document that for future confused folks.
........
r54283 | martin.v.loewis | 2007-03-12 03:50:39 -0700 (Mon, 12 Mar 2007) | 2 lines
Bug #1675511: Use -Kpic instead of -xcode=pic32 on Solaris/x86.
........
r54285 | martin.v.loewis | 2007-03-12 04:01:10 -0700 (Mon, 12 Mar 2007) | 2 lines
Patch #1677862: Require a space or tab after import in .pth files.
........
r54287 | georg.brandl | 2007-03-12 06:17:36 -0700 (Mon, 12 Mar 2007) | 8 lines
Backport from Py3k branch:
Patch #1591665: implement the __dir__() special function lookup in PyObject_Dir.
Had to change a few bits of the patch because classobjs and __methods__ are still
in Py2.6.
........
r54288 | georg.brandl | 2007-03-12 07:30:05 -0700 (Mon, 12 Mar 2007) | 3 lines
Bug #1678647: write a newline after printing an exception in any
case, even when converting the value to a string failed.
........
r54290 | collin.winter | 2007-03-12 08:57:19 -0700 (Mon, 12 Mar 2007) | 1 line
Patch #1678088: convert test_operations to use unittest, fold the result into test_dict.
........
r54291 | collin.winter | 2007-03-12 09:11:39 -0700 (Mon, 12 Mar 2007) | 3 lines
Bug #742342: make Python stop segfaulting on infinitely-recursive reload()s. Fixed by patch #922167.
Will backport.
........
r54292 | georg.brandl | 2007-03-12 09:15:09 -0700 (Mon, 12 Mar 2007) | 2 lines
Typo fix.
........
r54295 | collin.winter | 2007-03-12 10:24:07 -0700 (Mon, 12 Mar 2007) | 1 line
Patch #1670993: Refactor test_threadedtempfile.py to use unittest.
........
r54296 | tim.peters | 2007-03-12 11:07:52 -0700 (Mon, 12 Mar 2007) | 2 lines
Whitespace normalization.
........
r54297 | tim.peters | 2007-03-12 11:09:22 -0700 (Mon, 12 Mar 2007) | 2 lines
Set missing svn:eol-style property on text files.
........
r54315 | brett.cannon | 2007-03-12 19:34:09 -0700 (Mon, 12 Mar 2007) | 8 lines
Add test.test_support.transient_internet . Returns a context manager that
nests test.test_support.TransientResource context managers that capture
exceptions raised when the Internet connection is flaky.
Initially using in test_socket_ssl but should probably be expanded to cover any
test that should not raise the captured exceptions if the Internet connection
works.
........
r54316 | brett.cannon | 2007-03-12 20:05:40 -0700 (Mon, 12 Mar 2007) | 2 lines
Fix a typo where the variable name was not updated.
........
r54318 | neal.norwitz | 2007-03-12 21:59:58 -0700 (Mon, 12 Mar 2007) | 1 line
Add Jerry Seutter for a bunch of his recent patches refactoring tests
........
r54319 | neal.norwitz | 2007-03-12 22:07:14 -0700 (Mon, 12 Mar 2007) | 7 lines
Add some other acks for recent checkins:
Brian Leair - 922167
Tomer Filiba - 1591665
Jeremy Jones - 1192590
........
r54321 | neal.norwitz | 2007-03-12 22:31:38 -0700 (Mon, 12 Mar 2007) | 9 lines
Fix some style nits:
* lines too long
* wrong indentation
* space after a function name
* wrong function name in error string
* simplifying some logic
Also add an error check to PyDict_SetItemString.
........
r54322 | georg.brandl | 2007-03-13 00:23:16 -0700 (Tue, 13 Mar 2007) | 2 lines
Typo and grammar fixes.
........
r54323 | georg.brandl | 2007-03-13 00:50:57 -0700 (Tue, 13 Mar 2007) | 2 lines
Patch #1679379: add documentation for fnmatch.translate().
........
r54325 | georg.brandl | 2007-03-13 00:57:51 -0700 (Tue, 13 Mar 2007) | 2 lines
Patch #1642844: comments to clarify the complexobject constructor.
........
r54326 | georg.brandl | 2007-03-13 01:14:27 -0700 (Tue, 13 Mar 2007) | 3 lines
Patch #1668100: urllib2 now correctly raises URLError instead of
OSError if accessing a local file via the file:// protocol fails.
........
r54327 | georg.brandl | 2007-03-13 02:32:11 -0700 (Tue, 13 Mar 2007) | 4 lines
Patch #1635454: the csv.DictWriter class now includes the offending
field names in its exception message if you try to write a record with
a dictionary containing fields not in the CSV field names list.
........
r54328 | georg.brandl | 2007-03-13 02:41:31 -0700 (Tue, 13 Mar 2007) | 3 lines
Patch #1555098: use str.join() instead of repeated string
concatenation in robotparser.
........
r54329 | georg.brandl | 2007-03-13 03:06:48 -0700 (Tue, 13 Mar 2007) | 3 lines
Patch #1542681: add entries for "with", "as" and "CONTEXTMANAGERS" to
pydoc's help keywords.
........
r54331 | georg.brandl | 2007-03-13 03:19:22 -0700 (Tue, 13 Mar 2007) | 3 lines
Patch #1569798: fix a bug in distutils when building Python from a
directory within sys.exec_prefix.
........
r54333 | martin.v.loewis | 2007-03-13 03:24:00 -0700 (Tue, 13 Mar 2007) | 4 lines
Patch #1449244: Support Unicode strings in
email.message.Message.{set_charset,get_content_charset}.
Will backport.
........
r54335 | lars.gustaebel | 2007-03-13 03:47:19 -0700 (Tue, 13 Mar 2007) | 34 lines
This is the implementation of POSIX.1-2001 (pax) format read/write
support.
The TarInfo class now contains all necessary logic to process and
create tar header data which has been moved there from the TarFile
class. The fromtarfile() method was added. The new path and linkpath
properties are aliases for the name and linkname attributes in
correspondence to the pax naming scheme.
The TarFile constructor and classmethods now accept a number of
keyword arguments which could only be set as attributes before (e.g.
dereference, ignore_zeros). The encoding and pax_headers arguments
were added for pax support. There is a new tarinfo keyword argument
that allows using subclassed TarInfo objects in TarFile.
The boolean TarFile.posix attribute is deprecated, because now three
tar formats are supported. Instead, the desired format for writing is
specified using the constants USTAR_FORMAT, GNU_FORMAT and PAX_FORMAT
as the format keyword argument. This change affects TarInfo.tobuf()
as well.
The test suite has been heavily reorganized and partially rewritten.
A new testtar.tar was added that contains sample data in many formats
from 4 different tar programs.
Some bugs and quirks that also have been fixed:
Directory names do no longer have a trailing slash in TarInfo.name or
TarFile.getnames().
Adding the same file twice does not create a hardlink file member.
The TarFile constructor does no longer need a name argument.
The TarFile._mode attribute was renamed to mode and contains either
'r', 'w' or 'a'.
........
r54336 | georg.brandl | 2007-03-13 05:34:25 -0700 (Tue, 13 Mar 2007) | 3 lines
Bug #1622896: fix a rare corner case where the bz2 module raised an
error in spite of a succesful compression.
........
r54338 | lars.gustaebel | 2007-03-13 08:47:07 -0700 (Tue, 13 Mar 2007) | 3 lines
Quick fix for tests that fail on systems with an encoding other
than 'iso8859-1'.
........
r54339 | georg.brandl | 2007-03-13 10:43:32 -0700 (Tue, 13 Mar 2007) | 4 lines
Patch #1603688: ConfigParser.SafeConfigParser now checks values that
are set for invalid interpolation sequences that would lead to errors
on reading back those values.
........
r54341 | georg.brandl | 2007-03-13 11:15:41 -0700 (Tue, 13 Mar 2007) | 3 lines
Patch #1581073: add a flag to textwrap that prevents the dropping of
whitespace while wrapping.
........
r54343 | georg.brandl | 2007-03-13 11:24:40 -0700 (Tue, 13 Mar 2007) | 2 lines
Patch #1605192: list allowed states in error messages for imaplib.
........
r54344 | georg.brandl | 2007-03-13 11:31:49 -0700 (Tue, 13 Mar 2007) | 4 lines
Patch #1537850: tempfile.NamedTemporaryFile now has a "delete" parameter
which can be set to False to prevent the default delete-on-close
behavior.
........
r54345 | collin.winter | 2007-03-13 11:53:04 -0700 (Tue, 13 Mar 2007) | 9 lines
Add acks for recent patch checkins:
Arvin Schnell - 1668482
S?\195?\169bastien Martini - 1481079
Heiko Wundram - 1491866
Damon Kohler - 1545011
Peter Parente - 1599845
Bjorn Lindqvist - 1678662
........
r54346 | georg.brandl | 2007-03-13 12:00:36 -0700 (Tue, 13 Mar 2007) | 2 lines
Acks for recent patches.
........
r54347 | georg.brandl | 2007-03-13 12:18:18 -0700 (Tue, 13 Mar 2007) | 3 lines
Fix a tab.
........
r54348 | georg.brandl | 2007-03-13 12:32:21 -0700 (Tue, 13 Mar 2007) | 4 lines
Patch #1533909: the timeit module now accepts callables in addition to
strings for the code to time and the setup code. Also added two
convenience functions for instantiating a Timer and calling its methods.
........
r54352 | georg.brandl | 2007-03-13 13:02:57 -0700 (Tue, 13 Mar 2007) | 3 lines
Patch #1530482: add pydoc.render_doc() which returns the documentation
for a thing instead of paging it to stdout, which pydoc.doc() does.
........
r54357 | thomas.heller | 2007-03-13 13:42:52 -0700 (Tue, 13 Mar 2007) | 1 line
Patch #1649190: Adding support for _Bool to ctypes as c_bool, by David Remahl.
........
r54358 | georg.brandl | 2007-03-13 13:46:32 -0700 (Tue, 13 Mar 2007) | 2 lines
Patch #1444529: the builtin compile() now accepts keyword arguments.
(backport)
........
r54359 | thomas.heller | 2007-03-13 14:01:39 -0700 (Tue, 13 Mar 2007) | 1 line
Add versionadded marker for ctypes.c_bool.
........
r54360 | georg.brandl | 2007-03-13 14:08:15 -0700 (Tue, 13 Mar 2007) | 3 lines
Patch #1393667: pdb now has a "run" command which restarts the debugged
Python program, optionally with different arguments.
........
r54361 | georg.brandl | 2007-03-13 14:32:01 -0700 (Tue, 13 Mar 2007) | 3 lines
Deprecate commands.getstatus().
........
r54362 | georg.brandl | 2007-03-13 14:32:56 -0700 (Tue, 13 Mar 2007) | 2 lines
NEWS entry for getstatus() deprecation.
........
r54363 | georg.brandl | 2007-03-13 14:58:44 -0700 (Tue, 13 Mar 2007) | 4 lines
Patch #1429539: pdb now correctly initializes the __main__ module for
the debugged script, which means that imports from __main__ work
correctly now.
........
r54364 | georg.brandl | 2007-03-13 15:07:36 -0700 (Tue, 13 Mar 2007) | 4 lines
Patch #957650: "%var%" environment variable references are now properly
expanded in ntpath.expandvars(), also "~user" home directory references
are recognized and handled on Windows.
........
r54365 | georg.brandl | 2007-03-13 15:16:30 -0700 (Tue, 13 Mar 2007) | 2 lines
Patch #1194449: correctly detect unbound methods in pydoc.
........
r54367 | georg.brandl | 2007-03-13 15:49:43 -0700 (Tue, 13 Mar 2007) | 5 lines
Patch #1185447: binascii.b2a_qp() now correctly quotes binary characters
with ASCII value less than 32. Also, it correctly quotes dots only if
they occur on a single line, as opposed to the previous behavior of
quoting dots if they are the second character of any line.
........
r54368 | collin.winter | 2007-03-13 16:02:15 -0700 (Tue, 13 Mar 2007) | 1 line
Inline PyImport_GetModulesReloading().
........
r54371 | barry.warsaw | 2007-03-13 21:59:50 -0700 (Tue, 13 Mar 2007) | 6 lines
SF bug #1582282; decode_header() incorrectly splits not-conformant RFC
2047-like headers where there is no whitespace between encoded words. This
fix changes the matching regexp to include a trailing lookahead assertion that
the closing ?= must be followed by whitespace, newline, or end-of-string.
This also changes the regexp to add the MULTILINE flag.
........
r54372 | gregory.p.smith | 2007-03-14 00:17:40 -0700 (Wed, 14 Mar 2007) | 2 lines
correct order and names of the less often used keyword parameters.
........
r54373 | gregory.p.smith | 2007-03-14 00:19:50 -0700 (Wed, 14 Mar 2007) | 5 lines
Its time to stop listing (Unix, Windows) when we really mean "everything but Mac OS 9"
now that nobody is likely to use Python on Mac OS 9 and most of the (Mac) platform
items are all OS X special API specific since OS X is unixy enough for these modules
to be available out of the box.
........
r54376 | georg.brandl | 2007-03-14 01:27:52 -0700 (Wed, 14 Mar 2007) | 4 lines
Bug #767111: fix long-standing bug in urllib which caused an
AttributeError instead of an IOError when the server's response didn't
contain a valid HTTP status line.
........
r54378 | ziga.seilnacht | 2007-03-14 05:24:09 -0700 (Wed, 14 Mar 2007) | 4 lines
Patch #1680015: Don't modify __slots__ tuple if it contains an unicode
name. Remove a reference leak that happened if the name could not be
converted to string. Will backport.
........
r54386 | martin.v.loewis | 2007-03-14 13:02:31 -0700 (Wed, 14 Mar 2007) | 3 lines
Patch #1559413: Fix test_cmd_line if sys.executable contains a space.
Will backport.
........
r54389 | brett.cannon | 2007-03-14 14:40:13 -0700 (Wed, 14 Mar 2007) | 3 lines
Note how test_socket_ssl has various exceptions that deal with a flaky Net
connection are silenced.
........
r54390 | brett.cannon | 2007-03-14 14:44:15 -0700 (Wed, 14 Mar 2007) | 2 lines
Raise ResourceDenied in test_urllib2net when the Net connection goes bad.
........
r54391 | neal.norwitz | 2007-03-14 21:41:20 -0700 (Wed, 14 Mar 2007) | 1 line
Wrap a long line and fix a typo (is -> if)
........
r54392 | georg.brandl | 2007-03-15 00:38:14 -0700 (Thu, 15 Mar 2007) | 3 lines
Patch #1680978: consistently use "alive" instead of "active" in the
thread lib doc.
........
r54394 | georg.brandl | 2007-03-15 00:41:30 -0700 (Thu, 15 Mar 2007) | 3 lines
Patch #1681153: the wave module now closes a file object it opened if
initialization failed.
........
r54397 | ziga.seilnacht | 2007-03-15 04:44:55 -0700 (Thu, 15 Mar 2007) | 3 lines
Patch #1462488: prevent a segfault in object_reduce_ex() by splitting
the implementation for __reduce__ and __reduce_ex__ into two separate
functions. Fixes bug #931877. Will backport.
........
r54404 | collin.winter | 2007-03-15 21:11:30 -0700 (Thu, 15 Mar 2007) | 3 lines
Patch #1642547: Fix an error/crash when encountering syntax errors in complex if statements.
Will backport.
........
r54406 | georg.brandl | 2007-03-16 00:55:09 -0700 (Fri, 16 Mar 2007) | 5 lines
Bug #1681228: the webbrowser module now correctly uses the default
GNOME or KDE browser, depending on whether there is a session of one
of those present. Also, it tries the Windows default browser before
trying Mozilla variants.
(backport)
........
r54407 | georg.brandl | 2007-03-16 01:22:40 -0700 (Fri, 16 Mar 2007) | 4 lines
Patch #1273829: os.walk() now has a "followlinks" parameter. If set to
True (which is not the default), it visits symlinks pointing to
directories.
........
r54408 | georg.brandl | 2007-03-16 01:24:21 -0700 (Fri, 16 Mar 2007) | 2 lines
Add \versionadded tag.
........
r54409 | georg.brandl | 2007-03-16 01:33:47 -0700 (Fri, 16 Mar 2007) | 2 lines
RFE #1670167: fix in isinstance() docs.
........
r54412 | ziga.seilnacht | 2007-03-16 04:59:38 -0700 (Fri, 16 Mar 2007) | 3 lines
Patch #1623563: allow __class__ assignment for classes with __slots__.
The old and the new class are still required to have the same slot
names, but the order in which they are specified is not relevant.
........
r54413 | ziga.seilnacht | 2007-03-16 05:11:11 -0700 (Fri, 16 Mar 2007) | 2 lines
Whitespace cleanup. Also remove the empty lines
from the previous check in.
........
r54414 | jeremy.hylton | 2007-03-16 07:49:11 -0700 (Fri, 16 Mar 2007) | 2 lines
Remove warning: funcion declaration isn't a prototype
........
r54415 | jeremy.hylton | 2007-03-16 08:59:47 -0700 (Fri, 16 Mar 2007) | 11 lines
Clean up formatting of this file.
The file should now follow PEP 7, except that it uses 4 space indents
(in the style of Py3k). This particular code would be really hard to
read with the regular tab idents.
Other changes:
- reflow long lines
- change multi-line conditionals to have test at end of line
........
r54417 | collin.winter | 2007-03-16 14:13:35 -0700 (Fri, 16 Mar 2007) | 1 line
Patch #1676994: Refactor test_popen2 to use unittest.
........
r54418 | collin.winter | 2007-03-16 14:15:35 -0700 (Fri, 16 Mar 2007) | 1 line
Remove test/output/test_popen2 (missed in r54417).
........
r54419 | collin.winter | 2007-03-16 15:16:08 -0700 (Fri, 16 Mar 2007) | 1 line
Patch 1339796: add a relpath() function to os.path.
........
r54421 | georg.brandl | 2007-03-17 09:08:45 -0700 (Sat, 17 Mar 2007) | 5 lines
Patch #1675423: PyComplex_AsCComplex() now tries to convert an object
to complex using its __complex__() method before falling back to the
__float__() method. Therefore, the functions in the cmath module now
can operate on objects that define a __complex__() method.
(backport)
........
r54423 | gregory.p.smith | 2007-03-17 15:33:35 -0700 (Sat, 17 Mar 2007) | 2 lines
move note to the correct section
........
r54426 | georg.brandl | 2007-03-18 01:25:00 -0700 (Sun, 18 Mar 2007) | 2 lines
Patch #1682878: the new socket methods are recv_into and recvfrom_into, not *_buf.
........
r54432 | georg.brandl | 2007-03-18 11:28:25 -0700 (Sun, 18 Mar 2007) | 2 lines
Patch #1678339: test case for bug in difflib.
........
r54439 | collin.winter | 2007-03-19 11:52:08 -0700 (Mon, 19 Mar 2007) | 1 line
Patch #1630118: add a SpooledTemporaryFile class to tempfile.
........
r54441 | georg.brandl | 2007-03-19 12:02:48 -0700 (Mon, 19 Mar 2007) | 2 lines
Patch #1683328: fixes and enhancements for "unparse" demo.
........
r54456 | neal.norwitz | 2007-03-19 22:07:28 -0700 (Mon, 19 Mar 2007) | 1 line
Add some doc that was left out from some change to platform.py
........
r54457 | neal.norwitz | 2007-03-19 22:08:23 -0700 (Mon, 19 Mar 2007) | 1 line
Add a comment about 3k migration
........
r54458 | neal.norwitz | 2007-03-19 22:21:21 -0700 (Mon, 19 Mar 2007) | 1 line
Get rid of deprecation warning when testing commands.getstatus()
........
r54459 | neal.norwitz | 2007-03-19 22:23:09 -0700 (Mon, 19 Mar 2007) | 4 lines
Try backing out 54407 to see if it corrects the problems on the Windows
buildbots. This rev was backported, so we will need to keep both branches
in sync, pending the outcome of the test after this checkin.
........
r54460 | neal.norwitz | 2007-03-19 23:13:25 -0700 (Mon, 19 Mar 2007) | 1 line
Try to make this test more resistant to dropping from previous runs (ie, files that may exist but cause the test to fail). Should be backported (assuming it works :-)
........
r54461 | neal.norwitz | 2007-03-19 23:16:26 -0700 (Mon, 19 Mar 2007) | 1 line
Try to make this test more resistant to dropping from previous runs (ie, files that may exist but cause the test to fail). Should be backported (assuming it works :-)
........
r54462 | neal.norwitz | 2007-03-19 23:53:17 -0700 (Mon, 19 Mar 2007) | 5 lines
Try to be a little more resilient to errors. This might help the test
pass, but my guess is that it won't. I'm guessing that some other
test is leaving this file open which means it can't be removed
under Windows AFAIK.
........
r54463 | neal.norwitz | 2007-03-20 01:14:57 -0700 (Tue, 20 Mar 2007) | 8 lines
Try to get test_urllib to pass on Windows by closing the file.
I'm guessing that's the problem. h.getfile() must be called *after*
h.getreply() and the fp can be None.
I'm not entirely convinced this is the best fix (or even correct).
The buildbots will tell us if things improve or not. I don't
know if this needs to be backported (assuming it actually works).
........
r54465 | raymond.hettinger | 2007-03-20 14:27:24 -0700 (Tue, 20 Mar 2007) | 1 line
Extend work on rev 52962 and 53829 eliminating redundant PyObject_Hash() calls and fixing set/dict interoperability.
........
r54468 | georg.brandl | 2007-03-20 16:05:14 -0700 (Tue, 20 Mar 2007) | 2 lines
Fix for glob.py if filesystem encoding is None.
........
r54479 | neal.norwitz | 2007-03-20 23:39:48 -0700 (Tue, 20 Mar 2007) | 1 line
Remove unused file spotted by Paul Hankin
........
r54480 | georg.brandl | 2007-03-21 02:00:39 -0700 (Wed, 21 Mar 2007) | 3 lines
Patch #1682205: a TypeError while unpacking an iterable is no longer
masked by a generic one with the message "unpack non-sequence".
........
r54482 | georg.brandl | 2007-03-21 02:10:29 -0700 (Wed, 21 Mar 2007) | 2 lines
New test for rev. 54407 which only uses directories under TESTFN.
........
r54483 | georg.brandl | 2007-03-21 02:16:53 -0700 (Wed, 21 Mar 2007) | 2 lines
Patch #1684834: document some utility C API functions.
........
r54485 | georg.brandl | 2007-03-21 04:51:25 -0700 (Wed, 21 Mar 2007) | 2 lines
Fix #1684254: split BROWSER contents with shlex to avoid displaying 'URL'.
........
r54487 | andrew.kuchling | 2007-03-21 07:32:43 -0700 (Wed, 21 Mar 2007) | 1 line
Add comments on maintenance of this file
........
r54489 | andrew.kuchling | 2007-03-21 09:57:32 -0700 (Wed, 21 Mar 2007) | 1 line
Fix sentence, and fix typo in example
........
r54490 | andrew.kuchling | 2007-03-21 09:59:20 -0700 (Wed, 21 Mar 2007) | 1 line
Put code examples at left margin instead of indenting them
........
r54491 | facundo.batista | 2007-03-21 12:41:24 -0700 (Wed, 21 Mar 2007) | 1 line
Minor clarification, saying that blocking means no timeout (from bug #882297)
........
r54492 | ziga.seilnacht | 2007-03-21 13:07:56 -0700 (Wed, 21 Mar 2007) | 2 lines
Bug #1675967: re patterns pickled with older Python versions can
now be unpickled. Will backport.
........
r54495 | raymond.hettinger | 2007-03-21 13:33:57 -0700 (Wed, 21 Mar 2007) | 1 line
Add test and fix for fromkeys() optional argument.
........
r54524 | georg.brandl | 2007-03-22 01:05:45 -0700 (Thu, 22 Mar 2007) | 2 lines
Bug #1685704: use -m switch in timeit docs.
........
r54533 | thomas.heller | 2007-03-22 12:44:31 -0700 (Thu, 22 Mar 2007) | 5 lines
Back out "Patch #1643874: memory leak in ctypes fixed."
The code in this patch leaves no way to give up the ownership of a
BSTR instance.
........
r54538 | thomas.heller | 2007-03-22 13:34:37 -0700 (Thu, 22 Mar 2007) | 2 lines
Explain the purpose of the b_needsfree flag (forward ported from release25-maint).
........
r54539 | guido.van.rossum | 2007-03-22 21:58:42 -0700 (Thu, 22 Mar 2007) | 12 lines
- Bug #1683368: The object.__init__() and object.__new__() methods are
now stricter in rejecting excess arguments. The only time when
either allows excess arguments is when it is not overridden and the
other one is. For backwards compatibility, when both are
overridden, it is a deprecation warning (for now; maybe a Py3k
warning later).
When merging this into 3.0, the warnings should become errors.
Note: without the change to string.py, lots of spurious warnings happen.
What's going on there?
........
r54540 | neal.norwitz | 2007-03-22 22:17:23 -0700 (Thu, 22 Mar 2007) | 1 line
Add Mark Dickinson for SF # 1675423.
........
r54541 | martin.v.loewis | 2007-03-23 03:35:49 -0700 (Fri, 23 Mar 2007) | 3 lines
Patch #1686451: Fix return type for PySequence_{Count,Index,Fast_GET_SIZE}.
Will backport.
........
r54543 | martin.v.loewis | 2007-03-23 06:27:15 -0700 (Fri, 23 Mar 2007) | 3 lines
Bug #978833: Revert r50844, as it broke _socketobject.dup.
Will backport.
........
r54545 | guido.van.rossum | 2007-03-23 11:53:03 -0700 (Fri, 23 Mar 2007) | 8 lines
Add a type.__init__() method that enforces the same signature as
type.__new__(), and then calls object.__init__(cls), just to be anal.
This allows us to restore the code in string.py's _TemplateMetaclass
that called super(...).__init__(name, bases, dct), which I commented
out yesterday since it broke due to the stricter argument checking
added to object.__init__().
........
r54546 | facundo.batista | 2007-03-23 11:54:07 -0700 (Fri, 23 Mar 2007) | 4 lines
Added a 'create_connect()' function to socket.py, which creates a
connection with an optional timeout, and modified httplib.py to
use this function in HTTPConnection. Applies patch 1676823.
........
r54547 | guido.van.rossum | 2007-03-23 12:39:01 -0700 (Fri, 23 Mar 2007) | 2 lines
Add note about type.__init__().
........
r54553 | thomas.heller | 2007-03-23 12:55:27 -0700 (Fri, 23 Mar 2007) | 5 lines
Prevent creation (followed by a segfault) of array types when the size
overflows the valid Py_ssize_t range. Check return values of
PyMem_Malloc.
Will backport to release25-maint.
........
r54555 | facundo.batista | 2007-03-23 13:23:08 -0700 (Fri, 23 Mar 2007) | 6 lines
Surrounded with try/finally to socket's default timeout setting
changes in the tests, so failing one test won't produce strange
results in others. Also relaxed the timeout settings in the test
(where actually the value didn't mean anything).
........
r54556 | collin.winter | 2007-03-23 15:24:39 -0700 (Fri, 23 Mar 2007) | 1 line
Make test_relpath() pass on Windows.
........
r54559 | ziga.seilnacht | 2007-03-24 07:24:26 -0700 (Sat, 24 Mar 2007) | 6 lines
Patch #1489771: update syntax rules in Python Reference Manual.
Python 2.5 added support for explicit relative import statements and
yield expressions, which were missing in the manual.
Also fix grammar productions that used the names from the Grammar file,
markup that broke the generated grammar.txt, and wrap some lines that
broke the pdf output. Will backport.
........
r54565 | georg.brandl | 2007-03-24 15:20:34 -0700 (Sat, 24 Mar 2007) | 2 lines
Remove typo accent.
........
r54566 | georg.brandl | 2007-03-24 15:27:56 -0700 (Sat, 24 Mar 2007) | 2 lines
Revert accidental change.
........
r54567 | brett.cannon | 2007-03-24 18:32:36 -0700 (Sat, 24 Mar 2007) | 3 lines
Change the docs to no longer claim that unittest is preferred over doctest for
regression tests.
........
r54568 | facundo.batista | 2007-03-24 18:53:21 -0700 (Sat, 24 Mar 2007) | 4 lines
Redone the tests, using the infrastructure already present
for threading and socket serving.
........
r54570 | facundo.batista | 2007-03-24 20:20:05 -0700 (Sat, 24 Mar 2007) | 3 lines
Closing the HTTP connection after each test, and listening more.
........
r54572 | georg.brandl | 2007-03-25 11:44:35 -0700 (Sun, 25 Mar 2007) | 2 lines
Markup fix.
........
r54573 | georg.brandl | 2007-03-25 12:04:55 -0700 (Sun, 25 Mar 2007) | 2 lines
Markup fix.
........
r54580 | facundo.batista | 2007-03-26 13:18:31 -0700 (Mon, 26 Mar 2007) | 5 lines
Added an optional timeout to FTP class. Also I started a test_ftplib.py
file to test the ftp lib (right now I included a basic test, the timeout
one, and nothing else).
........
r54581 | georg.brandl | 2007-03-26 13:28:28 -0700 (Mon, 26 Mar 2007) | 2 lines
Some nits.
........
r54582 | facundo.batista | 2007-03-26 13:56:09 -0700 (Mon, 26 Mar 2007) | 4 lines
Forgot to add the file before the previous commit, here go
the ftplib tests.
........
r54585 | facundo.batista | 2007-03-27 11:23:21 -0700 (Tue, 27 Mar 2007) | 5 lines
Added an optional timeout to poplib.POP3. Also created a
test_poplib.py file with a basic test and the timeout
ones. Docs are also updated.
........
r54586 | facundo.batista | 2007-03-27 11:50:29 -0700 (Tue, 27 Mar 2007) | 3 lines
The basic test cases of poplib.py.
........
r54594 | facundo.batista | 2007-03-27 20:45:20 -0700 (Tue, 27 Mar 2007) | 4 lines
Bug 1688393. Adds a control of negative values in
socket.recvfrom, which caused an ugly crash.
........
r54599 | facundo.batista | 2007-03-28 11:25:54 -0700 (Wed, 28 Mar 2007) | 5 lines
Added timeout to smtplib (to SMTP and SMTP_SSL). Also created
the test_smtplib.py file, with a basic test and the timeout
ones. Docs are updated too.
........
r54603 | collin.winter | 2007-03-28 16:34:06 -0700 (Wed, 28 Mar 2007) | 3 lines
Consolidate patches #1690164, 1683397, and 1690169, all of which refactor XML-related test suites. The patches are applied together because they use a common output/xmltests file.
Thanks to Jerry Seutter for all three patches.
........
r54604 | collin.winter | 2007-03-28 19:28:16 -0700 (Wed, 28 Mar 2007) | 1 line
Make test_zipfile clean up its temporary files properly.
........
r54605 | georg.brandl | 2007-03-29 00:41:32 -0700 (Thu, 29 Mar 2007) | 2 lines
These are actually methods.
........
r54606 | georg.brandl | 2007-03-29 05:42:07 -0700 (Thu, 29 Mar 2007) | 4 lines
In Windows' time.clock(), when QueryPerformanceFrequency() fails,
the C lib's clock() is used, but it must be divided by CLOCKS_PER_SEC
as for the POSIX implementation (thanks to #pypy).
........
r54608 | facundo.batista | 2007-03-29 11:22:35 -0700 (Thu, 29 Mar 2007) | 5 lines
Added timout parameter to telnetlib.Telnet. Also created
test_telnetlib.py with a basic test and timeout ones.
Docs are also updated.
........
r54613 | facundo.batista | 2007-03-30 06:00:35 -0700 (Fri, 30 Mar 2007) | 4 lines
Added the posibility to pass the timeout to FTP.connect, not only when
instantiating the class. Docs and tests are updated.
........
r54614 | collin.winter | 2007-03-30 07:01:25 -0700 (Fri, 30 Mar 2007) | 1 line
Bug #1688274: add documentation for C-level class objects.
........
r54615 | marc-andre.lemburg | 2007-03-30 08:01:42 -0700 (Fri, 30 Mar 2007) | 4 lines
Bump the patch level version of distutils since there were a few bug fixes since
the 2.5.0 release.
........
r54617 | georg.brandl | 2007-03-30 08:49:05 -0700 (Fri, 30 Mar 2007) | 2 lines
Markup fix.
........
r54618 | georg.brandl | 2007-03-30 10:39:39 -0700 (Fri, 30 Mar 2007) | 2 lines
Label name fix.
........
r54619 | georg.brandl | 2007-03-30 10:47:21 -0700 (Fri, 30 Mar 2007) | 2 lines
Duplicate label fix.
........
r54620 | georg.brandl | 2007-03-30 10:48:39 -0700 (Fri, 30 Mar 2007) | 2 lines
Markup fix.
........
r54623 | andrew.kuchling | 2007-03-30 11:00:15 -0700 (Fri, 30 Mar 2007) | 1 line
Add item. (Oops, accidentally checked this in on my branch)
........
r54624 | georg.brandl | 2007-03-30 12:01:38 -0700 (Fri, 30 Mar 2007) | 2 lines
Duplicate label fix.
........
r54625 | georg.brandl | 2007-03-30 12:14:02 -0700 (Fri, 30 Mar 2007) | 2 lines
Markup fix.
........
r54629 | georg.brandl | 2007-03-31 03:17:31 -0700 (Sat, 31 Mar 2007) | 2 lines
repair string literal.
........
r54630 | georg.brandl | 2007-03-31 04:54:58 -0700 (Sat, 31 Mar 2007) | 2 lines
Markup fix.
........
r54631 | georg.brandl | 2007-03-31 04:58:36 -0700 (Sat, 31 Mar 2007) | 2 lines
Duplicate label fix.
........
r54632 | georg.brandl | 2007-03-31 04:59:54 -0700 (Sat, 31 Mar 2007) | 2 lines
Typo fix.
........
r54633 | neal.norwitz | 2007-03-31 11:54:18 -0700 (Sat, 31 Mar 2007) | 1 line
Fix method names. Will backport.
........
r54634 | georg.brandl | 2007-03-31 11:56:11 -0700 (Sat, 31 Mar 2007) | 4 lines
Bug #1655392: don't add -L/usr/lib/pythonX.Y/config to the LDFLAGS
returned by python-config if Python was built with --enable-shared
because that prevented the shared library from being used.
........
r54637 | collin.winter | 2007-03-31 12:31:34 -0700 (Sat, 31 Mar 2007) | 1 line
Shut up an occaisonal buildbot error due to test files being left around.
........
r54644 | neal.norwitz | 2007-04-01 11:24:22 -0700 (Sun, 01 Apr 2007) | 11 lines
SF #1685563, MSVCCompiler creates redundant and long PATH strings
If MSVCCompiler.initialize() was called multiple times, the path
would get duplicated. On Windows, this is a problem because the
path is limited to 4k. There's no benefit in adding a path multiple
times, so prevent that from occuring. We also normalize the path
before checking for duplicates so things like /a and /a/ won't both
be stored.
Will backport.
........
r54646 | brett.cannon | 2007-04-01 11:47:27 -0700 (Sun, 01 Apr 2007) | 8 lines
time.strptime's caching of its locale object was being recreated when the
locale changed but not used during the function call it was recreated during.
The test in this checkin is untested (OS X does not have the proper locale
support for me to test), although the fix for the bug this deals with
was tested by the OP (#1290505). Once the buildbots verify the test at least
doesn't fail it becomes a backport candidate.
........
r54647 | brett.cannon | 2007-04-01 12:46:19 -0700 (Sun, 01 Apr 2007) | 3 lines
Fix the test for recreating the locale cache object by not worrying about if
one of the test locales cannot be set.
........
r54649 | georg.brandl | 2007-04-01 14:29:15 -0700 (Sun, 01 Apr 2007) | 2 lines
Fix a lot of markup and meta-information glitches.
........
r54650 | georg.brandl | 2007-04-01 14:39:52 -0700 (Sun, 01 Apr 2007) | 2 lines
Another fix.
........
r54651 | georg.brandl | 2007-04-01 15:39:10 -0700 (Sun, 01 Apr 2007) | 2 lines
Lots of explicit class names for method and member descs.
........
r54652 | georg.brandl | 2007-04-01 15:40:12 -0700 (Sun, 01 Apr 2007) | 2 lines
Explicit class names.
........
r54653 | georg.brandl | 2007-04-01 15:47:31 -0700 (Sun, 01 Apr 2007) | 2 lines
Some semantic fixes.
........
r54654 | georg.brandl | 2007-04-01 16:29:10 -0700 (Sun, 01 Apr 2007) | 2 lines
Remove bogus entry.
........
r54655 | georg.brandl | 2007-04-01 16:31:30 -0700 (Sun, 01 Apr 2007) | 2 lines
Fix the class name of strings.
........
r54658 | raymond.hettinger | 2007-04-02 10:29:30 -0700 (Mon, 02 Apr 2007) | 1 line
SF #1693079: Cannot save empty array in shelve
........
r54663 | raymond.hettinger | 2007-04-02 15:54:21 -0700 (Mon, 02 Apr 2007) | 3 lines
Array module's buffer interface can now handle empty arrays.
........
r54664 | guido.van.rossum | 2007-04-02 16:55:37 -0700 (Mon, 02 Apr 2007) | 5 lines
Fix warnings about object.__init__() signature.
Two (test_array and test_descr) were bug IMO; the third (copy_reg)
is a work-around which recognizes that object.__init__() doesn't do
anything.
........
r54666 | raymond.hettinger | 2007-04-02 17:02:11 -0700 (Mon, 02 Apr 2007) | 1 line
SF 1602378 Clarify docstrings for bisect
........
r54668 | raymond.hettinger | 2007-04-02 18:39:43 -0700 (Mon, 02 Apr 2007) | 3 lines
SF #1382213: Tutorial section 9.5.1 ignores MRO for new-style classes
........
r54669 | matthias.klose | 2007-04-02 21:35:59 -0700 (Mon, 02 Apr 2007) | 4 lines
- Fix an off-by-one bug in locale.strxfrm().
patch taken from http://bugs.debian.org/416934.
........
r54671 | georg.brandl | 2007-04-03 00:04:27 -0700 (Tue, 03 Apr 2007) | 9 lines
Fix the strange case of
\begin{methoddesc}[NNTP]{...}
where
\ifx#1\@undefined ended up comparing N and N, therefore executing
the true part of the conditional, blowing up at \@undefined.
........
r54672 | facundo.batista | 2007-04-03 07:05:08 -0700 (Tue, 03 Apr 2007) | 4 lines
Now using unittest for the tests infraestructure. Also split the
tests in those who need the network, and that who doesn't.
........
r54673 | walter.doerwald | 2007-04-03 09:08:10 -0700 (Tue, 03 Apr 2007) | 4 lines
Move the functionality for catching warnings in test_warnings.py into a separate
class to that reusing the functionality in test_structmembers.py doesn't rerun
the tests from test_warnings.py.
........
r54674 | walter.doerwald | 2007-04-03 09:16:24 -0700 (Tue, 03 Apr 2007) | 2 lines
Document that CatchWarningTests is reused by test_structmembers.py.
........
r54675 | walter.doerwald | 2007-04-03 09:53:43 -0700 (Tue, 03 Apr 2007) | 4 lines
Add tests for the filename.
Test that the stacklevel is handled correctly.
........
r54676 | facundo.batista | 2007-04-03 10:29:48 -0700 (Tue, 03 Apr 2007) | 6 lines
Added a SSL server to test_socket_ssl.py to be able to test
locally. Now, it checks if have openssl available and run
those specific tests (it starts openssl at the beggining of
all the tests and then kills it at the end).
........
r54677 | walter.doerwald | 2007-04-03 11:33:29 -0700 (Tue, 03 Apr 2007) | 6 lines
Implement a contextmanager test.test_support.catch_warning that can
be used to catch the last warning issued by the warning framework.
Change test_warnings.py and test_structmembers.py to use this
new contextmanager.
........
r54678 | facundo.batista | 2007-04-03 14:15:34 -0700 (Tue, 03 Apr 2007) | 4 lines
Changed the whole structure of startup and checking if the
server is available. Hope to not get more false alarms.
........
r54681 | facundo.batista | 2007-04-04 07:10:40 -0700 (Wed, 04 Apr 2007) | 4 lines
Fixed the way that the .pem files are looked for, and changed
how to kill the process in win32 to use the _handle attribute.
........
r54682 | guido.van.rossum | 2007-04-04 10:43:02 -0700 (Wed, 04 Apr 2007) | 4 lines
Fix a race condition in this test -- instead of assuming that it will take
the test server thread at most 0.5 seconds to get ready, use an event
variable.
........
r54683 | collin.winter | 2007-04-04 11:14:17 -0700 (Wed, 04 Apr 2007) | 1 line
Clean up imports.
........
r54684 | collin.winter | 2007-04-04 11:16:24 -0700 (Wed, 04 Apr 2007) | 1 line
Stop using test_support.verify().
........
r54685 | martin.v.loewis | 2007-04-04 11:30:36 -0700 (Wed, 04 Apr 2007) | 2 lines
Bug #1686475: Support stat'ing open files on Windows again.
Will backport to 2.5.
........
r54687 | collin.winter | 2007-04-04 11:33:40 -0700 (Wed, 04 Apr 2007) | 1 line
Make test_getopt use unittest.
........
r54688 | collin.winter | 2007-04-04 11:36:30 -0700 (Wed, 04 Apr 2007) | 1 line
Make test_softspace use unittest.
........
r54689 | ziga.seilnacht | 2007-04-04 11:38:47 -0700 (Wed, 04 Apr 2007) | 2 lines
Fix WalkTests.test_traversal() on Windows. The cleanup in
MakedirTests.setUp() can now be removed.
........
r54695 | raymond.hettinger | 2007-04-05 11:00:03 -0700 (Thu, 05 Apr 2007) | 3 lines
Bug #1563759: struct.unpack doens't support buffer protocol objects
........
r54697 | collin.winter | 2007-04-05 13:05:07 -0700 (Thu, 05 Apr 2007) | 1 line
Convert test_long_future to use unittest.
........
r54698 | collin.winter | 2007-04-05 13:08:56 -0700 (Thu, 05 Apr 2007) | 1 line
Convert test_normalization to use unittest.
........
r54699 | andrew.kuchling | 2007-04-05 18:11:58 -0700 (Thu, 05 Apr 2007) | 1 line
Some grammar fixes
........
r54704 | collin.winter | 2007-04-06 12:27:40 -0700 (Fri, 06 Apr 2007) | 1 line
Convert test_stringprep to use unittest.
........
r54705 | collin.winter | 2007-04-06 12:32:32 -0700 (Fri, 06 Apr 2007) | 1 line
Import cleanup in test_crypt.
........
r54706 | collin.winter | 2007-04-06 13:00:05 -0700 (Fri, 06 Apr 2007) | 1 line
Convert test_gc to use unittest.
........
r54707 | collin.winter | 2007-04-06 13:03:11 -0700 (Fri, 06 Apr 2007) | 1 line
Convert test_module to use unittest.
........
r54711 | collin.winter | 2007-04-06 21:40:43 -0700 (Fri, 06 Apr 2007) | 1 line
Convert test_fileinput to use unittest.
........
r54712 | brett.cannon | 2007-04-07 21:29:32 -0700 (Sat, 07 Apr 2007) | 5 lines
Doc that file.next() has undefined behaviour when called on a file opened with
'w'. Closes bug #1569057.
To be backported once 2.5 branch is unfrozen.
........
r54726 | vinay.sajip | 2007-04-09 09:16:10 -0700 (Mon, 09 Apr 2007) | 1 line
Added optional timeout to SocketHandler.makeSocket (SF #1695948)
........
r54727 | ziga.seilnacht | 2007-04-09 12:10:29 -0700 (Mon, 09 Apr 2007) | 3 lines
Patch #1695862: remove old test directory that causes test_urllib failures
on Windows buildbots. The change is a one time fix and will be removed
after a successful buildbot run.
........
r54729 | facundo.batista | 2007-04-09 20:00:37 -0700 (Mon, 09 Apr 2007) | 3 lines
Minor fix to the tests pass ok even with -O.
........
r54730 | collin.winter | 2007-04-09 21:44:49 -0700 (Mon, 09 Apr 2007) | 1 line
Typo fix.
........
r54732 | facundo.batista | 2007-04-10 05:58:45 -0700 (Tue, 10 Apr 2007) | 5 lines
General clean-up. Lot of margin corrections, comments, some typos.
Exceptions now are raised in the new style. And a mockup class is
now also new style. Thanks Santiago Pereson.
........
r54741 | georg.brandl | 2007-04-10 14:39:38 -0700 (Tue, 10 Apr 2007) | 2 lines
Repair a duplicate label and some obsolete uses of \setindexsubitem.
........
r54746 | andrew.kuchling | 2007-04-11 06:39:00 -0700 (Wed, 11 Apr 2007) | 1 line
Add window.chgat() method, submitted via e-mail by Fabian Kreutz
........
r54747 | andrew.kuchling | 2007-04-11 06:42:25 -0700 (Wed, 11 Apr 2007) | 1 line
Point readers at the patch submission instructions
........
r54748 | andrew.kuchling | 2007-04-11 06:47:13 -0700 (Wed, 11 Apr 2007) | 1 line
Describe undocumented third argument to touchline()
........
r54757 | georg.brandl | 2007-04-11 10:16:24 -0700 (Wed, 11 Apr 2007) | 3 lines
Add some missing NULL checks which trigger crashes on low-memory conditions.
Found by Victor Stinner. Will backport when 2.5 branch is unfrozen.
........
r54760 | raymond.hettinger | 2007-04-11 11:40:58 -0700 (Wed, 11 Apr 2007) | 1 line
SF 1191699: Make slices picklable
........
r54762 | georg.brandl | 2007-04-11 12:25:11 -0700 (Wed, 11 Apr 2007) | 2 lines
Exceptions are no longer old-style instances. Fix accordingly.
........
r54763 | georg.brandl | 2007-04-11 16:28:44 -0700 (Wed, 11 Apr 2007) | 2 lines
Repair missing spaces after \UNIX.
........
r54772 | raymond.hettinger | 2007-04-11 21:10:00 -0700 (Wed, 11 Apr 2007) | 1 line
SF 1193128: Let str.translate(None) be an identity transformation
........
r54784 | georg.brandl | 2007-04-12 00:01:19 -0700 (Thu, 12 Apr 2007) | 2 lines
Patch #1698951: clarify deprecation message in rexec and Bastion
........
r54785 | ziga.seilnacht | 2007-04-12 01:46:51 -0700 (Thu, 12 Apr 2007) | 2 lines
Patch #1695862: remove the cleanup code, now that Windows buildbots are green
again.
........
r54786 | walter.doerwald | 2007-04-12 03:35:00 -0700 (Thu, 12 Apr 2007) | 3 lines
Fix utf-8-sig incremental decoder, which didn't recognise a BOM when the
first chunk fed to the decoder started with a BOM, but was longer than 3 bytes.
........
r54807 | barry.warsaw | 2007-04-13 11:47:14 -0700 (Fri, 13 Apr 2007) | 8 lines
Port r54805 from python25-maint branch:
Add code to read from master_fd in the parent, breaking when we get an OSError
(EIO can occur on Linux) or there's no more data to read. Without this,
test_pty.py can hang on the waitpid() because the child is blocking on the
stdout write. This will definitely happen on Mac OS X and could potentially
happen on other platforms. See the comment for details.
........
r54812 | kristjan.jonsson | 2007-04-13 15:07:33 -0700 (Fri, 13 Apr 2007) | 1 line
Fix a bug when using the __lltrace__ opcode tracer, and a problem sith signed chars in frameobject.c which can occur with opcodes > 127
........
r54814 | kristjan.jonsson | 2007-04-13 15:20:13 -0700 (Fri, 13 Apr 2007) | 1 line
Fix potential crash in path manipulation on windows
........
r54816 | trent.mick | 2007-04-13 16:22:05 -0700 (Fri, 13 Apr 2007) | 4 lines
Add the necessary dependency for the Windows VC6 build to ensure 'pythoncore'
is built before '_ctypes' is attempted.
Will backport to 2.5 once it is unfrozen for 2.5.1.
........
r54825 | neal.norwitz | 2007-04-13 22:25:50 -0700 (Fri, 13 Apr 2007) | 3 lines
When __slots__ are set to a unicode string, make it work the same as
setting a plain string, ie don't expand to single letter identifiers.
........
r54841 | neal.norwitz | 2007-04-16 00:37:55 -0700 (Mon, 16 Apr 2007) | 1 line
SF #1701207, Fix bogus assertion (and test it!)
........
r54844 | collin.winter | 2007-04-16 15:10:32 -0700 (Mon, 16 Apr 2007) | 1 line
Check the availability of the urlfetch resource earlier than before.
........
r54849 | martin.v.loewis | 2007-04-16 22:02:01 -0700 (Mon, 16 Apr 2007) | 2 lines
Add Travis Oliphant.
........
r54873 | brett.cannon | 2007-04-18 20:44:17 -0700 (Wed, 18 Apr 2007) | 2 lines
Silence a compiler warning about incompatible pointer types.
........
r54874 | neal.norwitz | 2007-04-18 22:52:37 -0700 (Wed, 18 Apr 2007) | 2 lines
SF #1703270, add missing declaration in readline.c to avoid compiler warning.
........
r54875 | armin.rigo | 2007-04-19 07:44:48 -0700 (Thu, 19 Apr 2007) | 8 lines
Revert r53997 as per
http://mail.python.org/pipermail/python-dev/2007-March/071796.html .
I've kept a couple of still-valid extra tests in test_descr, but didn't
bother to sort through the new comments and refactorings added in r53997
to see if some of them could be kept. If so, they could go in a
follow-up check-in.
........
r54876 | armin.rigo | 2007-04-19 07:56:48 -0700 (Thu, 19 Apr 2007) | 2 lines
Fix a usage of the dangerous pattern decref - modify field - incref.
........
r54884 | neal.norwitz | 2007-04-19 22:20:38 -0700 (Thu, 19 Apr 2007) | 9 lines
Add an optional address to copy the failure mails to.
Detect a conflict in the only file that should have outstanding changes
when this script is run. This doesn't matter on the trunk, but does
when run on a branch. Trunk always has the date set to today in
boilerplate.tex. Each time a release is cut with a different date,
a conflict occurs. (We could copy a known good version, but then
we would lose changes to this file.)
........
r54918 | georg.brandl | 2007-04-21 13:35:38 -0700 (Sat, 21 Apr 2007) | 3 lines
Bug #1704790: bind name "sys" locally in __del__ method so that it is
not cleared before __del__ is run.
........
r54920 | facundo.batista | 2007-04-21 18:18:56 -0700 (Sat, 21 Apr 2007) | 5 lines
Added tests for other methods of SSL object. Now we cover
all the object methods. This is the final step to close
the #451607 bug.
........
r54927 | facundo.batista | 2007-04-23 10:08:31 -0700 (Mon, 23 Apr 2007) | 5 lines
As specified in RFC 2616, 2xx code indicates that the client's
request was successfully received, understood, and accepted.
Now in these cases no error is raised. Also fixed tests.
........
r54929 | collin.winter | 2007-04-23 20:43:46 -0700 (Mon, 23 Apr 2007) | 1 line
Convert PyUnit -> unittest.
........
r54931 | collin.winter | 2007-04-23 21:09:52 -0700 (Mon, 23 Apr 2007) | 1 line
Remove code that hasn't been called in years.
........
r54932 | neal.norwitz | 2007-04-23 21:53:12 -0700 (Mon, 23 Apr 2007) | 1 line
Fix SF #1703110, Incorrect example for add_password() (use uri, not host)
........
r54934 | georg.brandl | 2007-04-24 03:36:42 -0700 (Tue, 24 Apr 2007) | 2 lines
Some new year updates.
........
r54938 | facundo.batista | 2007-04-24 06:54:38 -0700 (Tue, 24 Apr 2007) | 4 lines
Added a comment about last change in urllib2.py (all 2xx responses
are ok now).
........
r54939 | georg.brandl | 2007-04-24 08:10:09 -0700 (Tue, 24 Apr 2007) | 2 lines
Bug #1705717: error in sys.argv docs.
........
r54941 | georg.brandl | 2007-04-24 08:27:13 -0700 (Tue, 24 Apr 2007) | 4 lines
Bug #1706381: Specifying the SWIG option "-c++" in the setup.py file
(as opposed to the command line) will now write file names ending in
".cpp" too.
........
r54944 | raymond.hettinger | 2007-04-24 15:13:43 -0700 (Tue, 24 Apr 2007) | 1 line
Fix markup
........
r54945 | kristjan.jonsson | 2007-04-24 17:10:50 -0700 (Tue, 24 Apr 2007) | 1 line
Merge change 54909 from release25-maint: Fix several minor issues discovered using code analysis in VisualStudio 2005 Team Edition
........
r54947 | kristjan.jonsson | 2007-04-24 17:17:39 -0700 (Tue, 24 Apr 2007) | 1 line
Make pythoncore compile cleanly with VisualStudio 2005. Used an explicit typecast to get a 64 bit integer, and undefined the Yield macro that conflicts with winbase.h
........
r54948 | kristjan.jonsson | 2007-04-24 17:19:26 -0700 (Tue, 24 Apr 2007) | 1 line
Remove obsolete comment. Importing of .dll files has been discontinued, only .pyd files supported on windows now.
........
r54949 | georg.brandl | 2007-04-24 23:24:59 -0700 (Tue, 24 Apr 2007) | 2 lines
Patch #1698768: updated the "using Python on the Mac" intro.
........
r54951 | georg.brandl | 2007-04-24 23:25:55 -0700 (Tue, 24 Apr 2007) | 2 lines
Markup fix.
........
r54953 | neal.norwitz | 2007-04-24 23:30:05 -0700 (Tue, 24 Apr 2007) | 3 lines
Whitespace normalization. Ugh, we really need to do this more often.
You might want to review this change as it's my first time. Be gentle. :-)
........
r54956 | collin.winter | 2007-04-25 10:29:52 -0700 (Wed, 25 Apr 2007) | 1 line
Standardize on test.test_support.run_unittest() (as opposed to a mix of run_unittest() and run_suite()). Also, add functionality to run_unittest() that admits usage of unittest.TestLoader.loadTestsFromModule().
........
r54957 | collin.winter | 2007-04-25 10:37:35 -0700 (Wed, 25 Apr 2007) | 1 line
Remove functionality from test_datetime.test_main() that does reference count checking; 'regrtest.py -R' is the way to do this kind of testing.
........
r54958 | collin.winter | 2007-04-25 10:57:53 -0700 (Wed, 25 Apr 2007) | 1 line
Change test_support.have_unicode to use True/False instead of 1/0.
........
r54959 | tim.peters | 2007-04-25 11:47:18 -0700 (Wed, 25 Apr 2007) | 2 lines
Whitespace normalization.
........
r54960 | tim.peters | 2007-04-25 11:48:35 -0700 (Wed, 25 Apr 2007) | 2 lines
Set missing svn:eol-style property on text files.
........
r54961 | collin.winter | 2007-04-25 11:54:36 -0700 (Wed, 25 Apr 2007) | 1 line
Import and raise statement cleanup.
........
r54969 | collin.winter | 2007-04-25 13:41:34 -0700 (Wed, 25 Apr 2007) | 1 line
Convert test_ossaudiodev to use unittest.
........
r54974 | collin.winter | 2007-04-25 14:50:25 -0700 (Wed, 25 Apr 2007) | 1 line
Fix an issue related to the unittest conversion.
........
r54979 | fred.drake | 2007-04-25 21:42:19 -0700 (Wed, 25 Apr 2007) | 1 line
fix some markup errors
........
r54982 | kristjan.jonsson | 2007-04-26 02:15:08 -0700 (Thu, 26 Apr 2007) | 1 line
Export function sanitize_the_mode from fileobject.c as _PyFile_SanitizeMode(). Use this function in posixmodule.c when implementing fdopen(). This fixes test_subprocess.py for a VisualStudio 2005 compile.
........
r54983 | kristjan.jonsson | 2007-04-26 06:44:16 -0700 (Thu, 26 Apr 2007) | 1 line
The locale "En" appears not to be valid on windows underi VisualStudio.2005. Added "English" to the test_locale.py to make the testsuite pass for that build
........
r54984 | steve.holden | 2007-04-26 07:23:12 -0700 (Thu, 26 Apr 2007) | 1 line
Minor wording change on slicing aide-memoire.
........
r54985 | kristjan.jonsson | 2007-04-26 08:24:54 -0700 (Thu, 26 Apr 2007) | 1 line
Accomodate 64 bit time_t in the _bsddb module.
........
2007-04-27 16:54:29 -03:00
|
|
|
if (us < 0) {
|
|
|
|
/* Truncation towards zero is not what we wanted
|
|
|
|
for negative numbers (Python's mod semantics) */
|
|
|
|
timet -= 1;
|
|
|
|
us += 1000000;
|
|
|
|
}
|
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Inherits test_gzip/test_tarfile failures on 64-bit platforms from the trunk,
but I don't want the merge to hang around too long (even though the regular
p3yk-contributors are/have been busy with other things.)
Merged revisions 45621-46490 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r45621 | george.yoshida | 2006-04-21 18:34:17 +0200 (Fri, 21 Apr 2006) | 2 lines
Correct the grammar
........
r45622 | tim.peters | 2006-04-21 18:34:54 +0200 (Fri, 21 Apr 2006) | 2 lines
Whitespace normalization.
........
r45624 | thomas.heller | 2006-04-21 18:48:56 +0200 (Fri, 21 Apr 2006) | 1 line
Merge in changes from ctypes 0.9.9.6 upstream version.
........
r45625 | thomas.heller | 2006-04-21 18:51:04 +0200 (Fri, 21 Apr 2006) | 1 line
Merge in changes from ctypes 0.9.9.6 upstream version.
........
r45630 | thomas.heller | 2006-04-21 20:29:17 +0200 (Fri, 21 Apr 2006) | 8 lines
Documentation for ctypes.
I think that 'generic operating system services' is the best category.
Note that the Doc/lib/libctypes.latex file is generated from reST sources.
You are welcome to make typo fixes, and I'll try to keep the reST sources
in sync, but markup changes would be lost - they should be fixed in the tool
that creates the latex file.
The conversion script is external/ctypes/docs/manual/mkpydoc.py.
........
r45631 | tim.peters | 2006-04-21 23:18:10 +0200 (Fri, 21 Apr 2006) | 24 lines
SF bug #1473760 TempFile can hang on Windows.
Python 2.4 changed ntpath.abspath to do an import
inside the function. As a result, due to Python's
import lock, anything calling abspath on Windows
(directly, or indirectly like tempfile.TemporaryFile)
hung when it was called from a thread spawned as a
side effect of importing a module.
This is a depressingly frequent problem, and
deserves a more general fix. I'm settling for
a micro-fix here because this specific one accounts
for a report of Zope Corp's ZEO hanging on Windows,
and it was an odd way to change abspath to begin
with (ntpath needs a different implementation
depending on whether we're actually running on
Windows, and the _obvious_ way to arrange for that
is not to bury a possibly-failing import _inside_
the function).
Note that if/when other micro-fixes of this kind
get made, the new Lib/test/threaded_import_hangers.py
is a convenient place to add tests for them.
........
r45634 | phillip.eby | 2006-04-21 23:53:37 +0200 (Fri, 21 Apr 2006) | 2 lines
Guido wrote contextlib, not me, but thanks anyway. ;)
........
r45636 | andrew.kuchling | 2006-04-22 03:51:41 +0200 (Sat, 22 Apr 2006) | 1 line
Typo fixes
........
r45638 | andrew.kuchling | 2006-04-22 03:58:40 +0200 (Sat, 22 Apr 2006) | 1 line
Fix comment typo
........
r45639 | andrew.kuchling | 2006-04-22 04:06:03 +0200 (Sat, 22 Apr 2006) | 8 lines
Make copy of test_mailbox.py. We'll still want to check the backward
compatibility classes in the new mailbox.py that I'll be committing in
a few minutes.
One change has been made: the tests use len(mbox) instead of len(mbox.boxes).
The 'boxes' attribute was never documented and contains some internal state
that seems unlikely to have been useful.
........
r45640 | andrew.kuchling | 2006-04-22 04:32:43 +0200 (Sat, 22 Apr 2006) | 16 lines
Add Gregory K. Johnson's revised version of mailbox.py (funded by
the 2005 Summer of Code).
The revision adds a number of new mailbox classes that support adding
and removing messages; these classes also support mailbox locking and
default to using email.Message instead of rfc822.Message.
The old mailbox classes are largely left alone for backward compatibility.
The exception is the Maildir class, which was present in the old module
and now inherits from the new classes. The Maildir class's interface
is pretty simple, though, so I think it'll be compatible with existing
code.
(The change to the NEWS file also adds a missing word to a different
news item, which unfortunately required rewrapping the line.)
........
r45641 | tim.peters | 2006-04-22 07:52:59 +0200 (Sat, 22 Apr 2006) | 2 lines
Whitespace normalization.
........
r45642 | neal.norwitz | 2006-04-22 08:07:46 +0200 (Sat, 22 Apr 2006) | 1 line
Add libctypes as a dep
........
r45643 | martin.v.loewis | 2006-04-22 13:15:41 +0200 (Sat, 22 Apr 2006) | 1 line
Fix more ssize_t problems.
........
r45644 | martin.v.loewis | 2006-04-22 13:40:03 +0200 (Sat, 22 Apr 2006) | 1 line
Fix more ssize_t issues.
........
r45645 | george.yoshida | 2006-04-22 17:10:49 +0200 (Sat, 22 Apr 2006) | 2 lines
Typo fixes
........
r45647 | martin.v.loewis | 2006-04-22 17:19:54 +0200 (Sat, 22 Apr 2006) | 1 line
Port to Python 2.5. Drop .DEF file. Change output file names to .pyd.
........
r45648 | george.yoshida | 2006-04-22 17:27:14 +0200 (Sat, 22 Apr 2006) | 3 lines
- add versionadded tag
- make arbitrary arguments come last
........
r45649 | hyeshik.chang | 2006-04-22 17:48:15 +0200 (Sat, 22 Apr 2006) | 3 lines
Remove $CJKCodecs$ RCS tags. The CJKCodecs isn't maintained outside
anymore.
........
r45654 | greg.ward | 2006-04-23 05:47:58 +0200 (Sun, 23 Apr 2006) | 2 lines
Update optparse to Optik 1.5.1.
........
r45658 | george.yoshida | 2006-04-23 11:27:10 +0200 (Sun, 23 Apr 2006) | 2 lines
wrap SyntaxError with \exception{}
........
r45660 | ronald.oussoren | 2006-04-23 13:59:25 +0200 (Sun, 23 Apr 2006) | 6 lines
Patch 1471925 - Weak linking support for OSX
This patch causes several symbols in the socket and posix module to be weakly
linked on OSX and disables usage of ftime on OSX. These changes make it possible
to use a binary build on OSX 10.4 on a 10.3 system.
........
r45661 | ronald.oussoren | 2006-04-23 14:36:23 +0200 (Sun, 23 Apr 2006) | 5 lines
Patch 1471761 - test for broken poll at runtime
This patch checks if poll is broken when the select module is loaded instead
of doing so at configure-time. This functionality is only active on Mac OS X.
........
r45662 | nick.coghlan | 2006-04-23 17:13:32 +0200 (Sun, 23 Apr 2006) | 1 line
Add a Context Types section to parallel the Iterator Types section (uses the same terminology as the 2.5a1 implementation)
........
r45663 | nick.coghlan | 2006-04-23 17:14:37 +0200 (Sun, 23 Apr 2006) | 1 line
Update contextlib documentation to use the same terminology as the module implementation
........
r45664 | gerhard.haering | 2006-04-23 17:24:26 +0200 (Sun, 23 Apr 2006) | 2 lines
Updated the sqlite3 module to the external pysqlite 2.2.2 version.
........
r45666 | nick.coghlan | 2006-04-23 17:39:16 +0200 (Sun, 23 Apr 2006) | 1 line
Update with statement documentation to use same terminology as 2.5a1 implementation
........
r45667 | nick.coghlan | 2006-04-23 18:05:04 +0200 (Sun, 23 Apr 2006) | 1 line
Add a (very) brief mention of the with statement to the end of chapter 8
........
r45668 | nick.coghlan | 2006-04-23 18:35:19 +0200 (Sun, 23 Apr 2006) | 1 line
Take 2 on mentioning the with statement, this time without inadvertently killing the Unicode examples
........
r45669 | nick.coghlan | 2006-04-23 19:04:07 +0200 (Sun, 23 Apr 2006) | 1 line
Backdated NEWS entry to record the implementation of PEP 338 for alpha 1
........
r45670 | tim.peters | 2006-04-23 20:13:45 +0200 (Sun, 23 Apr 2006) | 2 lines
Whitespace normalization.
........
r45671 | skip.montanaro | 2006-04-23 21:14:27 +0200 (Sun, 23 Apr 2006) | 1 line
first cut at trace module doc
........
r45672 | skip.montanaro | 2006-04-23 21:26:33 +0200 (Sun, 23 Apr 2006) | 1 line
minor tweak
........
r45673 | skip.montanaro | 2006-04-23 21:30:50 +0200 (Sun, 23 Apr 2006) | 1 line
it's always helpful if the example works...
........
r45674 | skip.montanaro | 2006-04-23 21:32:14 +0200 (Sun, 23 Apr 2006) | 1 line
correct example
........
r45675 | andrew.kuchling | 2006-04-23 23:01:04 +0200 (Sun, 23 Apr 2006) | 1 line
Edits to the PEP 343 section
........
r45676 | andrew.kuchling | 2006-04-23 23:51:10 +0200 (Sun, 23 Apr 2006) | 1 line
Add two items
........
r45677 | tim.peters | 2006-04-24 04:03:16 +0200 (Mon, 24 Apr 2006) | 5 lines
Bug #1337990: clarified that `doctest` does not support examples
requiring both expected output and an exception.
I'll backport to 2.4 next.
........
r45679 | nick.coghlan | 2006-04-24 05:04:43 +0200 (Mon, 24 Apr 2006) | 1 line
Note changes made to PEP 343 related documentation
........
r45681 | nick.coghlan | 2006-04-24 06:17:02 +0200 (Mon, 24 Apr 2006) | 1 line
Change PEP 343 related documentation to use the term context specifier instead of context object
........
r45682 | nick.coghlan | 2006-04-24 06:32:47 +0200 (Mon, 24 Apr 2006) | 1 line
Add unit tests for the -m and -c command line switches
........
r45683 | nick.coghlan | 2006-04-24 06:37:15 +0200 (Mon, 24 Apr 2006) | 1 line
Fix contextlib.nested to cope with exit methods raising and handling exceptions
........
r45685 | nick.coghlan | 2006-04-24 06:59:28 +0200 (Mon, 24 Apr 2006) | 1 line
Fix broken contextlib test from last checkin (I'd've sworn I tested that before checking it in. . .)
........
r45686 | nick.coghlan | 2006-04-24 07:24:26 +0200 (Mon, 24 Apr 2006) | 1 line
Back out new command line tests (broke buildbot)
........
r45687 | nick.coghlan | 2006-04-24 07:52:15 +0200 (Mon, 24 Apr 2006) | 1 line
More reliable version of new command line tests that just checks the exit codes
........
r45688 | thomas.wouters | 2006-04-24 13:37:13 +0200 (Mon, 24 Apr 2006) | 4 lines
Stop test_tcl's testLoadTk from leaking the Tk commands 'loadtk' registers.
........
r45690 | andrew.kuchling | 2006-04-24 16:30:47 +0200 (Mon, 24 Apr 2006) | 2 lines
Edits, using the new term
'context specifier' in a few places
........
r45697 | phillip.eby | 2006-04-24 22:53:13 +0200 (Mon, 24 Apr 2006) | 2 lines
Revert addition of setuptools
........
r45698 | tim.peters | 2006-04-25 00:45:13 +0200 (Tue, 25 Apr 2006) | 2 lines
Whitespace normalization.
........
r45700 | trent.mick | 2006-04-25 02:34:50 +0200 (Tue, 25 Apr 2006) | 4 lines
Put break at correct level so *all* root HKEYs acutally get checked for
an installed VC6. Otherwise only the first such tree gets checked and this
warning doesn't get displayed.
........
r45701 | tim.peters | 2006-04-25 05:31:36 +0200 (Tue, 25 Apr 2006) | 3 lines
Patch #1475231: add a new SKIP doctest option, thanks to
Edward Loper.
........
r45702 | neal.norwitz | 2006-04-25 07:04:35 +0200 (Tue, 25 Apr 2006) | 1 line
versionadded for SKIP
........
r45703 | neal.norwitz | 2006-04-25 07:05:03 +0200 (Tue, 25 Apr 2006) | 1 line
Restore Walters name
........
r45704 | neal.norwitz | 2006-04-25 07:49:42 +0200 (Tue, 25 Apr 2006) | 1 line
Revert previous change, SKIP had a versionadded elsewhere
........
r45706 | nick.coghlan | 2006-04-25 12:56:51 +0200 (Tue, 25 Apr 2006) | 31 lines
Move the PEP 343 documentation and implementation closer to the
terminology in the alpha 1 documentation.
- "context manager" reverts to its alpha 1 definition
- the term "context specifier" goes away entirely
- contextlib.GeneratorContextManager is renamed GeneratorContext
There are still a number of changes relative to alpha 1:
- the expression in the with statement is explicitly called the
"context expression" in the language reference
- the terms 'with statement context', 'context object' or 'with
statement context' are used in several places instead of a bare
'context'. The aim of this is to avoid ambiguity in relation to the
runtime context set up when the block is executed, and the context
objects that already exist in various application domains (such as
decimal.Context)
- contextlib.contextmanager is renamed to contextfactory
This best reflects the nature of the function resulting from the
use of that decorator
- decimal.ContextManager is renamed to WithStatementContext
Simple dropping the 'Manager' part wasn't possible due to the
fact that decimal.Context already exists and means something
different. WithStatementContext is ugly but workable.
A technically unrelated change snuck into this commit:
contextlib.closing now avoids the overhead of creating a
generator, since it's trivial to implement that particular
context manager directly.
........
r45707 | nick.coghlan | 2006-04-25 13:05:56 +0200 (Tue, 25 Apr 2006) | 1 line
Fix latex typo
........
r45708 | thomas.wouters | 2006-04-25 14:28:56 +0200 (Tue, 25 Apr 2006) | 4 lines
Fix markup glitch in unittest docs. Will backport.
........
r45710 | andrew.kuchling | 2006-04-25 14:31:38 +0200 (Tue, 25 Apr 2006) | 1 line
Add two items; easy_install is now off the table, though pkgutil still is
........
r45711 | andrew.kuchling | 2006-04-25 14:47:25 +0200 (Tue, 25 Apr 2006) | 1 line
Rework context terminology
........
r45712 | thomas.wouters | 2006-04-25 15:53:23 +0200 (Tue, 25 Apr 2006) | 9 lines
SF bug/patch #1433877: string parameter to ioctl not null terminated
The new char-array used in ioctl calls wasn't explicitly NUL-terminated;
quite probably the cause for the test_pty failures on Solaris that we
circumvented earlier. (I wasn't able to reproduce it with this patch, but it
has been somewhat elusive to start with.)
........
r45713 | george.yoshida | 2006-04-25 16:09:58 +0200 (Tue, 25 Apr 2006) | 2 lines
minor tweak
........
r45714 | thomas.wouters | 2006-04-25 17:08:10 +0200 (Tue, 25 Apr 2006) | 7 lines
Fix SF bug #1476111: SystemError in socket sendto. The AF_INET6 and
AF_PACKET cases in getsockaddrarg were missing their own checks for
tuple-ness of the address argument, which means a confusing SystemError was
raised by PyArg_ParseTuple instead.
........
r45715 | thomas.wouters | 2006-04-25 17:29:46 +0200 (Tue, 25 Apr 2006) | 10 lines
Define MAXPATHLEN to be at least PATH_MAX, if that's defined. Python uses
MAXPATHLEN-sized buffers for various output-buffers (like to realpath()),
and that's correct on BSD platforms, but not Linux (which uses PATH_MAX, and
does not define MAXPATHLEN.) Cursory googling suggests Linux is following a
newer standard than BSD, but in cases like this, who knows. Using the
greater of PATH_MAX and 1024 as a fallback for MAXPATHLEN seems to be the
most portable solution.
........
r45717 | thomas.heller | 2006-04-25 20:26:08 +0200 (Tue, 25 Apr 2006) | 3 lines
Fix compiler warnings on Darwin.
Patch by Brett Canon, see
https://sourceforge.net/tracker/?func=detail&atid=532156&aid=1475959&group_id=71702
........
r45718 | guido.van.rossum | 2006-04-25 22:12:45 +0200 (Tue, 25 Apr 2006) | 4 lines
Implement MvL's improvement on __context__ in Condition;
this can just call __context__ on the underlying lock.
(The same change for Semaphore does *not* work!)
........
r45721 | tim.peters | 2006-04-26 03:15:53 +0200 (Wed, 26 Apr 2006) | 13 lines
Rev 45706 renamed stuff in contextlib.py, but didn't rename
uses of it in test_with.py. As a result, test_with has been skipped
(due to failing imports) on all buildbot boxes since. Alas, that's
not a test failure -- you have to pay attention to the
1 skip unexpected on PLATFORM:
test_with
kinds of output at the ends of test runs to notice that this got
broken.
It's likely that more renaming in test_with.py would be desirable.
........
r45722 | fred.drake | 2006-04-26 07:15:41 +0200 (Wed, 26 Apr 2006) | 1 line
markup fixes, cleanup
........
r45723 | fred.drake | 2006-04-26 07:19:39 +0200 (Wed, 26 Apr 2006) | 1 line
minor adjustment suggested by Peter Gephardt
........
r45724 | neal.norwitz | 2006-04-26 07:34:03 +0200 (Wed, 26 Apr 2006) | 10 lines
Patch from Aldo Cortesi (OpenBSD buildbot owner).
After the patch (45590) to add extra debug stats to the gc module, Python
was crashing on OpenBSD due to:
Fatal Python error: Interpreter not initialized (version mismatch?)
This seems to occur due to calling collect() when initialized (in pythonrun.c)
is set to 0. Now, the import will occur in the init function which
shouldn't suffer this problem.
........
r45725 | neal.norwitz | 2006-04-26 08:26:12 +0200 (Wed, 26 Apr 2006) | 3 lines
Fix this test on Solaris. There can be embedded \r, so don't just replace
the one at the end.
........
r45727 | nick.coghlan | 2006-04-26 13:50:04 +0200 (Wed, 26 Apr 2006) | 1 line
Fix an error in the last contextlib.closing example
........
r45728 | andrew.kuchling | 2006-04-26 14:21:06 +0200 (Wed, 26 Apr 2006) | 1 line
[Bug #1475080] Fix example
........
r45729 | andrew.kuchling | 2006-04-26 14:23:39 +0200 (Wed, 26 Apr 2006) | 1 line
Add labels to all sections
........
r45730 | thomas.wouters | 2006-04-26 17:53:30 +0200 (Wed, 26 Apr 2006) | 7 lines
The result of SF patch #1471578: big-memory tests for strings, lists and
tuples. Lots to be added, still, but this will give big-memory people
something to play with in 2.5 alpha 2, and hopefully get more people to
write these tests.
........
r45731 | tim.peters | 2006-04-26 19:11:16 +0200 (Wed, 26 Apr 2006) | 2 lines
Whitespace normalization.
........
r45732 | martin.v.loewis | 2006-04-26 19:19:44 +0200 (Wed, 26 Apr 2006) | 1 line
Use GS- and bufferoverlowU.lib where appropriate, for AMD64.
........
r45733 | thomas.wouters | 2006-04-26 20:46:01 +0200 (Wed, 26 Apr 2006) | 5 lines
Add tests for += and *= on strings, and fix the memory-use estimate for the
list.extend tests (they were estimating half the actual use.)
........
r45734 | thomas.wouters | 2006-04-26 21:14:46 +0200 (Wed, 26 Apr 2006) | 5 lines
Some more test-size-estimate fixes: test_append and test_insert trigger a
list resize, which overallocates.
........
r45735 | hyeshik.chang | 2006-04-26 21:20:26 +0200 (Wed, 26 Apr 2006) | 3 lines
Fix build on MIPS for libffi. I haven't tested this yet because I
don't have an access on MIPS machines. Will be tested by buildbot. :)
........
r45737 | fred.drake | 2006-04-27 01:40:32 +0200 (Thu, 27 Apr 2006) | 1 line
one more place to use the current Python version
........
r45738 | fred.drake | 2006-04-27 02:02:24 +0200 (Thu, 27 Apr 2006) | 3 lines
- update version numbers in file names again, until we have a better way
- elaborate instructions for Cygwin support (closes SF #839709)
........
r45739 | fred.drake | 2006-04-27 02:20:14 +0200 (Thu, 27 Apr 2006) | 1 line
add missing word
........
r45740 | anthony.baxter | 2006-04-27 04:11:24 +0200 (Thu, 27 Apr 2006) | 2 lines
2.5a2
........
r45741 | anthony.baxter | 2006-04-27 04:13:13 +0200 (Thu, 27 Apr 2006) | 1 line
2.5a2
........
r45749 | andrew.kuchling | 2006-04-27 14:22:37 +0200 (Thu, 27 Apr 2006) | 1 line
Now that 2.5a2 is out, revert to the current date
........
r45750 | andrew.kuchling | 2006-04-27 14:23:07 +0200 (Thu, 27 Apr 2006) | 1 line
Bump document version
........
r45751 | andrew.kuchling | 2006-04-27 14:34:39 +0200 (Thu, 27 Apr 2006) | 6 lines
[Bug #1477102] Add necessary import to example
This may be a useful style question for the docs -- should examples show
the necessary imports, or should it be assumed that the reader will
figure it out? In the What's New, I'm not consistent but usually opt
for omitting the imports.
........
r45753 | andrew.kuchling | 2006-04-27 14:38:35 +0200 (Thu, 27 Apr 2006) | 1 line
[Bug #1477140] Import Error base class
........
r45754 | andrew.kuchling | 2006-04-27 14:42:54 +0200 (Thu, 27 Apr 2006) | 1 line
Mention the xmlrpclib.Error base class, which is used in one of the examples
........
r45756 | george.yoshida | 2006-04-27 15:41:07 +0200 (Thu, 27 Apr 2006) | 2 lines
markup fix
........
r45757 | thomas.wouters | 2006-04-27 15:46:59 +0200 (Thu, 27 Apr 2006) | 4 lines
Some more size-estimate fixes, for large-list-tests.
........
r45758 | thomas.heller | 2006-04-27 17:50:42 +0200 (Thu, 27 Apr 2006) | 3 lines
Rerun the libffi configuration if any of the files used for that
are newer then fficonfig.py.
........
r45766 | thomas.wouters | 2006-04-28 00:37:50 +0200 (Fri, 28 Apr 2006) | 6 lines
Some style fixes and size-calculation fixes. Also do the small-memory run
using a prime number, rather than a convenient power-of-2-and-multiple-of-5,
so incorrect testing algorithms fail more easily.
........
r45767 | thomas.wouters | 2006-04-28 00:38:32 +0200 (Fri, 28 Apr 2006) | 6 lines
Do the small-memory run of big-meormy tests using a prime number, rather
than a convenient power-of-2-and-multiple-of-5, so incorrect testing
algorithms fail more easily.
........
r45768 | david.goodger | 2006-04-28 00:53:05 +0200 (Fri, 28 Apr 2006) | 1 line
Added SVN access for Steven Bethard and Talin, for PEP updating.
........
r45770 | thomas.wouters | 2006-04-28 01:13:20 +0200 (Fri, 28 Apr 2006) | 16 lines
- Add new Warning class, ImportWarning
- Warn-raise ImportWarning when importing would have picked up a directory
as package, if only it'd had an __init__.py. This swaps two tests (for
case-ness and __init__-ness), but case-test is not really more expensive,
and it's not in a speed-critical section.
- Test for the new warning by importing a common non-package directory on
sys.path: site-packages
- In regrtest.py, silence warnings generated by the build-environment
because Modules/ (which is added to sys.path for Setup-created modules)
has 'zlib' and '_ctypes' directories without __init__.py's.
........
r45771 | thomas.wouters | 2006-04-28 01:41:27 +0200 (Fri, 28 Apr 2006) | 6 lines
Add more ignores of ImportWarnings; these are all just potential triggers
(since they won't trigger if zlib is already sucessfully imported); they
were found by grepping .py files, instead of looking at warning output :)
........
r45773 | neal.norwitz | 2006-04-28 06:32:20 +0200 (Fri, 28 Apr 2006) | 1 line
Add some whitespace to be more consistent.
........
r45774 | neal.norwitz | 2006-04-28 06:34:43 +0200 (Fri, 28 Apr 2006) | 5 lines
Try to really fix the slow buildbots this time.
Printing to stdout, doesn't mean the data was actually written.
It depends on the buffering, so we need to flush. This will hopefully
really fix the buildbots getting killed due to no output on the slow bots.
........
r45775 | neal.norwitz | 2006-04-28 07:28:05 +0200 (Fri, 28 Apr 2006) | 1 line
Fix some warnings on Mac OS X 10.4
........
r45776 | neal.norwitz | 2006-04-28 07:28:30 +0200 (Fri, 28 Apr 2006) | 1 line
Fix a warning on alpha
........
r45777 | neal.norwitz | 2006-04-28 07:28:54 +0200 (Fri, 28 Apr 2006) | 1 line
Fix a warning on ppc (debian)
........
r45778 | george.yoshida | 2006-04-28 18:09:45 +0200 (Fri, 28 Apr 2006) | 2 lines
fix markup glitch
........
r45780 | georg.brandl | 2006-04-28 18:31:17 +0200 (Fri, 28 Apr 2006) | 3 lines
Add SeaMonkey to the list of Mozilla browsers.
........
r45781 | georg.brandl | 2006-04-28 18:36:55 +0200 (Fri, 28 Apr 2006) | 2 lines
Bug #1475009: clarify ntpath.join behavior with absolute components
........
r45783 | george.yoshida | 2006-04-28 18:40:14 +0200 (Fri, 28 Apr 2006) | 2 lines
correct a dead link
........
r45785 | georg.brandl | 2006-04-28 18:54:25 +0200 (Fri, 28 Apr 2006) | 4 lines
Bug #1472949: stringify IOErrors in shutil.copytree when appending
them to the Error errors list.
........
r45786 | georg.brandl | 2006-04-28 18:58:52 +0200 (Fri, 28 Apr 2006) | 3 lines
Bug #1478326: don't allow '/' in distutils.util.get_platform machine names
since this value is used to name the build directory.
........
r45788 | thomas.heller | 2006-04-28 19:02:18 +0200 (Fri, 28 Apr 2006) | 1 line
Remove a duplicated test (the same test is in test_incomplete.py).
........
r45792 | georg.brandl | 2006-04-28 21:09:24 +0200 (Fri, 28 Apr 2006) | 3 lines
Bug #1478429: make datetime.datetime.fromtimestamp accept every float,
possibly "rounding up" to the next whole second.
........
r45796 | george.yoshida | 2006-04-29 04:43:30 +0200 (Sat, 29 Apr 2006) | 2 lines
grammar fix
........
r45800 | ronald.oussoren | 2006-04-29 13:31:35 +0200 (Sat, 29 Apr 2006) | 2 lines
Patch 1471883: --enable-universalsdk on Mac OS X
........
r45801 | andrew.kuchling | 2006-04-29 13:53:15 +0200 (Sat, 29 Apr 2006) | 1 line
Add item
........
r45802 | andrew.kuchling | 2006-04-29 14:10:28 +0200 (Sat, 29 Apr 2006) | 1 line
Make case of 'ZIP' consistent
........
r45803 | andrew.kuchling | 2006-04-29 14:10:43 +0200 (Sat, 29 Apr 2006) | 1 line
Add item
........
r45808 | martin.v.loewis | 2006-04-29 14:37:25 +0200 (Sat, 29 Apr 2006) | 3 lines
Further changes for #1471883: Edit Misc/NEWS, and
add expat_config.h.
........
r45809 | brett.cannon | 2006-04-29 23:29:50 +0200 (Sat, 29 Apr 2006) | 2 lines
Fix docstring for contextfactory; mentioned old contextmanager name.
........
r45810 | gerhard.haering | 2006-04-30 01:12:41 +0200 (Sun, 30 Apr 2006) | 3 lines
This is the start of documentation for the sqlite3 module. Please feel free to
find a better place for the link to it than alongside bsddb & friends.
........
r45811 | andrew.kuchling | 2006-04-30 03:07:09 +0200 (Sun, 30 Apr 2006) | 1 line
Add two items
........
r45814 | george.yoshida | 2006-04-30 05:49:56 +0200 (Sun, 30 Apr 2006) | 2 lines
Use \versionchanged instead of \versionadded for new parameter support.
........
r45815 | georg.brandl | 2006-04-30 09:06:11 +0200 (Sun, 30 Apr 2006) | 2 lines
Patch #1470846: fix urllib2 ProxyBasicAuthHandler.
........
r45817 | georg.brandl | 2006-04-30 10:57:35 +0200 (Sun, 30 Apr 2006) | 3 lines
In stdlib, use hashlib instead of deprecated md5 and sha modules.
........
r45819 | georg.brandl | 2006-04-30 11:23:59 +0200 (Sun, 30 Apr 2006) | 3 lines
Patch #1470976: don't NLST files when retrieving over FTP.
........
r45821 | georg.brandl | 2006-04-30 13:13:56 +0200 (Sun, 30 Apr 2006) | 6 lines
Bug #1473625: stop cPickle making float dumps locale dependent in protocol 0.
On the way, add a decorator to test_support to facilitate running single
test functions in different locales with automatic cleanup.
........
r45822 | phillip.eby | 2006-04-30 17:59:26 +0200 (Sun, 30 Apr 2006) | 2 lines
Fix infinite regress when inspecting <string> or <stdin> frames.
........
r45824 | georg.brandl | 2006-04-30 19:42:26 +0200 (Sun, 30 Apr 2006) | 3 lines
Fix another problem in inspect: if the module for an object cannot be found, don't try to give its __dict__ to linecache.
........
r45825 | georg.brandl | 2006-04-30 20:14:54 +0200 (Sun, 30 Apr 2006) | 3 lines
Patch #1472854: make the rlcompleter.Completer class usable on non-
UNIX platforms.
........
r45826 | georg.brandl | 2006-04-30 21:34:19 +0200 (Sun, 30 Apr 2006) | 3 lines
Patch #1479438: add \keyword markup for "with".
........
r45827 | andrew.kuchling | 2006-04-30 23:19:31 +0200 (Sun, 30 Apr 2006) | 1 line
Add urllib2 HOWTO from Michael Foord
........
r45828 | andrew.kuchling | 2006-04-30 23:19:49 +0200 (Sun, 30 Apr 2006) | 1 line
Add item
........
r45830 | barry.warsaw | 2006-05-01 05:03:02 +0200 (Mon, 01 May 2006) | 11 lines
Port forward from 2.4 branch:
Patch #1464708 from William McVey: fixed handling of nested comments in mail
addresses. E.g.
"Foo ((Foo Bar)) <foo@example.com>"
Fixes for both rfc822.py and email package. This patch needs to be back
ported to Python 2.3 for email 2.5.
........
r45832 | fred.drake | 2006-05-01 08:25:58 +0200 (Mon, 01 May 2006) | 4 lines
- minor clarification in section title
- markup adjustments
(there is clearly much to be done in this section)
........
r45833 | martin.v.loewis | 2006-05-01 08:28:01 +0200 (Mon, 01 May 2006) | 2 lines
Work around deadlock risk. Will backport.
........
r45836 | andrew.kuchling | 2006-05-01 14:45:02 +0200 (Mon, 01 May 2006) | 1 line
Some ElementTree fixes: import from xml, not xmlcore; fix case of module name; mention list() instead of getchildren()
........
r45837 | gerhard.haering | 2006-05-01 17:14:48 +0200 (Mon, 01 May 2006) | 3 lines
Further integration of the documentation for the sqlite3 module. There's still
quite some content to move over from the pysqlite manual, but it's a start now.
........
r45838 | martin.v.loewis | 2006-05-01 17:56:03 +0200 (Mon, 01 May 2006) | 2 lines
Rename uisample to text, drop all non-text tables.
........
r45839 | martin.v.loewis | 2006-05-01 18:12:44 +0200 (Mon, 01 May 2006) | 2 lines
Add msilib documentation.
........
r45840 | martin.v.loewis | 2006-05-01 18:14:16 +0200 (Mon, 01 May 2006) | 4 lines
Rename parameters to match the documentation (which
in turn matches Microsoft's documentation).
Drop unused parameter in CAB.append.
........
r45841 | fred.drake | 2006-05-01 18:28:54 +0200 (Mon, 01 May 2006) | 1 line
add dependency
........
r45842 | andrew.kuchling | 2006-05-01 18:30:25 +0200 (Mon, 01 May 2006) | 1 line
Markup fixes; add some XXX comments noting problems
........
r45843 | andrew.kuchling | 2006-05-01 18:32:49 +0200 (Mon, 01 May 2006) | 1 line
Add item
........
r45844 | andrew.kuchling | 2006-05-01 19:06:54 +0200 (Mon, 01 May 2006) | 1 line
Markup fixes
........
r45850 | neal.norwitz | 2006-05-02 06:43:14 +0200 (Tue, 02 May 2006) | 3 lines
SF #1479181: split open() and file() from being aliases for each other.
........
r45852 | neal.norwitz | 2006-05-02 08:23:22 +0200 (Tue, 02 May 2006) | 1 line
Try to fix breakage caused by patch #1479181, r45850
........
r45853 | fred.drake | 2006-05-02 08:53:59 +0200 (Tue, 02 May 2006) | 3 lines
SF #1479988: add methods to allow access to weakrefs for the
weakref.WeakKeyDictionary and weakref.WeakValueDictionary
........
r45854 | neal.norwitz | 2006-05-02 09:27:47 +0200 (Tue, 02 May 2006) | 5 lines
Fix breakage from patch 1471883 (r45800 & r45808) on OSF/1.
The problem was that pyconfig.h was being included before some system headers
which caused redefinitions and other breakage. This moves system headers
after expat_config.h which includes pyconfig.h.
........
r45855 | vinay.sajip | 2006-05-02 10:35:36 +0200 (Tue, 02 May 2006) | 1 line
Replaced my dumb way of calculating seconds to midnight with Tim Peters' much more sensible suggestion. What was I thinking ?!?
........
r45856 | andrew.kuchling | 2006-05-02 13:30:03 +0200 (Tue, 02 May 2006) | 1 line
Provide encoding as keyword argument; soften warning paragraph about encodings
........
r45858 | guido.van.rossum | 2006-05-02 19:36:09 +0200 (Tue, 02 May 2006) | 2 lines
Fix the formatting of KeyboardInterrupt -- a bad issubclass() call.
........
r45862 | guido.van.rossum | 2006-05-02 21:47:52 +0200 (Tue, 02 May 2006) | 7 lines
Get rid of __context__, per the latest changes to PEP 343 and python-dev
discussion.
There are two places of documentation that still mention __context__:
Doc/lib/libstdtypes.tex -- I wasn't quite sure how to rewrite that without
spending a whole lot of time thinking about it; and whatsnew, which Andrew
usually likes to change himself.
........
r45863 | armin.rigo | 2006-05-02 21:52:32 +0200 (Tue, 02 May 2006) | 4 lines
Documentation bug: PySet_Pop() returns a new reference (because the
caller becomes the owner of that reference).
........
r45864 | guido.van.rossum | 2006-05-02 22:47:36 +0200 (Tue, 02 May 2006) | 4 lines
Hopefully this will fix the spurious failures of test_mailbox.py that I'm
experiencing. (This code and mailbox.py itself are full of calls to file()
that should be calls to open() -- but I'm not fixing those.)
........
r45865 | andrew.kuchling | 2006-05-02 23:44:33 +0200 (Tue, 02 May 2006) | 1 line
Use open() instead of file()
........
r45866 | andrew.kuchling | 2006-05-03 00:47:49 +0200 (Wed, 03 May 2006) | 1 line
Update context manager section for removal of __context__
........
r45867 | fred.drake | 2006-05-03 03:46:52 +0200 (Wed, 03 May 2006) | 1 line
remove unnecessary assignment
........
r45868 | fred.drake | 2006-05-03 03:48:24 +0200 (Wed, 03 May 2006) | 4 lines
tell LaTeX2HTML to:
- use UTF-8 output
- not mess with the >>> prompt!
........
r45869 | fred.drake | 2006-05-03 04:04:40 +0200 (Wed, 03 May 2006) | 3 lines
avoid ugly markup based on the unfortunate conversions of ">>" and "<<" to
guillemets; no need for magic here
........
r45870 | fred.drake | 2006-05-03 04:12:47 +0200 (Wed, 03 May 2006) | 1 line
at least comment on why curly-quotes are not enabled
........
r45871 | fred.drake | 2006-05-03 04:27:40 +0200 (Wed, 03 May 2006) | 1 line
one more place to avoid extra markup
........
r45872 | fred.drake | 2006-05-03 04:29:09 +0200 (Wed, 03 May 2006) | 1 line
one more place to avoid extra markup (how many will there be?)
........
r45873 | fred.drake | 2006-05-03 04:29:39 +0200 (Wed, 03 May 2006) | 1 line
fix up whitespace in prompt strings
........
r45876 | tim.peters | 2006-05-03 06:46:14 +0200 (Wed, 03 May 2006) | 2 lines
Whitespace normalization.
........
r45877 | martin.v.loewis | 2006-05-03 06:52:04 +0200 (Wed, 03 May 2006) | 2 lines
Correct some formulations, fix XXX comments.
........
r45879 | georg.brandl | 2006-05-03 07:05:02 +0200 (Wed, 03 May 2006) | 2 lines
Patch #1480067: don't redirect HTTP digest auth in urllib2
........
r45881 | georg.brandl | 2006-05-03 07:15:10 +0200 (Wed, 03 May 2006) | 3 lines
Move network tests from test_urllib2 to test_urllib2net.
........
r45887 | nick.coghlan | 2006-05-03 15:02:47 +0200 (Wed, 03 May 2006) | 1 line
Finish bringing SVN into line with latest version of PEP 343 by getting rid of all remaining references to context objects that I could find. Without a __context__() method context objects no longer exist. Also get test_with working again, and adopt a suggestion from Neal for decimal.Context.get_manager()
........
r45888 | nick.coghlan | 2006-05-03 15:17:49 +0200 (Wed, 03 May 2006) | 1 line
Get rid of a couple more context object references, fix some markup and clarify what happens when a generator context function swallows an exception.
........
r45889 | georg.brandl | 2006-05-03 19:46:13 +0200 (Wed, 03 May 2006) | 3 lines
Add seamonkey to list of Windows browsers too.
........
r45890 | georg.brandl | 2006-05-03 20:03:22 +0200 (Wed, 03 May 2006) | 3 lines
RFE #1472176: In httplib, don't encode the netloc and hostname with "idna" if not necessary.
........
r45891 | georg.brandl | 2006-05-03 20:12:33 +0200 (Wed, 03 May 2006) | 2 lines
Bug #1472191: convert breakpoint indices to ints before comparing them to ints
........
r45893 | georg.brandl | 2006-05-03 20:18:32 +0200 (Wed, 03 May 2006) | 3 lines
Bug #1385040: don't allow "def foo(a=1, b): pass" in the compiler package.
........
r45894 | thomas.heller | 2006-05-03 20:35:39 +0200 (Wed, 03 May 2006) | 1 line
Don't fail the tests when libglut.so or libgle.so cannot be loaded.
........
r45895 | georg.brandl | 2006-05-04 07:08:10 +0200 (Thu, 04 May 2006) | 2 lines
Bug #1481530: allow "from os.path import ..." with imputil
........
r45897 | martin.v.loewis | 2006-05-04 07:51:03 +0200 (Thu, 04 May 2006) | 2 lines
Patch #1475845: Raise IndentationError for unexpected indent.
........
r45898 | martin.v.loewis | 2006-05-04 12:08:42 +0200 (Thu, 04 May 2006) | 1 line
Implement os.{chdir,rename,rmdir,remove} using Win32 directly.
........
r45899 | martin.v.loewis | 2006-05-04 14:04:27 +0200 (Thu, 04 May 2006) | 2 lines
Drop now-unnecessary arguments to posix_2str.
........
r45900 | martin.v.loewis | 2006-05-04 16:27:52 +0200 (Thu, 04 May 2006) | 1 line
Update checks to consider Windows error numbers.
........
r45913 | thomas.heller | 2006-05-05 20:42:14 +0200 (Fri, 05 May 2006) | 2 lines
Export the 'free' standard C function for use in the test suite.
........
r45914 | thomas.heller | 2006-05-05 20:43:24 +0200 (Fri, 05 May 2006) | 3 lines
Fix memory leaks in the ctypes test suite, reported by valgrind, by
free()ing the memory we allocate.
........
r45915 | thomas.heller | 2006-05-05 20:46:27 +0200 (Fri, 05 May 2006) | 1 line
oops - the function is exported as 'my_free', not 'free'.
........
r45916 | thomas.heller | 2006-05-05 21:14:24 +0200 (Fri, 05 May 2006) | 2 lines
Clean up.
........
r45920 | george.yoshida | 2006-05-06 15:09:45 +0200 (Sat, 06 May 2006) | 2 lines
describe optional arguments for DocFileSuite
........
r45924 | george.yoshida | 2006-05-06 16:16:51 +0200 (Sat, 06 May 2006) | 2 lines
Use \versionchanged for the feature change
........
r45925 | martin.v.loewis | 2006-05-06 18:32:54 +0200 (Sat, 06 May 2006) | 1 line
Port access, chmod, parts of getcwdu, mkdir, and utime to direct Win32 API.
........
r45926 | martin.v.loewis | 2006-05-06 22:04:08 +0200 (Sat, 06 May 2006) | 2 lines
Handle ERROR_ALREADY_EXISTS.
........
r45931 | andrew.kuchling | 2006-05-07 19:12:12 +0200 (Sun, 07 May 2006) | 1 line
[Patch #1479977] Revised version of urllib2 HOWTO, edited by John J. Lee
........
r45932 | andrew.kuchling | 2006-05-07 19:14:53 +0200 (Sun, 07 May 2006) | 1 line
Minor language edit
........
r45934 | georg.brandl | 2006-05-07 22:44:34 +0200 (Sun, 07 May 2006) | 3 lines
Patch #1483395: add new TLDs to cookielib
........
r45936 | martin.v.loewis | 2006-05-08 07:25:56 +0200 (Mon, 08 May 2006) | 2 lines
Add missing PyMem_Free.
........
r45938 | georg.brandl | 2006-05-08 19:28:47 +0200 (Mon, 08 May 2006) | 3 lines
Add test for rev. 45934.
........
r45939 | georg.brandl | 2006-05-08 19:36:08 +0200 (Mon, 08 May 2006) | 3 lines
Patch #1479302: Make urllib2 digest auth and basic auth play together.
........
r45940 | georg.brandl | 2006-05-08 19:48:01 +0200 (Mon, 08 May 2006) | 3 lines
Patch #1478993: take advantage of BaseException/Exception split in cookielib
........
r45941 | neal.norwitz | 2006-05-09 07:38:56 +0200 (Tue, 09 May 2006) | 5 lines
Micro optimization. In the first case, we know that frame->f_exc_type
is NULL, so there's no reason to do anything with it. In the second case,
we know frame->f_exc_type is not NULL, so we can just do an INCREF.
........
r45943 | thomas.heller | 2006-05-09 22:20:15 +0200 (Tue, 09 May 2006) | 2 lines
Disable a test that is unreliable.
........
r45944 | tim.peters | 2006-05-10 04:43:01 +0200 (Wed, 10 May 2006) | 4 lines
Variant of patch #1478292. doctest.register_optionflag(name)
shouldn't create a new flag when `name` is already the name of
an option flag.
........
r45947 | neal.norwitz | 2006-05-10 08:57:58 +0200 (Wed, 10 May 2006) | 14 lines
Fix problems found by Coverity.
longobject.c: also fix an ssize_t problem
<a> could have been NULL, so hoist the size calc to not use <a>.
_ssl.c: under fail: self is DECREF'd, but it would have been NULL.
_elementtree.c: delete self if there was an error.
_csv.c: I'm not sure if lineterminator could have been anything other than
a string. However, other string method calls are checked, so check this
one too.
........
r45948 | thomas.wouters | 2006-05-10 17:04:11 +0200 (Wed, 10 May 2006) | 4 lines
Ignore reflog.txt, too.
........
r45949 | georg.brandl | 2006-05-10 17:59:06 +0200 (Wed, 10 May 2006) | 3 lines
Bug #1482988: indicate more prominently that the Stats class is in the pstats module.
........
r45950 | georg.brandl | 2006-05-10 18:09:03 +0200 (Wed, 10 May 2006) | 2 lines
Bug #1485447: subprocess: document that the "cwd" parameter isn't used to find the executable. Misc. other markup fixes.
........
r45952 | georg.brandl | 2006-05-10 18:11:44 +0200 (Wed, 10 May 2006) | 2 lines
Bug #1484978: curses.panel: clarify that Panel objects are destroyed on garbage collection.
........
r45954 | georg.brandl | 2006-05-10 18:26:03 +0200 (Wed, 10 May 2006) | 4 lines
Patch #1484695: Update the tarfile module to version 0.8. This fixes
a couple of issues, notably handling of long file names using the
GNU LONGNAME extension.
........
r45955 | georg.brandl | 2006-05-10 19:13:20 +0200 (Wed, 10 May 2006) | 4 lines
Patch #721464: pdb.Pdb instances can now be given explicit stdin and
stdout arguments, making it possible to redirect input and output
for remote debugging.
........
r45956 | andrew.kuchling | 2006-05-10 19:19:04 +0200 (Wed, 10 May 2006) | 1 line
Clarify description of exception handling
........
r45957 | georg.brandl | 2006-05-10 22:09:23 +0200 (Wed, 10 May 2006) | 2 lines
Fix two small errors in argument lists.
........
r45960 | brett.cannon | 2006-05-11 07:11:33 +0200 (Thu, 11 May 2006) | 5 lines
Detect if %zd is supported by printf() during configure and sets
PY_FORMAT_SIZE_T appropriately. Removes warnings on
OS X under gcc 4.0.1 when PY_FORMAT_SIZE_T is set to "" instead of "z" as is
needed.
........
r45963 | neal.norwitz | 2006-05-11 09:51:59 +0200 (Thu, 11 May 2006) | 1 line
Don't mask a no memory error with a less meaningful one as discussed on python-checkins
........
r45964 | martin.v.loewis | 2006-05-11 15:28:43 +0200 (Thu, 11 May 2006) | 3 lines
Change WindowsError to carry the Win32 error code in winerror,
and the DOS error code in errno. Revert changes where
WindowsError catch blocks unnecessarily special-case OSError.
........
r45965 | george.yoshida | 2006-05-11 17:53:27 +0200 (Thu, 11 May 2006) | 2 lines
Grammar fix
........
r45967 | andrew.kuchling | 2006-05-11 18:32:24 +0200 (Thu, 11 May 2006) | 1 line
typo fix
........
r45968 | tim.peters | 2006-05-11 18:37:42 +0200 (Thu, 11 May 2006) | 5 lines
BaseThreadedTestCase.setup(): stop special-casing WindowsError.
Rev 45964 fiddled with WindowsError, and broke test_bsddb3 on all
the Windows buildbot slaves as a result. This should repair it.
........
r45969 | georg.brandl | 2006-05-11 21:57:09 +0200 (Thu, 11 May 2006) | 2 lines
Typo fix.
........
r45970 | tim.peters | 2006-05-12 03:57:59 +0200 (Fri, 12 May 2006) | 5 lines
SF patch #1473132: Improve docs for tp_clear and tp_traverse,
by Collin Winter.
Bugfix candidate (but I'm not going to bother).
........
r45974 | martin.v.loewis | 2006-05-12 14:27:28 +0200 (Fri, 12 May 2006) | 4 lines
Dynamically allocate path name buffer for Unicode
path name in listdir. Fixes #1431582.
Stop overallocating MAX_PATH characters for ANSI
path names. Stop assigning to errno.
........
r45975 | martin.v.loewis | 2006-05-12 15:57:36 +0200 (Fri, 12 May 2006) | 1 line
Move icon files into DLLs dir. Fixes #1477968.
........
r45976 | george.yoshida | 2006-05-12 18:40:11 +0200 (Fri, 12 May 2006) | 2 lines
At first there were 6 steps, but one was removed after that.
........
r45977 | martin.v.loewis | 2006-05-12 19:22:04 +0200 (Fri, 12 May 2006) | 1 line
Fix alignment error on Itanium.
........
r45978 | george.yoshida | 2006-05-12 19:25:26 +0200 (Fri, 12 May 2006) | 3 lines
Duplicated description about the illegal continue usage can be found in nearly the same place.
They are same, so keep the original one and remove the later-added one.
........
r45980 | thomas.heller | 2006-05-12 20:16:03 +0200 (Fri, 12 May 2006) | 2 lines
Add missing svn properties.
........
r45981 | thomas.heller | 2006-05-12 20:47:35 +0200 (Fri, 12 May 2006) | 1 line
set svn properties
........
r45982 | thomas.heller | 2006-05-12 21:31:46 +0200 (Fri, 12 May 2006) | 1 line
add svn:eol-style native svn:keywords Id
........
r45987 | gerhard.haering | 2006-05-13 01:49:49 +0200 (Sat, 13 May 2006) | 3 lines
Integrated the rest of the pysqlite reference manual into the Python
documentation. Ready to be reviewed and improved upon.
........
r45988 | george.yoshida | 2006-05-13 08:53:31 +0200 (Sat, 13 May 2006) | 2 lines
Add \exception markup
........
r45990 | martin.v.loewis | 2006-05-13 15:34:04 +0200 (Sat, 13 May 2006) | 2 lines
Revert 43315: Printing of %zd must be signed.
........
r45992 | tim.peters | 2006-05-14 01:28:20 +0200 (Sun, 14 May 2006) | 11 lines
Teach PyString_FromFormat, PyErr_Format, and PyString_FromFormatV
about "%u", "%lu" and "%zu" formats.
Since PyString_FromFormat and PyErr_Format have exactly the same rules
(both inherited from PyString_FromFormatV), it would be good if someone
with more LaTeX Fu changed one of them to just point to the other.
Their docs were way out of synch before this patch, and I just did a
mass copy+paste to repair that.
Not a backport candidate (this is a new feature).
........
r45993 | tim.peters | 2006-05-14 01:31:05 +0200 (Sun, 14 May 2006) | 2 lines
Typo repair.
........
r45994 | tim.peters | 2006-05-14 01:33:19 +0200 (Sun, 14 May 2006) | 2 lines
Remove lie in new comment.
........
r45995 | ronald.oussoren | 2006-05-14 21:56:34 +0200 (Sun, 14 May 2006) | 11 lines
Rework the build system for osx applications:
* Don't use xcodebuild for building PythonLauncher, but use a normal unix
makefile. This makes it a lot easier to use the same build flags as for the
rest of python (e.g. make a universal version of python launcher)
* Convert the mac makefile-s to makefile.in-s and use configure to set makefile
variables instead of forwarding them as command-line arguments
* Add a C version of pythonw, that we you can use '#!/usr/local/bin/pythonw'
* Build IDLE.app using bundlebuilder instead of BuildApplet, that will allow
easier modification of the bundle contents later on.
........
r45996 | ronald.oussoren | 2006-05-14 22:35:41 +0200 (Sun, 14 May 2006) | 6 lines
A first cut at replacing the icons on MacOS X. This replaces all icons by icons
based on the new python.org logo. These are also the first icons that are
"proper" OSX icons.
These icons were created by Jacob Rus.
........
r45997 | ronald.oussoren | 2006-05-14 23:07:41 +0200 (Sun, 14 May 2006) | 3 lines
I missed one small detail in my rewrite of the osx build files: the path
to the Python.app template.
........
r45998 | martin.v.loewis | 2006-05-15 07:51:36 +0200 (Mon, 15 May 2006) | 2 lines
Fix memory leak.
........
r45999 | neal.norwitz | 2006-05-15 08:48:14 +0200 (Mon, 15 May 2006) | 1 line
Move items implemented after a2 into the new a3 section
........
r46000 | neal.norwitz | 2006-05-15 09:04:36 +0200 (Mon, 15 May 2006) | 5 lines
- Bug #1487966: Fix SystemError with conditional expression in assignment
Most of the test_syntax changes are just updating the numbers.
........
r46001 | neal.norwitz | 2006-05-15 09:17:23 +0200 (Mon, 15 May 2006) | 1 line
Patch #1488312, Fix memory alignment problem on SPARC in unicode. Will backport
........
r46003 | martin.v.loewis | 2006-05-15 11:22:27 +0200 (Mon, 15 May 2006) | 3 lines
Remove bogus DECREF of self.
Change __str__() functions to METH_O.
Change WindowsError__str__ to use PyTuple_Pack.
........
r46005 | georg.brandl | 2006-05-15 21:30:35 +0200 (Mon, 15 May 2006) | 3 lines
[ 1488881 ] tarfile.py: support for file-objects and bz2 (cp. #1488634)
........
r46007 | tim.peters | 2006-05-15 22:44:10 +0200 (Mon, 15 May 2006) | 9 lines
ReadDetectFileobjTest: repair Windows disasters by opening
the file object in binary mode.
The Windows buildbot slaves shouldn't swap themselves to death
anymore. However, test_tarfile may still fail because of a
temp directory left behind from a previous failing run.
Windows buildbot owners may need to remove that directory
by hand.
........
r46009 | tim.peters | 2006-05-15 23:32:25 +0200 (Mon, 15 May 2006) | 3 lines
test_directory(): Remove the leftover temp directory that's making
the Windows buildbots fail test_tarfile.
........
r46010 | martin.v.loewis | 2006-05-16 09:05:37 +0200 (Tue, 16 May 2006) | 4 lines
- Test for sys/statvfs.h before including it, as statvfs is present
on some OSX installation, but its header file is not.
Will backport to 2.4
........
r46012 | georg.brandl | 2006-05-16 09:38:27 +0200 (Tue, 16 May 2006) | 3 lines
Patch #1435422: zlib's compress and decompress objects now have a
copy() method.
........
r46015 | andrew.kuchling | 2006-05-16 18:11:54 +0200 (Tue, 16 May 2006) | 1 line
Add item
........
r46016 | andrew.kuchling | 2006-05-16 18:27:31 +0200 (Tue, 16 May 2006) | 3 lines
PEP 243 has been withdrawn, so don't refer to it any more.
The PyPI upload material has been moved into the section on PEP314.
........
r46017 | george.yoshida | 2006-05-16 19:42:16 +0200 (Tue, 16 May 2006) | 2 lines
Update for 'ImportWarning'
........
r46018 | george.yoshida | 2006-05-16 20:07:00 +0200 (Tue, 16 May 2006) | 4 lines
Mention that Exception is now a subclass of BaseException.
Remove a sentence that says that BaseException inherits from BaseException.
(I guess this is just a copy & paste mistake.)
........
r46019 | george.yoshida | 2006-05-16 20:26:10 +0200 (Tue, 16 May 2006) | 2 lines
Document ImportWarning
........
r46020 | tim.peters | 2006-05-17 01:22:20 +0200 (Wed, 17 May 2006) | 2 lines
Whitespace normalization.
........
r46021 | tim.peters | 2006-05-17 01:24:08 +0200 (Wed, 17 May 2006) | 2 lines
Text files missing the SVN eol-style property.
........
r46022 | tim.peters | 2006-05-17 03:30:11 +0200 (Wed, 17 May 2006) | 2 lines
PyZlib_copy(), PyZlib_uncopy(): Repair leaks on the normal-case path.
........
r46023 | georg.brandl | 2006-05-17 16:06:07 +0200 (Wed, 17 May 2006) | 3 lines
Remove misleading comment about type-class unification.
........
r46024 | georg.brandl | 2006-05-17 16:11:36 +0200 (Wed, 17 May 2006) | 3 lines
Apply patch #1489784 from Michael Foord.
........
r46025 | georg.brandl | 2006-05-17 16:18:20 +0200 (Wed, 17 May 2006) | 3 lines
Fix typo in os.utime docstring (patch #1490189)
........
r46026 | georg.brandl | 2006-05-17 16:26:50 +0200 (Wed, 17 May 2006) | 3 lines
Patch #1490224: set time.altzone correctly on Cygwin.
........
r46027 | georg.brandl | 2006-05-17 16:45:06 +0200 (Wed, 17 May 2006) | 4 lines
Add global debug flag to cookielib to avoid heavy dependency on the logging module.
Resolves #1484758.
........
r46028 | georg.brandl | 2006-05-17 16:56:04 +0200 (Wed, 17 May 2006) | 3 lines
Patch #1486962: Several bugs in the turtle Tk demo module were fixed
and several features added, such as speed and geometry control.
........
r46029 | georg.brandl | 2006-05-17 17:17:00 +0200 (Wed, 17 May 2006) | 4 lines
Delay-import some large modules to speed up urllib2 import.
(fixes #1484793).
........
r46030 | georg.brandl | 2006-05-17 17:51:16 +0200 (Wed, 17 May 2006) | 3 lines
Patch #1180296: improve locale string formatting functions
........
r46032 | tim.peters | 2006-05-18 04:06:40 +0200 (Thu, 18 May 2006) | 2 lines
Whitespace normalization.
........
r46033 | georg.brandl | 2006-05-18 08:11:19 +0200 (Thu, 18 May 2006) | 3 lines
Amendments to patch #1484695.
........
r46034 | georg.brandl | 2006-05-18 08:18:06 +0200 (Thu, 18 May 2006) | 3 lines
Remove unused import.
........
r46035 | georg.brandl | 2006-05-18 08:33:27 +0200 (Thu, 18 May 2006) | 3 lines
Fix test_locale for platforms without a default thousands separator.
........
r46036 | neal.norwitz | 2006-05-18 08:51:46 +0200 (Thu, 18 May 2006) | 1 line
Little cleanup
........
r46037 | georg.brandl | 2006-05-18 09:01:27 +0200 (Thu, 18 May 2006) | 4 lines
Bug #1462152: file() now checks more thoroughly for invalid mode
strings and removes a possible "U" before passing the mode to the
C library function.
........
r46038 | georg.brandl | 2006-05-18 09:20:05 +0200 (Thu, 18 May 2006) | 3 lines
Bug #1490688: properly document %e, %f, %g format subtleties.
........
r46039 | vinay.sajip | 2006-05-18 09:28:58 +0200 (Thu, 18 May 2006) | 1 line
Changed status from "beta" to "production"; since logging has been part of the stdlib since 2.3, it should be safe to make this assertion ;-)
........
r46040 | ronald.oussoren | 2006-05-18 11:04:15 +0200 (Thu, 18 May 2006) | 2 lines
Fix some minor issues with the generated application bundles on MacOSX
........
r46041 | andrew.kuchling | 2006-05-19 02:03:55 +0200 (Fri, 19 May 2006) | 1 line
Typo fix; add clarifying word
........
r46044 | neal.norwitz | 2006-05-19 08:31:23 +0200 (Fri, 19 May 2006) | 3 lines
Fix #132 from Coverity, retval could have been derefed
if a continue inside a try failed.
........
r46045 | neal.norwitz | 2006-05-19 08:43:50 +0200 (Fri, 19 May 2006) | 2 lines
Fix #1474677, non-keyword argument following keyword.
........
r46046 | neal.norwitz | 2006-05-19 09:00:58 +0200 (Fri, 19 May 2006) | 4 lines
Bug/Patch #1481770: Use .so extension for shared libraries on HP-UX for ia64.
I suppose this could be backported if anyone cares.
........
r46047 | neal.norwitz | 2006-05-19 09:05:01 +0200 (Fri, 19 May 2006) | 7 lines
Oops, I forgot to include this file in the last commit (46046):
Bug/Patch #1481770: Use .so extension for shared libraries on HP-UX for ia64.
I suppose this could be backported if anyone cares.
........
r46050 | ronald.oussoren | 2006-05-19 20:17:31 +0200 (Fri, 19 May 2006) | 6 lines
* Change working directory to the users home
directory, that makes the file open/save
dialogs more useable.
* Don't use argv emulator, its not needed
for idle.
........
r46052 | tim.peters | 2006-05-19 21:16:34 +0200 (Fri, 19 May 2006) | 2 lines
Whitespace normalization.
........
r46054 | ronald.oussoren | 2006-05-20 08:17:01 +0200 (Sat, 20 May 2006) | 9 lines
Fix bug #1000914 (again).
This patches a file that is generated by bgen, however the code is now the
same as a current copy of bgen would generate. Without this patch most types
in the Carbon.CF module are unusable.
I haven't managed to coax bgen into generating a complete copy of _CFmodule.c
yet :-(, hence the manual patching.
........
r46055 | george.yoshida | 2006-05-20 17:36:19 +0200 (Sat, 20 May 2006) | 3 lines
- markup fix
- add clarifying words
........
r46057 | george.yoshida | 2006-05-20 18:29:14 +0200 (Sat, 20 May 2006) | 3 lines
- Add 'as' and 'with' as new keywords in 2.5.
- Regenerate keyword lists with reswords.py.
........
r46058 | george.yoshida | 2006-05-20 20:07:26 +0200 (Sat, 20 May 2006) | 2 lines
Apply patch #1492147 from Mike Foord.
........
r46059 | andrew.kuchling | 2006-05-20 21:25:16 +0200 (Sat, 20 May 2006) | 1 line
Minor edits
........
r46061 | george.yoshida | 2006-05-21 06:22:59 +0200 (Sun, 21 May 2006) | 2 lines
Fix the TeX compile error.
........
r46062 | george.yoshida | 2006-05-21 06:40:32 +0200 (Sun, 21 May 2006) | 2 lines
Apply patch #1492255 from Mike Foord.
........
r46063 | martin.v.loewis | 2006-05-22 10:48:14 +0200 (Mon, 22 May 2006) | 1 line
Patch 1490384: New Icons for the PC build.
........
r46064 | martin.v.loewis | 2006-05-22 11:15:18 +0200 (Mon, 22 May 2006) | 1 line
Patch #1492356: Port to Windows CE (patch set 1).
........
r46065 | tim.peters | 2006-05-22 13:29:41 +0200 (Mon, 22 May 2006) | 4 lines
Define SIZEOF_{DOUBLE,FLOAT} on Windows. Else
Michael Hudson's nice gimmicks for IEEE special
values (infinities, NaNs) don't work.
........
r46070 | bob.ippolito | 2006-05-22 16:31:24 +0200 (Mon, 22 May 2006) | 2 lines
GzipFile.readline performance improvement (~30-40%), patch #1281707
........
r46071 | bob.ippolito | 2006-05-22 17:22:46 +0200 (Mon, 22 May 2006) | 1 line
Revert gzip readline performance patch #1281707 until a more generic performance improvement can be found
........
r46073 | fredrik.lundh | 2006-05-22 17:35:12 +0200 (Mon, 22 May 2006) | 4 lines
docstring tweaks: count counts non-overlapping substrings, not
total number of occurences
........
r46075 | bob.ippolito | 2006-05-22 17:59:12 +0200 (Mon, 22 May 2006) | 1 line
Apply revised patch for GzipFile.readline performance #1281707
........
r46076 | fredrik.lundh | 2006-05-22 18:29:30 +0200 (Mon, 22 May 2006) | 3 lines
needforspeed: speed up unicode repeat, unicode string copy
........
r46079 | fredrik.lundh | 2006-05-22 19:12:58 +0200 (Mon, 22 May 2006) | 4 lines
needforspeed: use memcpy for "long" strings; use a better algorithm
for long repeats.
........
r46084 | tim.peters | 2006-05-22 21:17:04 +0200 (Mon, 22 May 2006) | 7 lines
PyUnicode_Join(): Recent code changes introduced new
compiler warnings on Windows (signed vs unsigned mismatch
in comparisons). Cleaned that up by switching more locals
to Py_ssize_t. Simplified overflow checking (it can _be_
simpler because while these things are declared as
Py_ssize_t, then should in fact never be negative).
........
r46085 | tim.peters | 2006-05-23 07:47:16 +0200 (Tue, 23 May 2006) | 3 lines
unicode_repeat(): Change type of local to Py_ssize_t,
since that's what it should be.
........
r46094 | fredrik.lundh | 2006-05-23 12:10:57 +0200 (Tue, 23 May 2006) | 3 lines
needforspeed: check first *and* last character before doing a full memcmp
........
r46095 | fredrik.lundh | 2006-05-23 12:12:21 +0200 (Tue, 23 May 2006) | 4 lines
needforspeed: fixed unicode "in" operator to use same implementation
approach as find/index
........
r46096 | richard.jones | 2006-05-23 12:37:38 +0200 (Tue, 23 May 2006) | 7 lines
Merge from rjones-funccall branch.
Applied patch zombie-frames-2.diff from sf patch 876206 with updates for
Python 2.5 and also modified to retain the free_list to avoid the 67%
slow-down in pybench recursion test. 5% speed up in function call pybench.
........
r46098 | ronald.oussoren | 2006-05-23 13:04:24 +0200 (Tue, 23 May 2006) | 2 lines
Avoid creating a mess when installing a framework for the second time.
........
r46101 | georg.brandl | 2006-05-23 13:17:21 +0200 (Tue, 23 May 2006) | 3 lines
PyErr_NewException now accepts a tuple of base classes as its
"base" parameter.
........
r46103 | ronald.oussoren | 2006-05-23 13:47:16 +0200 (Tue, 23 May 2006) | 3 lines
Disable linking extensions with -lpython2.5 for darwin. This should fix bug
#1487105.
........
r46104 | ronald.oussoren | 2006-05-23 14:01:11 +0200 (Tue, 23 May 2006) | 6 lines
Patch #1488098.
This patchs makes it possible to create a universal build on OSX 10.4 and use
the result to build extensions on 10.3. It also makes it possible to override
the '-arch' and '-isysroot' compiler arguments for specific extensions.
........
r46108 | andrew.kuchling | 2006-05-23 14:44:36 +0200 (Tue, 23 May 2006) | 1 line
Add some items; mention the sprint
........
r46109 | andrew.kuchling | 2006-05-23 14:47:01 +0200 (Tue, 23 May 2006) | 1 line
Mention string improvements
........
r46110 | andrew.kuchling | 2006-05-23 14:49:35 +0200 (Tue, 23 May 2006) | 4 lines
Use 'speed' instead of 'performance', because I agree with the argument
at http://zestyping.livejournal.com/193260.html that 'erformance' really means
something more general.
........
r46113 | ronald.oussoren | 2006-05-23 17:09:57 +0200 (Tue, 23 May 2006) | 2 lines
An improved script for building the binary distribution on MacOSX.
........
r46128 | richard.jones | 2006-05-23 20:28:17 +0200 (Tue, 23 May 2006) | 3 lines
Applied patch 1337051 by Neal Norwitz, saving 4 ints on frame objects.
........
r46129 | richard.jones | 2006-05-23 20:32:11 +0200 (Tue, 23 May 2006) | 1 line
fix broken merge
........
r46130 | bob.ippolito | 2006-05-23 20:41:17 +0200 (Tue, 23 May 2006) | 1 line
Update Misc/NEWS for gzip patch #1281707
........
r46131 | bob.ippolito | 2006-05-23 20:43:47 +0200 (Tue, 23 May 2006) | 1 line
Update Misc/NEWS for gzip patch #1281707
........
r46132 | fredrik.lundh | 2006-05-23 20:44:25 +0200 (Tue, 23 May 2006) | 7 lines
needforspeed: use append+reverse for rsplit, use "bloom filters" to
speed up splitlines and strip with charsets; etc. rsplit is now as
fast as split in all our tests (reverse takes no time at all), and
splitlines() is nearly as fast as a plain split("\n") in our tests.
and we're not done yet... ;-)
........
r46133 | tim.peters | 2006-05-23 20:45:30 +0200 (Tue, 23 May 2006) | 38 lines
Bug #1334662 / patch #1335972: int(string, base) wrong answers.
In rare cases of strings specifying true values near sys.maxint,
and oddball bases (not decimal or a power of 2), int(string, base)
could deliver insane answers. This repairs all such problems, and
also speeds string->int significantly. On my box, here are %
speedups for decimal strings of various lengths:
length speedup
------ -------
1 12.4%
2 15.7%
3 20.6%
4 28.1%
5 33.2%
6 37.5%
7 41.9%
8 46.3%
9 51.2%
10 19.5%
11 19.9%
12 23.9%
13 23.7%
14 23.3%
15 24.9%
16 25.3%
17 28.3%
18 27.9%
19 35.7%
Note that the difference between 9 and 10 is the difference between
short and long Python ints on a 32-bit box. The patch doesn't
actually do anything to speed conversion to long: the speedup is
due to detecting "unsigned long" overflow more quickly.
This is a bugfix candidate, but it's a non-trivial patch and it
would be painful to separate the "bug fix" from the "speed up" parts.
........
r46134 | bob.ippolito | 2006-05-23 20:46:41 +0200 (Tue, 23 May 2006) | 1 line
Patch #1493701: performance enhancements for struct module.
........
r46136 | andrew.kuchling | 2006-05-23 21:00:45 +0200 (Tue, 23 May 2006) | 1 line
Remove duplicate item
........
r46141 | bob.ippolito | 2006-05-23 21:09:51 +0200 (Tue, 23 May 2006) | 1 line
revert #1493701
........
r46142 | bob.ippolito | 2006-05-23 21:11:34 +0200 (Tue, 23 May 2006) | 1 line
patch #1493701: performance enhancements for struct module
........
r46144 | bob.ippolito | 2006-05-23 21:12:41 +0200 (Tue, 23 May 2006) | 1 line
patch #1493701: performance enhancements for struct module
........
r46148 | bob.ippolito | 2006-05-23 21:25:52 +0200 (Tue, 23 May 2006) | 1 line
fix linking issue, warnings, in struct
........
r46149 | andrew.kuchling | 2006-05-23 21:29:38 +0200 (Tue, 23 May 2006) | 1 line
Add two items
........
r46150 | bob.ippolito | 2006-05-23 21:31:23 +0200 (Tue, 23 May 2006) | 1 line
forward declaration for PyStructType
........
r46151 | bob.ippolito | 2006-05-23 21:32:25 +0200 (Tue, 23 May 2006) | 1 line
fix typo in _struct
........
r46152 | andrew.kuchling | 2006-05-23 21:32:35 +0200 (Tue, 23 May 2006) | 1 line
Add item
........
r46153 | tim.peters | 2006-05-23 21:34:37 +0200 (Tue, 23 May 2006) | 3 lines
Get the Windows build working again (recover from
`struct` module changes).
........
r46155 | fredrik.lundh | 2006-05-23 21:47:35 +0200 (Tue, 23 May 2006) | 3 lines
return 0 on misses, not -1.
........
r46156 | tim.peters | 2006-05-23 23:51:35 +0200 (Tue, 23 May 2006) | 4 lines
test_struct grew weird behavior under regrtest.py -R,
due to a module-level cache. Clearing the cache should
make it stop showing up in refleak reports.
........
r46157 | tim.peters | 2006-05-23 23:54:23 +0200 (Tue, 23 May 2006) | 2 lines
Whitespace normalization.
........
r46158 | tim.peters | 2006-05-23 23:55:53 +0200 (Tue, 23 May 2006) | 2 lines
Add missing svn:eol-style property to text files.
........
r46161 | fredrik.lundh | 2006-05-24 12:20:36 +0200 (Wed, 24 May 2006) | 3 lines
use Py_ssize_t for string indexes (thanks, neal!)
........
r46173 | fredrik.lundh | 2006-05-24 16:28:11 +0200 (Wed, 24 May 2006) | 14 lines
needforspeed: use "fastsearch" for count and findstring helpers. this
results in a 2.5x speedup on the stringbench count tests, and a 20x (!)
speedup on the stringbench search/find/contains test, compared to 2.5a2.
for more on the algorithm, see:
http://effbot.org/zone/stringlib.htm
if you get weird results, you can disable the new algoritm by undefining
USE_FAST in Objects/unicodeobject.c.
enjoy /F
........
r46182 | fredrik.lundh | 2006-05-24 17:11:01 +0200 (Wed, 24 May 2006) | 3 lines
needforspeedindeed: use fastsearch also for __contains__
........
r46184 | bob.ippolito | 2006-05-24 17:32:06 +0200 (Wed, 24 May 2006) | 1 line
refactor unpack, add unpack_from
........
r46189 | fredrik.lundh | 2006-05-24 18:35:18 +0200 (Wed, 24 May 2006) | 4 lines
needforspeed: refactored the replace code slightly; special-case
constant-length changes; use fastsearch to locate the first match.
........
r46198 | andrew.dalke | 2006-05-24 20:55:37 +0200 (Wed, 24 May 2006) | 10 lines
Added a slew of test for string replace, based various corner cases from
the Need For Speed sprint coding. Includes commented out overflow tests
which will be uncommented once the code is fixed.
This test will break the 8-bit string tests because
"".replace("", "A") == "" when it should == "A"
We have a fix for it, which should be added tomorrow.
........
r46200 | tim.peters | 2006-05-24 22:27:18 +0200 (Wed, 24 May 2006) | 2 lines
We can't leave the checked-in tests broken.
........
r46201 | tim.peters | 2006-05-24 22:29:44 +0200 (Wed, 24 May 2006) | 2 lines
Whitespace normalization.
........
r46202 | tim.peters | 2006-05-24 23:00:45 +0200 (Wed, 24 May 2006) | 4 lines
Disable the damn empty-string replace test -- it can't
be make to pass now for unicode if it passes for str, or
vice versa.
........
r46203 | tim.peters | 2006-05-24 23:10:40 +0200 (Wed, 24 May 2006) | 58 lines
Heavily fiddled variant of patch #1442927: PyLong_FromString optimization.
``long(str, base)`` is now up to 6x faster for non-power-of-2 bases. The
largest speedup is for inputs with about 1000 decimal digits. Conversion
from non-power-of-2 bases remains quadratic-time in the number of input
digits (it was and remains linear-time for bases 2, 4, 8, 16 and 32).
Speedups at various lengths for decimal inputs, comparing 2.4.3 with
current trunk. Note that it's actually a bit slower for 1-digit strings:
len speedup
---- -------
1 -4.5%
2 4.6%
3 8.3%
4 12.7%
5 16.9%
6 28.6%
7 35.5%
8 44.3%
9 46.6%
10 55.3%
11 65.7%
12 77.7%
13 73.4%
14 75.3%
15 85.2%
16 103.0%
17 95.1%
18 112.8%
19 117.9%
20 128.3%
30 174.5%
40 209.3%
50 236.3%
60 254.3%
70 262.9%
80 295.8%
90 297.3%
100 324.5%
200 374.6%
300 403.1%
400 391.1%
500 388.7%
600 440.6%
700 468.7%
800 498.0%
900 507.2%
1000 501.2%
2000 450.2%
3000 463.2%
4000 452.5%
5000 440.6%
6000 439.6%
7000 424.8%
8000 418.1%
9000 417.7%
........
r46204 | andrew.kuchling | 2006-05-25 02:23:03 +0200 (Thu, 25 May 2006) | 1 line
Minor edits; add an item
........
r46205 | fred.drake | 2006-05-25 04:42:25 +0200 (Thu, 25 May 2006) | 3 lines
fix broken links in PDF
(SF patch #1281291, contributed by Rory Yorke)
........
r46208 | walter.doerwald | 2006-05-25 10:53:28 +0200 (Thu, 25 May 2006) | 2 lines
Replace tab inside comment with space.
........
r46209 | thomas.wouters | 2006-05-25 13:25:51 +0200 (Thu, 25 May 2006) | 4 lines
Fix #1488915, Multiple dots in relative import statement raise SyntaxError.
........
r46210 | thomas.wouters | 2006-05-25 13:26:25 +0200 (Thu, 25 May 2006) | 5 lines
Update graminit.c for the fix for #1488915, Multiple dots in relative import
statement raise SyntaxError, and add testcase.
........
r46211 | andrew.kuchling | 2006-05-25 14:27:59 +0200 (Thu, 25 May 2006) | 1 line
Add entry; and fix a typo
........
r46214 | fredrik.lundh | 2006-05-25 17:22:03 +0200 (Thu, 25 May 2006) | 7 lines
needforspeed: speed up upper and lower for 8-bit string objects.
(the unicode versions of these are still 2x faster on windows,
though...)
based on work by Andrew Dalke, with tweaks by yours truly.
........
r46216 | fredrik.lundh | 2006-05-25 17:49:45 +0200 (Thu, 25 May 2006) | 5 lines
needforspeed: make new upper/lower work properly for single-character
strings too... (thanks to georg brandl for spotting the exact problem
faster than anyone else)
........
r46217 | kristjan.jonsson | 2006-05-25 17:53:30 +0200 (Thu, 25 May 2006) | 1 line
Added a new macro, Py_IS_FINITE(X). On windows there is an intrinsic for this and it is more efficient than to use !Py_IS_INFINITE(X) && !Py_IS_NAN(X). No change on other platforms
........
r46219 | fredrik.lundh | 2006-05-25 18:10:12 +0200 (Thu, 25 May 2006) | 4 lines
needforspeed: _toupper/_tolower is a SUSv2 thing; fall back on ISO C
versions if they're not defined.
........
r46220 | andrew.kuchling | 2006-05-25 18:23:15 +0200 (Thu, 25 May 2006) | 1 line
Fix comment typos
........
r46221 | andrew.dalke | 2006-05-25 18:30:52 +0200 (Thu, 25 May 2006) | 2 lines
Added tests for implementation error we came up with in the need for speed sprint.
........
r46222 | andrew.kuchling | 2006-05-25 18:34:54 +0200 (Thu, 25 May 2006) | 1 line
Fix another typo
........
r46223 | kristjan.jonsson | 2006-05-25 18:39:27 +0200 (Thu, 25 May 2006) | 1 line
Fix incorrect documentation for the Py_IS_FINITE(X) macro.
........
r46224 | fredrik.lundh | 2006-05-25 18:46:54 +0200 (Thu, 25 May 2006) | 3 lines
needforspeed: check for overflow in replace (from Andrew Dalke)
........
r46226 | fredrik.lundh | 2006-05-25 19:08:14 +0200 (Thu, 25 May 2006) | 5 lines
needforspeed: new replace implementation by Andrew Dalke. replace is
now about 3x faster on my machine, for the replace tests from string-
bench.
........
r46227 | tim.peters | 2006-05-25 19:34:03 +0200 (Thu, 25 May 2006) | 5 lines
A new table to help string->integer conversion was added yesterday to
both mystrtoul.c and longobject.c. Share the table instead. Also
cut its size by 64 entries (they had been used for an inscrutable
trick originally, but the code no longer tries to use that trick).
........
r46229 | andrew.dalke | 2006-05-25 19:53:00 +0200 (Thu, 25 May 2006) | 11 lines
Fixed problem identified by Georg. The special-case in-place code for replace
made a copy of the string using PyString_FromStringAndSize(s, n) and modify
the copied string in-place. However, 1 (and 0) character strings are shared
from a cache. This cause "A".replace("A", "a") to change the cached version
of "A" -- used by everyone.
Now may the copy with NULL as the string and do the memcpy manually. I've
added regression tests to check if this happens in the future. Perhaps
there should be a PyString_Copy for this case?
........
r46230 | fredrik.lundh | 2006-05-25 19:55:31 +0200 (Thu, 25 May 2006) | 4 lines
needforspeed: use "fastsearch" for count. this results in a 3x speedup
for the related stringbench tests.
........
r46231 | andrew.dalke | 2006-05-25 20:03:25 +0200 (Thu, 25 May 2006) | 4 lines
Code had returned an ssize_t, upcast to long, then converted with PyInt_FromLong.
Now using PyInt_FromSsize_t.
........
r46233 | andrew.kuchling | 2006-05-25 20:11:16 +0200 (Thu, 25 May 2006) | 1 line
Comment typo
........
r46234 | andrew.dalke | 2006-05-25 20:18:39 +0200 (Thu, 25 May 2006) | 4 lines
Added overflow test for adding two (very) large strings where the
new string is over max Py_ssize_t. I have no way to test it on my
box or any box I have access to. At least it doesn't break anything.
........
r46235 | bob.ippolito | 2006-05-25 20:20:23 +0200 (Thu, 25 May 2006) | 1 line
Faster path for PyLong_FromLongLong, using PyLong_FromLong algorithm
........
r46238 | georg.brandl | 2006-05-25 20:44:09 +0200 (Thu, 25 May 2006) | 3 lines
Guard the _active.remove() call to avoid errors when there is no _active list.
........
r46239 | fredrik.lundh | 2006-05-25 20:44:29 +0200 (Thu, 25 May 2006) | 4 lines
needforspeed: use fastsearch also for find/index and contains. the
related tests are now about 10x faster.
........
r46240 | bob.ippolito | 2006-05-25 20:44:50 +0200 (Thu, 25 May 2006) | 1 line
Struct now unpacks to PY_LONG_LONG directly when possible, also include #ifdef'ed out code that will return int instead of long when in bounds (not active since it's an API and doc change)
........
r46241 | jack.diederich | 2006-05-25 20:47:15 +0200 (Thu, 25 May 2006) | 1 line
* eliminate warning by reverting tmp_s type to 'const char*'
........
r46242 | bob.ippolito | 2006-05-25 21:03:19 +0200 (Thu, 25 May 2006) | 1 line
Fix Cygwin compiler issue
........
r46243 | bob.ippolito | 2006-05-25 21:15:27 +0200 (Thu, 25 May 2006) | 1 line
fix a struct regression where long would be returned for short unsigned integers
........
r46244 | georg.brandl | 2006-05-25 21:15:31 +0200 (Thu, 25 May 2006) | 4 lines
Replace PyObject_CallFunction calls with only object args
with PyObject_CallFunctionObjArgs, which is 30% faster.
........
r46245 | fredrik.lundh | 2006-05-25 21:19:05 +0200 (Thu, 25 May 2006) | 3 lines
needforspeed: use insert+reverse instead of append
........
r46246 | bob.ippolito | 2006-05-25 21:33:38 +0200 (Thu, 25 May 2006) | 1 line
Use LONG_MIN and LONG_MAX to check Python integer bounds instead of the incorrect INT_MIN and INT_MAX
........
r46248 | bob.ippolito | 2006-05-25 21:56:56 +0200 (Thu, 25 May 2006) | 1 line
Use faster struct pack/unpack functions for the endian table that matches the host's
........
r46249 | bob.ippolito | 2006-05-25 21:59:56 +0200 (Thu, 25 May 2006) | 1 line
enable darwin/x86 support for libffi and hence ctypes (doesn't yet support --enable-universalsdk)
........
r46252 | georg.brandl | 2006-05-25 22:28:10 +0200 (Thu, 25 May 2006) | 4 lines
Someone seems to just have copy-pasted the docs of
tp_compare to tp_richcompare ;)
........
r46253 | brett.cannon | 2006-05-25 22:44:08 +0200 (Thu, 25 May 2006) | 2 lines
Swap out bare malloc()/free() use for PyMem_MALLOC()/PyMem_FREE() .
........
r46254 | bob.ippolito | 2006-05-25 22:52:38 +0200 (Thu, 25 May 2006) | 1 line
squelch gcc4 darwin/x86 compiler warnings
........
r46255 | bob.ippolito | 2006-05-25 23:09:45 +0200 (Thu, 25 May 2006) | 1 line
fix test_float regression and 64-bit size mismatch issue
........
r46256 | georg.brandl | 2006-05-25 23:11:56 +0200 (Thu, 25 May 2006) | 3 lines
Add a x-ref to newer calling APIs.
........
r46257 | ronald.oussoren | 2006-05-25 23:30:54 +0200 (Thu, 25 May 2006) | 2 lines
Fix minor typo in prep_cif.c
........
r46259 | brett.cannon | 2006-05-25 23:33:11 +0200 (Thu, 25 May 2006) | 4 lines
Change test_values so that it compares the lowercasing of group names since getgrall() can return all lowercase names while getgrgid() returns proper casing.
Discovered on Ubuntu 5.04 (custom).
........
r46261 | tim.peters | 2006-05-25 23:50:17 +0200 (Thu, 25 May 2006) | 7 lines
Some Win64 pre-release in 2000 didn't support
QueryPerformanceCounter(), but we believe Win64 does
support it now. So use in time.clock().
It would be peachy if someone with a Win64 box tried
this ;-)
........
r46262 | tim.peters | 2006-05-25 23:52:19 +0200 (Thu, 25 May 2006) | 2 lines
Whitespace normalization.
........
r46263 | bob.ippolito | 2006-05-25 23:58:05 +0200 (Thu, 25 May 2006) | 1 line
Add missing files from x86 darwin ctypes patch
........
r46264 | brett.cannon | 2006-05-26 00:00:14 +0200 (Fri, 26 May 2006) | 2 lines
Move over to use of METH_O and METH_NOARGS.
........
r46265 | tim.peters | 2006-05-26 00:25:25 +0200 (Fri, 26 May 2006) | 3 lines
Repair idiot typo, and complete the job of trying to
use the Windows time.clock() implementation on Win64.
........
r46266 | tim.peters | 2006-05-26 00:28:46 +0200 (Fri, 26 May 2006) | 9 lines
Patch #1494387: SVN longobject.c compiler warnings
The SIGCHECK macro defined here has always been bizarre, but
it apparently causes compiler warnings on "Sun Studio 11".
I believe the warnings are bogus, but it doesn't hurt to make
the macro definition saner.
Bugfix candidate (but I'm not going to bother).
........
r46268 | fredrik.lundh | 2006-05-26 01:27:53 +0200 (Fri, 26 May 2006) | 8 lines
needforspeed: partition for 8-bit strings. for some simple tests,
this is on par with a corresponding find, and nearly twice as fast
as split(sep, 1)
full tests, a unicode version, and documentation will follow to-
morrow.
........
r46271 | andrew.kuchling | 2006-05-26 03:46:22 +0200 (Fri, 26 May 2006) | 1 line
Add Soc student
........
r46272 | ronald.oussoren | 2006-05-26 10:41:25 +0200 (Fri, 26 May 2006) | 3 lines
Without this patch OSX users couldn't add new help sources because the code
tried to update one item in a tuple.
........
r46273 | fredrik.lundh | 2006-05-26 10:54:28 +0200 (Fri, 26 May 2006) | 5 lines
needforspeed: partition implementation, part two.
feel free to improve the documentation and the docstrings.
........
r46274 | georg.brandl | 2006-05-26 11:05:54 +0200 (Fri, 26 May 2006) | 3 lines
Clarify docs for str.partition().
........
r46278 | fredrik.lundh | 2006-05-26 11:46:59 +0200 (Fri, 26 May 2006) | 5 lines
needforspeed: use METH_O for argument handling, which made partition some
~15% faster for the current tests (which is noticable faster than a corre-
sponding find call). thanks to neal-who-never-sleeps for the tip.
........
r46280 | fredrik.lundh | 2006-05-26 12:27:17 +0200 (Fri, 26 May 2006) | 5 lines
needforspeed: use Py_ssize_t for the fastsearch counter and skip
length (thanks, neal!). and yes, I've verified that this doesn't
slow things down ;-)
........
r46285 | andrew.dalke | 2006-05-26 13:11:38 +0200 (Fri, 26 May 2006) | 2 lines
Added a few more test cases for whitespace split. These strings have leading whitespace.
........
r46286 | jack.diederich | 2006-05-26 13:15:17 +0200 (Fri, 26 May 2006) | 1 line
use Py_ssize_t in places that may need it
........
r46287 | andrew.dalke | 2006-05-26 13:15:22 +0200 (Fri, 26 May 2006) | 2 lines
Added split whitespace checks for characters other than space.
........
r46288 | ronald.oussoren | 2006-05-26 13:17:55 +0200 (Fri, 26 May 2006) | 2 lines
Fix buglet in postinstall script, it would generate an invalid .cshrc file.
........
r46290 | georg.brandl | 2006-05-26 13:26:11 +0200 (Fri, 26 May 2006) | 3 lines
Add "partition" to UserString.
........
r46291 | fredrik.lundh | 2006-05-26 13:29:39 +0200 (Fri, 26 May 2006) | 5 lines
needforspeed: added Py_LOCAL macro, based on the LOCAL macro used
for SRE and others. applied Py_LOCAL to relevant portion of ceval,
which gives a 1-2% speedup on my machine. ymmv.
........
r46292 | jack.diederich | 2006-05-26 13:37:20 +0200 (Fri, 26 May 2006) | 1 line
when generating python code prefer to generate valid python code
........
r46293 | fredrik.lundh | 2006-05-26 13:38:15 +0200 (Fri, 26 May 2006) | 3 lines
use Py_LOCAL also for string and unicode objects
........
r46294 | ronald.oussoren | 2006-05-26 13:38:39 +0200 (Fri, 26 May 2006) | 12 lines
- Search the sqlite specific search directories
after the normal include directories when looking
for the version of sqlite to use.
- On OSX:
* Extract additional include and link directories
from the CFLAGS and LDFLAGS, if the user has
bothered to specify them we might as wel use them.
* Add '-Wl,-search_paths_first' to the extra_link_args
for readline and sqlite. This makes it possible to
use a static library to override the system provided
dynamic library.
........
r46295 | ronald.oussoren | 2006-05-26 13:43:26 +0200 (Fri, 26 May 2006) | 6 lines
Integrate installing a framework in the 'make install'
target. Until now users had to use 'make frameworkinstall'
to install python when it is configured with '--enable-framework'.
This tends to confuse users that don't hunt for readme files
hidden in platform specific directories :-)
........
r46297 | fredrik.lundh | 2006-05-26 13:54:04 +0200 (Fri, 26 May 2006) | 4 lines
needforspeed: added PY_LOCAL_AGGRESSIVE macro to enable "aggressive"
LOCAL inlining; also added some missing whitespace
........
r46298 | andrew.kuchling | 2006-05-26 14:01:44 +0200 (Fri, 26 May 2006) | 1 line
Typo fixes
........
r46299 | fredrik.lundh | 2006-05-26 14:01:49 +0200 (Fri, 26 May 2006) | 4 lines
Py_LOCAL shouldn't be used for data; it works for some .NET 2003 compilers,
but Trent's copy thinks that it's an anachronism...
........
r46300 | martin.blais | 2006-05-26 14:03:27 +0200 (Fri, 26 May 2006) | 12 lines
Support for buffer protocol for socket and struct.
* Added socket.recv_buf() and socket.recvfrom_buf() methods, that use the buffer
protocol (send and sendto already did).
* Added struct.pack_to(), that is the corresponding buffer compatible method to
unpack_from().
* Fixed minor typos in arraymodule.
........
r46302 | ronald.oussoren | 2006-05-26 14:23:20 +0200 (Fri, 26 May 2006) | 6 lines
- Remove previous version of the binary distribution script for OSX
- Some small bugfixes for the IDLE.app wrapper
- Tweaks to build-installer to ensure that python gets build in the right way,
including sqlite3.
- Updated readme files
........
r46305 | tim.peters | 2006-05-26 14:26:21 +0200 (Fri, 26 May 2006) | 2 lines
Whitespace normalization.
........
r46307 | andrew.dalke | 2006-05-26 14:28:15 +0200 (Fri, 26 May 2006) | 7 lines
I like tests.
The new split functions use a preallocated list. Added tests which exceed
the preallocation size, to exercise list appends/resizes.
Also added more edge case tests.
........
r46308 | andrew.dalke | 2006-05-26 14:31:00 +0200 (Fri, 26 May 2006) | 2 lines
Test cases for off-by-one errors in string split with multicharacter pattern.
........
r46309 | tim.peters | 2006-05-26 14:31:20 +0200 (Fri, 26 May 2006) | 2 lines
Whitespace normalization.
........
r46313 | andrew.kuchling | 2006-05-26 14:39:48 +0200 (Fri, 26 May 2006) | 1 line
Add str.partition()
........
r46314 | bob.ippolito | 2006-05-26 14:52:53 +0200 (Fri, 26 May 2006) | 1 line
quick hack to fix busted binhex test
........
r46316 | andrew.dalke | 2006-05-26 15:05:55 +0200 (Fri, 26 May 2006) | 2 lines
Added more rstrip tests, including for prealloc'ed arrays
........
r46320 | bob.ippolito | 2006-05-26 15:15:44 +0200 (Fri, 26 May 2006) | 1 line
fix #1229380 No struct.pack exception for some out of range integers
........
r46325 | tim.peters | 2006-05-26 15:39:17 +0200 (Fri, 26 May 2006) | 2 lines
Use open() to open files (was using file()).
........
r46327 | andrew.dalke | 2006-05-26 16:00:45 +0200 (Fri, 26 May 2006) | 37 lines
Changes to string.split/rsplit on whitespace to preallocate space in the
results list.
Originally it allocated 0 items and used the list growth during append. Now
it preallocates 12 items so the first few appends don't need list reallocs.
("Here are some words ."*2).split(None, 1) is 7% faster
("Here are some words ."*2).split() is is 15% faster
(Your milage may vary, see dealership for details.)
File parsing like this
for line in f:
count += len(line.split())
is also about 15% faster. There is a slowdown of about 3% for large
strings because of the additional overhead of checking if the append is
to a preallocated region of the list or not. This will be the rare case.
It could be improved with special case code but we decided it was not
useful enough.
There is a cost of 12*sizeof(PyObject *) bytes per list. For the normal
case of file parsing this is not a problem because of the lists have
a short lifetime. We have not come up with cases where this is a problem
in real life.
I chose 12 because human text averages about 11 words per line in books,
one of my data sets averages 6.2 words with a final peak at 11 words per
line, and I work with a tab delimited data set with 8 tabs per line (or
9 words per line). 12 encompasses all of these.
Also changed the last rstrip code to append then reverse, rather than
doing insert(0). The strip() and rstrip() times are now comparable.
........
r46328 | tim.peters | 2006-05-26 16:02:05 +0200 (Fri, 26 May 2006) | 5 lines
Explicitly close files. I'm trying to stop the frequent spurious test_tarfile
failures on Windows buildbots, but it's hard to know how since the regrtest
failure output is useless here, and it never fails when a buildbot slave runs
test_tarfile the second time in verbose mode.
........
r46329 | andrew.kuchling | 2006-05-26 16:03:41 +0200 (Fri, 26 May 2006) | 1 line
Add buffer support for struct, socket
........
r46330 | andrew.kuchling | 2006-05-26 16:04:19 +0200 (Fri, 26 May 2006) | 1 line
Typo fix
........
r46331 | bob.ippolito | 2006-05-26 16:07:23 +0200 (Fri, 26 May 2006) | 1 line
Fix distutils so that libffi will cross-compile between darwin/x86 and darwin/ppc
........
r46333 | bob.ippolito | 2006-05-26 16:23:21 +0200 (Fri, 26 May 2006) | 1 line
Fix _struct typo that broke some 64-bit platforms
........
r46335 | bob.ippolito | 2006-05-26 16:29:35 +0200 (Fri, 26 May 2006) | 1 line
Enable PY_USE_INT_WHEN_POSSIBLE in struct
........
r46343 | andrew.dalke | 2006-05-26 17:21:01 +0200 (Fri, 26 May 2006) | 2 lines
Eeked out another 3% or so performance in split whitespace by cleaning up the algorithm.
........
r46352 | andrew.dalke | 2006-05-26 18:22:52 +0200 (Fri, 26 May 2006) | 3 lines
Test for more edge strip cases; leading and trailing separator gets removed
even with strip(..., 0)
........
r46354 | bob.ippolito | 2006-05-26 18:23:28 +0200 (Fri, 26 May 2006) | 1 line
fix signed/unsigned mismatch in struct
........
r46355 | steve.holden | 2006-05-26 18:27:59 +0200 (Fri, 26 May 2006) | 5 lines
Add -t option to allow easy test selection.
Action verbose option correctly.
Tweak operation counts. Add empty and new instances tests.
Enable comparisons across different warp factors. Change version.
........
r46356 | fredrik.lundh | 2006-05-26 18:32:42 +0200 (Fri, 26 May 2006) | 3 lines
needforspeed: use Py_LOCAL on a few more locals in stringobject.c
........
r46357 | thomas.heller | 2006-05-26 18:42:44 +0200 (Fri, 26 May 2006) | 4 lines
For now, I gave up with automatic conversion of reST to Python-latex,
so I'm writing this in latex now.
Skeleton for the ctypes reference.
........
r46358 | tim.peters | 2006-05-26 18:49:28 +0200 (Fri, 26 May 2006) | 3 lines
Repair Windows compiler warnings about mixing
signed and unsigned integral types in comparisons.
........
r46359 | tim.peters | 2006-05-26 18:52:04 +0200 (Fri, 26 May 2006) | 2 lines
Whitespace normalization.
........
r46360 | tim.peters | 2006-05-26 18:53:04 +0200 (Fri, 26 May 2006) | 2 lines
Add missing svn:eol-style property to text files.
........
r46362 | fredrik.lundh | 2006-05-26 19:04:58 +0200 (Fri, 26 May 2006) | 3 lines
needforspeed: stringlib refactoring (in progress)
........
r46363 | thomas.heller | 2006-05-26 19:18:33 +0200 (Fri, 26 May 2006) | 1 line
Write some docs.
........
r46364 | fredrik.lundh | 2006-05-26 19:22:38 +0200 (Fri, 26 May 2006) | 3 lines
needforspeed: stringlib refactoring (in progress)
........
r46366 | fredrik.lundh | 2006-05-26 19:26:39 +0200 (Fri, 26 May 2006) | 3 lines
needforspeed: cleanup
........
r46367 | fredrik.lundh | 2006-05-26 19:31:41 +0200 (Fri, 26 May 2006) | 4 lines
needforspeed: remove remaining USE_FAST macros; if fastsearch was
broken, someone would have noticed by now ;-)
........
r46368 | steve.holden | 2006-05-26 19:41:32 +0200 (Fri, 26 May 2006) | 5 lines
Use minimum calibration time rather than avergae to avoid
the illusion of negative run times. Halt with an error if
run times go below 10 ms, indicating that results will be
unreliable.
........
r46370 | thomas.heller | 2006-05-26 19:47:40 +0200 (Fri, 26 May 2006) | 2 lines
Reordered, and wrote more docs.
........
r46372 | georg.brandl | 2006-05-26 20:03:31 +0200 (Fri, 26 May 2006) | 9 lines
Need for speed: Patch #921466 : sys.path_importer_cache is now used to cache valid and
invalid file paths for the built-in import machinery which leads to
fewer open calls on startup.
Also fix issue with PEP 302 style import hooks which lead to more open()
calls than necessary.
........
r46373 | fredrik.lundh | 2006-05-26 20:05:34 +0200 (Fri, 26 May 2006) | 3 lines
removed unnecessary include
........
r46377 | fredrik.lundh | 2006-05-26 20:15:38 +0200 (Fri, 26 May 2006) | 3 lines
needforspeed: added rpartition implementation
........
r46380 | fredrik.lundh | 2006-05-26 20:24:15 +0200 (Fri, 26 May 2006) | 5 lines
needspeed: rpartition documentation, tests, and a bug fixes.
feel free to add more tests and improve the documentation.
........
r46381 | steve.holden | 2006-05-26 20:26:21 +0200 (Fri, 26 May 2006) | 4 lines
Revert tests to MAL's original round sizes to retiain comparability
from long ago and far away. Stop calling this pybench 1.4 because it
isn't. Remove the empty test, which was a bad idea.
........
r46387 | andrew.kuchling | 2006-05-26 20:41:18 +0200 (Fri, 26 May 2006) | 1 line
Add rpartition() and path caching
........
r46388 | andrew.dalke | 2006-05-26 21:02:09 +0200 (Fri, 26 May 2006) | 10 lines
substring split now uses /F's fast string matching algorithm.
(If compiled without FAST search support, changed the pre-memcmp test
to check the last character as well as the first. This gave a 25%
speedup for my test case.)
Rewrote the split algorithms so they stop when maxsplit gets to 0.
Previously they did a string match first then checked if the maxsplit
was reached. The new way prevents a needless string search.
........
r46391 | brett.cannon | 2006-05-26 21:04:47 +0200 (Fri, 26 May 2006) | 2 lines
Change C spacing to 4 spaces by default to match PEP 7 for new C files.
........
r46392 | georg.brandl | 2006-05-26 21:04:47 +0200 (Fri, 26 May 2006) | 3 lines
Exception isn't the root of all exception classes anymore.
........
r46397 | fredrik.lundh | 2006-05-26 21:23:21 +0200 (Fri, 26 May 2006) | 3 lines
added rpartition method to UserString class
........
r46398 | fredrik.lundh | 2006-05-26 21:24:53 +0200 (Fri, 26 May 2006) | 4 lines
needforspeed: stringlib refactoring, continued. added count and
find helpers; updated unicodeobject to use stringlib_count
........
r46400 | fredrik.lundh | 2006-05-26 21:29:05 +0200 (Fri, 26 May 2006) | 4 lines
needforspeed: stringlib refactoring: use stringlib/find for unicode
find
........
r46403 | fredrik.lundh | 2006-05-26 21:33:03 +0200 (Fri, 26 May 2006) | 3 lines
needforspeed: use a macro to fix slice indexes
........
r46404 | thomas.heller | 2006-05-26 21:43:45 +0200 (Fri, 26 May 2006) | 1 line
Write more docs.
........
r46406 | fredrik.lundh | 2006-05-26 21:48:07 +0200 (Fri, 26 May 2006) | 3 lines
needforspeed: stringlib refactoring: use stringlib/find for string find
........
r46407 | andrew.kuchling | 2006-05-26 21:51:10 +0200 (Fri, 26 May 2006) | 1 line
Comment typo
........
r46409 | georg.brandl | 2006-05-26 22:04:44 +0200 (Fri, 26 May 2006) | 3 lines
Replace Py_BuildValue("OO") by PyTuple_Pack.
........
r46411 | georg.brandl | 2006-05-26 22:14:47 +0200 (Fri, 26 May 2006) | 2 lines
Patch #1492218: document None being a constant.
........
r46415 | georg.brandl | 2006-05-26 22:22:50 +0200 (Fri, 26 May 2006) | 3 lines
Simplify calling.
........
r46416 | andrew.dalke | 2006-05-26 22:25:22 +0200 (Fri, 26 May 2006) | 4 lines
Added limits to the replace code so it does not count all of the matching
patterns in a string, only the number needed by the max limit.
........
r46417 | bob.ippolito | 2006-05-26 22:25:23 +0200 (Fri, 26 May 2006) | 1 line
enable all of the struct tests, use ssize_t, fix some whitespace
........
r46418 | tim.peters | 2006-05-26 22:56:56 +0200 (Fri, 26 May 2006) | 2 lines
Record Iceland sprint attendees.
........
r46421 | tim.peters | 2006-05-26 23:51:13 +0200 (Fri, 26 May 2006) | 2 lines
Whitespace normalization.
........
r46422 | steve.holden | 2006-05-27 00:17:54 +0200 (Sat, 27 May 2006) | 2 lines
Add Richard Tew to developers
........
r46423 | steve.holden | 2006-05-27 00:33:20 +0200 (Sat, 27 May 2006) | 2 lines
Update help text and documentaition.
........
r46424 | steve.holden | 2006-05-27 00:39:27 +0200 (Sat, 27 May 2006) | 2 lines
Blasted typos ...
........
r46425 | andrew.dalke | 2006-05-27 00:49:03 +0200 (Sat, 27 May 2006) | 2 lines
Added description of why splitlines doesn't use the prealloc strategy
........
r46426 | tim.peters | 2006-05-27 01:14:37 +0200 (Sat, 27 May 2006) | 19 lines
Patch 1145039.
set_exc_info(), reset_exc_info(): By exploiting the
likely (who knows?) invariant that when an exception's
`type` is NULL, its `value` and `traceback` are also NULL,
save some cycles in heavily-executed code.
This is a "a kronar saved is a kronar earned" patch: the
speedup isn't reliably measurable, but it obviously does
reduce the operation count in the normal (no exception
raised) path through PyEval_EvalFrameEx().
The tim-exc_sanity branch tries to push this harder, but
is still blowing up (at least in part due to pre-existing
subtle bugs that appear to have no other visible
consequences!).
Not a bugfix candidate.
........
r46429 | steve.holden | 2006-05-27 02:51:52 +0200 (Sat, 27 May 2006) | 2 lines
Reinstate new-style object tests.
........
r46430 | neal.norwitz | 2006-05-27 07:18:57 +0200 (Sat, 27 May 2006) | 1 line
Fix compiler warning (and whitespace) on Mac OS 10.4. (A lot of this code looked duplicated, I wonder if a utility function could help reduce the duplication here.)
........
r46431 | neal.norwitz | 2006-05-27 07:21:30 +0200 (Sat, 27 May 2006) | 4 lines
Fix Coverity warnings.
- Check the correct variable (str_obj, not str) for NULL
- sep_len was already verified it wasn't 0
........
r46432 | martin.v.loewis | 2006-05-27 10:36:52 +0200 (Sat, 27 May 2006) | 2 lines
Patch 1494554: Update numeric properties to Unicode 4.1.
........
r46433 | martin.v.loewis | 2006-05-27 10:54:29 +0200 (Sat, 27 May 2006) | 2 lines
Explain why 'consumed' is initialized.
........
r46436 | fredrik.lundh | 2006-05-27 12:05:10 +0200 (Sat, 27 May 2006) | 3 lines
needforspeed: more stringlib refactoring
........
r46438 | fredrik.lundh | 2006-05-27 12:39:48 +0200 (Sat, 27 May 2006) | 5 lines
needforspeed: backed out the Py_LOCAL-isation of ceval; the massive in-
lining killed performance on certain Intel boxes, and the "aggressive"
macro itself gives most of the benefits on others.
........
r46439 | andrew.dalke | 2006-05-27 13:04:36 +0200 (Sat, 27 May 2006) | 2 lines
fixed typo
........
r46440 | martin.v.loewis | 2006-05-27 13:07:49 +0200 (Sat, 27 May 2006) | 2 lines
Revert bogus change committed in 46432 to this file.
........
r46444 | andrew.kuchling | 2006-05-27 13:26:33 +0200 (Sat, 27 May 2006) | 1 line
Add Py_LOCAL macros
........
r46450 | bob.ippolito | 2006-05-27 13:47:12 +0200 (Sat, 27 May 2006) | 1 line
Remove the range checking and int usage #defines from _struct and strip out the now-dead code
........
r46454 | bob.ippolito | 2006-05-27 14:11:36 +0200 (Sat, 27 May 2006) | 1 line
Fix up struct docstrings, add struct.pack_to function for symmetry
........
r46456 | richard.jones | 2006-05-27 14:29:24 +0200 (Sat, 27 May 2006) | 2 lines
Conversion of exceptions over from faked-up classes to new-style C types.
........
r46457 | georg.brandl | 2006-05-27 14:30:25 +0200 (Sat, 27 May 2006) | 3 lines
Add news item for new-style exception class branch merge.
........
r46458 | tim.peters | 2006-05-27 14:36:53 +0200 (Sat, 27 May 2006) | 3 lines
More random thrashing trying to understand spurious
Windows failures. Who's keeping a bz2 file open?
........
r46460 | andrew.kuchling | 2006-05-27 15:44:37 +0200 (Sat, 27 May 2006) | 1 line
Mention new-style exceptions
........
r46461 | richard.jones | 2006-05-27 15:50:42 +0200 (Sat, 27 May 2006) | 1 line
credit where credit is due
........
r46462 | georg.brandl | 2006-05-27 16:02:03 +0200 (Sat, 27 May 2006) | 3 lines
Always close BZ2Proxy object. Remove unnecessary struct usage.
........
r46463 | tim.peters | 2006-05-27 16:13:13 +0200 (Sat, 27 May 2006) | 2 lines
The cheery optimism of old age.
........
r46464 | andrew.dalke | 2006-05-27 16:16:40 +0200 (Sat, 27 May 2006) | 2 lines
cleanup - removed trailing whitespace
........
r46465 | georg.brandl | 2006-05-27 16:41:55 +0200 (Sat, 27 May 2006) | 3 lines
Remove spurious semicolons after macro invocations.
........
r46468 | fredrik.lundh | 2006-05-27 16:58:20 +0200 (Sat, 27 May 2006) | 4 lines
needforspeed: replace improvements, changed to Py_LOCAL_INLINE
where appropriate
........
r46469 | fredrik.lundh | 2006-05-27 17:20:22 +0200 (Sat, 27 May 2006) | 4 lines
needforspeed: stringlib refactoring: changed find_obj to find_slice,
to enable use from stringobject
........
r46470 | fredrik.lundh | 2006-05-27 17:26:19 +0200 (Sat, 27 May 2006) | 3 lines
needforspeed: stringlib refactoring: use find_slice for stringobject
........
r46472 | kristjan.jonsson | 2006-05-27 17:41:31 +0200 (Sat, 27 May 2006) | 1 line
Add a PCBuild8 build directory for building with Visual Studio .NET 2005. Contains a special project to perform profile guided optimizations on the pythoncore.dll, by instrumenting and running pybench.py
........
r46473 | jack.diederich | 2006-05-27 17:44:34 +0200 (Sat, 27 May 2006) | 3 lines
needforspeed: use PyObject_MALLOC instead of system malloc for small
allocations. Use PyMem_MALLOC for larger (1k+) chunks. 1%-2% speedup.
........
r46474 | bob.ippolito | 2006-05-27 17:53:49 +0200 (Sat, 27 May 2006) | 1 line
fix struct regression on 64-bit platforms
........
r46475 | richard.jones | 2006-05-27 18:07:28 +0200 (Sat, 27 May 2006) | 1 line
doc string additions and tweaks
........
r46477 | richard.jones | 2006-05-27 18:15:11 +0200 (Sat, 27 May 2006) | 1 line
move semicolons
........
r46478 | george.yoshida | 2006-05-27 18:32:44 +0200 (Sat, 27 May 2006) | 2 lines
minor markup nits
........
r46488 | george.yoshida | 2006-05-27 18:51:43 +0200 (Sat, 27 May 2006) | 3 lines
End of Ch.3 is now about "with statement".
Avoid obsolescence by directly referring to the section.
........
r46489 | george.yoshida | 2006-05-27 19:09:17 +0200 (Sat, 27 May 2006) | 2 lines
fix typo
........
2006-05-27 16:21:47 -03:00
|
|
|
/* If timestamp is less than one microsecond smaller than a
|
|
|
|
* full second, round up. Otherwise, ValueErrors are raised
|
|
|
|
* for some floats. */
|
|
|
|
if (us == 1000000) {
|
|
|
|
timet += 1;
|
|
|
|
us = 0;
|
|
|
|
}
|
2003-01-10 23:39:11 -04:00
|
|
|
return datetime_from_timet_and_us(cls, f, timet, us, tzinfo);
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Internal helper.
|
|
|
|
* Build most accurate possible datetime for current time. Pass localtime or
|
|
|
|
* gmtime for f as appropriate.
|
|
|
|
*/
|
|
|
|
static PyObject *
|
|
|
|
datetime_best_possible(PyObject *cls, TM_FUNC f, PyObject *tzinfo)
|
|
|
|
{
|
|
|
|
#ifdef HAVE_GETTIMEOFDAY
|
|
|
|
struct timeval t;
|
|
|
|
|
|
|
|
#ifdef GETTIMEOFDAY_NO_TZ
|
|
|
|
gettimeofday(&t);
|
|
|
|
#else
|
|
|
|
gettimeofday(&t, (struct timezone *)NULL);
|
|
|
|
#endif
|
|
|
|
return datetime_from_timet_and_us(cls, f, t.tv_sec, (int)t.tv_usec,
|
|
|
|
tzinfo);
|
|
|
|
|
|
|
|
#else /* ! HAVE_GETTIMEOFDAY */
|
|
|
|
/* No flavor of gettimeofday exists on this platform. Python's
|
|
|
|
* time.time() does a lot of other platform tricks to get the
|
|
|
|
* best time it can on the platform, and we're not going to do
|
|
|
|
* better than that (if we could, the better code would belong
|
|
|
|
* in time.time()!) We're limited by the precision of a double,
|
|
|
|
* though.
|
|
|
|
*/
|
|
|
|
PyObject *time;
|
|
|
|
double dtime;
|
|
|
|
|
|
|
|
time = time_time();
|
|
|
|
if (time == NULL)
|
|
|
|
return NULL;
|
|
|
|
dtime = PyFloat_AsDouble(time);
|
|
|
|
Py_DECREF(time);
|
|
|
|
if (dtime == -1.0 && PyErr_Occurred())
|
|
|
|
return NULL;
|
|
|
|
return datetime_from_timestamp(cls, f, dtime, tzinfo);
|
|
|
|
#endif /* ! HAVE_GETTIMEOFDAY */
|
|
|
|
}
|
|
|
|
|
2002-12-16 16:18:38 -04:00
|
|
|
/* Return best possible local time -- this isn't constrained by the
|
|
|
|
* precision of a timestamp.
|
|
|
|
*/
|
|
|
|
static PyObject *
|
2003-01-10 23:39:11 -04:00
|
|
|
datetime_now(PyObject *cls, PyObject *args, PyObject *kw)
|
2002-12-16 16:18:38 -04:00
|
|
|
{
|
2003-01-23 15:58:02 -04:00
|
|
|
PyObject *self;
|
2002-12-16 16:18:38 -04:00
|
|
|
PyObject *tzinfo = Py_None;
|
2006-02-27 13:20:04 -04:00
|
|
|
static char *keywords[] = {"tz", NULL};
|
2002-12-16 16:18:38 -04:00
|
|
|
|
2003-01-23 15:58:02 -04:00
|
|
|
if (! PyArg_ParseTupleAndKeywords(args, kw, "|O:now", keywords,
|
|
|
|
&tzinfo))
|
|
|
|
return NULL;
|
|
|
|
if (check_tzinfo_subclass(tzinfo) < 0)
|
|
|
|
return NULL;
|
|
|
|
|
|
|
|
self = datetime_best_possible(cls,
|
|
|
|
tzinfo == Py_None ? localtime : gmtime,
|
|
|
|
tzinfo);
|
|
|
|
if (self != NULL && tzinfo != Py_None) {
|
|
|
|
/* Convert UTC to tzinfo's zone. */
|
|
|
|
PyObject *temp = self;
|
2003-01-23 16:53:10 -04:00
|
|
|
self = PyObject_CallMethod(tzinfo, "fromutc", "O", self);
|
2003-01-23 15:58:02 -04:00
|
|
|
Py_DECREF(temp);
|
2002-12-16 16:18:38 -04:00
|
|
|
}
|
|
|
|
return self;
|
|
|
|
}
|
|
|
|
|
2003-01-10 23:39:11 -04:00
|
|
|
/* Return best possible UTC time -- this isn't constrained by the
|
|
|
|
* precision of a timestamp.
|
|
|
|
*/
|
|
|
|
static PyObject *
|
|
|
|
datetime_utcnow(PyObject *cls, PyObject *dummy)
|
|
|
|
{
|
|
|
|
return datetime_best_possible(cls, gmtime, Py_None);
|
|
|
|
}
|
|
|
|
|
2002-12-16 16:18:38 -04:00
|
|
|
/* Return new local datetime from timestamp (Python timestamp -- a double). */
|
|
|
|
static PyObject *
|
2003-01-10 23:39:11 -04:00
|
|
|
datetime_fromtimestamp(PyObject *cls, PyObject *args, PyObject *kw)
|
2002-12-16 16:18:38 -04:00
|
|
|
{
|
2003-01-23 16:53:10 -04:00
|
|
|
PyObject *self;
|
2002-12-16 16:18:38 -04:00
|
|
|
double timestamp;
|
|
|
|
PyObject *tzinfo = Py_None;
|
2006-02-27 13:20:04 -04:00
|
|
|
static char *keywords[] = {"timestamp", "tz", NULL};
|
2002-12-16 16:18:38 -04:00
|
|
|
|
2003-01-23 16:53:10 -04:00
|
|
|
if (! PyArg_ParseTupleAndKeywords(args, kw, "d|O:fromtimestamp",
|
|
|
|
keywords, ×tamp, &tzinfo))
|
|
|
|
return NULL;
|
|
|
|
if (check_tzinfo_subclass(tzinfo) < 0)
|
|
|
|
return NULL;
|
|
|
|
|
|
|
|
self = datetime_from_timestamp(cls,
|
|
|
|
tzinfo == Py_None ? localtime : gmtime,
|
|
|
|
timestamp,
|
|
|
|
tzinfo);
|
|
|
|
if (self != NULL && tzinfo != Py_None) {
|
|
|
|
/* Convert UTC to tzinfo's zone. */
|
|
|
|
PyObject *temp = self;
|
|
|
|
self = PyObject_CallMethod(tzinfo, "fromutc", "O", self);
|
|
|
|
Py_DECREF(temp);
|
2002-12-16 16:18:38 -04:00
|
|
|
}
|
|
|
|
return self;
|
|
|
|
}
|
|
|
|
|
2003-01-10 23:39:11 -04:00
|
|
|
/* Return new UTC datetime from timestamp (Python timestamp -- a double). */
|
|
|
|
static PyObject *
|
|
|
|
datetime_utcfromtimestamp(PyObject *cls, PyObject *args)
|
|
|
|
{
|
|
|
|
double timestamp;
|
|
|
|
PyObject *result = NULL;
|
|
|
|
|
|
|
|
if (PyArg_ParseTuple(args, "d:utcfromtimestamp", ×tamp))
|
|
|
|
result = datetime_from_timestamp(cls, gmtime, timestamp,
|
|
|
|
Py_None);
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
2005-01-13 00:12:31 -04:00
|
|
|
/* Return new datetime from time.strptime(). */
|
|
|
|
static PyObject *
|
|
|
|
datetime_strptime(PyObject *cls, PyObject *args)
|
|
|
|
{
|
Merged revisions 61239-61249,61252-61257,61260-61264,61269-61275,61278-61279,61285-61286,61288-61290,61298,61303-61305,61312-61314,61317,61329,61332,61344,61350-61351,61363-61376,61378-61379,61382-61383,61387-61388,61392,61395-61396,61402-61403 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r61239 | andrew.kuchling | 2008-03-05 01:44:41 +0100 (Wed, 05 Mar 2008) | 1 line
Add more items; add fragmentary notes
........
r61240 | amaury.forgeotdarc | 2008-03-05 02:50:33 +0100 (Wed, 05 Mar 2008) | 13 lines
Issue#2238: some syntax errors from *args or **kwargs expressions
would give bogus error messages, because of untested exceptions::
>>> f(**g(1=2))
XXX undetected error
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is not iterable
instead of the expected SyntaxError: keyword can't be an expression
Will backport.
........
r61241 | neal.norwitz | 2008-03-05 06:10:48 +0100 (Wed, 05 Mar 2008) | 3 lines
Remove the files/dirs after closing the DB so the tests work on Windows.
Patch from Trent Nelson. Also simplified removing a file by using test_support.
........
r61242 | neal.norwitz | 2008-03-05 06:14:18 +0100 (Wed, 05 Mar 2008) | 3 lines
Get this test to pass even when there is no sound card in the system.
Patch from Trent Nelson. (I can't test this.)
........
r61243 | neal.norwitz | 2008-03-05 06:20:44 +0100 (Wed, 05 Mar 2008) | 3 lines
Catch OSError when trying to remove a file in case removal fails. This
should prevent a failure in tearDown masking any real test failure.
........
r61244 | neal.norwitz | 2008-03-05 06:38:06 +0100 (Wed, 05 Mar 2008) | 5 lines
Make the timeout longer to give slow machines a chance to pass the test
before timing out. This doesn't change the duration of the test under
normal circumstances. This is targetted at fixing the spurious failures
on the FreeBSD buildbot primarily.
........
r61245 | neal.norwitz | 2008-03-05 06:49:03 +0100 (Wed, 05 Mar 2008) | 1 line
Tabs -> spaces
........
r61246 | neal.norwitz | 2008-03-05 06:50:20 +0100 (Wed, 05 Mar 2008) | 1 line
Use -u urlfetch to run more tests
........
r61247 | neal.norwitz | 2008-03-05 06:51:20 +0100 (Wed, 05 Mar 2008) | 1 line
test_smtplib sometimes reports leaks too, suppress it
........
r61248 | jeffrey.yasskin | 2008-03-05 07:19:56 +0100 (Wed, 05 Mar 2008) | 5 lines
Fix test_socketserver on Windows after r61099 added several signal.alarm()
calls (which don't exist on non-Unix platforms).
Thanks to Trent Nelson for the report and patch.
........
r61249 | georg.brandl | 2008-03-05 08:10:35 +0100 (Wed, 05 Mar 2008) | 2 lines
Fix some rst.
........
r61252 | thomas.heller | 2008-03-05 15:53:39 +0100 (Wed, 05 Mar 2008) | 2 lines
News entry for yesterdays commit.
........
r61253 | thomas.heller | 2008-03-05 16:34:29 +0100 (Wed, 05 Mar 2008) | 3 lines
Issue 1872: Changed the struct module typecode from 't' to '?', for
compatibility with PEP3118.
........
r61254 | skip.montanaro | 2008-03-05 17:41:09 +0100 (Wed, 05 Mar 2008) | 4 lines
Elaborate on the role of the altinstall target when installing multiple
versions.
........
r61255 | georg.brandl | 2008-03-05 20:31:44 +0100 (Wed, 05 Mar 2008) | 2 lines
#2239: PYTHONPATH delimiter is os.pathsep.
........
r61256 | raymond.hettinger | 2008-03-05 21:59:58 +0100 (Wed, 05 Mar 2008) | 1 line
C implementation of itertools.permutations().
........
r61257 | raymond.hettinger | 2008-03-05 22:04:32 +0100 (Wed, 05 Mar 2008) | 1 line
Small code cleanup.
........
r61260 | martin.v.loewis | 2008-03-05 23:24:31 +0100 (Wed, 05 Mar 2008) | 2 lines
cd PCbuild only after deleting all pyc files.
........
r61261 | raymond.hettinger | 2008-03-06 02:15:52 +0100 (Thu, 06 Mar 2008) | 1 line
Add examples.
........
r61262 | andrew.kuchling | 2008-03-06 02:36:27 +0100 (Thu, 06 Mar 2008) | 1 line
Add two items
........
r61263 | georg.brandl | 2008-03-06 07:47:18 +0100 (Thu, 06 Mar 2008) | 2 lines
#1725737: ignore other VC directories other than CVS and SVN's too.
........
r61264 | martin.v.loewis | 2008-03-06 07:55:22 +0100 (Thu, 06 Mar 2008) | 4 lines
Patch #2232: os.tmpfile might fail on Windows if the user has no
permission to create files in the root directory.
Will backport to 2.5.
........
r61269 | georg.brandl | 2008-03-06 08:19:15 +0100 (Thu, 06 Mar 2008) | 2 lines
Expand on re.split behavior with captured expressions.
........
r61270 | georg.brandl | 2008-03-06 08:22:09 +0100 (Thu, 06 Mar 2008) | 2 lines
Little clarification of assignments.
........
r61271 | georg.brandl | 2008-03-06 08:31:34 +0100 (Thu, 06 Mar 2008) | 2 lines
Add isinstance/issubclass to tutorial.
........
r61272 | georg.brandl | 2008-03-06 08:34:52 +0100 (Thu, 06 Mar 2008) | 2 lines
Add missing NEWS entry for r61263.
........
r61273 | georg.brandl | 2008-03-06 08:41:16 +0100 (Thu, 06 Mar 2008) | 2 lines
#2225: return nonzero status code from py_compile if not all files could be compiled.
........
r61274 | georg.brandl | 2008-03-06 08:43:02 +0100 (Thu, 06 Mar 2008) | 2 lines
#2220: handle matching failure more gracefully.
........
r61275 | georg.brandl | 2008-03-06 08:45:52 +0100 (Thu, 06 Mar 2008) | 2 lines
Bug #2220: handle rlcompleter attribute match failure more gracefully.
........
r61278 | martin.v.loewis | 2008-03-06 14:49:47 +0100 (Thu, 06 Mar 2008) | 1 line
Rely on x64 platform configuration when building _bsddb on AMD64.
........
r61279 | martin.v.loewis | 2008-03-06 14:50:28 +0100 (Thu, 06 Mar 2008) | 1 line
Update db-4.4.20 build procedure.
........
r61285 | raymond.hettinger | 2008-03-06 21:52:01 +0100 (Thu, 06 Mar 2008) | 1 line
More tests.
........
r61286 | raymond.hettinger | 2008-03-06 23:51:36 +0100 (Thu, 06 Mar 2008) | 1 line
Issue 2246: itertools grouper object did not participate in GC (should be backported).
........
r61288 | raymond.hettinger | 2008-03-07 02:33:20 +0100 (Fri, 07 Mar 2008) | 1 line
Tweak recipes and tests
........
r61289 | jeffrey.yasskin | 2008-03-07 07:22:15 +0100 (Fri, 07 Mar 2008) | 5 lines
Progress on issue #1193577 by adding a polling .shutdown() method to
SocketServers. The core of the patch was written by Pedro Werneck, but any bugs
are mine. I've also rearranged the code for timeouts in order to avoid
interfering with the shutdown poll.
........
r61290 | nick.coghlan | 2008-03-07 15:13:28 +0100 (Fri, 07 Mar 2008) | 1 line
Speed up with statements by storing the __exit__ method on the stack instead of in a temp variable (bumps the magic number for pyc files)
........
r61298 | andrew.kuchling | 2008-03-07 22:09:23 +0100 (Fri, 07 Mar 2008) | 1 line
Grammar fix
........
r61303 | georg.brandl | 2008-03-08 10:54:06 +0100 (Sat, 08 Mar 2008) | 2 lines
#2253: fix continue vs. finally docs.
........
r61304 | marc-andre.lemburg | 2008-03-08 11:01:43 +0100 (Sat, 08 Mar 2008) | 3 lines
Add new name for Mandrake: Mandriva.
........
r61305 | georg.brandl | 2008-03-08 11:05:24 +0100 (Sat, 08 Mar 2008) | 2 lines
#1533486: fix types in refcount intro.
........
r61312 | facundo.batista | 2008-03-08 17:50:27 +0100 (Sat, 08 Mar 2008) | 5 lines
Issue 1106316. post_mortem()'s parameter, traceback, is now
optional: it defaults to the traceback of the exception that is currently
being handled.
........
r61313 | jeffrey.yasskin | 2008-03-08 19:26:54 +0100 (Sat, 08 Mar 2008) | 2 lines
Add tests for with and finally performance to pybench.
........
r61314 | jeffrey.yasskin | 2008-03-08 21:08:21 +0100 (Sat, 08 Mar 2008) | 2 lines
Fix pybench for pythons < 2.6, tested back to 2.3.
........
r61317 | jeffrey.yasskin | 2008-03-08 22:35:15 +0100 (Sat, 08 Mar 2008) | 3 lines
Well that was dumb. platform.python_implementation returns a function, not a
string.
........
r61329 | georg.brandl | 2008-03-09 16:11:39 +0100 (Sun, 09 Mar 2008) | 2 lines
#2249: document assertTrue and assertFalse.
........
r61332 | neal.norwitz | 2008-03-09 20:03:42 +0100 (Sun, 09 Mar 2008) | 4 lines
Introduce a lock to fix a race condition which caused an exception in the test.
Some buildbots were consistently failing (e.g., amd64).
Also remove a couple of semi-colons.
........
r61344 | raymond.hettinger | 2008-03-11 01:19:07 +0100 (Tue, 11 Mar 2008) | 1 line
Add recipe to docs.
........
r61350 | guido.van.rossum | 2008-03-11 22:18:06 +0100 (Tue, 11 Mar 2008) | 3 lines
Fix the overflows in expandtabs(). "This time for sure!"
(Exploit at request.)
........
r61351 | raymond.hettinger | 2008-03-11 22:37:46 +0100 (Tue, 11 Mar 2008) | 1 line
Improve docs for itemgetter(). Show that it works with slices.
........
r61363 | georg.brandl | 2008-03-13 08:15:56 +0100 (Thu, 13 Mar 2008) | 2 lines
#2265: fix example.
........
r61364 | georg.brandl | 2008-03-13 08:17:14 +0100 (Thu, 13 Mar 2008) | 2 lines
#2270: fix typo.
........
r61365 | georg.brandl | 2008-03-13 08:21:41 +0100 (Thu, 13 Mar 2008) | 2 lines
#1720705: add docs about import/threading interaction, wording by Nick.
........
r61366 | andrew.kuchling | 2008-03-13 12:07:35 +0100 (Thu, 13 Mar 2008) | 1 line
Add class decorators
........
r61367 | raymond.hettinger | 2008-03-13 17:43:17 +0100 (Thu, 13 Mar 2008) | 1 line
Add 2-to-3 support for the itertools moved to builtins or renamed.
........
r61368 | raymond.hettinger | 2008-03-13 17:43:59 +0100 (Thu, 13 Mar 2008) | 1 line
Consistent tense.
........
r61369 | raymond.hettinger | 2008-03-13 20:03:51 +0100 (Thu, 13 Mar 2008) | 1 line
Issue 2274: Add heapq.heappushpop().
........
r61370 | raymond.hettinger | 2008-03-13 20:33:34 +0100 (Thu, 13 Mar 2008) | 1 line
Simplify the nlargest() code using heappushpop().
........
r61371 | brett.cannon | 2008-03-13 21:27:00 +0100 (Thu, 13 Mar 2008) | 4 lines
Move test_thread over to unittest. Commits GHOP 237.
Thanks Benjamin Peterson for the patch.
........
r61372 | brett.cannon | 2008-03-13 21:33:10 +0100 (Thu, 13 Mar 2008) | 4 lines
Move test_tokenize to doctest.
Done as GHOP 238 by Josip Dzolonga.
........
r61373 | brett.cannon | 2008-03-13 21:47:41 +0100 (Thu, 13 Mar 2008) | 4 lines
Convert test_contains, test_crypt, and test_select to unittest.
Patch from GHOP 294 by David Marek.
........
r61374 | brett.cannon | 2008-03-13 22:02:16 +0100 (Thu, 13 Mar 2008) | 4 lines
Move test_gdbm to use unittest.
Closes issue #1960. Thanks Giampaolo Rodola.
........
r61375 | brett.cannon | 2008-03-13 22:09:28 +0100 (Thu, 13 Mar 2008) | 4 lines
Convert test_fcntl to unittest.
Closes issue #2055. Thanks Giampaolo Rodola.
........
r61376 | raymond.hettinger | 2008-03-14 06:03:44 +0100 (Fri, 14 Mar 2008) | 1 line
Leave heapreplace() unchanged.
........
r61378 | martin.v.loewis | 2008-03-14 14:56:09 +0100 (Fri, 14 Mar 2008) | 2 lines
Patch #2284: add -x64 option to rt.bat.
........
r61379 | martin.v.loewis | 2008-03-14 14:57:59 +0100 (Fri, 14 Mar 2008) | 2 lines
Use -x64 flag.
........
r61382 | brett.cannon | 2008-03-14 15:03:10 +0100 (Fri, 14 Mar 2008) | 2 lines
Remove a bad test.
........
r61383 | mark.dickinson | 2008-03-14 15:23:37 +0100 (Fri, 14 Mar 2008) | 9 lines
Issue 705836: Fix struct.pack(">f", 1e40) to behave consistently
across platforms: it should now raise OverflowError on all
platforms. (Previously it raised OverflowError only on
non IEEE 754 platforms.)
Also fix the (already existing) test for this behaviour
so that it actually raises TestFailed instead of just
referencing it.
........
r61387 | thomas.heller | 2008-03-14 22:06:21 +0100 (Fri, 14 Mar 2008) | 1 line
Remove unneeded initializer.
........
r61388 | martin.v.loewis | 2008-03-14 22:19:28 +0100 (Fri, 14 Mar 2008) | 2 lines
Run debug version, cd to PCbuild.
........
r61392 | georg.brandl | 2008-03-15 00:10:34 +0100 (Sat, 15 Mar 2008) | 2 lines
Remove obsolete paragraph. #2288.
........
r61395 | georg.brandl | 2008-03-15 01:20:19 +0100 (Sat, 15 Mar 2008) | 2 lines
Fix lots of broken links in the docs, found by Sphinx' external link checker.
........
r61396 | skip.montanaro | 2008-03-15 03:32:49 +0100 (Sat, 15 Mar 2008) | 1 line
note that fork and forkpty raise OSError on failure
........
r61402 | skip.montanaro | 2008-03-15 17:04:45 +0100 (Sat, 15 Mar 2008) | 1 line
add %f format to datetime - issue 1158
........
r61403 | skip.montanaro | 2008-03-15 17:07:11 +0100 (Sat, 15 Mar 2008) | 2 lines
.
........
2008-03-15 21:07:10 -03:00
|
|
|
static PyObject *module = NULL;
|
|
|
|
PyObject *result = NULL, *obj, *st = NULL, *frac = NULL;
|
2007-08-29 14:28:42 -03:00
|
|
|
const Py_UNICODE *string, *format;
|
2005-01-13 00:12:31 -04:00
|
|
|
|
2007-08-24 01:05:13 -03:00
|
|
|
if (!PyArg_ParseTuple(args, "uu:strptime", &string, &format))
|
2005-01-13 00:12:31 -04:00
|
|
|
return NULL;
|
|
|
|
|
Merged revisions 61239-61249,61252-61257,61260-61264,61269-61275,61278-61279,61285-61286,61288-61290,61298,61303-61305,61312-61314,61317,61329,61332,61344,61350-61351,61363-61376,61378-61379,61382-61383,61387-61388,61392,61395-61396,61402-61403 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r61239 | andrew.kuchling | 2008-03-05 01:44:41 +0100 (Wed, 05 Mar 2008) | 1 line
Add more items; add fragmentary notes
........
r61240 | amaury.forgeotdarc | 2008-03-05 02:50:33 +0100 (Wed, 05 Mar 2008) | 13 lines
Issue#2238: some syntax errors from *args or **kwargs expressions
would give bogus error messages, because of untested exceptions::
>>> f(**g(1=2))
XXX undetected error
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is not iterable
instead of the expected SyntaxError: keyword can't be an expression
Will backport.
........
r61241 | neal.norwitz | 2008-03-05 06:10:48 +0100 (Wed, 05 Mar 2008) | 3 lines
Remove the files/dirs after closing the DB so the tests work on Windows.
Patch from Trent Nelson. Also simplified removing a file by using test_support.
........
r61242 | neal.norwitz | 2008-03-05 06:14:18 +0100 (Wed, 05 Mar 2008) | 3 lines
Get this test to pass even when there is no sound card in the system.
Patch from Trent Nelson. (I can't test this.)
........
r61243 | neal.norwitz | 2008-03-05 06:20:44 +0100 (Wed, 05 Mar 2008) | 3 lines
Catch OSError when trying to remove a file in case removal fails. This
should prevent a failure in tearDown masking any real test failure.
........
r61244 | neal.norwitz | 2008-03-05 06:38:06 +0100 (Wed, 05 Mar 2008) | 5 lines
Make the timeout longer to give slow machines a chance to pass the test
before timing out. This doesn't change the duration of the test under
normal circumstances. This is targetted at fixing the spurious failures
on the FreeBSD buildbot primarily.
........
r61245 | neal.norwitz | 2008-03-05 06:49:03 +0100 (Wed, 05 Mar 2008) | 1 line
Tabs -> spaces
........
r61246 | neal.norwitz | 2008-03-05 06:50:20 +0100 (Wed, 05 Mar 2008) | 1 line
Use -u urlfetch to run more tests
........
r61247 | neal.norwitz | 2008-03-05 06:51:20 +0100 (Wed, 05 Mar 2008) | 1 line
test_smtplib sometimes reports leaks too, suppress it
........
r61248 | jeffrey.yasskin | 2008-03-05 07:19:56 +0100 (Wed, 05 Mar 2008) | 5 lines
Fix test_socketserver on Windows after r61099 added several signal.alarm()
calls (which don't exist on non-Unix platforms).
Thanks to Trent Nelson for the report and patch.
........
r61249 | georg.brandl | 2008-03-05 08:10:35 +0100 (Wed, 05 Mar 2008) | 2 lines
Fix some rst.
........
r61252 | thomas.heller | 2008-03-05 15:53:39 +0100 (Wed, 05 Mar 2008) | 2 lines
News entry for yesterdays commit.
........
r61253 | thomas.heller | 2008-03-05 16:34:29 +0100 (Wed, 05 Mar 2008) | 3 lines
Issue 1872: Changed the struct module typecode from 't' to '?', for
compatibility with PEP3118.
........
r61254 | skip.montanaro | 2008-03-05 17:41:09 +0100 (Wed, 05 Mar 2008) | 4 lines
Elaborate on the role of the altinstall target when installing multiple
versions.
........
r61255 | georg.brandl | 2008-03-05 20:31:44 +0100 (Wed, 05 Mar 2008) | 2 lines
#2239: PYTHONPATH delimiter is os.pathsep.
........
r61256 | raymond.hettinger | 2008-03-05 21:59:58 +0100 (Wed, 05 Mar 2008) | 1 line
C implementation of itertools.permutations().
........
r61257 | raymond.hettinger | 2008-03-05 22:04:32 +0100 (Wed, 05 Mar 2008) | 1 line
Small code cleanup.
........
r61260 | martin.v.loewis | 2008-03-05 23:24:31 +0100 (Wed, 05 Mar 2008) | 2 lines
cd PCbuild only after deleting all pyc files.
........
r61261 | raymond.hettinger | 2008-03-06 02:15:52 +0100 (Thu, 06 Mar 2008) | 1 line
Add examples.
........
r61262 | andrew.kuchling | 2008-03-06 02:36:27 +0100 (Thu, 06 Mar 2008) | 1 line
Add two items
........
r61263 | georg.brandl | 2008-03-06 07:47:18 +0100 (Thu, 06 Mar 2008) | 2 lines
#1725737: ignore other VC directories other than CVS and SVN's too.
........
r61264 | martin.v.loewis | 2008-03-06 07:55:22 +0100 (Thu, 06 Mar 2008) | 4 lines
Patch #2232: os.tmpfile might fail on Windows if the user has no
permission to create files in the root directory.
Will backport to 2.5.
........
r61269 | georg.brandl | 2008-03-06 08:19:15 +0100 (Thu, 06 Mar 2008) | 2 lines
Expand on re.split behavior with captured expressions.
........
r61270 | georg.brandl | 2008-03-06 08:22:09 +0100 (Thu, 06 Mar 2008) | 2 lines
Little clarification of assignments.
........
r61271 | georg.brandl | 2008-03-06 08:31:34 +0100 (Thu, 06 Mar 2008) | 2 lines
Add isinstance/issubclass to tutorial.
........
r61272 | georg.brandl | 2008-03-06 08:34:52 +0100 (Thu, 06 Mar 2008) | 2 lines
Add missing NEWS entry for r61263.
........
r61273 | georg.brandl | 2008-03-06 08:41:16 +0100 (Thu, 06 Mar 2008) | 2 lines
#2225: return nonzero status code from py_compile if not all files could be compiled.
........
r61274 | georg.brandl | 2008-03-06 08:43:02 +0100 (Thu, 06 Mar 2008) | 2 lines
#2220: handle matching failure more gracefully.
........
r61275 | georg.brandl | 2008-03-06 08:45:52 +0100 (Thu, 06 Mar 2008) | 2 lines
Bug #2220: handle rlcompleter attribute match failure more gracefully.
........
r61278 | martin.v.loewis | 2008-03-06 14:49:47 +0100 (Thu, 06 Mar 2008) | 1 line
Rely on x64 platform configuration when building _bsddb on AMD64.
........
r61279 | martin.v.loewis | 2008-03-06 14:50:28 +0100 (Thu, 06 Mar 2008) | 1 line
Update db-4.4.20 build procedure.
........
r61285 | raymond.hettinger | 2008-03-06 21:52:01 +0100 (Thu, 06 Mar 2008) | 1 line
More tests.
........
r61286 | raymond.hettinger | 2008-03-06 23:51:36 +0100 (Thu, 06 Mar 2008) | 1 line
Issue 2246: itertools grouper object did not participate in GC (should be backported).
........
r61288 | raymond.hettinger | 2008-03-07 02:33:20 +0100 (Fri, 07 Mar 2008) | 1 line
Tweak recipes and tests
........
r61289 | jeffrey.yasskin | 2008-03-07 07:22:15 +0100 (Fri, 07 Mar 2008) | 5 lines
Progress on issue #1193577 by adding a polling .shutdown() method to
SocketServers. The core of the patch was written by Pedro Werneck, but any bugs
are mine. I've also rearranged the code for timeouts in order to avoid
interfering with the shutdown poll.
........
r61290 | nick.coghlan | 2008-03-07 15:13:28 +0100 (Fri, 07 Mar 2008) | 1 line
Speed up with statements by storing the __exit__ method on the stack instead of in a temp variable (bumps the magic number for pyc files)
........
r61298 | andrew.kuchling | 2008-03-07 22:09:23 +0100 (Fri, 07 Mar 2008) | 1 line
Grammar fix
........
r61303 | georg.brandl | 2008-03-08 10:54:06 +0100 (Sat, 08 Mar 2008) | 2 lines
#2253: fix continue vs. finally docs.
........
r61304 | marc-andre.lemburg | 2008-03-08 11:01:43 +0100 (Sat, 08 Mar 2008) | 3 lines
Add new name for Mandrake: Mandriva.
........
r61305 | georg.brandl | 2008-03-08 11:05:24 +0100 (Sat, 08 Mar 2008) | 2 lines
#1533486: fix types in refcount intro.
........
r61312 | facundo.batista | 2008-03-08 17:50:27 +0100 (Sat, 08 Mar 2008) | 5 lines
Issue 1106316. post_mortem()'s parameter, traceback, is now
optional: it defaults to the traceback of the exception that is currently
being handled.
........
r61313 | jeffrey.yasskin | 2008-03-08 19:26:54 +0100 (Sat, 08 Mar 2008) | 2 lines
Add tests for with and finally performance to pybench.
........
r61314 | jeffrey.yasskin | 2008-03-08 21:08:21 +0100 (Sat, 08 Mar 2008) | 2 lines
Fix pybench for pythons < 2.6, tested back to 2.3.
........
r61317 | jeffrey.yasskin | 2008-03-08 22:35:15 +0100 (Sat, 08 Mar 2008) | 3 lines
Well that was dumb. platform.python_implementation returns a function, not a
string.
........
r61329 | georg.brandl | 2008-03-09 16:11:39 +0100 (Sun, 09 Mar 2008) | 2 lines
#2249: document assertTrue and assertFalse.
........
r61332 | neal.norwitz | 2008-03-09 20:03:42 +0100 (Sun, 09 Mar 2008) | 4 lines
Introduce a lock to fix a race condition which caused an exception in the test.
Some buildbots were consistently failing (e.g., amd64).
Also remove a couple of semi-colons.
........
r61344 | raymond.hettinger | 2008-03-11 01:19:07 +0100 (Tue, 11 Mar 2008) | 1 line
Add recipe to docs.
........
r61350 | guido.van.rossum | 2008-03-11 22:18:06 +0100 (Tue, 11 Mar 2008) | 3 lines
Fix the overflows in expandtabs(). "This time for sure!"
(Exploit at request.)
........
r61351 | raymond.hettinger | 2008-03-11 22:37:46 +0100 (Tue, 11 Mar 2008) | 1 line
Improve docs for itemgetter(). Show that it works with slices.
........
r61363 | georg.brandl | 2008-03-13 08:15:56 +0100 (Thu, 13 Mar 2008) | 2 lines
#2265: fix example.
........
r61364 | georg.brandl | 2008-03-13 08:17:14 +0100 (Thu, 13 Mar 2008) | 2 lines
#2270: fix typo.
........
r61365 | georg.brandl | 2008-03-13 08:21:41 +0100 (Thu, 13 Mar 2008) | 2 lines
#1720705: add docs about import/threading interaction, wording by Nick.
........
r61366 | andrew.kuchling | 2008-03-13 12:07:35 +0100 (Thu, 13 Mar 2008) | 1 line
Add class decorators
........
r61367 | raymond.hettinger | 2008-03-13 17:43:17 +0100 (Thu, 13 Mar 2008) | 1 line
Add 2-to-3 support for the itertools moved to builtins or renamed.
........
r61368 | raymond.hettinger | 2008-03-13 17:43:59 +0100 (Thu, 13 Mar 2008) | 1 line
Consistent tense.
........
r61369 | raymond.hettinger | 2008-03-13 20:03:51 +0100 (Thu, 13 Mar 2008) | 1 line
Issue 2274: Add heapq.heappushpop().
........
r61370 | raymond.hettinger | 2008-03-13 20:33:34 +0100 (Thu, 13 Mar 2008) | 1 line
Simplify the nlargest() code using heappushpop().
........
r61371 | brett.cannon | 2008-03-13 21:27:00 +0100 (Thu, 13 Mar 2008) | 4 lines
Move test_thread over to unittest. Commits GHOP 237.
Thanks Benjamin Peterson for the patch.
........
r61372 | brett.cannon | 2008-03-13 21:33:10 +0100 (Thu, 13 Mar 2008) | 4 lines
Move test_tokenize to doctest.
Done as GHOP 238 by Josip Dzolonga.
........
r61373 | brett.cannon | 2008-03-13 21:47:41 +0100 (Thu, 13 Mar 2008) | 4 lines
Convert test_contains, test_crypt, and test_select to unittest.
Patch from GHOP 294 by David Marek.
........
r61374 | brett.cannon | 2008-03-13 22:02:16 +0100 (Thu, 13 Mar 2008) | 4 lines
Move test_gdbm to use unittest.
Closes issue #1960. Thanks Giampaolo Rodola.
........
r61375 | brett.cannon | 2008-03-13 22:09:28 +0100 (Thu, 13 Mar 2008) | 4 lines
Convert test_fcntl to unittest.
Closes issue #2055. Thanks Giampaolo Rodola.
........
r61376 | raymond.hettinger | 2008-03-14 06:03:44 +0100 (Fri, 14 Mar 2008) | 1 line
Leave heapreplace() unchanged.
........
r61378 | martin.v.loewis | 2008-03-14 14:56:09 +0100 (Fri, 14 Mar 2008) | 2 lines
Patch #2284: add -x64 option to rt.bat.
........
r61379 | martin.v.loewis | 2008-03-14 14:57:59 +0100 (Fri, 14 Mar 2008) | 2 lines
Use -x64 flag.
........
r61382 | brett.cannon | 2008-03-14 15:03:10 +0100 (Fri, 14 Mar 2008) | 2 lines
Remove a bad test.
........
r61383 | mark.dickinson | 2008-03-14 15:23:37 +0100 (Fri, 14 Mar 2008) | 9 lines
Issue 705836: Fix struct.pack(">f", 1e40) to behave consistently
across platforms: it should now raise OverflowError on all
platforms. (Previously it raised OverflowError only on
non IEEE 754 platforms.)
Also fix the (already existing) test for this behaviour
so that it actually raises TestFailed instead of just
referencing it.
........
r61387 | thomas.heller | 2008-03-14 22:06:21 +0100 (Fri, 14 Mar 2008) | 1 line
Remove unneeded initializer.
........
r61388 | martin.v.loewis | 2008-03-14 22:19:28 +0100 (Fri, 14 Mar 2008) | 2 lines
Run debug version, cd to PCbuild.
........
r61392 | georg.brandl | 2008-03-15 00:10:34 +0100 (Sat, 15 Mar 2008) | 2 lines
Remove obsolete paragraph. #2288.
........
r61395 | georg.brandl | 2008-03-15 01:20:19 +0100 (Sat, 15 Mar 2008) | 2 lines
Fix lots of broken links in the docs, found by Sphinx' external link checker.
........
r61396 | skip.montanaro | 2008-03-15 03:32:49 +0100 (Sat, 15 Mar 2008) | 1 line
note that fork and forkpty raise OSError on failure
........
r61402 | skip.montanaro | 2008-03-15 17:04:45 +0100 (Sat, 15 Mar 2008) | 1 line
add %f format to datetime - issue 1158
........
r61403 | skip.montanaro | 2008-03-15 17:07:11 +0100 (Sat, 15 Mar 2008) | 2 lines
.
........
2008-03-15 21:07:10 -03:00
|
|
|
if (module == NULL &&
|
|
|
|
(module = PyImport_ImportModuleNoBlock("_strptime")) == NULL)
|
2005-01-13 00:12:31 -04:00
|
|
|
return NULL;
|
|
|
|
|
Merged revisions 61239-61249,61252-61257,61260-61264,61269-61275,61278-61279,61285-61286,61288-61290,61298,61303-61305,61312-61314,61317,61329,61332,61344,61350-61351,61363-61376,61378-61379,61382-61383,61387-61388,61392,61395-61396,61402-61403 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r61239 | andrew.kuchling | 2008-03-05 01:44:41 +0100 (Wed, 05 Mar 2008) | 1 line
Add more items; add fragmentary notes
........
r61240 | amaury.forgeotdarc | 2008-03-05 02:50:33 +0100 (Wed, 05 Mar 2008) | 13 lines
Issue#2238: some syntax errors from *args or **kwargs expressions
would give bogus error messages, because of untested exceptions::
>>> f(**g(1=2))
XXX undetected error
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is not iterable
instead of the expected SyntaxError: keyword can't be an expression
Will backport.
........
r61241 | neal.norwitz | 2008-03-05 06:10:48 +0100 (Wed, 05 Mar 2008) | 3 lines
Remove the files/dirs after closing the DB so the tests work on Windows.
Patch from Trent Nelson. Also simplified removing a file by using test_support.
........
r61242 | neal.norwitz | 2008-03-05 06:14:18 +0100 (Wed, 05 Mar 2008) | 3 lines
Get this test to pass even when there is no sound card in the system.
Patch from Trent Nelson. (I can't test this.)
........
r61243 | neal.norwitz | 2008-03-05 06:20:44 +0100 (Wed, 05 Mar 2008) | 3 lines
Catch OSError when trying to remove a file in case removal fails. This
should prevent a failure in tearDown masking any real test failure.
........
r61244 | neal.norwitz | 2008-03-05 06:38:06 +0100 (Wed, 05 Mar 2008) | 5 lines
Make the timeout longer to give slow machines a chance to pass the test
before timing out. This doesn't change the duration of the test under
normal circumstances. This is targetted at fixing the spurious failures
on the FreeBSD buildbot primarily.
........
r61245 | neal.norwitz | 2008-03-05 06:49:03 +0100 (Wed, 05 Mar 2008) | 1 line
Tabs -> spaces
........
r61246 | neal.norwitz | 2008-03-05 06:50:20 +0100 (Wed, 05 Mar 2008) | 1 line
Use -u urlfetch to run more tests
........
r61247 | neal.norwitz | 2008-03-05 06:51:20 +0100 (Wed, 05 Mar 2008) | 1 line
test_smtplib sometimes reports leaks too, suppress it
........
r61248 | jeffrey.yasskin | 2008-03-05 07:19:56 +0100 (Wed, 05 Mar 2008) | 5 lines
Fix test_socketserver on Windows after r61099 added several signal.alarm()
calls (which don't exist on non-Unix platforms).
Thanks to Trent Nelson for the report and patch.
........
r61249 | georg.brandl | 2008-03-05 08:10:35 +0100 (Wed, 05 Mar 2008) | 2 lines
Fix some rst.
........
r61252 | thomas.heller | 2008-03-05 15:53:39 +0100 (Wed, 05 Mar 2008) | 2 lines
News entry for yesterdays commit.
........
r61253 | thomas.heller | 2008-03-05 16:34:29 +0100 (Wed, 05 Mar 2008) | 3 lines
Issue 1872: Changed the struct module typecode from 't' to '?', for
compatibility with PEP3118.
........
r61254 | skip.montanaro | 2008-03-05 17:41:09 +0100 (Wed, 05 Mar 2008) | 4 lines
Elaborate on the role of the altinstall target when installing multiple
versions.
........
r61255 | georg.brandl | 2008-03-05 20:31:44 +0100 (Wed, 05 Mar 2008) | 2 lines
#2239: PYTHONPATH delimiter is os.pathsep.
........
r61256 | raymond.hettinger | 2008-03-05 21:59:58 +0100 (Wed, 05 Mar 2008) | 1 line
C implementation of itertools.permutations().
........
r61257 | raymond.hettinger | 2008-03-05 22:04:32 +0100 (Wed, 05 Mar 2008) | 1 line
Small code cleanup.
........
r61260 | martin.v.loewis | 2008-03-05 23:24:31 +0100 (Wed, 05 Mar 2008) | 2 lines
cd PCbuild only after deleting all pyc files.
........
r61261 | raymond.hettinger | 2008-03-06 02:15:52 +0100 (Thu, 06 Mar 2008) | 1 line
Add examples.
........
r61262 | andrew.kuchling | 2008-03-06 02:36:27 +0100 (Thu, 06 Mar 2008) | 1 line
Add two items
........
r61263 | georg.brandl | 2008-03-06 07:47:18 +0100 (Thu, 06 Mar 2008) | 2 lines
#1725737: ignore other VC directories other than CVS and SVN's too.
........
r61264 | martin.v.loewis | 2008-03-06 07:55:22 +0100 (Thu, 06 Mar 2008) | 4 lines
Patch #2232: os.tmpfile might fail on Windows if the user has no
permission to create files in the root directory.
Will backport to 2.5.
........
r61269 | georg.brandl | 2008-03-06 08:19:15 +0100 (Thu, 06 Mar 2008) | 2 lines
Expand on re.split behavior with captured expressions.
........
r61270 | georg.brandl | 2008-03-06 08:22:09 +0100 (Thu, 06 Mar 2008) | 2 lines
Little clarification of assignments.
........
r61271 | georg.brandl | 2008-03-06 08:31:34 +0100 (Thu, 06 Mar 2008) | 2 lines
Add isinstance/issubclass to tutorial.
........
r61272 | georg.brandl | 2008-03-06 08:34:52 +0100 (Thu, 06 Mar 2008) | 2 lines
Add missing NEWS entry for r61263.
........
r61273 | georg.brandl | 2008-03-06 08:41:16 +0100 (Thu, 06 Mar 2008) | 2 lines
#2225: return nonzero status code from py_compile if not all files could be compiled.
........
r61274 | georg.brandl | 2008-03-06 08:43:02 +0100 (Thu, 06 Mar 2008) | 2 lines
#2220: handle matching failure more gracefully.
........
r61275 | georg.brandl | 2008-03-06 08:45:52 +0100 (Thu, 06 Mar 2008) | 2 lines
Bug #2220: handle rlcompleter attribute match failure more gracefully.
........
r61278 | martin.v.loewis | 2008-03-06 14:49:47 +0100 (Thu, 06 Mar 2008) | 1 line
Rely on x64 platform configuration when building _bsddb on AMD64.
........
r61279 | martin.v.loewis | 2008-03-06 14:50:28 +0100 (Thu, 06 Mar 2008) | 1 line
Update db-4.4.20 build procedure.
........
r61285 | raymond.hettinger | 2008-03-06 21:52:01 +0100 (Thu, 06 Mar 2008) | 1 line
More tests.
........
r61286 | raymond.hettinger | 2008-03-06 23:51:36 +0100 (Thu, 06 Mar 2008) | 1 line
Issue 2246: itertools grouper object did not participate in GC (should be backported).
........
r61288 | raymond.hettinger | 2008-03-07 02:33:20 +0100 (Fri, 07 Mar 2008) | 1 line
Tweak recipes and tests
........
r61289 | jeffrey.yasskin | 2008-03-07 07:22:15 +0100 (Fri, 07 Mar 2008) | 5 lines
Progress on issue #1193577 by adding a polling .shutdown() method to
SocketServers. The core of the patch was written by Pedro Werneck, but any bugs
are mine. I've also rearranged the code for timeouts in order to avoid
interfering with the shutdown poll.
........
r61290 | nick.coghlan | 2008-03-07 15:13:28 +0100 (Fri, 07 Mar 2008) | 1 line
Speed up with statements by storing the __exit__ method on the stack instead of in a temp variable (bumps the magic number for pyc files)
........
r61298 | andrew.kuchling | 2008-03-07 22:09:23 +0100 (Fri, 07 Mar 2008) | 1 line
Grammar fix
........
r61303 | georg.brandl | 2008-03-08 10:54:06 +0100 (Sat, 08 Mar 2008) | 2 lines
#2253: fix continue vs. finally docs.
........
r61304 | marc-andre.lemburg | 2008-03-08 11:01:43 +0100 (Sat, 08 Mar 2008) | 3 lines
Add new name for Mandrake: Mandriva.
........
r61305 | georg.brandl | 2008-03-08 11:05:24 +0100 (Sat, 08 Mar 2008) | 2 lines
#1533486: fix types in refcount intro.
........
r61312 | facundo.batista | 2008-03-08 17:50:27 +0100 (Sat, 08 Mar 2008) | 5 lines
Issue 1106316. post_mortem()'s parameter, traceback, is now
optional: it defaults to the traceback of the exception that is currently
being handled.
........
r61313 | jeffrey.yasskin | 2008-03-08 19:26:54 +0100 (Sat, 08 Mar 2008) | 2 lines
Add tests for with and finally performance to pybench.
........
r61314 | jeffrey.yasskin | 2008-03-08 21:08:21 +0100 (Sat, 08 Mar 2008) | 2 lines
Fix pybench for pythons < 2.6, tested back to 2.3.
........
r61317 | jeffrey.yasskin | 2008-03-08 22:35:15 +0100 (Sat, 08 Mar 2008) | 3 lines
Well that was dumb. platform.python_implementation returns a function, not a
string.
........
r61329 | georg.brandl | 2008-03-09 16:11:39 +0100 (Sun, 09 Mar 2008) | 2 lines
#2249: document assertTrue and assertFalse.
........
r61332 | neal.norwitz | 2008-03-09 20:03:42 +0100 (Sun, 09 Mar 2008) | 4 lines
Introduce a lock to fix a race condition which caused an exception in the test.
Some buildbots were consistently failing (e.g., amd64).
Also remove a couple of semi-colons.
........
r61344 | raymond.hettinger | 2008-03-11 01:19:07 +0100 (Tue, 11 Mar 2008) | 1 line
Add recipe to docs.
........
r61350 | guido.van.rossum | 2008-03-11 22:18:06 +0100 (Tue, 11 Mar 2008) | 3 lines
Fix the overflows in expandtabs(). "This time for sure!"
(Exploit at request.)
........
r61351 | raymond.hettinger | 2008-03-11 22:37:46 +0100 (Tue, 11 Mar 2008) | 1 line
Improve docs for itemgetter(). Show that it works with slices.
........
r61363 | georg.brandl | 2008-03-13 08:15:56 +0100 (Thu, 13 Mar 2008) | 2 lines
#2265: fix example.
........
r61364 | georg.brandl | 2008-03-13 08:17:14 +0100 (Thu, 13 Mar 2008) | 2 lines
#2270: fix typo.
........
r61365 | georg.brandl | 2008-03-13 08:21:41 +0100 (Thu, 13 Mar 2008) | 2 lines
#1720705: add docs about import/threading interaction, wording by Nick.
........
r61366 | andrew.kuchling | 2008-03-13 12:07:35 +0100 (Thu, 13 Mar 2008) | 1 line
Add class decorators
........
r61367 | raymond.hettinger | 2008-03-13 17:43:17 +0100 (Thu, 13 Mar 2008) | 1 line
Add 2-to-3 support for the itertools moved to builtins or renamed.
........
r61368 | raymond.hettinger | 2008-03-13 17:43:59 +0100 (Thu, 13 Mar 2008) | 1 line
Consistent tense.
........
r61369 | raymond.hettinger | 2008-03-13 20:03:51 +0100 (Thu, 13 Mar 2008) | 1 line
Issue 2274: Add heapq.heappushpop().
........
r61370 | raymond.hettinger | 2008-03-13 20:33:34 +0100 (Thu, 13 Mar 2008) | 1 line
Simplify the nlargest() code using heappushpop().
........
r61371 | brett.cannon | 2008-03-13 21:27:00 +0100 (Thu, 13 Mar 2008) | 4 lines
Move test_thread over to unittest. Commits GHOP 237.
Thanks Benjamin Peterson for the patch.
........
r61372 | brett.cannon | 2008-03-13 21:33:10 +0100 (Thu, 13 Mar 2008) | 4 lines
Move test_tokenize to doctest.
Done as GHOP 238 by Josip Dzolonga.
........
r61373 | brett.cannon | 2008-03-13 21:47:41 +0100 (Thu, 13 Mar 2008) | 4 lines
Convert test_contains, test_crypt, and test_select to unittest.
Patch from GHOP 294 by David Marek.
........
r61374 | brett.cannon | 2008-03-13 22:02:16 +0100 (Thu, 13 Mar 2008) | 4 lines
Move test_gdbm to use unittest.
Closes issue #1960. Thanks Giampaolo Rodola.
........
r61375 | brett.cannon | 2008-03-13 22:09:28 +0100 (Thu, 13 Mar 2008) | 4 lines
Convert test_fcntl to unittest.
Closes issue #2055. Thanks Giampaolo Rodola.
........
r61376 | raymond.hettinger | 2008-03-14 06:03:44 +0100 (Fri, 14 Mar 2008) | 1 line
Leave heapreplace() unchanged.
........
r61378 | martin.v.loewis | 2008-03-14 14:56:09 +0100 (Fri, 14 Mar 2008) | 2 lines
Patch #2284: add -x64 option to rt.bat.
........
r61379 | martin.v.loewis | 2008-03-14 14:57:59 +0100 (Fri, 14 Mar 2008) | 2 lines
Use -x64 flag.
........
r61382 | brett.cannon | 2008-03-14 15:03:10 +0100 (Fri, 14 Mar 2008) | 2 lines
Remove a bad test.
........
r61383 | mark.dickinson | 2008-03-14 15:23:37 +0100 (Fri, 14 Mar 2008) | 9 lines
Issue 705836: Fix struct.pack(">f", 1e40) to behave consistently
across platforms: it should now raise OverflowError on all
platforms. (Previously it raised OverflowError only on
non IEEE 754 platforms.)
Also fix the (already existing) test for this behaviour
so that it actually raises TestFailed instead of just
referencing it.
........
r61387 | thomas.heller | 2008-03-14 22:06:21 +0100 (Fri, 14 Mar 2008) | 1 line
Remove unneeded initializer.
........
r61388 | martin.v.loewis | 2008-03-14 22:19:28 +0100 (Fri, 14 Mar 2008) | 2 lines
Run debug version, cd to PCbuild.
........
r61392 | georg.brandl | 2008-03-15 00:10:34 +0100 (Sat, 15 Mar 2008) | 2 lines
Remove obsolete paragraph. #2288.
........
r61395 | georg.brandl | 2008-03-15 01:20:19 +0100 (Sat, 15 Mar 2008) | 2 lines
Fix lots of broken links in the docs, found by Sphinx' external link checker.
........
r61396 | skip.montanaro | 2008-03-15 03:32:49 +0100 (Sat, 15 Mar 2008) | 1 line
note that fork and forkpty raise OSError on failure
........
r61402 | skip.montanaro | 2008-03-15 17:04:45 +0100 (Sat, 15 Mar 2008) | 1 line
add %f format to datetime - issue 1158
........
r61403 | skip.montanaro | 2008-03-15 17:07:11 +0100 (Sat, 15 Mar 2008) | 2 lines
.
........
2008-03-15 21:07:10 -03:00
|
|
|
/* _strptime._strptime returns a two-element tuple. The first
|
|
|
|
element is a time.struct_time object. The second is the
|
|
|
|
microseconds (which are not defined for time.struct_time). */
|
2008-03-16 00:45:34 -03:00
|
|
|
obj = PyObject_CallMethod(module, "_strptime", "uu", string, format);
|
2005-01-13 00:12:31 -04:00
|
|
|
if (obj != NULL) {
|
Merged revisions 61239-61249,61252-61257,61260-61264,61269-61275,61278-61279,61285-61286,61288-61290,61298,61303-61305,61312-61314,61317,61329,61332,61344,61350-61351,61363-61376,61378-61379,61382-61383,61387-61388,61392,61395-61396,61402-61403 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r61239 | andrew.kuchling | 2008-03-05 01:44:41 +0100 (Wed, 05 Mar 2008) | 1 line
Add more items; add fragmentary notes
........
r61240 | amaury.forgeotdarc | 2008-03-05 02:50:33 +0100 (Wed, 05 Mar 2008) | 13 lines
Issue#2238: some syntax errors from *args or **kwargs expressions
would give bogus error messages, because of untested exceptions::
>>> f(**g(1=2))
XXX undetected error
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is not iterable
instead of the expected SyntaxError: keyword can't be an expression
Will backport.
........
r61241 | neal.norwitz | 2008-03-05 06:10:48 +0100 (Wed, 05 Mar 2008) | 3 lines
Remove the files/dirs after closing the DB so the tests work on Windows.
Patch from Trent Nelson. Also simplified removing a file by using test_support.
........
r61242 | neal.norwitz | 2008-03-05 06:14:18 +0100 (Wed, 05 Mar 2008) | 3 lines
Get this test to pass even when there is no sound card in the system.
Patch from Trent Nelson. (I can't test this.)
........
r61243 | neal.norwitz | 2008-03-05 06:20:44 +0100 (Wed, 05 Mar 2008) | 3 lines
Catch OSError when trying to remove a file in case removal fails. This
should prevent a failure in tearDown masking any real test failure.
........
r61244 | neal.norwitz | 2008-03-05 06:38:06 +0100 (Wed, 05 Mar 2008) | 5 lines
Make the timeout longer to give slow machines a chance to pass the test
before timing out. This doesn't change the duration of the test under
normal circumstances. This is targetted at fixing the spurious failures
on the FreeBSD buildbot primarily.
........
r61245 | neal.norwitz | 2008-03-05 06:49:03 +0100 (Wed, 05 Mar 2008) | 1 line
Tabs -> spaces
........
r61246 | neal.norwitz | 2008-03-05 06:50:20 +0100 (Wed, 05 Mar 2008) | 1 line
Use -u urlfetch to run more tests
........
r61247 | neal.norwitz | 2008-03-05 06:51:20 +0100 (Wed, 05 Mar 2008) | 1 line
test_smtplib sometimes reports leaks too, suppress it
........
r61248 | jeffrey.yasskin | 2008-03-05 07:19:56 +0100 (Wed, 05 Mar 2008) | 5 lines
Fix test_socketserver on Windows after r61099 added several signal.alarm()
calls (which don't exist on non-Unix platforms).
Thanks to Trent Nelson for the report and patch.
........
r61249 | georg.brandl | 2008-03-05 08:10:35 +0100 (Wed, 05 Mar 2008) | 2 lines
Fix some rst.
........
r61252 | thomas.heller | 2008-03-05 15:53:39 +0100 (Wed, 05 Mar 2008) | 2 lines
News entry for yesterdays commit.
........
r61253 | thomas.heller | 2008-03-05 16:34:29 +0100 (Wed, 05 Mar 2008) | 3 lines
Issue 1872: Changed the struct module typecode from 't' to '?', for
compatibility with PEP3118.
........
r61254 | skip.montanaro | 2008-03-05 17:41:09 +0100 (Wed, 05 Mar 2008) | 4 lines
Elaborate on the role of the altinstall target when installing multiple
versions.
........
r61255 | georg.brandl | 2008-03-05 20:31:44 +0100 (Wed, 05 Mar 2008) | 2 lines
#2239: PYTHONPATH delimiter is os.pathsep.
........
r61256 | raymond.hettinger | 2008-03-05 21:59:58 +0100 (Wed, 05 Mar 2008) | 1 line
C implementation of itertools.permutations().
........
r61257 | raymond.hettinger | 2008-03-05 22:04:32 +0100 (Wed, 05 Mar 2008) | 1 line
Small code cleanup.
........
r61260 | martin.v.loewis | 2008-03-05 23:24:31 +0100 (Wed, 05 Mar 2008) | 2 lines
cd PCbuild only after deleting all pyc files.
........
r61261 | raymond.hettinger | 2008-03-06 02:15:52 +0100 (Thu, 06 Mar 2008) | 1 line
Add examples.
........
r61262 | andrew.kuchling | 2008-03-06 02:36:27 +0100 (Thu, 06 Mar 2008) | 1 line
Add two items
........
r61263 | georg.brandl | 2008-03-06 07:47:18 +0100 (Thu, 06 Mar 2008) | 2 lines
#1725737: ignore other VC directories other than CVS and SVN's too.
........
r61264 | martin.v.loewis | 2008-03-06 07:55:22 +0100 (Thu, 06 Mar 2008) | 4 lines
Patch #2232: os.tmpfile might fail on Windows if the user has no
permission to create files in the root directory.
Will backport to 2.5.
........
r61269 | georg.brandl | 2008-03-06 08:19:15 +0100 (Thu, 06 Mar 2008) | 2 lines
Expand on re.split behavior with captured expressions.
........
r61270 | georg.brandl | 2008-03-06 08:22:09 +0100 (Thu, 06 Mar 2008) | 2 lines
Little clarification of assignments.
........
r61271 | georg.brandl | 2008-03-06 08:31:34 +0100 (Thu, 06 Mar 2008) | 2 lines
Add isinstance/issubclass to tutorial.
........
r61272 | georg.brandl | 2008-03-06 08:34:52 +0100 (Thu, 06 Mar 2008) | 2 lines
Add missing NEWS entry for r61263.
........
r61273 | georg.brandl | 2008-03-06 08:41:16 +0100 (Thu, 06 Mar 2008) | 2 lines
#2225: return nonzero status code from py_compile if not all files could be compiled.
........
r61274 | georg.brandl | 2008-03-06 08:43:02 +0100 (Thu, 06 Mar 2008) | 2 lines
#2220: handle matching failure more gracefully.
........
r61275 | georg.brandl | 2008-03-06 08:45:52 +0100 (Thu, 06 Mar 2008) | 2 lines
Bug #2220: handle rlcompleter attribute match failure more gracefully.
........
r61278 | martin.v.loewis | 2008-03-06 14:49:47 +0100 (Thu, 06 Mar 2008) | 1 line
Rely on x64 platform configuration when building _bsddb on AMD64.
........
r61279 | martin.v.loewis | 2008-03-06 14:50:28 +0100 (Thu, 06 Mar 2008) | 1 line
Update db-4.4.20 build procedure.
........
r61285 | raymond.hettinger | 2008-03-06 21:52:01 +0100 (Thu, 06 Mar 2008) | 1 line
More tests.
........
r61286 | raymond.hettinger | 2008-03-06 23:51:36 +0100 (Thu, 06 Mar 2008) | 1 line
Issue 2246: itertools grouper object did not participate in GC (should be backported).
........
r61288 | raymond.hettinger | 2008-03-07 02:33:20 +0100 (Fri, 07 Mar 2008) | 1 line
Tweak recipes and tests
........
r61289 | jeffrey.yasskin | 2008-03-07 07:22:15 +0100 (Fri, 07 Mar 2008) | 5 lines
Progress on issue #1193577 by adding a polling .shutdown() method to
SocketServers. The core of the patch was written by Pedro Werneck, but any bugs
are mine. I've also rearranged the code for timeouts in order to avoid
interfering with the shutdown poll.
........
r61290 | nick.coghlan | 2008-03-07 15:13:28 +0100 (Fri, 07 Mar 2008) | 1 line
Speed up with statements by storing the __exit__ method on the stack instead of in a temp variable (bumps the magic number for pyc files)
........
r61298 | andrew.kuchling | 2008-03-07 22:09:23 +0100 (Fri, 07 Mar 2008) | 1 line
Grammar fix
........
r61303 | georg.brandl | 2008-03-08 10:54:06 +0100 (Sat, 08 Mar 2008) | 2 lines
#2253: fix continue vs. finally docs.
........
r61304 | marc-andre.lemburg | 2008-03-08 11:01:43 +0100 (Sat, 08 Mar 2008) | 3 lines
Add new name for Mandrake: Mandriva.
........
r61305 | georg.brandl | 2008-03-08 11:05:24 +0100 (Sat, 08 Mar 2008) | 2 lines
#1533486: fix types in refcount intro.
........
r61312 | facundo.batista | 2008-03-08 17:50:27 +0100 (Sat, 08 Mar 2008) | 5 lines
Issue 1106316. post_mortem()'s parameter, traceback, is now
optional: it defaults to the traceback of the exception that is currently
being handled.
........
r61313 | jeffrey.yasskin | 2008-03-08 19:26:54 +0100 (Sat, 08 Mar 2008) | 2 lines
Add tests for with and finally performance to pybench.
........
r61314 | jeffrey.yasskin | 2008-03-08 21:08:21 +0100 (Sat, 08 Mar 2008) | 2 lines
Fix pybench for pythons < 2.6, tested back to 2.3.
........
r61317 | jeffrey.yasskin | 2008-03-08 22:35:15 +0100 (Sat, 08 Mar 2008) | 3 lines
Well that was dumb. platform.python_implementation returns a function, not a
string.
........
r61329 | georg.brandl | 2008-03-09 16:11:39 +0100 (Sun, 09 Mar 2008) | 2 lines
#2249: document assertTrue and assertFalse.
........
r61332 | neal.norwitz | 2008-03-09 20:03:42 +0100 (Sun, 09 Mar 2008) | 4 lines
Introduce a lock to fix a race condition which caused an exception in the test.
Some buildbots were consistently failing (e.g., amd64).
Also remove a couple of semi-colons.
........
r61344 | raymond.hettinger | 2008-03-11 01:19:07 +0100 (Tue, 11 Mar 2008) | 1 line
Add recipe to docs.
........
r61350 | guido.van.rossum | 2008-03-11 22:18:06 +0100 (Tue, 11 Mar 2008) | 3 lines
Fix the overflows in expandtabs(). "This time for sure!"
(Exploit at request.)
........
r61351 | raymond.hettinger | 2008-03-11 22:37:46 +0100 (Tue, 11 Mar 2008) | 1 line
Improve docs for itemgetter(). Show that it works with slices.
........
r61363 | georg.brandl | 2008-03-13 08:15:56 +0100 (Thu, 13 Mar 2008) | 2 lines
#2265: fix example.
........
r61364 | georg.brandl | 2008-03-13 08:17:14 +0100 (Thu, 13 Mar 2008) | 2 lines
#2270: fix typo.
........
r61365 | georg.brandl | 2008-03-13 08:21:41 +0100 (Thu, 13 Mar 2008) | 2 lines
#1720705: add docs about import/threading interaction, wording by Nick.
........
r61366 | andrew.kuchling | 2008-03-13 12:07:35 +0100 (Thu, 13 Mar 2008) | 1 line
Add class decorators
........
r61367 | raymond.hettinger | 2008-03-13 17:43:17 +0100 (Thu, 13 Mar 2008) | 1 line
Add 2-to-3 support for the itertools moved to builtins or renamed.
........
r61368 | raymond.hettinger | 2008-03-13 17:43:59 +0100 (Thu, 13 Mar 2008) | 1 line
Consistent tense.
........
r61369 | raymond.hettinger | 2008-03-13 20:03:51 +0100 (Thu, 13 Mar 2008) | 1 line
Issue 2274: Add heapq.heappushpop().
........
r61370 | raymond.hettinger | 2008-03-13 20:33:34 +0100 (Thu, 13 Mar 2008) | 1 line
Simplify the nlargest() code using heappushpop().
........
r61371 | brett.cannon | 2008-03-13 21:27:00 +0100 (Thu, 13 Mar 2008) | 4 lines
Move test_thread over to unittest. Commits GHOP 237.
Thanks Benjamin Peterson for the patch.
........
r61372 | brett.cannon | 2008-03-13 21:33:10 +0100 (Thu, 13 Mar 2008) | 4 lines
Move test_tokenize to doctest.
Done as GHOP 238 by Josip Dzolonga.
........
r61373 | brett.cannon | 2008-03-13 21:47:41 +0100 (Thu, 13 Mar 2008) | 4 lines
Convert test_contains, test_crypt, and test_select to unittest.
Patch from GHOP 294 by David Marek.
........
r61374 | brett.cannon | 2008-03-13 22:02:16 +0100 (Thu, 13 Mar 2008) | 4 lines
Move test_gdbm to use unittest.
Closes issue #1960. Thanks Giampaolo Rodola.
........
r61375 | brett.cannon | 2008-03-13 22:09:28 +0100 (Thu, 13 Mar 2008) | 4 lines
Convert test_fcntl to unittest.
Closes issue #2055. Thanks Giampaolo Rodola.
........
r61376 | raymond.hettinger | 2008-03-14 06:03:44 +0100 (Fri, 14 Mar 2008) | 1 line
Leave heapreplace() unchanged.
........
r61378 | martin.v.loewis | 2008-03-14 14:56:09 +0100 (Fri, 14 Mar 2008) | 2 lines
Patch #2284: add -x64 option to rt.bat.
........
r61379 | martin.v.loewis | 2008-03-14 14:57:59 +0100 (Fri, 14 Mar 2008) | 2 lines
Use -x64 flag.
........
r61382 | brett.cannon | 2008-03-14 15:03:10 +0100 (Fri, 14 Mar 2008) | 2 lines
Remove a bad test.
........
r61383 | mark.dickinson | 2008-03-14 15:23:37 +0100 (Fri, 14 Mar 2008) | 9 lines
Issue 705836: Fix struct.pack(">f", 1e40) to behave consistently
across platforms: it should now raise OverflowError on all
platforms. (Previously it raised OverflowError only on
non IEEE 754 platforms.)
Also fix the (already existing) test for this behaviour
so that it actually raises TestFailed instead of just
referencing it.
........
r61387 | thomas.heller | 2008-03-14 22:06:21 +0100 (Fri, 14 Mar 2008) | 1 line
Remove unneeded initializer.
........
r61388 | martin.v.loewis | 2008-03-14 22:19:28 +0100 (Fri, 14 Mar 2008) | 2 lines
Run debug version, cd to PCbuild.
........
r61392 | georg.brandl | 2008-03-15 00:10:34 +0100 (Sat, 15 Mar 2008) | 2 lines
Remove obsolete paragraph. #2288.
........
r61395 | georg.brandl | 2008-03-15 01:20:19 +0100 (Sat, 15 Mar 2008) | 2 lines
Fix lots of broken links in the docs, found by Sphinx' external link checker.
........
r61396 | skip.montanaro | 2008-03-15 03:32:49 +0100 (Sat, 15 Mar 2008) | 1 line
note that fork and forkpty raise OSError on failure
........
r61402 | skip.montanaro | 2008-03-15 17:04:45 +0100 (Sat, 15 Mar 2008) | 1 line
add %f format to datetime - issue 1158
........
r61403 | skip.montanaro | 2008-03-15 17:07:11 +0100 (Sat, 15 Mar 2008) | 2 lines
.
........
2008-03-15 21:07:10 -03:00
|
|
|
int i, good_timetuple = 1;
|
|
|
|
long int ia[7];
|
|
|
|
if (PySequence_Check(obj) && PySequence_Size(obj) == 2) {
|
|
|
|
st = PySequence_GetItem(obj, 0);
|
|
|
|
frac = PySequence_GetItem(obj, 1);
|
|
|
|
if (st == NULL || frac == NULL)
|
|
|
|
good_timetuple = 0;
|
|
|
|
/* copy y/m/d/h/m/s values out of the
|
|
|
|
time.struct_time */
|
|
|
|
if (good_timetuple &&
|
|
|
|
PySequence_Check(st) &&
|
|
|
|
PySequence_Size(st) >= 6) {
|
|
|
|
for (i=0; i < 6; i++) {
|
|
|
|
PyObject *p = PySequence_GetItem(st, i);
|
|
|
|
if (p == NULL) {
|
|
|
|
good_timetuple = 0;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
if (PyLong_Check(p))
|
|
|
|
ia[i] = PyLong_AsLong(p);
|
|
|
|
else
|
|
|
|
good_timetuple = 0;
|
|
|
|
Py_DECREF(p);
|
2006-04-21 07:40:58 -03:00
|
|
|
}
|
Merged revisions 61239-61249,61252-61257,61260-61264,61269-61275,61278-61279,61285-61286,61288-61290,61298,61303-61305,61312-61314,61317,61329,61332,61344,61350-61351,61363-61376,61378-61379,61382-61383,61387-61388,61392,61395-61396,61402-61403 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r61239 | andrew.kuchling | 2008-03-05 01:44:41 +0100 (Wed, 05 Mar 2008) | 1 line
Add more items; add fragmentary notes
........
r61240 | amaury.forgeotdarc | 2008-03-05 02:50:33 +0100 (Wed, 05 Mar 2008) | 13 lines
Issue#2238: some syntax errors from *args or **kwargs expressions
would give bogus error messages, because of untested exceptions::
>>> f(**g(1=2))
XXX undetected error
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is not iterable
instead of the expected SyntaxError: keyword can't be an expression
Will backport.
........
r61241 | neal.norwitz | 2008-03-05 06:10:48 +0100 (Wed, 05 Mar 2008) | 3 lines
Remove the files/dirs after closing the DB so the tests work on Windows.
Patch from Trent Nelson. Also simplified removing a file by using test_support.
........
r61242 | neal.norwitz | 2008-03-05 06:14:18 +0100 (Wed, 05 Mar 2008) | 3 lines
Get this test to pass even when there is no sound card in the system.
Patch from Trent Nelson. (I can't test this.)
........
r61243 | neal.norwitz | 2008-03-05 06:20:44 +0100 (Wed, 05 Mar 2008) | 3 lines
Catch OSError when trying to remove a file in case removal fails. This
should prevent a failure in tearDown masking any real test failure.
........
r61244 | neal.norwitz | 2008-03-05 06:38:06 +0100 (Wed, 05 Mar 2008) | 5 lines
Make the timeout longer to give slow machines a chance to pass the test
before timing out. This doesn't change the duration of the test under
normal circumstances. This is targetted at fixing the spurious failures
on the FreeBSD buildbot primarily.
........
r61245 | neal.norwitz | 2008-03-05 06:49:03 +0100 (Wed, 05 Mar 2008) | 1 line
Tabs -> spaces
........
r61246 | neal.norwitz | 2008-03-05 06:50:20 +0100 (Wed, 05 Mar 2008) | 1 line
Use -u urlfetch to run more tests
........
r61247 | neal.norwitz | 2008-03-05 06:51:20 +0100 (Wed, 05 Mar 2008) | 1 line
test_smtplib sometimes reports leaks too, suppress it
........
r61248 | jeffrey.yasskin | 2008-03-05 07:19:56 +0100 (Wed, 05 Mar 2008) | 5 lines
Fix test_socketserver on Windows after r61099 added several signal.alarm()
calls (which don't exist on non-Unix platforms).
Thanks to Trent Nelson for the report and patch.
........
r61249 | georg.brandl | 2008-03-05 08:10:35 +0100 (Wed, 05 Mar 2008) | 2 lines
Fix some rst.
........
r61252 | thomas.heller | 2008-03-05 15:53:39 +0100 (Wed, 05 Mar 2008) | 2 lines
News entry for yesterdays commit.
........
r61253 | thomas.heller | 2008-03-05 16:34:29 +0100 (Wed, 05 Mar 2008) | 3 lines
Issue 1872: Changed the struct module typecode from 't' to '?', for
compatibility with PEP3118.
........
r61254 | skip.montanaro | 2008-03-05 17:41:09 +0100 (Wed, 05 Mar 2008) | 4 lines
Elaborate on the role of the altinstall target when installing multiple
versions.
........
r61255 | georg.brandl | 2008-03-05 20:31:44 +0100 (Wed, 05 Mar 2008) | 2 lines
#2239: PYTHONPATH delimiter is os.pathsep.
........
r61256 | raymond.hettinger | 2008-03-05 21:59:58 +0100 (Wed, 05 Mar 2008) | 1 line
C implementation of itertools.permutations().
........
r61257 | raymond.hettinger | 2008-03-05 22:04:32 +0100 (Wed, 05 Mar 2008) | 1 line
Small code cleanup.
........
r61260 | martin.v.loewis | 2008-03-05 23:24:31 +0100 (Wed, 05 Mar 2008) | 2 lines
cd PCbuild only after deleting all pyc files.
........
r61261 | raymond.hettinger | 2008-03-06 02:15:52 +0100 (Thu, 06 Mar 2008) | 1 line
Add examples.
........
r61262 | andrew.kuchling | 2008-03-06 02:36:27 +0100 (Thu, 06 Mar 2008) | 1 line
Add two items
........
r61263 | georg.brandl | 2008-03-06 07:47:18 +0100 (Thu, 06 Mar 2008) | 2 lines
#1725737: ignore other VC directories other than CVS and SVN's too.
........
r61264 | martin.v.loewis | 2008-03-06 07:55:22 +0100 (Thu, 06 Mar 2008) | 4 lines
Patch #2232: os.tmpfile might fail on Windows if the user has no
permission to create files in the root directory.
Will backport to 2.5.
........
r61269 | georg.brandl | 2008-03-06 08:19:15 +0100 (Thu, 06 Mar 2008) | 2 lines
Expand on re.split behavior with captured expressions.
........
r61270 | georg.brandl | 2008-03-06 08:22:09 +0100 (Thu, 06 Mar 2008) | 2 lines
Little clarification of assignments.
........
r61271 | georg.brandl | 2008-03-06 08:31:34 +0100 (Thu, 06 Mar 2008) | 2 lines
Add isinstance/issubclass to tutorial.
........
r61272 | georg.brandl | 2008-03-06 08:34:52 +0100 (Thu, 06 Mar 2008) | 2 lines
Add missing NEWS entry for r61263.
........
r61273 | georg.brandl | 2008-03-06 08:41:16 +0100 (Thu, 06 Mar 2008) | 2 lines
#2225: return nonzero status code from py_compile if not all files could be compiled.
........
r61274 | georg.brandl | 2008-03-06 08:43:02 +0100 (Thu, 06 Mar 2008) | 2 lines
#2220: handle matching failure more gracefully.
........
r61275 | georg.brandl | 2008-03-06 08:45:52 +0100 (Thu, 06 Mar 2008) | 2 lines
Bug #2220: handle rlcompleter attribute match failure more gracefully.
........
r61278 | martin.v.loewis | 2008-03-06 14:49:47 +0100 (Thu, 06 Mar 2008) | 1 line
Rely on x64 platform configuration when building _bsddb on AMD64.
........
r61279 | martin.v.loewis | 2008-03-06 14:50:28 +0100 (Thu, 06 Mar 2008) | 1 line
Update db-4.4.20 build procedure.
........
r61285 | raymond.hettinger | 2008-03-06 21:52:01 +0100 (Thu, 06 Mar 2008) | 1 line
More tests.
........
r61286 | raymond.hettinger | 2008-03-06 23:51:36 +0100 (Thu, 06 Mar 2008) | 1 line
Issue 2246: itertools grouper object did not participate in GC (should be backported).
........
r61288 | raymond.hettinger | 2008-03-07 02:33:20 +0100 (Fri, 07 Mar 2008) | 1 line
Tweak recipes and tests
........
r61289 | jeffrey.yasskin | 2008-03-07 07:22:15 +0100 (Fri, 07 Mar 2008) | 5 lines
Progress on issue #1193577 by adding a polling .shutdown() method to
SocketServers. The core of the patch was written by Pedro Werneck, but any bugs
are mine. I've also rearranged the code for timeouts in order to avoid
interfering with the shutdown poll.
........
r61290 | nick.coghlan | 2008-03-07 15:13:28 +0100 (Fri, 07 Mar 2008) | 1 line
Speed up with statements by storing the __exit__ method on the stack instead of in a temp variable (bumps the magic number for pyc files)
........
r61298 | andrew.kuchling | 2008-03-07 22:09:23 +0100 (Fri, 07 Mar 2008) | 1 line
Grammar fix
........
r61303 | georg.brandl | 2008-03-08 10:54:06 +0100 (Sat, 08 Mar 2008) | 2 lines
#2253: fix continue vs. finally docs.
........
r61304 | marc-andre.lemburg | 2008-03-08 11:01:43 +0100 (Sat, 08 Mar 2008) | 3 lines
Add new name for Mandrake: Mandriva.
........
r61305 | georg.brandl | 2008-03-08 11:05:24 +0100 (Sat, 08 Mar 2008) | 2 lines
#1533486: fix types in refcount intro.
........
r61312 | facundo.batista | 2008-03-08 17:50:27 +0100 (Sat, 08 Mar 2008) | 5 lines
Issue 1106316. post_mortem()'s parameter, traceback, is now
optional: it defaults to the traceback of the exception that is currently
being handled.
........
r61313 | jeffrey.yasskin | 2008-03-08 19:26:54 +0100 (Sat, 08 Mar 2008) | 2 lines
Add tests for with and finally performance to pybench.
........
r61314 | jeffrey.yasskin | 2008-03-08 21:08:21 +0100 (Sat, 08 Mar 2008) | 2 lines
Fix pybench for pythons < 2.6, tested back to 2.3.
........
r61317 | jeffrey.yasskin | 2008-03-08 22:35:15 +0100 (Sat, 08 Mar 2008) | 3 lines
Well that was dumb. platform.python_implementation returns a function, not a
string.
........
r61329 | georg.brandl | 2008-03-09 16:11:39 +0100 (Sun, 09 Mar 2008) | 2 lines
#2249: document assertTrue and assertFalse.
........
r61332 | neal.norwitz | 2008-03-09 20:03:42 +0100 (Sun, 09 Mar 2008) | 4 lines
Introduce a lock to fix a race condition which caused an exception in the test.
Some buildbots were consistently failing (e.g., amd64).
Also remove a couple of semi-colons.
........
r61344 | raymond.hettinger | 2008-03-11 01:19:07 +0100 (Tue, 11 Mar 2008) | 1 line
Add recipe to docs.
........
r61350 | guido.van.rossum | 2008-03-11 22:18:06 +0100 (Tue, 11 Mar 2008) | 3 lines
Fix the overflows in expandtabs(). "This time for sure!"
(Exploit at request.)
........
r61351 | raymond.hettinger | 2008-03-11 22:37:46 +0100 (Tue, 11 Mar 2008) | 1 line
Improve docs for itemgetter(). Show that it works with slices.
........
r61363 | georg.brandl | 2008-03-13 08:15:56 +0100 (Thu, 13 Mar 2008) | 2 lines
#2265: fix example.
........
r61364 | georg.brandl | 2008-03-13 08:17:14 +0100 (Thu, 13 Mar 2008) | 2 lines
#2270: fix typo.
........
r61365 | georg.brandl | 2008-03-13 08:21:41 +0100 (Thu, 13 Mar 2008) | 2 lines
#1720705: add docs about import/threading interaction, wording by Nick.
........
r61366 | andrew.kuchling | 2008-03-13 12:07:35 +0100 (Thu, 13 Mar 2008) | 1 line
Add class decorators
........
r61367 | raymond.hettinger | 2008-03-13 17:43:17 +0100 (Thu, 13 Mar 2008) | 1 line
Add 2-to-3 support for the itertools moved to builtins or renamed.
........
r61368 | raymond.hettinger | 2008-03-13 17:43:59 +0100 (Thu, 13 Mar 2008) | 1 line
Consistent tense.
........
r61369 | raymond.hettinger | 2008-03-13 20:03:51 +0100 (Thu, 13 Mar 2008) | 1 line
Issue 2274: Add heapq.heappushpop().
........
r61370 | raymond.hettinger | 2008-03-13 20:33:34 +0100 (Thu, 13 Mar 2008) | 1 line
Simplify the nlargest() code using heappushpop().
........
r61371 | brett.cannon | 2008-03-13 21:27:00 +0100 (Thu, 13 Mar 2008) | 4 lines
Move test_thread over to unittest. Commits GHOP 237.
Thanks Benjamin Peterson for the patch.
........
r61372 | brett.cannon | 2008-03-13 21:33:10 +0100 (Thu, 13 Mar 2008) | 4 lines
Move test_tokenize to doctest.
Done as GHOP 238 by Josip Dzolonga.
........
r61373 | brett.cannon | 2008-03-13 21:47:41 +0100 (Thu, 13 Mar 2008) | 4 lines
Convert test_contains, test_crypt, and test_select to unittest.
Patch from GHOP 294 by David Marek.
........
r61374 | brett.cannon | 2008-03-13 22:02:16 +0100 (Thu, 13 Mar 2008) | 4 lines
Move test_gdbm to use unittest.
Closes issue #1960. Thanks Giampaolo Rodola.
........
r61375 | brett.cannon | 2008-03-13 22:09:28 +0100 (Thu, 13 Mar 2008) | 4 lines
Convert test_fcntl to unittest.
Closes issue #2055. Thanks Giampaolo Rodola.
........
r61376 | raymond.hettinger | 2008-03-14 06:03:44 +0100 (Fri, 14 Mar 2008) | 1 line
Leave heapreplace() unchanged.
........
r61378 | martin.v.loewis | 2008-03-14 14:56:09 +0100 (Fri, 14 Mar 2008) | 2 lines
Patch #2284: add -x64 option to rt.bat.
........
r61379 | martin.v.loewis | 2008-03-14 14:57:59 +0100 (Fri, 14 Mar 2008) | 2 lines
Use -x64 flag.
........
r61382 | brett.cannon | 2008-03-14 15:03:10 +0100 (Fri, 14 Mar 2008) | 2 lines
Remove a bad test.
........
r61383 | mark.dickinson | 2008-03-14 15:23:37 +0100 (Fri, 14 Mar 2008) | 9 lines
Issue 705836: Fix struct.pack(">f", 1e40) to behave consistently
across platforms: it should now raise OverflowError on all
platforms. (Previously it raised OverflowError only on
non IEEE 754 platforms.)
Also fix the (already existing) test for this behaviour
so that it actually raises TestFailed instead of just
referencing it.
........
r61387 | thomas.heller | 2008-03-14 22:06:21 +0100 (Fri, 14 Mar 2008) | 1 line
Remove unneeded initializer.
........
r61388 | martin.v.loewis | 2008-03-14 22:19:28 +0100 (Fri, 14 Mar 2008) | 2 lines
Run debug version, cd to PCbuild.
........
r61392 | georg.brandl | 2008-03-15 00:10:34 +0100 (Sat, 15 Mar 2008) | 2 lines
Remove obsolete paragraph. #2288.
........
r61395 | georg.brandl | 2008-03-15 01:20:19 +0100 (Sat, 15 Mar 2008) | 2 lines
Fix lots of broken links in the docs, found by Sphinx' external link checker.
........
r61396 | skip.montanaro | 2008-03-15 03:32:49 +0100 (Sat, 15 Mar 2008) | 1 line
note that fork and forkpty raise OSError on failure
........
r61402 | skip.montanaro | 2008-03-15 17:04:45 +0100 (Sat, 15 Mar 2008) | 1 line
add %f format to datetime - issue 1158
........
r61403 | skip.montanaro | 2008-03-15 17:07:11 +0100 (Sat, 15 Mar 2008) | 2 lines
.
........
2008-03-15 21:07:10 -03:00
|
|
|
/* if (PyLong_CheckExact(p)) {
|
2007-12-04 18:10:37 -04:00
|
|
|
ia[i] = PyLong_AsLongAndOverflow(p, &overflow);
|
|
|
|
if (overflow)
|
|
|
|
good_timetuple = 0;
|
|
|
|
}
|
2005-01-13 00:12:31 -04:00
|
|
|
else
|
|
|
|
good_timetuple = 0;
|
|
|
|
Py_DECREF(p);
|
Merged revisions 61239-61249,61252-61257,61260-61264,61269-61275,61278-61279,61285-61286,61288-61290,61298,61303-61305,61312-61314,61317,61329,61332,61344,61350-61351,61363-61376,61378-61379,61382-61383,61387-61388,61392,61395-61396,61402-61403 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r61239 | andrew.kuchling | 2008-03-05 01:44:41 +0100 (Wed, 05 Mar 2008) | 1 line
Add more items; add fragmentary notes
........
r61240 | amaury.forgeotdarc | 2008-03-05 02:50:33 +0100 (Wed, 05 Mar 2008) | 13 lines
Issue#2238: some syntax errors from *args or **kwargs expressions
would give bogus error messages, because of untested exceptions::
>>> f(**g(1=2))
XXX undetected error
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is not iterable
instead of the expected SyntaxError: keyword can't be an expression
Will backport.
........
r61241 | neal.norwitz | 2008-03-05 06:10:48 +0100 (Wed, 05 Mar 2008) | 3 lines
Remove the files/dirs after closing the DB so the tests work on Windows.
Patch from Trent Nelson. Also simplified removing a file by using test_support.
........
r61242 | neal.norwitz | 2008-03-05 06:14:18 +0100 (Wed, 05 Mar 2008) | 3 lines
Get this test to pass even when there is no sound card in the system.
Patch from Trent Nelson. (I can't test this.)
........
r61243 | neal.norwitz | 2008-03-05 06:20:44 +0100 (Wed, 05 Mar 2008) | 3 lines
Catch OSError when trying to remove a file in case removal fails. This
should prevent a failure in tearDown masking any real test failure.
........
r61244 | neal.norwitz | 2008-03-05 06:38:06 +0100 (Wed, 05 Mar 2008) | 5 lines
Make the timeout longer to give slow machines a chance to pass the test
before timing out. This doesn't change the duration of the test under
normal circumstances. This is targetted at fixing the spurious failures
on the FreeBSD buildbot primarily.
........
r61245 | neal.norwitz | 2008-03-05 06:49:03 +0100 (Wed, 05 Mar 2008) | 1 line
Tabs -> spaces
........
r61246 | neal.norwitz | 2008-03-05 06:50:20 +0100 (Wed, 05 Mar 2008) | 1 line
Use -u urlfetch to run more tests
........
r61247 | neal.norwitz | 2008-03-05 06:51:20 +0100 (Wed, 05 Mar 2008) | 1 line
test_smtplib sometimes reports leaks too, suppress it
........
r61248 | jeffrey.yasskin | 2008-03-05 07:19:56 +0100 (Wed, 05 Mar 2008) | 5 lines
Fix test_socketserver on Windows after r61099 added several signal.alarm()
calls (which don't exist on non-Unix platforms).
Thanks to Trent Nelson for the report and patch.
........
r61249 | georg.brandl | 2008-03-05 08:10:35 +0100 (Wed, 05 Mar 2008) | 2 lines
Fix some rst.
........
r61252 | thomas.heller | 2008-03-05 15:53:39 +0100 (Wed, 05 Mar 2008) | 2 lines
News entry for yesterdays commit.
........
r61253 | thomas.heller | 2008-03-05 16:34:29 +0100 (Wed, 05 Mar 2008) | 3 lines
Issue 1872: Changed the struct module typecode from 't' to '?', for
compatibility with PEP3118.
........
r61254 | skip.montanaro | 2008-03-05 17:41:09 +0100 (Wed, 05 Mar 2008) | 4 lines
Elaborate on the role of the altinstall target when installing multiple
versions.
........
r61255 | georg.brandl | 2008-03-05 20:31:44 +0100 (Wed, 05 Mar 2008) | 2 lines
#2239: PYTHONPATH delimiter is os.pathsep.
........
r61256 | raymond.hettinger | 2008-03-05 21:59:58 +0100 (Wed, 05 Mar 2008) | 1 line
C implementation of itertools.permutations().
........
r61257 | raymond.hettinger | 2008-03-05 22:04:32 +0100 (Wed, 05 Mar 2008) | 1 line
Small code cleanup.
........
r61260 | martin.v.loewis | 2008-03-05 23:24:31 +0100 (Wed, 05 Mar 2008) | 2 lines
cd PCbuild only after deleting all pyc files.
........
r61261 | raymond.hettinger | 2008-03-06 02:15:52 +0100 (Thu, 06 Mar 2008) | 1 line
Add examples.
........
r61262 | andrew.kuchling | 2008-03-06 02:36:27 +0100 (Thu, 06 Mar 2008) | 1 line
Add two items
........
r61263 | georg.brandl | 2008-03-06 07:47:18 +0100 (Thu, 06 Mar 2008) | 2 lines
#1725737: ignore other VC directories other than CVS and SVN's too.
........
r61264 | martin.v.loewis | 2008-03-06 07:55:22 +0100 (Thu, 06 Mar 2008) | 4 lines
Patch #2232: os.tmpfile might fail on Windows if the user has no
permission to create files in the root directory.
Will backport to 2.5.
........
r61269 | georg.brandl | 2008-03-06 08:19:15 +0100 (Thu, 06 Mar 2008) | 2 lines
Expand on re.split behavior with captured expressions.
........
r61270 | georg.brandl | 2008-03-06 08:22:09 +0100 (Thu, 06 Mar 2008) | 2 lines
Little clarification of assignments.
........
r61271 | georg.brandl | 2008-03-06 08:31:34 +0100 (Thu, 06 Mar 2008) | 2 lines
Add isinstance/issubclass to tutorial.
........
r61272 | georg.brandl | 2008-03-06 08:34:52 +0100 (Thu, 06 Mar 2008) | 2 lines
Add missing NEWS entry for r61263.
........
r61273 | georg.brandl | 2008-03-06 08:41:16 +0100 (Thu, 06 Mar 2008) | 2 lines
#2225: return nonzero status code from py_compile if not all files could be compiled.
........
r61274 | georg.brandl | 2008-03-06 08:43:02 +0100 (Thu, 06 Mar 2008) | 2 lines
#2220: handle matching failure more gracefully.
........
r61275 | georg.brandl | 2008-03-06 08:45:52 +0100 (Thu, 06 Mar 2008) | 2 lines
Bug #2220: handle rlcompleter attribute match failure more gracefully.
........
r61278 | martin.v.loewis | 2008-03-06 14:49:47 +0100 (Thu, 06 Mar 2008) | 1 line
Rely on x64 platform configuration when building _bsddb on AMD64.
........
r61279 | martin.v.loewis | 2008-03-06 14:50:28 +0100 (Thu, 06 Mar 2008) | 1 line
Update db-4.4.20 build procedure.
........
r61285 | raymond.hettinger | 2008-03-06 21:52:01 +0100 (Thu, 06 Mar 2008) | 1 line
More tests.
........
r61286 | raymond.hettinger | 2008-03-06 23:51:36 +0100 (Thu, 06 Mar 2008) | 1 line
Issue 2246: itertools grouper object did not participate in GC (should be backported).
........
r61288 | raymond.hettinger | 2008-03-07 02:33:20 +0100 (Fri, 07 Mar 2008) | 1 line
Tweak recipes and tests
........
r61289 | jeffrey.yasskin | 2008-03-07 07:22:15 +0100 (Fri, 07 Mar 2008) | 5 lines
Progress on issue #1193577 by adding a polling .shutdown() method to
SocketServers. The core of the patch was written by Pedro Werneck, but any bugs
are mine. I've also rearranged the code for timeouts in order to avoid
interfering with the shutdown poll.
........
r61290 | nick.coghlan | 2008-03-07 15:13:28 +0100 (Fri, 07 Mar 2008) | 1 line
Speed up with statements by storing the __exit__ method on the stack instead of in a temp variable (bumps the magic number for pyc files)
........
r61298 | andrew.kuchling | 2008-03-07 22:09:23 +0100 (Fri, 07 Mar 2008) | 1 line
Grammar fix
........
r61303 | georg.brandl | 2008-03-08 10:54:06 +0100 (Sat, 08 Mar 2008) | 2 lines
#2253: fix continue vs. finally docs.
........
r61304 | marc-andre.lemburg | 2008-03-08 11:01:43 +0100 (Sat, 08 Mar 2008) | 3 lines
Add new name for Mandrake: Mandriva.
........
r61305 | georg.brandl | 2008-03-08 11:05:24 +0100 (Sat, 08 Mar 2008) | 2 lines
#1533486: fix types in refcount intro.
........
r61312 | facundo.batista | 2008-03-08 17:50:27 +0100 (Sat, 08 Mar 2008) | 5 lines
Issue 1106316. post_mortem()'s parameter, traceback, is now
optional: it defaults to the traceback of the exception that is currently
being handled.
........
r61313 | jeffrey.yasskin | 2008-03-08 19:26:54 +0100 (Sat, 08 Mar 2008) | 2 lines
Add tests for with and finally performance to pybench.
........
r61314 | jeffrey.yasskin | 2008-03-08 21:08:21 +0100 (Sat, 08 Mar 2008) | 2 lines
Fix pybench for pythons < 2.6, tested back to 2.3.
........
r61317 | jeffrey.yasskin | 2008-03-08 22:35:15 +0100 (Sat, 08 Mar 2008) | 3 lines
Well that was dumb. platform.python_implementation returns a function, not a
string.
........
r61329 | georg.brandl | 2008-03-09 16:11:39 +0100 (Sun, 09 Mar 2008) | 2 lines
#2249: document assertTrue and assertFalse.
........
r61332 | neal.norwitz | 2008-03-09 20:03:42 +0100 (Sun, 09 Mar 2008) | 4 lines
Introduce a lock to fix a race condition which caused an exception in the test.
Some buildbots were consistently failing (e.g., amd64).
Also remove a couple of semi-colons.
........
r61344 | raymond.hettinger | 2008-03-11 01:19:07 +0100 (Tue, 11 Mar 2008) | 1 line
Add recipe to docs.
........
r61350 | guido.van.rossum | 2008-03-11 22:18:06 +0100 (Tue, 11 Mar 2008) | 3 lines
Fix the overflows in expandtabs(). "This time for sure!"
(Exploit at request.)
........
r61351 | raymond.hettinger | 2008-03-11 22:37:46 +0100 (Tue, 11 Mar 2008) | 1 line
Improve docs for itemgetter(). Show that it works with slices.
........
r61363 | georg.brandl | 2008-03-13 08:15:56 +0100 (Thu, 13 Mar 2008) | 2 lines
#2265: fix example.
........
r61364 | georg.brandl | 2008-03-13 08:17:14 +0100 (Thu, 13 Mar 2008) | 2 lines
#2270: fix typo.
........
r61365 | georg.brandl | 2008-03-13 08:21:41 +0100 (Thu, 13 Mar 2008) | 2 lines
#1720705: add docs about import/threading interaction, wording by Nick.
........
r61366 | andrew.kuchling | 2008-03-13 12:07:35 +0100 (Thu, 13 Mar 2008) | 1 line
Add class decorators
........
r61367 | raymond.hettinger | 2008-03-13 17:43:17 +0100 (Thu, 13 Mar 2008) | 1 line
Add 2-to-3 support for the itertools moved to builtins or renamed.
........
r61368 | raymond.hettinger | 2008-03-13 17:43:59 +0100 (Thu, 13 Mar 2008) | 1 line
Consistent tense.
........
r61369 | raymond.hettinger | 2008-03-13 20:03:51 +0100 (Thu, 13 Mar 2008) | 1 line
Issue 2274: Add heapq.heappushpop().
........
r61370 | raymond.hettinger | 2008-03-13 20:33:34 +0100 (Thu, 13 Mar 2008) | 1 line
Simplify the nlargest() code using heappushpop().
........
r61371 | brett.cannon | 2008-03-13 21:27:00 +0100 (Thu, 13 Mar 2008) | 4 lines
Move test_thread over to unittest. Commits GHOP 237.
Thanks Benjamin Peterson for the patch.
........
r61372 | brett.cannon | 2008-03-13 21:33:10 +0100 (Thu, 13 Mar 2008) | 4 lines
Move test_tokenize to doctest.
Done as GHOP 238 by Josip Dzolonga.
........
r61373 | brett.cannon | 2008-03-13 21:47:41 +0100 (Thu, 13 Mar 2008) | 4 lines
Convert test_contains, test_crypt, and test_select to unittest.
Patch from GHOP 294 by David Marek.
........
r61374 | brett.cannon | 2008-03-13 22:02:16 +0100 (Thu, 13 Mar 2008) | 4 lines
Move test_gdbm to use unittest.
Closes issue #1960. Thanks Giampaolo Rodola.
........
r61375 | brett.cannon | 2008-03-13 22:09:28 +0100 (Thu, 13 Mar 2008) | 4 lines
Convert test_fcntl to unittest.
Closes issue #2055. Thanks Giampaolo Rodola.
........
r61376 | raymond.hettinger | 2008-03-14 06:03:44 +0100 (Fri, 14 Mar 2008) | 1 line
Leave heapreplace() unchanged.
........
r61378 | martin.v.loewis | 2008-03-14 14:56:09 +0100 (Fri, 14 Mar 2008) | 2 lines
Patch #2284: add -x64 option to rt.bat.
........
r61379 | martin.v.loewis | 2008-03-14 14:57:59 +0100 (Fri, 14 Mar 2008) | 2 lines
Use -x64 flag.
........
r61382 | brett.cannon | 2008-03-14 15:03:10 +0100 (Fri, 14 Mar 2008) | 2 lines
Remove a bad test.
........
r61383 | mark.dickinson | 2008-03-14 15:23:37 +0100 (Fri, 14 Mar 2008) | 9 lines
Issue 705836: Fix struct.pack(">f", 1e40) to behave consistently
across platforms: it should now raise OverflowError on all
platforms. (Previously it raised OverflowError only on
non IEEE 754 platforms.)
Also fix the (already existing) test for this behaviour
so that it actually raises TestFailed instead of just
referencing it.
........
r61387 | thomas.heller | 2008-03-14 22:06:21 +0100 (Fri, 14 Mar 2008) | 1 line
Remove unneeded initializer.
........
r61388 | martin.v.loewis | 2008-03-14 22:19:28 +0100 (Fri, 14 Mar 2008) | 2 lines
Run debug version, cd to PCbuild.
........
r61392 | georg.brandl | 2008-03-15 00:10:34 +0100 (Sat, 15 Mar 2008) | 2 lines
Remove obsolete paragraph. #2288.
........
r61395 | georg.brandl | 2008-03-15 01:20:19 +0100 (Sat, 15 Mar 2008) | 2 lines
Fix lots of broken links in the docs, found by Sphinx' external link checker.
........
r61396 | skip.montanaro | 2008-03-15 03:32:49 +0100 (Sat, 15 Mar 2008) | 1 line
note that fork and forkpty raise OSError on failure
........
r61402 | skip.montanaro | 2008-03-15 17:04:45 +0100 (Sat, 15 Mar 2008) | 1 line
add %f format to datetime - issue 1158
........
r61403 | skip.montanaro | 2008-03-15 17:07:11 +0100 (Sat, 15 Mar 2008) | 2 lines
.
........
2008-03-15 21:07:10 -03:00
|
|
|
*/ }
|
|
|
|
else
|
|
|
|
good_timetuple = 0;
|
|
|
|
/* follow that up with a little dose of microseconds */
|
|
|
|
if (PyLong_Check(frac))
|
|
|
|
ia[6] = PyLong_AsLong(frac);
|
|
|
|
else
|
|
|
|
good_timetuple = 0;
|
|
|
|
}
|
2005-01-13 00:12:31 -04:00
|
|
|
else
|
|
|
|
good_timetuple = 0;
|
|
|
|
if (good_timetuple)
|
Merged revisions 61239-61249,61252-61257,61260-61264,61269-61275,61278-61279,61285-61286,61288-61290,61298,61303-61305,61312-61314,61317,61329,61332,61344,61350-61351,61363-61376,61378-61379,61382-61383,61387-61388,61392,61395-61396,61402-61403 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r61239 | andrew.kuchling | 2008-03-05 01:44:41 +0100 (Wed, 05 Mar 2008) | 1 line
Add more items; add fragmentary notes
........
r61240 | amaury.forgeotdarc | 2008-03-05 02:50:33 +0100 (Wed, 05 Mar 2008) | 13 lines
Issue#2238: some syntax errors from *args or **kwargs expressions
would give bogus error messages, because of untested exceptions::
>>> f(**g(1=2))
XXX undetected error
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is not iterable
instead of the expected SyntaxError: keyword can't be an expression
Will backport.
........
r61241 | neal.norwitz | 2008-03-05 06:10:48 +0100 (Wed, 05 Mar 2008) | 3 lines
Remove the files/dirs after closing the DB so the tests work on Windows.
Patch from Trent Nelson. Also simplified removing a file by using test_support.
........
r61242 | neal.norwitz | 2008-03-05 06:14:18 +0100 (Wed, 05 Mar 2008) | 3 lines
Get this test to pass even when there is no sound card in the system.
Patch from Trent Nelson. (I can't test this.)
........
r61243 | neal.norwitz | 2008-03-05 06:20:44 +0100 (Wed, 05 Mar 2008) | 3 lines
Catch OSError when trying to remove a file in case removal fails. This
should prevent a failure in tearDown masking any real test failure.
........
r61244 | neal.norwitz | 2008-03-05 06:38:06 +0100 (Wed, 05 Mar 2008) | 5 lines
Make the timeout longer to give slow machines a chance to pass the test
before timing out. This doesn't change the duration of the test under
normal circumstances. This is targetted at fixing the spurious failures
on the FreeBSD buildbot primarily.
........
r61245 | neal.norwitz | 2008-03-05 06:49:03 +0100 (Wed, 05 Mar 2008) | 1 line
Tabs -> spaces
........
r61246 | neal.norwitz | 2008-03-05 06:50:20 +0100 (Wed, 05 Mar 2008) | 1 line
Use -u urlfetch to run more tests
........
r61247 | neal.norwitz | 2008-03-05 06:51:20 +0100 (Wed, 05 Mar 2008) | 1 line
test_smtplib sometimes reports leaks too, suppress it
........
r61248 | jeffrey.yasskin | 2008-03-05 07:19:56 +0100 (Wed, 05 Mar 2008) | 5 lines
Fix test_socketserver on Windows after r61099 added several signal.alarm()
calls (which don't exist on non-Unix platforms).
Thanks to Trent Nelson for the report and patch.
........
r61249 | georg.brandl | 2008-03-05 08:10:35 +0100 (Wed, 05 Mar 2008) | 2 lines
Fix some rst.
........
r61252 | thomas.heller | 2008-03-05 15:53:39 +0100 (Wed, 05 Mar 2008) | 2 lines
News entry for yesterdays commit.
........
r61253 | thomas.heller | 2008-03-05 16:34:29 +0100 (Wed, 05 Mar 2008) | 3 lines
Issue 1872: Changed the struct module typecode from 't' to '?', for
compatibility with PEP3118.
........
r61254 | skip.montanaro | 2008-03-05 17:41:09 +0100 (Wed, 05 Mar 2008) | 4 lines
Elaborate on the role of the altinstall target when installing multiple
versions.
........
r61255 | georg.brandl | 2008-03-05 20:31:44 +0100 (Wed, 05 Mar 2008) | 2 lines
#2239: PYTHONPATH delimiter is os.pathsep.
........
r61256 | raymond.hettinger | 2008-03-05 21:59:58 +0100 (Wed, 05 Mar 2008) | 1 line
C implementation of itertools.permutations().
........
r61257 | raymond.hettinger | 2008-03-05 22:04:32 +0100 (Wed, 05 Mar 2008) | 1 line
Small code cleanup.
........
r61260 | martin.v.loewis | 2008-03-05 23:24:31 +0100 (Wed, 05 Mar 2008) | 2 lines
cd PCbuild only after deleting all pyc files.
........
r61261 | raymond.hettinger | 2008-03-06 02:15:52 +0100 (Thu, 06 Mar 2008) | 1 line
Add examples.
........
r61262 | andrew.kuchling | 2008-03-06 02:36:27 +0100 (Thu, 06 Mar 2008) | 1 line
Add two items
........
r61263 | georg.brandl | 2008-03-06 07:47:18 +0100 (Thu, 06 Mar 2008) | 2 lines
#1725737: ignore other VC directories other than CVS and SVN's too.
........
r61264 | martin.v.loewis | 2008-03-06 07:55:22 +0100 (Thu, 06 Mar 2008) | 4 lines
Patch #2232: os.tmpfile might fail on Windows if the user has no
permission to create files in the root directory.
Will backport to 2.5.
........
r61269 | georg.brandl | 2008-03-06 08:19:15 +0100 (Thu, 06 Mar 2008) | 2 lines
Expand on re.split behavior with captured expressions.
........
r61270 | georg.brandl | 2008-03-06 08:22:09 +0100 (Thu, 06 Mar 2008) | 2 lines
Little clarification of assignments.
........
r61271 | georg.brandl | 2008-03-06 08:31:34 +0100 (Thu, 06 Mar 2008) | 2 lines
Add isinstance/issubclass to tutorial.
........
r61272 | georg.brandl | 2008-03-06 08:34:52 +0100 (Thu, 06 Mar 2008) | 2 lines
Add missing NEWS entry for r61263.
........
r61273 | georg.brandl | 2008-03-06 08:41:16 +0100 (Thu, 06 Mar 2008) | 2 lines
#2225: return nonzero status code from py_compile if not all files could be compiled.
........
r61274 | georg.brandl | 2008-03-06 08:43:02 +0100 (Thu, 06 Mar 2008) | 2 lines
#2220: handle matching failure more gracefully.
........
r61275 | georg.brandl | 2008-03-06 08:45:52 +0100 (Thu, 06 Mar 2008) | 2 lines
Bug #2220: handle rlcompleter attribute match failure more gracefully.
........
r61278 | martin.v.loewis | 2008-03-06 14:49:47 +0100 (Thu, 06 Mar 2008) | 1 line
Rely on x64 platform configuration when building _bsddb on AMD64.
........
r61279 | martin.v.loewis | 2008-03-06 14:50:28 +0100 (Thu, 06 Mar 2008) | 1 line
Update db-4.4.20 build procedure.
........
r61285 | raymond.hettinger | 2008-03-06 21:52:01 +0100 (Thu, 06 Mar 2008) | 1 line
More tests.
........
r61286 | raymond.hettinger | 2008-03-06 23:51:36 +0100 (Thu, 06 Mar 2008) | 1 line
Issue 2246: itertools grouper object did not participate in GC (should be backported).
........
r61288 | raymond.hettinger | 2008-03-07 02:33:20 +0100 (Fri, 07 Mar 2008) | 1 line
Tweak recipes and tests
........
r61289 | jeffrey.yasskin | 2008-03-07 07:22:15 +0100 (Fri, 07 Mar 2008) | 5 lines
Progress on issue #1193577 by adding a polling .shutdown() method to
SocketServers. The core of the patch was written by Pedro Werneck, but any bugs
are mine. I've also rearranged the code for timeouts in order to avoid
interfering with the shutdown poll.
........
r61290 | nick.coghlan | 2008-03-07 15:13:28 +0100 (Fri, 07 Mar 2008) | 1 line
Speed up with statements by storing the __exit__ method on the stack instead of in a temp variable (bumps the magic number for pyc files)
........
r61298 | andrew.kuchling | 2008-03-07 22:09:23 +0100 (Fri, 07 Mar 2008) | 1 line
Grammar fix
........
r61303 | georg.brandl | 2008-03-08 10:54:06 +0100 (Sat, 08 Mar 2008) | 2 lines
#2253: fix continue vs. finally docs.
........
r61304 | marc-andre.lemburg | 2008-03-08 11:01:43 +0100 (Sat, 08 Mar 2008) | 3 lines
Add new name for Mandrake: Mandriva.
........
r61305 | georg.brandl | 2008-03-08 11:05:24 +0100 (Sat, 08 Mar 2008) | 2 lines
#1533486: fix types in refcount intro.
........
r61312 | facundo.batista | 2008-03-08 17:50:27 +0100 (Sat, 08 Mar 2008) | 5 lines
Issue 1106316. post_mortem()'s parameter, traceback, is now
optional: it defaults to the traceback of the exception that is currently
being handled.
........
r61313 | jeffrey.yasskin | 2008-03-08 19:26:54 +0100 (Sat, 08 Mar 2008) | 2 lines
Add tests for with and finally performance to pybench.
........
r61314 | jeffrey.yasskin | 2008-03-08 21:08:21 +0100 (Sat, 08 Mar 2008) | 2 lines
Fix pybench for pythons < 2.6, tested back to 2.3.
........
r61317 | jeffrey.yasskin | 2008-03-08 22:35:15 +0100 (Sat, 08 Mar 2008) | 3 lines
Well that was dumb. platform.python_implementation returns a function, not a
string.
........
r61329 | georg.brandl | 2008-03-09 16:11:39 +0100 (Sun, 09 Mar 2008) | 2 lines
#2249: document assertTrue and assertFalse.
........
r61332 | neal.norwitz | 2008-03-09 20:03:42 +0100 (Sun, 09 Mar 2008) | 4 lines
Introduce a lock to fix a race condition which caused an exception in the test.
Some buildbots were consistently failing (e.g., amd64).
Also remove a couple of semi-colons.
........
r61344 | raymond.hettinger | 2008-03-11 01:19:07 +0100 (Tue, 11 Mar 2008) | 1 line
Add recipe to docs.
........
r61350 | guido.van.rossum | 2008-03-11 22:18:06 +0100 (Tue, 11 Mar 2008) | 3 lines
Fix the overflows in expandtabs(). "This time for sure!"
(Exploit at request.)
........
r61351 | raymond.hettinger | 2008-03-11 22:37:46 +0100 (Tue, 11 Mar 2008) | 1 line
Improve docs for itemgetter(). Show that it works with slices.
........
r61363 | georg.brandl | 2008-03-13 08:15:56 +0100 (Thu, 13 Mar 2008) | 2 lines
#2265: fix example.
........
r61364 | georg.brandl | 2008-03-13 08:17:14 +0100 (Thu, 13 Mar 2008) | 2 lines
#2270: fix typo.
........
r61365 | georg.brandl | 2008-03-13 08:21:41 +0100 (Thu, 13 Mar 2008) | 2 lines
#1720705: add docs about import/threading interaction, wording by Nick.
........
r61366 | andrew.kuchling | 2008-03-13 12:07:35 +0100 (Thu, 13 Mar 2008) | 1 line
Add class decorators
........
r61367 | raymond.hettinger | 2008-03-13 17:43:17 +0100 (Thu, 13 Mar 2008) | 1 line
Add 2-to-3 support for the itertools moved to builtins or renamed.
........
r61368 | raymond.hettinger | 2008-03-13 17:43:59 +0100 (Thu, 13 Mar 2008) | 1 line
Consistent tense.
........
r61369 | raymond.hettinger | 2008-03-13 20:03:51 +0100 (Thu, 13 Mar 2008) | 1 line
Issue 2274: Add heapq.heappushpop().
........
r61370 | raymond.hettinger | 2008-03-13 20:33:34 +0100 (Thu, 13 Mar 2008) | 1 line
Simplify the nlargest() code using heappushpop().
........
r61371 | brett.cannon | 2008-03-13 21:27:00 +0100 (Thu, 13 Mar 2008) | 4 lines
Move test_thread over to unittest. Commits GHOP 237.
Thanks Benjamin Peterson for the patch.
........
r61372 | brett.cannon | 2008-03-13 21:33:10 +0100 (Thu, 13 Mar 2008) | 4 lines
Move test_tokenize to doctest.
Done as GHOP 238 by Josip Dzolonga.
........
r61373 | brett.cannon | 2008-03-13 21:47:41 +0100 (Thu, 13 Mar 2008) | 4 lines
Convert test_contains, test_crypt, and test_select to unittest.
Patch from GHOP 294 by David Marek.
........
r61374 | brett.cannon | 2008-03-13 22:02:16 +0100 (Thu, 13 Mar 2008) | 4 lines
Move test_gdbm to use unittest.
Closes issue #1960. Thanks Giampaolo Rodola.
........
r61375 | brett.cannon | 2008-03-13 22:09:28 +0100 (Thu, 13 Mar 2008) | 4 lines
Convert test_fcntl to unittest.
Closes issue #2055. Thanks Giampaolo Rodola.
........
r61376 | raymond.hettinger | 2008-03-14 06:03:44 +0100 (Fri, 14 Mar 2008) | 1 line
Leave heapreplace() unchanged.
........
r61378 | martin.v.loewis | 2008-03-14 14:56:09 +0100 (Fri, 14 Mar 2008) | 2 lines
Patch #2284: add -x64 option to rt.bat.
........
r61379 | martin.v.loewis | 2008-03-14 14:57:59 +0100 (Fri, 14 Mar 2008) | 2 lines
Use -x64 flag.
........
r61382 | brett.cannon | 2008-03-14 15:03:10 +0100 (Fri, 14 Mar 2008) | 2 lines
Remove a bad test.
........
r61383 | mark.dickinson | 2008-03-14 15:23:37 +0100 (Fri, 14 Mar 2008) | 9 lines
Issue 705836: Fix struct.pack(">f", 1e40) to behave consistently
across platforms: it should now raise OverflowError on all
platforms. (Previously it raised OverflowError only on
non IEEE 754 platforms.)
Also fix the (already existing) test for this behaviour
so that it actually raises TestFailed instead of just
referencing it.
........
r61387 | thomas.heller | 2008-03-14 22:06:21 +0100 (Fri, 14 Mar 2008) | 1 line
Remove unneeded initializer.
........
r61388 | martin.v.loewis | 2008-03-14 22:19:28 +0100 (Fri, 14 Mar 2008) | 2 lines
Run debug version, cd to PCbuild.
........
r61392 | georg.brandl | 2008-03-15 00:10:34 +0100 (Sat, 15 Mar 2008) | 2 lines
Remove obsolete paragraph. #2288.
........
r61395 | georg.brandl | 2008-03-15 01:20:19 +0100 (Sat, 15 Mar 2008) | 2 lines
Fix lots of broken links in the docs, found by Sphinx' external link checker.
........
r61396 | skip.montanaro | 2008-03-15 03:32:49 +0100 (Sat, 15 Mar 2008) | 1 line
note that fork and forkpty raise OSError on failure
........
r61402 | skip.montanaro | 2008-03-15 17:04:45 +0100 (Sat, 15 Mar 2008) | 1 line
add %f format to datetime - issue 1158
........
r61403 | skip.montanaro | 2008-03-15 17:07:11 +0100 (Sat, 15 Mar 2008) | 2 lines
.
........
2008-03-15 21:07:10 -03:00
|
|
|
result = PyObject_CallFunction(cls, "iiiiiii",
|
|
|
|
ia[0], ia[1], ia[2],
|
|
|
|
ia[3], ia[4], ia[5],
|
|
|
|
ia[6]);
|
2005-01-13 00:12:31 -04:00
|
|
|
else
|
|
|
|
PyErr_SetString(PyExc_ValueError,
|
Merged revisions 61239-61249,61252-61257,61260-61264,61269-61275,61278-61279,61285-61286,61288-61290,61298,61303-61305,61312-61314,61317,61329,61332,61344,61350-61351,61363-61376,61378-61379,61382-61383,61387-61388,61392,61395-61396,61402-61403 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r61239 | andrew.kuchling | 2008-03-05 01:44:41 +0100 (Wed, 05 Mar 2008) | 1 line
Add more items; add fragmentary notes
........
r61240 | amaury.forgeotdarc | 2008-03-05 02:50:33 +0100 (Wed, 05 Mar 2008) | 13 lines
Issue#2238: some syntax errors from *args or **kwargs expressions
would give bogus error messages, because of untested exceptions::
>>> f(**g(1=2))
XXX undetected error
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is not iterable
instead of the expected SyntaxError: keyword can't be an expression
Will backport.
........
r61241 | neal.norwitz | 2008-03-05 06:10:48 +0100 (Wed, 05 Mar 2008) | 3 lines
Remove the files/dirs after closing the DB so the tests work on Windows.
Patch from Trent Nelson. Also simplified removing a file by using test_support.
........
r61242 | neal.norwitz | 2008-03-05 06:14:18 +0100 (Wed, 05 Mar 2008) | 3 lines
Get this test to pass even when there is no sound card in the system.
Patch from Trent Nelson. (I can't test this.)
........
r61243 | neal.norwitz | 2008-03-05 06:20:44 +0100 (Wed, 05 Mar 2008) | 3 lines
Catch OSError when trying to remove a file in case removal fails. This
should prevent a failure in tearDown masking any real test failure.
........
r61244 | neal.norwitz | 2008-03-05 06:38:06 +0100 (Wed, 05 Mar 2008) | 5 lines
Make the timeout longer to give slow machines a chance to pass the test
before timing out. This doesn't change the duration of the test under
normal circumstances. This is targetted at fixing the spurious failures
on the FreeBSD buildbot primarily.
........
r61245 | neal.norwitz | 2008-03-05 06:49:03 +0100 (Wed, 05 Mar 2008) | 1 line
Tabs -> spaces
........
r61246 | neal.norwitz | 2008-03-05 06:50:20 +0100 (Wed, 05 Mar 2008) | 1 line
Use -u urlfetch to run more tests
........
r61247 | neal.norwitz | 2008-03-05 06:51:20 +0100 (Wed, 05 Mar 2008) | 1 line
test_smtplib sometimes reports leaks too, suppress it
........
r61248 | jeffrey.yasskin | 2008-03-05 07:19:56 +0100 (Wed, 05 Mar 2008) | 5 lines
Fix test_socketserver on Windows after r61099 added several signal.alarm()
calls (which don't exist on non-Unix platforms).
Thanks to Trent Nelson for the report and patch.
........
r61249 | georg.brandl | 2008-03-05 08:10:35 +0100 (Wed, 05 Mar 2008) | 2 lines
Fix some rst.
........
r61252 | thomas.heller | 2008-03-05 15:53:39 +0100 (Wed, 05 Mar 2008) | 2 lines
News entry for yesterdays commit.
........
r61253 | thomas.heller | 2008-03-05 16:34:29 +0100 (Wed, 05 Mar 2008) | 3 lines
Issue 1872: Changed the struct module typecode from 't' to '?', for
compatibility with PEP3118.
........
r61254 | skip.montanaro | 2008-03-05 17:41:09 +0100 (Wed, 05 Mar 2008) | 4 lines
Elaborate on the role of the altinstall target when installing multiple
versions.
........
r61255 | georg.brandl | 2008-03-05 20:31:44 +0100 (Wed, 05 Mar 2008) | 2 lines
#2239: PYTHONPATH delimiter is os.pathsep.
........
r61256 | raymond.hettinger | 2008-03-05 21:59:58 +0100 (Wed, 05 Mar 2008) | 1 line
C implementation of itertools.permutations().
........
r61257 | raymond.hettinger | 2008-03-05 22:04:32 +0100 (Wed, 05 Mar 2008) | 1 line
Small code cleanup.
........
r61260 | martin.v.loewis | 2008-03-05 23:24:31 +0100 (Wed, 05 Mar 2008) | 2 lines
cd PCbuild only after deleting all pyc files.
........
r61261 | raymond.hettinger | 2008-03-06 02:15:52 +0100 (Thu, 06 Mar 2008) | 1 line
Add examples.
........
r61262 | andrew.kuchling | 2008-03-06 02:36:27 +0100 (Thu, 06 Mar 2008) | 1 line
Add two items
........
r61263 | georg.brandl | 2008-03-06 07:47:18 +0100 (Thu, 06 Mar 2008) | 2 lines
#1725737: ignore other VC directories other than CVS and SVN's too.
........
r61264 | martin.v.loewis | 2008-03-06 07:55:22 +0100 (Thu, 06 Mar 2008) | 4 lines
Patch #2232: os.tmpfile might fail on Windows if the user has no
permission to create files in the root directory.
Will backport to 2.5.
........
r61269 | georg.brandl | 2008-03-06 08:19:15 +0100 (Thu, 06 Mar 2008) | 2 lines
Expand on re.split behavior with captured expressions.
........
r61270 | georg.brandl | 2008-03-06 08:22:09 +0100 (Thu, 06 Mar 2008) | 2 lines
Little clarification of assignments.
........
r61271 | georg.brandl | 2008-03-06 08:31:34 +0100 (Thu, 06 Mar 2008) | 2 lines
Add isinstance/issubclass to tutorial.
........
r61272 | georg.brandl | 2008-03-06 08:34:52 +0100 (Thu, 06 Mar 2008) | 2 lines
Add missing NEWS entry for r61263.
........
r61273 | georg.brandl | 2008-03-06 08:41:16 +0100 (Thu, 06 Mar 2008) | 2 lines
#2225: return nonzero status code from py_compile if not all files could be compiled.
........
r61274 | georg.brandl | 2008-03-06 08:43:02 +0100 (Thu, 06 Mar 2008) | 2 lines
#2220: handle matching failure more gracefully.
........
r61275 | georg.brandl | 2008-03-06 08:45:52 +0100 (Thu, 06 Mar 2008) | 2 lines
Bug #2220: handle rlcompleter attribute match failure more gracefully.
........
r61278 | martin.v.loewis | 2008-03-06 14:49:47 +0100 (Thu, 06 Mar 2008) | 1 line
Rely on x64 platform configuration when building _bsddb on AMD64.
........
r61279 | martin.v.loewis | 2008-03-06 14:50:28 +0100 (Thu, 06 Mar 2008) | 1 line
Update db-4.4.20 build procedure.
........
r61285 | raymond.hettinger | 2008-03-06 21:52:01 +0100 (Thu, 06 Mar 2008) | 1 line
More tests.
........
r61286 | raymond.hettinger | 2008-03-06 23:51:36 +0100 (Thu, 06 Mar 2008) | 1 line
Issue 2246: itertools grouper object did not participate in GC (should be backported).
........
r61288 | raymond.hettinger | 2008-03-07 02:33:20 +0100 (Fri, 07 Mar 2008) | 1 line
Tweak recipes and tests
........
r61289 | jeffrey.yasskin | 2008-03-07 07:22:15 +0100 (Fri, 07 Mar 2008) | 5 lines
Progress on issue #1193577 by adding a polling .shutdown() method to
SocketServers. The core of the patch was written by Pedro Werneck, but any bugs
are mine. I've also rearranged the code for timeouts in order to avoid
interfering with the shutdown poll.
........
r61290 | nick.coghlan | 2008-03-07 15:13:28 +0100 (Fri, 07 Mar 2008) | 1 line
Speed up with statements by storing the __exit__ method on the stack instead of in a temp variable (bumps the magic number for pyc files)
........
r61298 | andrew.kuchling | 2008-03-07 22:09:23 +0100 (Fri, 07 Mar 2008) | 1 line
Grammar fix
........
r61303 | georg.brandl | 2008-03-08 10:54:06 +0100 (Sat, 08 Mar 2008) | 2 lines
#2253: fix continue vs. finally docs.
........
r61304 | marc-andre.lemburg | 2008-03-08 11:01:43 +0100 (Sat, 08 Mar 2008) | 3 lines
Add new name for Mandrake: Mandriva.
........
r61305 | georg.brandl | 2008-03-08 11:05:24 +0100 (Sat, 08 Mar 2008) | 2 lines
#1533486: fix types in refcount intro.
........
r61312 | facundo.batista | 2008-03-08 17:50:27 +0100 (Sat, 08 Mar 2008) | 5 lines
Issue 1106316. post_mortem()'s parameter, traceback, is now
optional: it defaults to the traceback of the exception that is currently
being handled.
........
r61313 | jeffrey.yasskin | 2008-03-08 19:26:54 +0100 (Sat, 08 Mar 2008) | 2 lines
Add tests for with and finally performance to pybench.
........
r61314 | jeffrey.yasskin | 2008-03-08 21:08:21 +0100 (Sat, 08 Mar 2008) | 2 lines
Fix pybench for pythons < 2.6, tested back to 2.3.
........
r61317 | jeffrey.yasskin | 2008-03-08 22:35:15 +0100 (Sat, 08 Mar 2008) | 3 lines
Well that was dumb. platform.python_implementation returns a function, not a
string.
........
r61329 | georg.brandl | 2008-03-09 16:11:39 +0100 (Sun, 09 Mar 2008) | 2 lines
#2249: document assertTrue and assertFalse.
........
r61332 | neal.norwitz | 2008-03-09 20:03:42 +0100 (Sun, 09 Mar 2008) | 4 lines
Introduce a lock to fix a race condition which caused an exception in the test.
Some buildbots were consistently failing (e.g., amd64).
Also remove a couple of semi-colons.
........
r61344 | raymond.hettinger | 2008-03-11 01:19:07 +0100 (Tue, 11 Mar 2008) | 1 line
Add recipe to docs.
........
r61350 | guido.van.rossum | 2008-03-11 22:18:06 +0100 (Tue, 11 Mar 2008) | 3 lines
Fix the overflows in expandtabs(). "This time for sure!"
(Exploit at request.)
........
r61351 | raymond.hettinger | 2008-03-11 22:37:46 +0100 (Tue, 11 Mar 2008) | 1 line
Improve docs for itemgetter(). Show that it works with slices.
........
r61363 | georg.brandl | 2008-03-13 08:15:56 +0100 (Thu, 13 Mar 2008) | 2 lines
#2265: fix example.
........
r61364 | georg.brandl | 2008-03-13 08:17:14 +0100 (Thu, 13 Mar 2008) | 2 lines
#2270: fix typo.
........
r61365 | georg.brandl | 2008-03-13 08:21:41 +0100 (Thu, 13 Mar 2008) | 2 lines
#1720705: add docs about import/threading interaction, wording by Nick.
........
r61366 | andrew.kuchling | 2008-03-13 12:07:35 +0100 (Thu, 13 Mar 2008) | 1 line
Add class decorators
........
r61367 | raymond.hettinger | 2008-03-13 17:43:17 +0100 (Thu, 13 Mar 2008) | 1 line
Add 2-to-3 support for the itertools moved to builtins or renamed.
........
r61368 | raymond.hettinger | 2008-03-13 17:43:59 +0100 (Thu, 13 Mar 2008) | 1 line
Consistent tense.
........
r61369 | raymond.hettinger | 2008-03-13 20:03:51 +0100 (Thu, 13 Mar 2008) | 1 line
Issue 2274: Add heapq.heappushpop().
........
r61370 | raymond.hettinger | 2008-03-13 20:33:34 +0100 (Thu, 13 Mar 2008) | 1 line
Simplify the nlargest() code using heappushpop().
........
r61371 | brett.cannon | 2008-03-13 21:27:00 +0100 (Thu, 13 Mar 2008) | 4 lines
Move test_thread over to unittest. Commits GHOP 237.
Thanks Benjamin Peterson for the patch.
........
r61372 | brett.cannon | 2008-03-13 21:33:10 +0100 (Thu, 13 Mar 2008) | 4 lines
Move test_tokenize to doctest.
Done as GHOP 238 by Josip Dzolonga.
........
r61373 | brett.cannon | 2008-03-13 21:47:41 +0100 (Thu, 13 Mar 2008) | 4 lines
Convert test_contains, test_crypt, and test_select to unittest.
Patch from GHOP 294 by David Marek.
........
r61374 | brett.cannon | 2008-03-13 22:02:16 +0100 (Thu, 13 Mar 2008) | 4 lines
Move test_gdbm to use unittest.
Closes issue #1960. Thanks Giampaolo Rodola.
........
r61375 | brett.cannon | 2008-03-13 22:09:28 +0100 (Thu, 13 Mar 2008) | 4 lines
Convert test_fcntl to unittest.
Closes issue #2055. Thanks Giampaolo Rodola.
........
r61376 | raymond.hettinger | 2008-03-14 06:03:44 +0100 (Fri, 14 Mar 2008) | 1 line
Leave heapreplace() unchanged.
........
r61378 | martin.v.loewis | 2008-03-14 14:56:09 +0100 (Fri, 14 Mar 2008) | 2 lines
Patch #2284: add -x64 option to rt.bat.
........
r61379 | martin.v.loewis | 2008-03-14 14:57:59 +0100 (Fri, 14 Mar 2008) | 2 lines
Use -x64 flag.
........
r61382 | brett.cannon | 2008-03-14 15:03:10 +0100 (Fri, 14 Mar 2008) | 2 lines
Remove a bad test.
........
r61383 | mark.dickinson | 2008-03-14 15:23:37 +0100 (Fri, 14 Mar 2008) | 9 lines
Issue 705836: Fix struct.pack(">f", 1e40) to behave consistently
across platforms: it should now raise OverflowError on all
platforms. (Previously it raised OverflowError only on
non IEEE 754 platforms.)
Also fix the (already existing) test for this behaviour
so that it actually raises TestFailed instead of just
referencing it.
........
r61387 | thomas.heller | 2008-03-14 22:06:21 +0100 (Fri, 14 Mar 2008) | 1 line
Remove unneeded initializer.
........
r61388 | martin.v.loewis | 2008-03-14 22:19:28 +0100 (Fri, 14 Mar 2008) | 2 lines
Run debug version, cd to PCbuild.
........
r61392 | georg.brandl | 2008-03-15 00:10:34 +0100 (Sat, 15 Mar 2008) | 2 lines
Remove obsolete paragraph. #2288.
........
r61395 | georg.brandl | 2008-03-15 01:20:19 +0100 (Sat, 15 Mar 2008) | 2 lines
Fix lots of broken links in the docs, found by Sphinx' external link checker.
........
r61396 | skip.montanaro | 2008-03-15 03:32:49 +0100 (Sat, 15 Mar 2008) | 1 line
note that fork and forkpty raise OSError on failure
........
r61402 | skip.montanaro | 2008-03-15 17:04:45 +0100 (Sat, 15 Mar 2008) | 1 line
add %f format to datetime - issue 1158
........
r61403 | skip.montanaro | 2008-03-15 17:07:11 +0100 (Sat, 15 Mar 2008) | 2 lines
.
........
2008-03-15 21:07:10 -03:00
|
|
|
"unexpected value from _strptime._strptime");
|
2005-01-13 00:12:31 -04:00
|
|
|
}
|
Merged revisions 61239-61249,61252-61257,61260-61264,61269-61275,61278-61279,61285-61286,61288-61290,61298,61303-61305,61312-61314,61317,61329,61332,61344,61350-61351,61363-61376,61378-61379,61382-61383,61387-61388,61392,61395-61396,61402-61403 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r61239 | andrew.kuchling | 2008-03-05 01:44:41 +0100 (Wed, 05 Mar 2008) | 1 line
Add more items; add fragmentary notes
........
r61240 | amaury.forgeotdarc | 2008-03-05 02:50:33 +0100 (Wed, 05 Mar 2008) | 13 lines
Issue#2238: some syntax errors from *args or **kwargs expressions
would give bogus error messages, because of untested exceptions::
>>> f(**g(1=2))
XXX undetected error
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is not iterable
instead of the expected SyntaxError: keyword can't be an expression
Will backport.
........
r61241 | neal.norwitz | 2008-03-05 06:10:48 +0100 (Wed, 05 Mar 2008) | 3 lines
Remove the files/dirs after closing the DB so the tests work on Windows.
Patch from Trent Nelson. Also simplified removing a file by using test_support.
........
r61242 | neal.norwitz | 2008-03-05 06:14:18 +0100 (Wed, 05 Mar 2008) | 3 lines
Get this test to pass even when there is no sound card in the system.
Patch from Trent Nelson. (I can't test this.)
........
r61243 | neal.norwitz | 2008-03-05 06:20:44 +0100 (Wed, 05 Mar 2008) | 3 lines
Catch OSError when trying to remove a file in case removal fails. This
should prevent a failure in tearDown masking any real test failure.
........
r61244 | neal.norwitz | 2008-03-05 06:38:06 +0100 (Wed, 05 Mar 2008) | 5 lines
Make the timeout longer to give slow machines a chance to pass the test
before timing out. This doesn't change the duration of the test under
normal circumstances. This is targetted at fixing the spurious failures
on the FreeBSD buildbot primarily.
........
r61245 | neal.norwitz | 2008-03-05 06:49:03 +0100 (Wed, 05 Mar 2008) | 1 line
Tabs -> spaces
........
r61246 | neal.norwitz | 2008-03-05 06:50:20 +0100 (Wed, 05 Mar 2008) | 1 line
Use -u urlfetch to run more tests
........
r61247 | neal.norwitz | 2008-03-05 06:51:20 +0100 (Wed, 05 Mar 2008) | 1 line
test_smtplib sometimes reports leaks too, suppress it
........
r61248 | jeffrey.yasskin | 2008-03-05 07:19:56 +0100 (Wed, 05 Mar 2008) | 5 lines
Fix test_socketserver on Windows after r61099 added several signal.alarm()
calls (which don't exist on non-Unix platforms).
Thanks to Trent Nelson for the report and patch.
........
r61249 | georg.brandl | 2008-03-05 08:10:35 +0100 (Wed, 05 Mar 2008) | 2 lines
Fix some rst.
........
r61252 | thomas.heller | 2008-03-05 15:53:39 +0100 (Wed, 05 Mar 2008) | 2 lines
News entry for yesterdays commit.
........
r61253 | thomas.heller | 2008-03-05 16:34:29 +0100 (Wed, 05 Mar 2008) | 3 lines
Issue 1872: Changed the struct module typecode from 't' to '?', for
compatibility with PEP3118.
........
r61254 | skip.montanaro | 2008-03-05 17:41:09 +0100 (Wed, 05 Mar 2008) | 4 lines
Elaborate on the role of the altinstall target when installing multiple
versions.
........
r61255 | georg.brandl | 2008-03-05 20:31:44 +0100 (Wed, 05 Mar 2008) | 2 lines
#2239: PYTHONPATH delimiter is os.pathsep.
........
r61256 | raymond.hettinger | 2008-03-05 21:59:58 +0100 (Wed, 05 Mar 2008) | 1 line
C implementation of itertools.permutations().
........
r61257 | raymond.hettinger | 2008-03-05 22:04:32 +0100 (Wed, 05 Mar 2008) | 1 line
Small code cleanup.
........
r61260 | martin.v.loewis | 2008-03-05 23:24:31 +0100 (Wed, 05 Mar 2008) | 2 lines
cd PCbuild only after deleting all pyc files.
........
r61261 | raymond.hettinger | 2008-03-06 02:15:52 +0100 (Thu, 06 Mar 2008) | 1 line
Add examples.
........
r61262 | andrew.kuchling | 2008-03-06 02:36:27 +0100 (Thu, 06 Mar 2008) | 1 line
Add two items
........
r61263 | georg.brandl | 2008-03-06 07:47:18 +0100 (Thu, 06 Mar 2008) | 2 lines
#1725737: ignore other VC directories other than CVS and SVN's too.
........
r61264 | martin.v.loewis | 2008-03-06 07:55:22 +0100 (Thu, 06 Mar 2008) | 4 lines
Patch #2232: os.tmpfile might fail on Windows if the user has no
permission to create files in the root directory.
Will backport to 2.5.
........
r61269 | georg.brandl | 2008-03-06 08:19:15 +0100 (Thu, 06 Mar 2008) | 2 lines
Expand on re.split behavior with captured expressions.
........
r61270 | georg.brandl | 2008-03-06 08:22:09 +0100 (Thu, 06 Mar 2008) | 2 lines
Little clarification of assignments.
........
r61271 | georg.brandl | 2008-03-06 08:31:34 +0100 (Thu, 06 Mar 2008) | 2 lines
Add isinstance/issubclass to tutorial.
........
r61272 | georg.brandl | 2008-03-06 08:34:52 +0100 (Thu, 06 Mar 2008) | 2 lines
Add missing NEWS entry for r61263.
........
r61273 | georg.brandl | 2008-03-06 08:41:16 +0100 (Thu, 06 Mar 2008) | 2 lines
#2225: return nonzero status code from py_compile if not all files could be compiled.
........
r61274 | georg.brandl | 2008-03-06 08:43:02 +0100 (Thu, 06 Mar 2008) | 2 lines
#2220: handle matching failure more gracefully.
........
r61275 | georg.brandl | 2008-03-06 08:45:52 +0100 (Thu, 06 Mar 2008) | 2 lines
Bug #2220: handle rlcompleter attribute match failure more gracefully.
........
r61278 | martin.v.loewis | 2008-03-06 14:49:47 +0100 (Thu, 06 Mar 2008) | 1 line
Rely on x64 platform configuration when building _bsddb on AMD64.
........
r61279 | martin.v.loewis | 2008-03-06 14:50:28 +0100 (Thu, 06 Mar 2008) | 1 line
Update db-4.4.20 build procedure.
........
r61285 | raymond.hettinger | 2008-03-06 21:52:01 +0100 (Thu, 06 Mar 2008) | 1 line
More tests.
........
r61286 | raymond.hettinger | 2008-03-06 23:51:36 +0100 (Thu, 06 Mar 2008) | 1 line
Issue 2246: itertools grouper object did not participate in GC (should be backported).
........
r61288 | raymond.hettinger | 2008-03-07 02:33:20 +0100 (Fri, 07 Mar 2008) | 1 line
Tweak recipes and tests
........
r61289 | jeffrey.yasskin | 2008-03-07 07:22:15 +0100 (Fri, 07 Mar 2008) | 5 lines
Progress on issue #1193577 by adding a polling .shutdown() method to
SocketServers. The core of the patch was written by Pedro Werneck, but any bugs
are mine. I've also rearranged the code for timeouts in order to avoid
interfering with the shutdown poll.
........
r61290 | nick.coghlan | 2008-03-07 15:13:28 +0100 (Fri, 07 Mar 2008) | 1 line
Speed up with statements by storing the __exit__ method on the stack instead of in a temp variable (bumps the magic number for pyc files)
........
r61298 | andrew.kuchling | 2008-03-07 22:09:23 +0100 (Fri, 07 Mar 2008) | 1 line
Grammar fix
........
r61303 | georg.brandl | 2008-03-08 10:54:06 +0100 (Sat, 08 Mar 2008) | 2 lines
#2253: fix continue vs. finally docs.
........
r61304 | marc-andre.lemburg | 2008-03-08 11:01:43 +0100 (Sat, 08 Mar 2008) | 3 lines
Add new name for Mandrake: Mandriva.
........
r61305 | georg.brandl | 2008-03-08 11:05:24 +0100 (Sat, 08 Mar 2008) | 2 lines
#1533486: fix types in refcount intro.
........
r61312 | facundo.batista | 2008-03-08 17:50:27 +0100 (Sat, 08 Mar 2008) | 5 lines
Issue 1106316. post_mortem()'s parameter, traceback, is now
optional: it defaults to the traceback of the exception that is currently
being handled.
........
r61313 | jeffrey.yasskin | 2008-03-08 19:26:54 +0100 (Sat, 08 Mar 2008) | 2 lines
Add tests for with and finally performance to pybench.
........
r61314 | jeffrey.yasskin | 2008-03-08 21:08:21 +0100 (Sat, 08 Mar 2008) | 2 lines
Fix pybench for pythons < 2.6, tested back to 2.3.
........
r61317 | jeffrey.yasskin | 2008-03-08 22:35:15 +0100 (Sat, 08 Mar 2008) | 3 lines
Well that was dumb. platform.python_implementation returns a function, not a
string.
........
r61329 | georg.brandl | 2008-03-09 16:11:39 +0100 (Sun, 09 Mar 2008) | 2 lines
#2249: document assertTrue and assertFalse.
........
r61332 | neal.norwitz | 2008-03-09 20:03:42 +0100 (Sun, 09 Mar 2008) | 4 lines
Introduce a lock to fix a race condition which caused an exception in the test.
Some buildbots were consistently failing (e.g., amd64).
Also remove a couple of semi-colons.
........
r61344 | raymond.hettinger | 2008-03-11 01:19:07 +0100 (Tue, 11 Mar 2008) | 1 line
Add recipe to docs.
........
r61350 | guido.van.rossum | 2008-03-11 22:18:06 +0100 (Tue, 11 Mar 2008) | 3 lines
Fix the overflows in expandtabs(). "This time for sure!"
(Exploit at request.)
........
r61351 | raymond.hettinger | 2008-03-11 22:37:46 +0100 (Tue, 11 Mar 2008) | 1 line
Improve docs for itemgetter(). Show that it works with slices.
........
r61363 | georg.brandl | 2008-03-13 08:15:56 +0100 (Thu, 13 Mar 2008) | 2 lines
#2265: fix example.
........
r61364 | georg.brandl | 2008-03-13 08:17:14 +0100 (Thu, 13 Mar 2008) | 2 lines
#2270: fix typo.
........
r61365 | georg.brandl | 2008-03-13 08:21:41 +0100 (Thu, 13 Mar 2008) | 2 lines
#1720705: add docs about import/threading interaction, wording by Nick.
........
r61366 | andrew.kuchling | 2008-03-13 12:07:35 +0100 (Thu, 13 Mar 2008) | 1 line
Add class decorators
........
r61367 | raymond.hettinger | 2008-03-13 17:43:17 +0100 (Thu, 13 Mar 2008) | 1 line
Add 2-to-3 support for the itertools moved to builtins or renamed.
........
r61368 | raymond.hettinger | 2008-03-13 17:43:59 +0100 (Thu, 13 Mar 2008) | 1 line
Consistent tense.
........
r61369 | raymond.hettinger | 2008-03-13 20:03:51 +0100 (Thu, 13 Mar 2008) | 1 line
Issue 2274: Add heapq.heappushpop().
........
r61370 | raymond.hettinger | 2008-03-13 20:33:34 +0100 (Thu, 13 Mar 2008) | 1 line
Simplify the nlargest() code using heappushpop().
........
r61371 | brett.cannon | 2008-03-13 21:27:00 +0100 (Thu, 13 Mar 2008) | 4 lines
Move test_thread over to unittest. Commits GHOP 237.
Thanks Benjamin Peterson for the patch.
........
r61372 | brett.cannon | 2008-03-13 21:33:10 +0100 (Thu, 13 Mar 2008) | 4 lines
Move test_tokenize to doctest.
Done as GHOP 238 by Josip Dzolonga.
........
r61373 | brett.cannon | 2008-03-13 21:47:41 +0100 (Thu, 13 Mar 2008) | 4 lines
Convert test_contains, test_crypt, and test_select to unittest.
Patch from GHOP 294 by David Marek.
........
r61374 | brett.cannon | 2008-03-13 22:02:16 +0100 (Thu, 13 Mar 2008) | 4 lines
Move test_gdbm to use unittest.
Closes issue #1960. Thanks Giampaolo Rodola.
........
r61375 | brett.cannon | 2008-03-13 22:09:28 +0100 (Thu, 13 Mar 2008) | 4 lines
Convert test_fcntl to unittest.
Closes issue #2055. Thanks Giampaolo Rodola.
........
r61376 | raymond.hettinger | 2008-03-14 06:03:44 +0100 (Fri, 14 Mar 2008) | 1 line
Leave heapreplace() unchanged.
........
r61378 | martin.v.loewis | 2008-03-14 14:56:09 +0100 (Fri, 14 Mar 2008) | 2 lines
Patch #2284: add -x64 option to rt.bat.
........
r61379 | martin.v.loewis | 2008-03-14 14:57:59 +0100 (Fri, 14 Mar 2008) | 2 lines
Use -x64 flag.
........
r61382 | brett.cannon | 2008-03-14 15:03:10 +0100 (Fri, 14 Mar 2008) | 2 lines
Remove a bad test.
........
r61383 | mark.dickinson | 2008-03-14 15:23:37 +0100 (Fri, 14 Mar 2008) | 9 lines
Issue 705836: Fix struct.pack(">f", 1e40) to behave consistently
across platforms: it should now raise OverflowError on all
platforms. (Previously it raised OverflowError only on
non IEEE 754 platforms.)
Also fix the (already existing) test for this behaviour
so that it actually raises TestFailed instead of just
referencing it.
........
r61387 | thomas.heller | 2008-03-14 22:06:21 +0100 (Fri, 14 Mar 2008) | 1 line
Remove unneeded initializer.
........
r61388 | martin.v.loewis | 2008-03-14 22:19:28 +0100 (Fri, 14 Mar 2008) | 2 lines
Run debug version, cd to PCbuild.
........
r61392 | georg.brandl | 2008-03-15 00:10:34 +0100 (Sat, 15 Mar 2008) | 2 lines
Remove obsolete paragraph. #2288.
........
r61395 | georg.brandl | 2008-03-15 01:20:19 +0100 (Sat, 15 Mar 2008) | 2 lines
Fix lots of broken links in the docs, found by Sphinx' external link checker.
........
r61396 | skip.montanaro | 2008-03-15 03:32:49 +0100 (Sat, 15 Mar 2008) | 1 line
note that fork and forkpty raise OSError on failure
........
r61402 | skip.montanaro | 2008-03-15 17:04:45 +0100 (Sat, 15 Mar 2008) | 1 line
add %f format to datetime - issue 1158
........
r61403 | skip.montanaro | 2008-03-15 17:07:11 +0100 (Sat, 15 Mar 2008) | 2 lines
.
........
2008-03-15 21:07:10 -03:00
|
|
|
Py_XDECREF(obj);
|
|
|
|
Py_XDECREF(st);
|
|
|
|
Py_XDECREF(frac);
|
2005-01-13 00:12:31 -04:00
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
2003-01-10 23:39:11 -04:00
|
|
|
/* Return new datetime from date/datetime and time arguments. */
|
|
|
|
static PyObject *
|
|
|
|
datetime_combine(PyObject *cls, PyObject *args, PyObject *kw)
|
|
|
|
{
|
2006-02-27 13:20:04 -04:00
|
|
|
static char *keywords[] = {"date", "time", NULL};
|
2003-01-10 23:39:11 -04:00
|
|
|
PyObject *date;
|
|
|
|
PyObject *time;
|
|
|
|
PyObject *result = NULL;
|
|
|
|
|
|
|
|
if (PyArg_ParseTupleAndKeywords(args, kw, "O!O!:combine", keywords,
|
|
|
|
&PyDateTime_DateType, &date,
|
|
|
|
&PyDateTime_TimeType, &time)) {
|
|
|
|
PyObject *tzinfo = Py_None;
|
2002-12-16 16:18:38 -04:00
|
|
|
|
2003-01-10 23:39:11 -04:00
|
|
|
if (HASTZINFO(time))
|
|
|
|
tzinfo = ((PyDateTime_Time *)time)->tzinfo;
|
|
|
|
result = PyObject_CallFunction(cls, "iiiiiiiO",
|
|
|
|
GET_YEAR(date),
|
|
|
|
GET_MONTH(date),
|
|
|
|
GET_DAY(date),
|
|
|
|
TIME_GET_HOUR(time),
|
|
|
|
TIME_GET_MINUTE(time),
|
|
|
|
TIME_GET_SECOND(time),
|
|
|
|
TIME_GET_MICROSECOND(time),
|
|
|
|
tzinfo);
|
|
|
|
}
|
|
|
|
return result;
|
|
|
|
}
|
2002-12-16 16:18:38 -04:00
|
|
|
|
|
|
|
/*
|
|
|
|
* Destructor.
|
|
|
|
*/
|
|
|
|
|
|
|
|
static void
|
2003-01-10 23:39:11 -04:00
|
|
|
datetime_dealloc(PyDateTime_DateTime *self)
|
2002-12-16 16:18:38 -04:00
|
|
|
{
|
2003-01-10 23:39:11 -04:00
|
|
|
if (HASTZINFO(self)) {
|
|
|
|
Py_XDECREF(self->tzinfo);
|
|
|
|
}
|
2007-12-18 22:45:37 -04:00
|
|
|
Py_TYPE(self)->tp_free((PyObject *)self);
|
2002-12-16 16:18:38 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Indirect access to tzinfo methods.
|
|
|
|
*/
|
|
|
|
|
|
|
|
/* These are all METH_NOARGS, so don't need to check the arglist. */
|
|
|
|
static PyObject *
|
2003-01-10 23:39:11 -04:00
|
|
|
datetime_utcoffset(PyDateTime_DateTime *self, PyObject *unused) {
|
|
|
|
return offset_as_timedelta(HASTZINFO(self) ? self->tzinfo : Py_None,
|
|
|
|
"utcoffset", (PyObject *)self);
|
2002-12-16 16:18:38 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
static PyObject *
|
2003-01-10 23:39:11 -04:00
|
|
|
datetime_dst(PyDateTime_DateTime *self, PyObject *unused) {
|
|
|
|
return offset_as_timedelta(HASTZINFO(self) ? self->tzinfo : Py_None,
|
|
|
|
"dst", (PyObject *)self);
|
2002-12-16 16:18:38 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
static PyObject *
|
2003-01-10 23:39:11 -04:00
|
|
|
datetime_tzname(PyDateTime_DateTime *self, PyObject *unused) {
|
|
|
|
return call_tzname(HASTZINFO(self) ? self->tzinfo : Py_None,
|
|
|
|
(PyObject *)self);
|
2002-12-16 16:18:38 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
2003-01-10 23:39:11 -04:00
|
|
|
* datetime arithmetic.
|
2002-12-16 16:18:38 -04:00
|
|
|
*/
|
|
|
|
|
2003-01-10 23:39:11 -04:00
|
|
|
/* factor must be 1 (to add) or -1 (to subtract). The result inherits
|
|
|
|
* the tzinfo state of date.
|
2002-12-16 16:18:38 -04:00
|
|
|
*/
|
|
|
|
static PyObject *
|
2003-01-10 23:39:11 -04:00
|
|
|
add_datetime_timedelta(PyDateTime_DateTime *date, PyDateTime_Delta *delta,
|
|
|
|
int factor)
|
2002-12-16 16:18:38 -04:00
|
|
|
{
|
2003-01-10 23:39:11 -04:00
|
|
|
/* Note that the C-level additions can't overflow, because of
|
|
|
|
* invariant bounds on the member values.
|
|
|
|
*/
|
|
|
|
int year = GET_YEAR(date);
|
|
|
|
int month = GET_MONTH(date);
|
|
|
|
int day = GET_DAY(date) + GET_TD_DAYS(delta) * factor;
|
|
|
|
int hour = DATE_GET_HOUR(date);
|
|
|
|
int minute = DATE_GET_MINUTE(date);
|
|
|
|
int second = DATE_GET_SECOND(date) + GET_TD_SECONDS(delta) * factor;
|
|
|
|
int microsecond = DATE_GET_MICROSECOND(date) +
|
|
|
|
GET_TD_MICROSECONDS(delta) * factor;
|
2002-12-16 16:18:38 -04:00
|
|
|
|
2003-01-10 23:39:11 -04:00
|
|
|
assert(factor == 1 || factor == -1);
|
|
|
|
if (normalize_datetime(&year, &month, &day,
|
|
|
|
&hour, &minute, &second, µsecond) < 0)
|
|
|
|
return NULL;
|
|
|
|
else
|
|
|
|
return new_datetime(year, month, day,
|
|
|
|
hour, minute, second, microsecond,
|
|
|
|
HASTZINFO(date) ? date->tzinfo : Py_None);
|
2002-12-16 16:18:38 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
static PyObject *
|
2003-01-10 23:39:11 -04:00
|
|
|
datetime_add(PyObject *left, PyObject *right)
|
2002-12-16 16:18:38 -04:00
|
|
|
{
|
2003-01-10 23:39:11 -04:00
|
|
|
if (PyDateTime_Check(left)) {
|
|
|
|
/* datetime + ??? */
|
|
|
|
if (PyDelta_Check(right))
|
|
|
|
/* datetime + delta */
|
|
|
|
return add_datetime_timedelta(
|
|
|
|
(PyDateTime_DateTime *)left,
|
|
|
|
(PyDateTime_Delta *)right,
|
|
|
|
1);
|
|
|
|
}
|
|
|
|
else if (PyDelta_Check(left)) {
|
|
|
|
/* delta + datetime */
|
|
|
|
return add_datetime_timedelta((PyDateTime_DateTime *) right,
|
|
|
|
(PyDateTime_Delta *) left,
|
|
|
|
1);
|
|
|
|
}
|
|
|
|
Py_INCREF(Py_NotImplemented);
|
|
|
|
return Py_NotImplemented;
|
2002-12-16 16:18:38 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
static PyObject *
|
2003-01-10 23:39:11 -04:00
|
|
|
datetime_subtract(PyObject *left, PyObject *right)
|
2002-12-16 16:18:38 -04:00
|
|
|
{
|
|
|
|
PyObject *result = Py_NotImplemented;
|
|
|
|
|
|
|
|
if (PyDateTime_Check(left)) {
|
|
|
|
/* datetime - ??? */
|
|
|
|
if (PyDateTime_Check(right)) {
|
|
|
|
/* datetime - datetime */
|
|
|
|
naivety n1, n2;
|
|
|
|
int offset1, offset2;
|
2003-01-10 23:39:11 -04:00
|
|
|
int delta_d, delta_s, delta_us;
|
2002-12-16 16:18:38 -04:00
|
|
|
|
2002-12-30 17:28:52 -04:00
|
|
|
if (classify_two_utcoffsets(left, &offset1, &n1, left,
|
|
|
|
right, &offset2, &n2,
|
|
|
|
right) < 0)
|
2002-12-26 22:21:51 -04:00
|
|
|
return NULL;
|
2002-12-26 22:26:16 -04:00
|
|
|
assert(n1 != OFFSET_UNKNOWN && n2 != OFFSET_UNKNOWN);
|
2002-12-16 16:18:38 -04:00
|
|
|
if (n1 != n2) {
|
|
|
|
PyErr_SetString(PyExc_TypeError,
|
|
|
|
"can't subtract offset-naive and "
|
|
|
|
"offset-aware datetimes");
|
|
|
|
return NULL;
|
|
|
|
}
|
2003-01-10 23:39:11 -04:00
|
|
|
delta_d = ymd_to_ord(GET_YEAR(left),
|
|
|
|
GET_MONTH(left),
|
|
|
|
GET_DAY(left)) -
|
|
|
|
ymd_to_ord(GET_YEAR(right),
|
|
|
|
GET_MONTH(right),
|
|
|
|
GET_DAY(right));
|
|
|
|
/* These can't overflow, since the values are
|
|
|
|
* normalized. At most this gives the number of
|
|
|
|
* seconds in one day.
|
|
|
|
*/
|
|
|
|
delta_s = (DATE_GET_HOUR(left) -
|
|
|
|
DATE_GET_HOUR(right)) * 3600 +
|
|
|
|
(DATE_GET_MINUTE(left) -
|
|
|
|
DATE_GET_MINUTE(right)) * 60 +
|
|
|
|
(DATE_GET_SECOND(left) -
|
|
|
|
DATE_GET_SECOND(right));
|
|
|
|
delta_us = DATE_GET_MICROSECOND(left) -
|
|
|
|
DATE_GET_MICROSECOND(right);
|
2002-12-16 16:18:38 -04:00
|
|
|
/* (left - offset1) - (right - offset2) =
|
|
|
|
* (left - right) + (offset2 - offset1)
|
|
|
|
*/
|
2003-01-10 23:39:11 -04:00
|
|
|
delta_s += (offset2 - offset1) * 60;
|
|
|
|
result = new_delta(delta_d, delta_s, delta_us, 1);
|
2002-12-16 16:18:38 -04:00
|
|
|
}
|
|
|
|
else if (PyDelta_Check(right)) {
|
2003-01-10 23:39:11 -04:00
|
|
|
/* datetime - delta */
|
|
|
|
result = add_datetime_timedelta(
|
2002-12-16 16:18:38 -04:00
|
|
|
(PyDateTime_DateTime *)left,
|
2003-01-10 23:39:11 -04:00
|
|
|
(PyDateTime_Delta *)right,
|
|
|
|
-1);
|
2002-12-16 16:18:38 -04:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2003-01-10 23:39:11 -04:00
|
|
|
if (result == Py_NotImplemented)
|
|
|
|
Py_INCREF(result);
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Various ways to turn a datetime into a string. */
|
|
|
|
|
|
|
|
static PyObject *
|
|
|
|
datetime_repr(PyDateTime_DateTime *self)
|
|
|
|
{
|
2007-12-18 22:45:37 -04:00
|
|
|
const char *type_name = Py_TYPE(self)->tp_name;
|
2003-01-10 23:39:11 -04:00
|
|
|
PyObject *baserepr;
|
|
|
|
|
|
|
|
if (DATE_GET_MICROSECOND(self)) {
|
2007-05-19 18:49:49 -03:00
|
|
|
baserepr = PyUnicode_FromFormat(
|
2003-01-10 23:39:11 -04:00
|
|
|
"%s(%d, %d, %d, %d, %d, %d, %d)",
|
2006-04-21 07:40:58 -03:00
|
|
|
type_name,
|
2003-01-10 23:39:11 -04:00
|
|
|
GET_YEAR(self), GET_MONTH(self), GET_DAY(self),
|
|
|
|
DATE_GET_HOUR(self), DATE_GET_MINUTE(self),
|
|
|
|
DATE_GET_SECOND(self),
|
|
|
|
DATE_GET_MICROSECOND(self));
|
|
|
|
}
|
|
|
|
else if (DATE_GET_SECOND(self)) {
|
2007-05-19 18:49:49 -03:00
|
|
|
baserepr = PyUnicode_FromFormat(
|
2003-01-10 23:39:11 -04:00
|
|
|
"%s(%d, %d, %d, %d, %d, %d)",
|
2006-04-21 07:40:58 -03:00
|
|
|
type_name,
|
2003-01-10 23:39:11 -04:00
|
|
|
GET_YEAR(self), GET_MONTH(self), GET_DAY(self),
|
|
|
|
DATE_GET_HOUR(self), DATE_GET_MINUTE(self),
|
|
|
|
DATE_GET_SECOND(self));
|
|
|
|
}
|
|
|
|
else {
|
2007-05-19 18:49:49 -03:00
|
|
|
baserepr = PyUnicode_FromFormat(
|
2003-01-10 23:39:11 -04:00
|
|
|
"%s(%d, %d, %d, %d, %d)",
|
2006-04-21 07:40:58 -03:00
|
|
|
type_name,
|
2003-01-10 23:39:11 -04:00
|
|
|
GET_YEAR(self), GET_MONTH(self), GET_DAY(self),
|
|
|
|
DATE_GET_HOUR(self), DATE_GET_MINUTE(self));
|
|
|
|
}
|
|
|
|
if (baserepr == NULL || ! HASTZINFO(self))
|
|
|
|
return baserepr;
|
|
|
|
return append_keyword_tzinfo(baserepr, self->tzinfo);
|
|
|
|
}
|
|
|
|
|
|
|
|
static PyObject *
|
|
|
|
datetime_str(PyDateTime_DateTime *self)
|
|
|
|
{
|
|
|
|
return PyObject_CallMethod((PyObject *)self, "isoformat", "(s)", " ");
|
|
|
|
}
|
|
|
|
|
|
|
|
static PyObject *
|
|
|
|
datetime_isoformat(PyDateTime_DateTime *self, PyObject *args, PyObject *kw)
|
|
|
|
{
|
2007-06-20 08:02:38 -03:00
|
|
|
int sep = 'T';
|
2006-02-27 13:20:04 -04:00
|
|
|
static char *keywords[] = {"sep", NULL};
|
2003-01-10 23:39:11 -04:00
|
|
|
char buffer[100];
|
|
|
|
PyObject *result;
|
2007-05-31 14:50:48 -03:00
|
|
|
int us = DATE_GET_MICROSECOND(self);
|
2003-01-10 23:39:11 -04:00
|
|
|
|
2007-07-01 18:58:22 -03:00
|
|
|
if (!PyArg_ParseTupleAndKeywords(args, kw, "|C:isoformat", keywords, &sep))
|
2003-01-10 23:39:11 -04:00
|
|
|
return NULL;
|
2007-05-31 14:50:48 -03:00
|
|
|
if (us)
|
|
|
|
result = PyUnicode_FromFormat("%04d-%02d-%02d%c%02d:%02d:%02d.%06d",
|
|
|
|
GET_YEAR(self), GET_MONTH(self),
|
|
|
|
GET_DAY(self), (int)sep,
|
|
|
|
DATE_GET_HOUR(self), DATE_GET_MINUTE(self),
|
|
|
|
DATE_GET_SECOND(self), us);
|
|
|
|
else
|
|
|
|
result = PyUnicode_FromFormat("%04d-%02d-%02d%c%02d:%02d:%02d",
|
|
|
|
GET_YEAR(self), GET_MONTH(self),
|
|
|
|
GET_DAY(self), (int)sep,
|
|
|
|
DATE_GET_HOUR(self), DATE_GET_MINUTE(self),
|
|
|
|
DATE_GET_SECOND(self));
|
|
|
|
|
|
|
|
if (!result || !HASTZINFO(self))
|
2003-01-10 23:39:11 -04:00
|
|
|
return result;
|
|
|
|
|
|
|
|
/* We need to append the UTC offset. */
|
|
|
|
if (format_utcoffset(buffer, sizeof(buffer), ":", self->tzinfo,
|
|
|
|
(PyObject *)self) < 0) {
|
|
|
|
Py_DECREF(result);
|
|
|
|
return NULL;
|
|
|
|
}
|
2007-05-31 14:50:48 -03:00
|
|
|
PyUnicode_AppendAndDel(&result, PyUnicode_FromString(buffer));
|
2002-12-16 16:18:38 -04:00
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
|
|
|
static PyObject *
|
2003-01-10 23:39:11 -04:00
|
|
|
datetime_ctime(PyDateTime_DateTime *self)
|
2002-12-16 16:18:38 -04:00
|
|
|
{
|
2003-01-10 23:39:11 -04:00
|
|
|
return format_ctime((PyDateTime_Date *)self,
|
|
|
|
DATE_GET_HOUR(self),
|
|
|
|
DATE_GET_MINUTE(self),
|
|
|
|
DATE_GET_SECOND(self));
|
2002-12-16 16:18:38 -04:00
|
|
|
}
|
|
|
|
|
2003-01-10 23:39:11 -04:00
|
|
|
/* Miscellaneous methods. */
|
2002-12-16 16:18:38 -04:00
|
|
|
|
|
|
|
static PyObject *
|
2006-08-24 14:29:38 -03:00
|
|
|
datetime_richcompare(PyObject *self, PyObject *other, int op)
|
2002-12-16 16:18:38 -04:00
|
|
|
{
|
2003-01-10 23:39:11 -04:00
|
|
|
int diff;
|
|
|
|
naivety n1, n2;
|
|
|
|
int offset1, offset2;
|
2002-12-16 16:18:38 -04:00
|
|
|
|
2003-01-10 23:39:11 -04:00
|
|
|
if (! PyDateTime_Check(other)) {
|
2006-08-24 14:29:38 -03:00
|
|
|
if (PyDate_Check(other)) {
|
|
|
|
/* Prevent invocation of date_richcompare. We want to
|
|
|
|
return NotImplemented here to give the other object
|
|
|
|
a chance. But since DateTime is a subclass of
|
|
|
|
Date, if the other object is a Date, it would
|
|
|
|
compute an ordering based on the date part alone,
|
|
|
|
and we don't want that. So force unequal or
|
|
|
|
uncomparable here in that case. */
|
|
|
|
if (op == Py_EQ)
|
|
|
|
Py_RETURN_FALSE;
|
|
|
|
if (op == Py_NE)
|
|
|
|
Py_RETURN_TRUE;
|
|
|
|
return cmperror(self, other);
|
date and datetime comparison: when we don't know how to
compare against "the other" argument, we raise TypeError,
in order to prevent comparison from falling back to the
default (and worse than useless, in this case) comparison
by object address.
That's fine so far as it goes, but leaves no way for
another date/datetime object to make itself comparable
to our objects. For example, it leaves Marc-Andre no way
to teach mxDateTime dates how to compare against Python
dates.
Discussion on Python-Dev raised a number of impractical
ideas, and the simple one implemented here: when we don't
know how to compare against "the other" argument, we raise
TypeError *unless* the other object has a timetuple attr.
In that case, we return NotImplemented instead, and Python
will give the other object a shot at handling the
comparison then.
Note that comparisons of time and timedelta objects still
suffer the original problem, though.
2003-01-24 18:36:34 -04:00
|
|
|
}
|
2006-08-24 14:29:38 -03:00
|
|
|
Py_INCREF(Py_NotImplemented);
|
|
|
|
return Py_NotImplemented;
|
2003-01-10 23:39:11 -04:00
|
|
|
}
|
2002-12-16 16:18:38 -04:00
|
|
|
|
2006-08-24 14:29:38 -03:00
|
|
|
if (classify_two_utcoffsets(self, &offset1, &n1, self,
|
|
|
|
other, &offset2, &n2, other) < 0)
|
2002-12-16 16:18:38 -04:00
|
|
|
return NULL;
|
2003-01-10 23:39:11 -04:00
|
|
|
assert(n1 != OFFSET_UNKNOWN && n2 != OFFSET_UNKNOWN);
|
|
|
|
/* If they're both naive, or both aware and have the same offsets,
|
|
|
|
* we get off cheap. Note that if they're both naive, offset1 ==
|
|
|
|
* offset2 == 0 at this point.
|
|
|
|
*/
|
|
|
|
if (n1 == n2 && offset1 == offset2) {
|
2006-08-24 14:29:38 -03:00
|
|
|
diff = memcmp(((PyDateTime_DateTime *)self)->data,
|
|
|
|
((PyDateTime_DateTime *)other)->data,
|
2003-01-10 23:39:11 -04:00
|
|
|
_PyDateTime_DATETIME_DATASIZE);
|
|
|
|
return diff_to_bool(diff, op);
|
2002-12-16 16:18:38 -04:00
|
|
|
}
|
2003-01-10 23:39:11 -04:00
|
|
|
|
|
|
|
if (n1 == OFFSET_AWARE && n2 == OFFSET_AWARE) {
|
|
|
|
PyDateTime_Delta *delta;
|
|
|
|
|
|
|
|
assert(offset1 != offset2); /* else last "if" handled it */
|
|
|
|
delta = (PyDateTime_Delta *)datetime_subtract((PyObject *)self,
|
|
|
|
other);
|
|
|
|
if (delta == NULL)
|
|
|
|
return NULL;
|
|
|
|
diff = GET_TD_DAYS(delta);
|
|
|
|
if (diff == 0)
|
|
|
|
diff = GET_TD_SECONDS(delta) |
|
|
|
|
GET_TD_MICROSECONDS(delta);
|
|
|
|
Py_DECREF(delta);
|
|
|
|
return diff_to_bool(diff, op);
|
|
|
|
}
|
|
|
|
|
|
|
|
assert(n1 != n2);
|
|
|
|
PyErr_SetString(PyExc_TypeError,
|
|
|
|
"can't compare offset-naive and "
|
|
|
|
"offset-aware datetimes");
|
|
|
|
return NULL;
|
2002-12-16 16:18:38 -04:00
|
|
|
}
|
|
|
|
|
2003-01-10 23:39:11 -04:00
|
|
|
static long
|
|
|
|
datetime_hash(PyDateTime_DateTime *self)
|
|
|
|
{
|
|
|
|
if (self->hashcode == -1) {
|
|
|
|
naivety n;
|
|
|
|
int offset;
|
|
|
|
PyObject *temp;
|
|
|
|
|
|
|
|
n = classify_utcoffset((PyObject *)self, (PyObject *)self,
|
|
|
|
&offset);
|
|
|
|
assert(n != OFFSET_UNKNOWN);
|
|
|
|
if (n == OFFSET_ERROR)
|
|
|
|
return -1;
|
|
|
|
|
|
|
|
/* Reduce this to a hash of another object. */
|
2007-08-24 01:05:13 -03:00
|
|
|
if (n == OFFSET_NAIVE) {
|
|
|
|
self->hashcode = generic_hash(
|
|
|
|
(unsigned char *)self->data, _PyDateTime_DATETIME_DATASIZE);
|
|
|
|
return self->hashcode;
|
|
|
|
}
|
2003-01-10 23:39:11 -04:00
|
|
|
else {
|
|
|
|
int days;
|
|
|
|
int seconds;
|
2002-12-16 16:18:38 -04:00
|
|
|
|
2003-01-10 23:39:11 -04:00
|
|
|
assert(n == OFFSET_AWARE);
|
|
|
|
assert(HASTZINFO(self));
|
|
|
|
days = ymd_to_ord(GET_YEAR(self),
|
|
|
|
GET_MONTH(self),
|
|
|
|
GET_DAY(self));
|
|
|
|
seconds = DATE_GET_HOUR(self) * 3600 +
|
|
|
|
(DATE_GET_MINUTE(self) - offset) * 60 +
|
|
|
|
DATE_GET_SECOND(self);
|
|
|
|
temp = new_delta(days,
|
|
|
|
seconds,
|
|
|
|
DATE_GET_MICROSECOND(self),
|
|
|
|
1);
|
|
|
|
}
|
|
|
|
if (temp != NULL) {
|
|
|
|
self->hashcode = PyObject_Hash(temp);
|
|
|
|
Py_DECREF(temp);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return self->hashcode;
|
|
|
|
}
|
2002-12-16 16:18:38 -04:00
|
|
|
|
2002-12-24 01:41:27 -04:00
|
|
|
static PyObject *
|
2003-01-10 23:39:11 -04:00
|
|
|
datetime_replace(PyDateTime_DateTime *self, PyObject *args, PyObject *kw)
|
2002-12-24 01:41:27 -04:00
|
|
|
{
|
|
|
|
PyObject *clone;
|
|
|
|
PyObject *tuple;
|
|
|
|
int y = GET_YEAR(self);
|
|
|
|
int m = GET_MONTH(self);
|
|
|
|
int d = GET_DAY(self);
|
|
|
|
int hh = DATE_GET_HOUR(self);
|
|
|
|
int mm = DATE_GET_MINUTE(self);
|
|
|
|
int ss = DATE_GET_SECOND(self);
|
|
|
|
int us = DATE_GET_MICROSECOND(self);
|
2003-01-10 23:39:11 -04:00
|
|
|
PyObject *tzinfo = HASTZINFO(self) ? self->tzinfo : Py_None;
|
2002-12-24 01:41:27 -04:00
|
|
|
|
|
|
|
if (! PyArg_ParseTupleAndKeywords(args, kw, "|iiiiiiiO:replace",
|
2003-01-10 23:39:11 -04:00
|
|
|
datetime_kws,
|
2002-12-24 01:41:27 -04:00
|
|
|
&y, &m, &d, &hh, &mm, &ss, &us,
|
|
|
|
&tzinfo))
|
|
|
|
return NULL;
|
|
|
|
tuple = Py_BuildValue("iiiiiiiO", y, m, d, hh, mm, ss, us, tzinfo);
|
|
|
|
if (tuple == NULL)
|
|
|
|
return NULL;
|
2007-12-18 22:45:37 -04:00
|
|
|
clone = datetime_new(Py_TYPE(self), tuple, NULL);
|
2002-12-24 01:41:27 -04:00
|
|
|
Py_DECREF(tuple);
|
|
|
|
return clone;
|
|
|
|
}
|
|
|
|
|
2002-12-25 03:40:55 -04:00
|
|
|
static PyObject *
|
2003-01-10 23:39:11 -04:00
|
|
|
datetime_astimezone(PyDateTime_DateTime *self, PyObject *args, PyObject *kw)
|
2002-12-25 03:40:55 -04:00
|
|
|
{
|
2003-01-23 12:36:11 -04:00
|
|
|
int y, m, d, hh, mm, ss, us;
|
2002-12-31 13:36:56 -04:00
|
|
|
PyObject *result;
|
2003-01-23 12:36:11 -04:00
|
|
|
int offset, none;
|
2002-12-31 13:36:56 -04:00
|
|
|
|
2002-12-25 03:40:55 -04:00
|
|
|
PyObject *tzinfo;
|
2006-02-27 13:20:04 -04:00
|
|
|
static char *keywords[] = {"tz", NULL};
|
2002-12-25 03:40:55 -04:00
|
|
|
|
2003-01-23 12:36:11 -04:00
|
|
|
if (! PyArg_ParseTupleAndKeywords(args, kw, "O!:astimezone", keywords,
|
|
|
|
&PyDateTime_TZInfoType, &tzinfo))
|
2002-12-25 03:40:55 -04:00
|
|
|
return NULL;
|
|
|
|
|
2003-01-23 12:36:11 -04:00
|
|
|
if (!HASTZINFO(self) || self->tzinfo == Py_None)
|
|
|
|
goto NeedAware;
|
2002-12-31 13:36:56 -04:00
|
|
|
|
2003-01-23 12:36:11 -04:00
|
|
|
/* Conversion to self's own time zone is a NOP. */
|
|
|
|
if (self->tzinfo == tzinfo) {
|
|
|
|
Py_INCREF(self);
|
|
|
|
return (PyObject *)self;
|
2003-01-01 17:51:37 -04:00
|
|
|
}
|
|
|
|
|
2003-01-23 12:36:11 -04:00
|
|
|
/* Convert self to UTC. */
|
|
|
|
offset = call_utcoffset(self->tzinfo, (PyObject *)self, &none);
|
|
|
|
if (offset == -1 && PyErr_Occurred())
|
|
|
|
return NULL;
|
|
|
|
if (none)
|
|
|
|
goto NeedAware;
|
|
|
|
|
|
|
|
y = GET_YEAR(self);
|
|
|
|
m = GET_MONTH(self);
|
|
|
|
d = GET_DAY(self);
|
|
|
|
hh = DATE_GET_HOUR(self);
|
|
|
|
mm = DATE_GET_MINUTE(self);
|
|
|
|
ss = DATE_GET_SECOND(self);
|
|
|
|
us = DATE_GET_MICROSECOND(self);
|
|
|
|
|
|
|
|
mm -= offset;
|
2003-01-01 17:51:37 -04:00
|
|
|
if ((mm < 0 || mm >= 60) &&
|
|
|
|
normalize_datetime(&y, &m, &d, &hh, &mm, &ss, &us) < 0)
|
2003-01-23 12:36:11 -04:00
|
|
|
return NULL;
|
2002-12-31 13:36:56 -04:00
|
|
|
|
2003-01-23 12:36:11 -04:00
|
|
|
/* Attach new tzinfo and let fromutc() do the rest. */
|
|
|
|
result = new_datetime(y, m, d, hh, mm, ss, us, tzinfo);
|
|
|
|
if (result != NULL) {
|
|
|
|
PyObject *temp = result;
|
2002-12-31 13:36:56 -04:00
|
|
|
|
2003-01-23 12:36:11 -04:00
|
|
|
result = PyObject_CallMethod(tzinfo, "fromutc", "O", temp);
|
|
|
|
Py_DECREF(temp);
|
|
|
|
}
|
|
|
|
return result;
|
|
|
|
|
|
|
|
NeedAware:
|
|
|
|
PyErr_SetString(PyExc_ValueError, "astimezone() cannot be applied to "
|
|
|
|
"a naive datetime");
|
2002-12-31 13:36:56 -04:00
|
|
|
return NULL;
|
2002-12-25 03:40:55 -04:00
|
|
|
}
|
|
|
|
|
2002-12-16 16:18:38 -04:00
|
|
|
static PyObject *
|
2003-01-10 23:39:11 -04:00
|
|
|
datetime_timetuple(PyDateTime_DateTime *self)
|
2002-12-16 16:18:38 -04:00
|
|
|
{
|
|
|
|
int dstflag = -1;
|
|
|
|
|
2003-01-10 23:39:11 -04:00
|
|
|
if (HASTZINFO(self) && self->tzinfo != Py_None) {
|
2002-12-16 16:18:38 -04:00
|
|
|
int none;
|
|
|
|
|
|
|
|
dstflag = call_dst(self->tzinfo, (PyObject *)self, &none);
|
|
|
|
if (dstflag == -1 && PyErr_Occurred())
|
|
|
|
return NULL;
|
|
|
|
|
|
|
|
if (none)
|
|
|
|
dstflag = -1;
|
|
|
|
else if (dstflag != 0)
|
|
|
|
dstflag = 1;
|
|
|
|
|
|
|
|
}
|
|
|
|
return build_struct_time(GET_YEAR(self),
|
|
|
|
GET_MONTH(self),
|
|
|
|
GET_DAY(self),
|
|
|
|
DATE_GET_HOUR(self),
|
|
|
|
DATE_GET_MINUTE(self),
|
|
|
|
DATE_GET_SECOND(self),
|
|
|
|
dstflag);
|
|
|
|
}
|
|
|
|
|
|
|
|
static PyObject *
|
2003-01-10 23:39:11 -04:00
|
|
|
datetime_getdate(PyDateTime_DateTime *self)
|
|
|
|
{
|
|
|
|
return new_date(GET_YEAR(self),
|
|
|
|
GET_MONTH(self),
|
|
|
|
GET_DAY(self));
|
|
|
|
}
|
|
|
|
|
|
|
|
static PyObject *
|
|
|
|
datetime_gettime(PyDateTime_DateTime *self)
|
|
|
|
{
|
|
|
|
return new_time(DATE_GET_HOUR(self),
|
|
|
|
DATE_GET_MINUTE(self),
|
|
|
|
DATE_GET_SECOND(self),
|
|
|
|
DATE_GET_MICROSECOND(self),
|
|
|
|
Py_None);
|
|
|
|
}
|
|
|
|
|
|
|
|
static PyObject *
|
|
|
|
datetime_gettimetz(PyDateTime_DateTime *self)
|
|
|
|
{
|
|
|
|
return new_time(DATE_GET_HOUR(self),
|
|
|
|
DATE_GET_MINUTE(self),
|
|
|
|
DATE_GET_SECOND(self),
|
|
|
|
DATE_GET_MICROSECOND(self),
|
|
|
|
HASTZINFO(self) ? self->tzinfo : Py_None);
|
|
|
|
}
|
|
|
|
|
|
|
|
static PyObject *
|
|
|
|
datetime_utctimetuple(PyDateTime_DateTime *self)
|
2002-12-16 16:18:38 -04:00
|
|
|
{
|
|
|
|
int y = GET_YEAR(self);
|
|
|
|
int m = GET_MONTH(self);
|
|
|
|
int d = GET_DAY(self);
|
|
|
|
int hh = DATE_GET_HOUR(self);
|
|
|
|
int mm = DATE_GET_MINUTE(self);
|
|
|
|
int ss = DATE_GET_SECOND(self);
|
|
|
|
int us = 0; /* microseconds are ignored in a timetuple */
|
|
|
|
int offset = 0;
|
|
|
|
|
2003-01-10 23:39:11 -04:00
|
|
|
if (HASTZINFO(self) && self->tzinfo != Py_None) {
|
2002-12-16 16:18:38 -04:00
|
|
|
int none;
|
|
|
|
|
|
|
|
offset = call_utcoffset(self->tzinfo, (PyObject *)self, &none);
|
|
|
|
if (offset == -1 && PyErr_Occurred())
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
/* Even if offset is 0, don't call timetuple() -- tm_isdst should be
|
|
|
|
* 0 in a UTC timetuple regardless of what dst() says.
|
|
|
|
*/
|
|
|
|
if (offset) {
|
|
|
|
/* Subtract offset minutes & normalize. */
|
|
|
|
int stat;
|
|
|
|
|
|
|
|
mm -= offset;
|
|
|
|
stat = normalize_datetime(&y, &m, &d, &hh, &mm, &ss, &us);
|
|
|
|
if (stat < 0) {
|
|
|
|
/* At the edges, it's possible we overflowed
|
|
|
|
* beyond MINYEAR or MAXYEAR.
|
|
|
|
*/
|
|
|
|
if (PyErr_ExceptionMatches(PyExc_OverflowError))
|
|
|
|
PyErr_Clear();
|
|
|
|
else
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return build_struct_time(y, m, d, hh, mm, ss, 0);
|
|
|
|
}
|
|
|
|
|
2003-01-31 21:52:50 -04:00
|
|
|
/* Pickle support, a simple use of __reduce__. */
|
2003-01-09 22:05:14 -04:00
|
|
|
|
2003-01-10 23:39:11 -04:00
|
|
|
/* Let basestate be the non-tzinfo data string.
|
2002-12-16 16:18:38 -04:00
|
|
|
* If tzinfo is None, this returns (basestate,), else (basestate, tzinfo).
|
|
|
|
* So it's a tuple in any (non-error) case.
|
2003-01-31 22:54:15 -04:00
|
|
|
* __getstate__ isn't exposed.
|
2002-12-16 16:18:38 -04:00
|
|
|
*/
|
|
|
|
static PyObject *
|
2003-01-10 23:39:11 -04:00
|
|
|
datetime_getstate(PyDateTime_DateTime *self)
|
2002-12-16 16:18:38 -04:00
|
|
|
{
|
|
|
|
PyObject *basestate;
|
|
|
|
PyObject *result = NULL;
|
|
|
|
|
2008-05-26 10:28:38 -03:00
|
|
|
basestate = PyBytes_FromStringAndSize((char *)self->data,
|
2007-11-21 15:29:53 -04:00
|
|
|
_PyDateTime_DATETIME_DATASIZE);
|
2002-12-16 16:18:38 -04:00
|
|
|
if (basestate != NULL) {
|
2003-01-10 23:39:11 -04:00
|
|
|
if (! HASTZINFO(self) || self->tzinfo == Py_None)
|
2003-10-12 16:09:37 -03:00
|
|
|
result = PyTuple_Pack(1, basestate);
|
2002-12-16 16:18:38 -04:00
|
|
|
else
|
2003-10-12 16:09:37 -03:00
|
|
|
result = PyTuple_Pack(2, basestate, self->tzinfo);
|
2002-12-16 16:18:38 -04:00
|
|
|
Py_DECREF(basestate);
|
|
|
|
}
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
|
|
|
static PyObject *
|
2003-01-30 18:06:23 -04:00
|
|
|
datetime_reduce(PyDateTime_DateTime *self, PyObject *arg)
|
2002-12-16 16:18:38 -04:00
|
|
|
{
|
2007-12-18 22:45:37 -04:00
|
|
|
return Py_BuildValue("(ON)", Py_TYPE(self), datetime_getstate(self));
|
2002-12-16 16:18:38 -04:00
|
|
|
}
|
|
|
|
|
2003-01-10 23:39:11 -04:00
|
|
|
static PyMethodDef datetime_methods[] = {
|
2003-01-30 18:06:23 -04:00
|
|
|
|
2002-12-16 16:18:38 -04:00
|
|
|
/* Class methods: */
|
|
|
|
|
2003-01-10 23:39:11 -04:00
|
|
|
{"now", (PyCFunction)datetime_now,
|
Merged revisions 55407-55513 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/p3yk
................
r55413 | fred.drake | 2007-05-17 12:30:10 -0700 (Thu, 17 May 2007) | 1 line
fix argument name in documentation; match the implementation
................
r55430 | jack.diederich | 2007-05-18 06:39:59 -0700 (Fri, 18 May 2007) | 1 line
Implements class decorators, PEP 3129.
................
r55432 | guido.van.rossum | 2007-05-18 08:09:41 -0700 (Fri, 18 May 2007) | 2 lines
obsubmit.
................
r55434 | guido.van.rossum | 2007-05-18 09:39:10 -0700 (Fri, 18 May 2007) | 3 lines
Fix bug in test_inspect. (I presume this is how it should be fixed;
Jack Diedrich, please verify.)
................
r55460 | brett.cannon | 2007-05-20 00:31:57 -0700 (Sun, 20 May 2007) | 4 lines
Remove the imageop module. With imgfile already removed in Python 3.0 and
rgbimg gone in Python 2.6 the unit tests themselves were made worthless. Plus
third-party libraries perform the same function much better.
................
r55469 | neal.norwitz | 2007-05-20 11:28:20 -0700 (Sun, 20 May 2007) | 118 lines
Merged revisions 55324-55467 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r55348 | georg.brandl | 2007-05-15 13:19:34 -0700 (Tue, 15 May 2007) | 4 lines
HTML-escape the plain traceback in cgitb's HTML output, to prevent
the traceback inadvertently or maliciously closing the comment and
injecting HTML into the error page.
........
r55372 | neal.norwitz | 2007-05-15 21:33:50 -0700 (Tue, 15 May 2007) | 6 lines
Port rev 55353 from Guido:
Add what looks like a necessary call to PyErr_NoMemory() when PyMem_MALLOC()
fails.
Will backport.
........
r55377 | neal.norwitz | 2007-05-15 22:06:33 -0700 (Tue, 15 May 2007) | 1 line
Mention removal of some directories for obsolete platforms
........
r55380 | brett.cannon | 2007-05-15 22:50:03 -0700 (Tue, 15 May 2007) | 2 lines
Change the maintainer of the BeOS port.
........
r55383 | georg.brandl | 2007-05-16 06:44:18 -0700 (Wed, 16 May 2007) | 2 lines
Bug #1719995: don't use deprecated method in sets example.
........
r55386 | neal.norwitz | 2007-05-16 13:05:11 -0700 (Wed, 16 May 2007) | 5 lines
Fix bug in marshal where bad data would cause a segfault due to
lack of an infinite recursion check.
Contributed by Damien Miller at Google.
........
r55389 | brett.cannon | 2007-05-16 15:42:29 -0700 (Wed, 16 May 2007) | 6 lines
Remove the gopherlib module. It has been raising a DeprecationWarning since
Python 2.5.
Also remove gopher support from urllib/urllib2. As both imported gopherlib the
usage of the support would have raised a DeprecationWarning.
........
r55394 | raymond.hettinger | 2007-05-16 18:08:04 -0700 (Wed, 16 May 2007) | 1 line
calendar.py gets no benefit from xrange() instead of range()
........
r55395 | brett.cannon | 2007-05-16 19:02:56 -0700 (Wed, 16 May 2007) | 3 lines
Complete deprecation of BaseException.message. Some subclasses were directly
accessing the message attribute instead of using the descriptor.
........
r55396 | neal.norwitz | 2007-05-16 23:11:36 -0700 (Wed, 16 May 2007) | 4 lines
Reduce the max stack depth to see if this fixes the segfaults on
Windows and some other boxes. If this is successful, this rev should
be backported. I'm not sure how close to the limit we should push this.
........
r55397 | neal.norwitz | 2007-05-16 23:23:50 -0700 (Wed, 16 May 2007) | 4 lines
Set the depth to something very small to try to determine if the
crashes on Windows are really due to the stack size or possibly
some other problem.
........
r55398 | neal.norwitz | 2007-05-17 00:04:46 -0700 (Thu, 17 May 2007) | 4 lines
Last try for tweaking the max stack depth. 5000 was the original value,
4000 didn't work either. 1000 does work on Windows. If 2000 works,
that will hopefully be a reasonable balance.
........
r55412 | fred.drake | 2007-05-17 12:29:58 -0700 (Thu, 17 May 2007) | 1 line
fix argument name in documentation; match the implementation
........
r55427 | neal.norwitz | 2007-05-17 22:47:16 -0700 (Thu, 17 May 2007) | 1 line
Verify neither dumps or loads overflow the stack and segfault.
........
r55446 | collin.winter | 2007-05-18 16:11:24 -0700 (Fri, 18 May 2007) | 1 line
Backport PEP 3110's new 'except' syntax to 2.6.
........
r55448 | raymond.hettinger | 2007-05-18 18:11:16 -0700 (Fri, 18 May 2007) | 1 line
Improvements to NamedTuple's implementation, tests, and documentation
........
r55449 | raymond.hettinger | 2007-05-18 18:50:11 -0700 (Fri, 18 May 2007) | 1 line
Fix beginner mistake -- don't mix spaces and tabs.
........
r55450 | neal.norwitz | 2007-05-18 20:48:47 -0700 (Fri, 18 May 2007) | 1 line
Clear data so random memory does not get freed. Will backport.
........
r55452 | neal.norwitz | 2007-05-18 21:34:55 -0700 (Fri, 18 May 2007) | 3 lines
Whoops, need to pay attention to those test failures.
Move the clear to *before* the first use, not after.
........
r55453 | neal.norwitz | 2007-05-18 21:35:52 -0700 (Fri, 18 May 2007) | 1 line
Give some clue as to what happened if the test fails.
........
r55455 | georg.brandl | 2007-05-19 11:09:26 -0700 (Sat, 19 May 2007) | 2 lines
Fix docstring for add_package in site.py.
........
r55458 | brett.cannon | 2007-05-20 00:09:50 -0700 (Sun, 20 May 2007) | 2 lines
Remove the rgbimg module. It has been deprecated since Python 2.5.
........
r55465 | nick.coghlan | 2007-05-20 04:12:49 -0700 (Sun, 20 May 2007) | 1 line
Fix typo in example (should be backported, but my maintenance branch is woefully out of date)
........
................
r55472 | brett.cannon | 2007-05-20 12:06:18 -0700 (Sun, 20 May 2007) | 2 lines
Remove imageop from the Windows build process.
................
r55486 | neal.norwitz | 2007-05-20 23:59:52 -0700 (Sun, 20 May 2007) | 1 line
Remove callable() builtin
................
r55506 | neal.norwitz | 2007-05-22 00:43:29 -0700 (Tue, 22 May 2007) | 78 lines
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
........
................
2007-05-22 15:11:13 -03:00
|
|
|
METH_VARARGS | METH_KEYWORDS | METH_CLASS,
|
2003-01-23 17:09:05 -04:00
|
|
|
PyDoc_STR("[tz] -> new datetime with tz's local day and time.")},
|
2003-01-10 23:39:11 -04:00
|
|
|
|
|
|
|
{"utcnow", (PyCFunction)datetime_utcnow,
|
|
|
|
METH_NOARGS | METH_CLASS,
|
|
|
|
PyDoc_STR("Return a new datetime representing UTC day and time.")},
|
2002-12-16 16:18:38 -04:00
|
|
|
|
2003-01-10 23:39:11 -04:00
|
|
|
{"fromtimestamp", (PyCFunction)datetime_fromtimestamp,
|
Merged revisions 55407-55513 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/p3yk
................
r55413 | fred.drake | 2007-05-17 12:30:10 -0700 (Thu, 17 May 2007) | 1 line
fix argument name in documentation; match the implementation
................
r55430 | jack.diederich | 2007-05-18 06:39:59 -0700 (Fri, 18 May 2007) | 1 line
Implements class decorators, PEP 3129.
................
r55432 | guido.van.rossum | 2007-05-18 08:09:41 -0700 (Fri, 18 May 2007) | 2 lines
obsubmit.
................
r55434 | guido.van.rossum | 2007-05-18 09:39:10 -0700 (Fri, 18 May 2007) | 3 lines
Fix bug in test_inspect. (I presume this is how it should be fixed;
Jack Diedrich, please verify.)
................
r55460 | brett.cannon | 2007-05-20 00:31:57 -0700 (Sun, 20 May 2007) | 4 lines
Remove the imageop module. With imgfile already removed in Python 3.0 and
rgbimg gone in Python 2.6 the unit tests themselves were made worthless. Plus
third-party libraries perform the same function much better.
................
r55469 | neal.norwitz | 2007-05-20 11:28:20 -0700 (Sun, 20 May 2007) | 118 lines
Merged revisions 55324-55467 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r55348 | georg.brandl | 2007-05-15 13:19:34 -0700 (Tue, 15 May 2007) | 4 lines
HTML-escape the plain traceback in cgitb's HTML output, to prevent
the traceback inadvertently or maliciously closing the comment and
injecting HTML into the error page.
........
r55372 | neal.norwitz | 2007-05-15 21:33:50 -0700 (Tue, 15 May 2007) | 6 lines
Port rev 55353 from Guido:
Add what looks like a necessary call to PyErr_NoMemory() when PyMem_MALLOC()
fails.
Will backport.
........
r55377 | neal.norwitz | 2007-05-15 22:06:33 -0700 (Tue, 15 May 2007) | 1 line
Mention removal of some directories for obsolete platforms
........
r55380 | brett.cannon | 2007-05-15 22:50:03 -0700 (Tue, 15 May 2007) | 2 lines
Change the maintainer of the BeOS port.
........
r55383 | georg.brandl | 2007-05-16 06:44:18 -0700 (Wed, 16 May 2007) | 2 lines
Bug #1719995: don't use deprecated method in sets example.
........
r55386 | neal.norwitz | 2007-05-16 13:05:11 -0700 (Wed, 16 May 2007) | 5 lines
Fix bug in marshal where bad data would cause a segfault due to
lack of an infinite recursion check.
Contributed by Damien Miller at Google.
........
r55389 | brett.cannon | 2007-05-16 15:42:29 -0700 (Wed, 16 May 2007) | 6 lines
Remove the gopherlib module. It has been raising a DeprecationWarning since
Python 2.5.
Also remove gopher support from urllib/urllib2. As both imported gopherlib the
usage of the support would have raised a DeprecationWarning.
........
r55394 | raymond.hettinger | 2007-05-16 18:08:04 -0700 (Wed, 16 May 2007) | 1 line
calendar.py gets no benefit from xrange() instead of range()
........
r55395 | brett.cannon | 2007-05-16 19:02:56 -0700 (Wed, 16 May 2007) | 3 lines
Complete deprecation of BaseException.message. Some subclasses were directly
accessing the message attribute instead of using the descriptor.
........
r55396 | neal.norwitz | 2007-05-16 23:11:36 -0700 (Wed, 16 May 2007) | 4 lines
Reduce the max stack depth to see if this fixes the segfaults on
Windows and some other boxes. If this is successful, this rev should
be backported. I'm not sure how close to the limit we should push this.
........
r55397 | neal.norwitz | 2007-05-16 23:23:50 -0700 (Wed, 16 May 2007) | 4 lines
Set the depth to something very small to try to determine if the
crashes on Windows are really due to the stack size or possibly
some other problem.
........
r55398 | neal.norwitz | 2007-05-17 00:04:46 -0700 (Thu, 17 May 2007) | 4 lines
Last try for tweaking the max stack depth. 5000 was the original value,
4000 didn't work either. 1000 does work on Windows. If 2000 works,
that will hopefully be a reasonable balance.
........
r55412 | fred.drake | 2007-05-17 12:29:58 -0700 (Thu, 17 May 2007) | 1 line
fix argument name in documentation; match the implementation
........
r55427 | neal.norwitz | 2007-05-17 22:47:16 -0700 (Thu, 17 May 2007) | 1 line
Verify neither dumps or loads overflow the stack and segfault.
........
r55446 | collin.winter | 2007-05-18 16:11:24 -0700 (Fri, 18 May 2007) | 1 line
Backport PEP 3110's new 'except' syntax to 2.6.
........
r55448 | raymond.hettinger | 2007-05-18 18:11:16 -0700 (Fri, 18 May 2007) | 1 line
Improvements to NamedTuple's implementation, tests, and documentation
........
r55449 | raymond.hettinger | 2007-05-18 18:50:11 -0700 (Fri, 18 May 2007) | 1 line
Fix beginner mistake -- don't mix spaces and tabs.
........
r55450 | neal.norwitz | 2007-05-18 20:48:47 -0700 (Fri, 18 May 2007) | 1 line
Clear data so random memory does not get freed. Will backport.
........
r55452 | neal.norwitz | 2007-05-18 21:34:55 -0700 (Fri, 18 May 2007) | 3 lines
Whoops, need to pay attention to those test failures.
Move the clear to *before* the first use, not after.
........
r55453 | neal.norwitz | 2007-05-18 21:35:52 -0700 (Fri, 18 May 2007) | 1 line
Give some clue as to what happened if the test fails.
........
r55455 | georg.brandl | 2007-05-19 11:09:26 -0700 (Sat, 19 May 2007) | 2 lines
Fix docstring for add_package in site.py.
........
r55458 | brett.cannon | 2007-05-20 00:09:50 -0700 (Sun, 20 May 2007) | 2 lines
Remove the rgbimg module. It has been deprecated since Python 2.5.
........
r55465 | nick.coghlan | 2007-05-20 04:12:49 -0700 (Sun, 20 May 2007) | 1 line
Fix typo in example (should be backported, but my maintenance branch is woefully out of date)
........
................
r55472 | brett.cannon | 2007-05-20 12:06:18 -0700 (Sun, 20 May 2007) | 2 lines
Remove imageop from the Windows build process.
................
r55486 | neal.norwitz | 2007-05-20 23:59:52 -0700 (Sun, 20 May 2007) | 1 line
Remove callable() builtin
................
r55506 | neal.norwitz | 2007-05-22 00:43:29 -0700 (Tue, 22 May 2007) | 78 lines
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
........
................
2007-05-22 15:11:13 -03:00
|
|
|
METH_VARARGS | METH_KEYWORDS | METH_CLASS,
|
2003-01-23 16:53:10 -04:00
|
|
|
PyDoc_STR("timestamp[, tz] -> tz's local time from POSIX timestamp.")},
|
2002-12-16 16:18:38 -04:00
|
|
|
|
2003-01-10 23:39:11 -04:00
|
|
|
{"utcfromtimestamp", (PyCFunction)datetime_utcfromtimestamp,
|
|
|
|
METH_VARARGS | METH_CLASS,
|
|
|
|
PyDoc_STR("timestamp -> UTC datetime from a POSIX timestamp "
|
|
|
|
"(like time.time()).")},
|
|
|
|
|
2005-01-13 00:12:31 -04:00
|
|
|
{"strptime", (PyCFunction)datetime_strptime,
|
|
|
|
METH_VARARGS | METH_CLASS,
|
|
|
|
PyDoc_STR("string, format -> new datetime parsed from a string "
|
|
|
|
"(like time.strptime()).")},
|
|
|
|
|
2003-01-10 23:39:11 -04:00
|
|
|
{"combine", (PyCFunction)datetime_combine,
|
|
|
|
METH_VARARGS | METH_KEYWORDS | METH_CLASS,
|
|
|
|
PyDoc_STR("date, time -> datetime with same date and time fields")},
|
|
|
|
|
2002-12-16 16:18:38 -04:00
|
|
|
/* Instance methods: */
|
2003-01-30 18:06:23 -04:00
|
|
|
|
2003-01-10 23:39:11 -04:00
|
|
|
{"date", (PyCFunction)datetime_getdate, METH_NOARGS,
|
|
|
|
PyDoc_STR("Return date object with same year, month and day.")},
|
|
|
|
|
|
|
|
{"time", (PyCFunction)datetime_gettime, METH_NOARGS,
|
|
|
|
PyDoc_STR("Return time object with same time but with tzinfo=None.")},
|
|
|
|
|
|
|
|
{"timetz", (PyCFunction)datetime_gettimetz, METH_NOARGS,
|
|
|
|
PyDoc_STR("Return time object with same time and tzinfo.")},
|
|
|
|
|
|
|
|
{"ctime", (PyCFunction)datetime_ctime, METH_NOARGS,
|
|
|
|
PyDoc_STR("Return ctime() style string.")},
|
|
|
|
|
|
|
|
{"timetuple", (PyCFunction)datetime_timetuple, METH_NOARGS,
|
2002-12-16 16:18:38 -04:00
|
|
|
PyDoc_STR("Return time tuple, compatible with time.localtime().")},
|
|
|
|
|
2003-01-10 23:39:11 -04:00
|
|
|
{"utctimetuple", (PyCFunction)datetime_utctimetuple, METH_NOARGS,
|
2002-12-16 16:18:38 -04:00
|
|
|
PyDoc_STR("Return UTC time tuple, compatible with time.localtime().")},
|
|
|
|
|
Merged revisions 55407-55513 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/p3yk
................
r55413 | fred.drake | 2007-05-17 12:30:10 -0700 (Thu, 17 May 2007) | 1 line
fix argument name in documentation; match the implementation
................
r55430 | jack.diederich | 2007-05-18 06:39:59 -0700 (Fri, 18 May 2007) | 1 line
Implements class decorators, PEP 3129.
................
r55432 | guido.van.rossum | 2007-05-18 08:09:41 -0700 (Fri, 18 May 2007) | 2 lines
obsubmit.
................
r55434 | guido.van.rossum | 2007-05-18 09:39:10 -0700 (Fri, 18 May 2007) | 3 lines
Fix bug in test_inspect. (I presume this is how it should be fixed;
Jack Diedrich, please verify.)
................
r55460 | brett.cannon | 2007-05-20 00:31:57 -0700 (Sun, 20 May 2007) | 4 lines
Remove the imageop module. With imgfile already removed in Python 3.0 and
rgbimg gone in Python 2.6 the unit tests themselves were made worthless. Plus
third-party libraries perform the same function much better.
................
r55469 | neal.norwitz | 2007-05-20 11:28:20 -0700 (Sun, 20 May 2007) | 118 lines
Merged revisions 55324-55467 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r55348 | georg.brandl | 2007-05-15 13:19:34 -0700 (Tue, 15 May 2007) | 4 lines
HTML-escape the plain traceback in cgitb's HTML output, to prevent
the traceback inadvertently or maliciously closing the comment and
injecting HTML into the error page.
........
r55372 | neal.norwitz | 2007-05-15 21:33:50 -0700 (Tue, 15 May 2007) | 6 lines
Port rev 55353 from Guido:
Add what looks like a necessary call to PyErr_NoMemory() when PyMem_MALLOC()
fails.
Will backport.
........
r55377 | neal.norwitz | 2007-05-15 22:06:33 -0700 (Tue, 15 May 2007) | 1 line
Mention removal of some directories for obsolete platforms
........
r55380 | brett.cannon | 2007-05-15 22:50:03 -0700 (Tue, 15 May 2007) | 2 lines
Change the maintainer of the BeOS port.
........
r55383 | georg.brandl | 2007-05-16 06:44:18 -0700 (Wed, 16 May 2007) | 2 lines
Bug #1719995: don't use deprecated method in sets example.
........
r55386 | neal.norwitz | 2007-05-16 13:05:11 -0700 (Wed, 16 May 2007) | 5 lines
Fix bug in marshal where bad data would cause a segfault due to
lack of an infinite recursion check.
Contributed by Damien Miller at Google.
........
r55389 | brett.cannon | 2007-05-16 15:42:29 -0700 (Wed, 16 May 2007) | 6 lines
Remove the gopherlib module. It has been raising a DeprecationWarning since
Python 2.5.
Also remove gopher support from urllib/urllib2. As both imported gopherlib the
usage of the support would have raised a DeprecationWarning.
........
r55394 | raymond.hettinger | 2007-05-16 18:08:04 -0700 (Wed, 16 May 2007) | 1 line
calendar.py gets no benefit from xrange() instead of range()
........
r55395 | brett.cannon | 2007-05-16 19:02:56 -0700 (Wed, 16 May 2007) | 3 lines
Complete deprecation of BaseException.message. Some subclasses were directly
accessing the message attribute instead of using the descriptor.
........
r55396 | neal.norwitz | 2007-05-16 23:11:36 -0700 (Wed, 16 May 2007) | 4 lines
Reduce the max stack depth to see if this fixes the segfaults on
Windows and some other boxes. If this is successful, this rev should
be backported. I'm not sure how close to the limit we should push this.
........
r55397 | neal.norwitz | 2007-05-16 23:23:50 -0700 (Wed, 16 May 2007) | 4 lines
Set the depth to something very small to try to determine if the
crashes on Windows are really due to the stack size or possibly
some other problem.
........
r55398 | neal.norwitz | 2007-05-17 00:04:46 -0700 (Thu, 17 May 2007) | 4 lines
Last try for tweaking the max stack depth. 5000 was the original value,
4000 didn't work either. 1000 does work on Windows. If 2000 works,
that will hopefully be a reasonable balance.
........
r55412 | fred.drake | 2007-05-17 12:29:58 -0700 (Thu, 17 May 2007) | 1 line
fix argument name in documentation; match the implementation
........
r55427 | neal.norwitz | 2007-05-17 22:47:16 -0700 (Thu, 17 May 2007) | 1 line
Verify neither dumps or loads overflow the stack and segfault.
........
r55446 | collin.winter | 2007-05-18 16:11:24 -0700 (Fri, 18 May 2007) | 1 line
Backport PEP 3110's new 'except' syntax to 2.6.
........
r55448 | raymond.hettinger | 2007-05-18 18:11:16 -0700 (Fri, 18 May 2007) | 1 line
Improvements to NamedTuple's implementation, tests, and documentation
........
r55449 | raymond.hettinger | 2007-05-18 18:50:11 -0700 (Fri, 18 May 2007) | 1 line
Fix beginner mistake -- don't mix spaces and tabs.
........
r55450 | neal.norwitz | 2007-05-18 20:48:47 -0700 (Fri, 18 May 2007) | 1 line
Clear data so random memory does not get freed. Will backport.
........
r55452 | neal.norwitz | 2007-05-18 21:34:55 -0700 (Fri, 18 May 2007) | 3 lines
Whoops, need to pay attention to those test failures.
Move the clear to *before* the first use, not after.
........
r55453 | neal.norwitz | 2007-05-18 21:35:52 -0700 (Fri, 18 May 2007) | 1 line
Give some clue as to what happened if the test fails.
........
r55455 | georg.brandl | 2007-05-19 11:09:26 -0700 (Sat, 19 May 2007) | 2 lines
Fix docstring for add_package in site.py.
........
r55458 | brett.cannon | 2007-05-20 00:09:50 -0700 (Sun, 20 May 2007) | 2 lines
Remove the rgbimg module. It has been deprecated since Python 2.5.
........
r55465 | nick.coghlan | 2007-05-20 04:12:49 -0700 (Sun, 20 May 2007) | 1 line
Fix typo in example (should be backported, but my maintenance branch is woefully out of date)
........
................
r55472 | brett.cannon | 2007-05-20 12:06:18 -0700 (Sun, 20 May 2007) | 2 lines
Remove imageop from the Windows build process.
................
r55486 | neal.norwitz | 2007-05-20 23:59:52 -0700 (Sun, 20 May 2007) | 1 line
Remove callable() builtin
................
r55506 | neal.norwitz | 2007-05-22 00:43:29 -0700 (Tue, 22 May 2007) | 78 lines
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
........
................
2007-05-22 15:11:13 -03:00
|
|
|
{"isoformat", (PyCFunction)datetime_isoformat, METH_VARARGS | METH_KEYWORDS,
|
2002-12-16 16:18:38 -04:00
|
|
|
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 "
|
|
|
|
"defaults to 'T'.")},
|
|
|
|
|
2003-01-10 23:39:11 -04:00
|
|
|
{"utcoffset", (PyCFunction)datetime_utcoffset, METH_NOARGS,
|
2002-12-16 16:18:38 -04:00
|
|
|
PyDoc_STR("Return self.tzinfo.utcoffset(self).")},
|
|
|
|
|
2003-01-10 23:39:11 -04:00
|
|
|
{"tzname", (PyCFunction)datetime_tzname, METH_NOARGS,
|
2002-12-16 16:18:38 -04:00
|
|
|
PyDoc_STR("Return self.tzinfo.tzname(self).")},
|
|
|
|
|
2003-01-10 23:39:11 -04:00
|
|
|
{"dst", (PyCFunction)datetime_dst, METH_NOARGS,
|
2002-12-16 16:18:38 -04:00
|
|
|
PyDoc_STR("Return self.tzinfo.dst(self).")},
|
|
|
|
|
Merged revisions 55407-55513 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/p3yk
................
r55413 | fred.drake | 2007-05-17 12:30:10 -0700 (Thu, 17 May 2007) | 1 line
fix argument name in documentation; match the implementation
................
r55430 | jack.diederich | 2007-05-18 06:39:59 -0700 (Fri, 18 May 2007) | 1 line
Implements class decorators, PEP 3129.
................
r55432 | guido.van.rossum | 2007-05-18 08:09:41 -0700 (Fri, 18 May 2007) | 2 lines
obsubmit.
................
r55434 | guido.van.rossum | 2007-05-18 09:39:10 -0700 (Fri, 18 May 2007) | 3 lines
Fix bug in test_inspect. (I presume this is how it should be fixed;
Jack Diedrich, please verify.)
................
r55460 | brett.cannon | 2007-05-20 00:31:57 -0700 (Sun, 20 May 2007) | 4 lines
Remove the imageop module. With imgfile already removed in Python 3.0 and
rgbimg gone in Python 2.6 the unit tests themselves were made worthless. Plus
third-party libraries perform the same function much better.
................
r55469 | neal.norwitz | 2007-05-20 11:28:20 -0700 (Sun, 20 May 2007) | 118 lines
Merged revisions 55324-55467 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r55348 | georg.brandl | 2007-05-15 13:19:34 -0700 (Tue, 15 May 2007) | 4 lines
HTML-escape the plain traceback in cgitb's HTML output, to prevent
the traceback inadvertently or maliciously closing the comment and
injecting HTML into the error page.
........
r55372 | neal.norwitz | 2007-05-15 21:33:50 -0700 (Tue, 15 May 2007) | 6 lines
Port rev 55353 from Guido:
Add what looks like a necessary call to PyErr_NoMemory() when PyMem_MALLOC()
fails.
Will backport.
........
r55377 | neal.norwitz | 2007-05-15 22:06:33 -0700 (Tue, 15 May 2007) | 1 line
Mention removal of some directories for obsolete platforms
........
r55380 | brett.cannon | 2007-05-15 22:50:03 -0700 (Tue, 15 May 2007) | 2 lines
Change the maintainer of the BeOS port.
........
r55383 | georg.brandl | 2007-05-16 06:44:18 -0700 (Wed, 16 May 2007) | 2 lines
Bug #1719995: don't use deprecated method in sets example.
........
r55386 | neal.norwitz | 2007-05-16 13:05:11 -0700 (Wed, 16 May 2007) | 5 lines
Fix bug in marshal where bad data would cause a segfault due to
lack of an infinite recursion check.
Contributed by Damien Miller at Google.
........
r55389 | brett.cannon | 2007-05-16 15:42:29 -0700 (Wed, 16 May 2007) | 6 lines
Remove the gopherlib module. It has been raising a DeprecationWarning since
Python 2.5.
Also remove gopher support from urllib/urllib2. As both imported gopherlib the
usage of the support would have raised a DeprecationWarning.
........
r55394 | raymond.hettinger | 2007-05-16 18:08:04 -0700 (Wed, 16 May 2007) | 1 line
calendar.py gets no benefit from xrange() instead of range()
........
r55395 | brett.cannon | 2007-05-16 19:02:56 -0700 (Wed, 16 May 2007) | 3 lines
Complete deprecation of BaseException.message. Some subclasses were directly
accessing the message attribute instead of using the descriptor.
........
r55396 | neal.norwitz | 2007-05-16 23:11:36 -0700 (Wed, 16 May 2007) | 4 lines
Reduce the max stack depth to see if this fixes the segfaults on
Windows and some other boxes. If this is successful, this rev should
be backported. I'm not sure how close to the limit we should push this.
........
r55397 | neal.norwitz | 2007-05-16 23:23:50 -0700 (Wed, 16 May 2007) | 4 lines
Set the depth to something very small to try to determine if the
crashes on Windows are really due to the stack size or possibly
some other problem.
........
r55398 | neal.norwitz | 2007-05-17 00:04:46 -0700 (Thu, 17 May 2007) | 4 lines
Last try for tweaking the max stack depth. 5000 was the original value,
4000 didn't work either. 1000 does work on Windows. If 2000 works,
that will hopefully be a reasonable balance.
........
r55412 | fred.drake | 2007-05-17 12:29:58 -0700 (Thu, 17 May 2007) | 1 line
fix argument name in documentation; match the implementation
........
r55427 | neal.norwitz | 2007-05-17 22:47:16 -0700 (Thu, 17 May 2007) | 1 line
Verify neither dumps or loads overflow the stack and segfault.
........
r55446 | collin.winter | 2007-05-18 16:11:24 -0700 (Fri, 18 May 2007) | 1 line
Backport PEP 3110's new 'except' syntax to 2.6.
........
r55448 | raymond.hettinger | 2007-05-18 18:11:16 -0700 (Fri, 18 May 2007) | 1 line
Improvements to NamedTuple's implementation, tests, and documentation
........
r55449 | raymond.hettinger | 2007-05-18 18:50:11 -0700 (Fri, 18 May 2007) | 1 line
Fix beginner mistake -- don't mix spaces and tabs.
........
r55450 | neal.norwitz | 2007-05-18 20:48:47 -0700 (Fri, 18 May 2007) | 1 line
Clear data so random memory does not get freed. Will backport.
........
r55452 | neal.norwitz | 2007-05-18 21:34:55 -0700 (Fri, 18 May 2007) | 3 lines
Whoops, need to pay attention to those test failures.
Move the clear to *before* the first use, not after.
........
r55453 | neal.norwitz | 2007-05-18 21:35:52 -0700 (Fri, 18 May 2007) | 1 line
Give some clue as to what happened if the test fails.
........
r55455 | georg.brandl | 2007-05-19 11:09:26 -0700 (Sat, 19 May 2007) | 2 lines
Fix docstring for add_package in site.py.
........
r55458 | brett.cannon | 2007-05-20 00:09:50 -0700 (Sun, 20 May 2007) | 2 lines
Remove the rgbimg module. It has been deprecated since Python 2.5.
........
r55465 | nick.coghlan | 2007-05-20 04:12:49 -0700 (Sun, 20 May 2007) | 1 line
Fix typo in example (should be backported, but my maintenance branch is woefully out of date)
........
................
r55472 | brett.cannon | 2007-05-20 12:06:18 -0700 (Sun, 20 May 2007) | 2 lines
Remove imageop from the Windows build process.
................
r55486 | neal.norwitz | 2007-05-20 23:59:52 -0700 (Sun, 20 May 2007) | 1 line
Remove callable() builtin
................
r55506 | neal.norwitz | 2007-05-22 00:43:29 -0700 (Tue, 22 May 2007) | 78 lines
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
........
................
2007-05-22 15:11:13 -03:00
|
|
|
{"replace", (PyCFunction)datetime_replace, METH_VARARGS | METH_KEYWORDS,
|
2003-01-10 23:39:11 -04:00
|
|
|
PyDoc_STR("Return datetime with new specified fields.")},
|
2002-12-24 01:41:27 -04:00
|
|
|
|
Merged revisions 55407-55513 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/p3yk
................
r55413 | fred.drake | 2007-05-17 12:30:10 -0700 (Thu, 17 May 2007) | 1 line
fix argument name in documentation; match the implementation
................
r55430 | jack.diederich | 2007-05-18 06:39:59 -0700 (Fri, 18 May 2007) | 1 line
Implements class decorators, PEP 3129.
................
r55432 | guido.van.rossum | 2007-05-18 08:09:41 -0700 (Fri, 18 May 2007) | 2 lines
obsubmit.
................
r55434 | guido.van.rossum | 2007-05-18 09:39:10 -0700 (Fri, 18 May 2007) | 3 lines
Fix bug in test_inspect. (I presume this is how it should be fixed;
Jack Diedrich, please verify.)
................
r55460 | brett.cannon | 2007-05-20 00:31:57 -0700 (Sun, 20 May 2007) | 4 lines
Remove the imageop module. With imgfile already removed in Python 3.0 and
rgbimg gone in Python 2.6 the unit tests themselves were made worthless. Plus
third-party libraries perform the same function much better.
................
r55469 | neal.norwitz | 2007-05-20 11:28:20 -0700 (Sun, 20 May 2007) | 118 lines
Merged revisions 55324-55467 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r55348 | georg.brandl | 2007-05-15 13:19:34 -0700 (Tue, 15 May 2007) | 4 lines
HTML-escape the plain traceback in cgitb's HTML output, to prevent
the traceback inadvertently or maliciously closing the comment and
injecting HTML into the error page.
........
r55372 | neal.norwitz | 2007-05-15 21:33:50 -0700 (Tue, 15 May 2007) | 6 lines
Port rev 55353 from Guido:
Add what looks like a necessary call to PyErr_NoMemory() when PyMem_MALLOC()
fails.
Will backport.
........
r55377 | neal.norwitz | 2007-05-15 22:06:33 -0700 (Tue, 15 May 2007) | 1 line
Mention removal of some directories for obsolete platforms
........
r55380 | brett.cannon | 2007-05-15 22:50:03 -0700 (Tue, 15 May 2007) | 2 lines
Change the maintainer of the BeOS port.
........
r55383 | georg.brandl | 2007-05-16 06:44:18 -0700 (Wed, 16 May 2007) | 2 lines
Bug #1719995: don't use deprecated method in sets example.
........
r55386 | neal.norwitz | 2007-05-16 13:05:11 -0700 (Wed, 16 May 2007) | 5 lines
Fix bug in marshal where bad data would cause a segfault due to
lack of an infinite recursion check.
Contributed by Damien Miller at Google.
........
r55389 | brett.cannon | 2007-05-16 15:42:29 -0700 (Wed, 16 May 2007) | 6 lines
Remove the gopherlib module. It has been raising a DeprecationWarning since
Python 2.5.
Also remove gopher support from urllib/urllib2. As both imported gopherlib the
usage of the support would have raised a DeprecationWarning.
........
r55394 | raymond.hettinger | 2007-05-16 18:08:04 -0700 (Wed, 16 May 2007) | 1 line
calendar.py gets no benefit from xrange() instead of range()
........
r55395 | brett.cannon | 2007-05-16 19:02:56 -0700 (Wed, 16 May 2007) | 3 lines
Complete deprecation of BaseException.message. Some subclasses were directly
accessing the message attribute instead of using the descriptor.
........
r55396 | neal.norwitz | 2007-05-16 23:11:36 -0700 (Wed, 16 May 2007) | 4 lines
Reduce the max stack depth to see if this fixes the segfaults on
Windows and some other boxes. If this is successful, this rev should
be backported. I'm not sure how close to the limit we should push this.
........
r55397 | neal.norwitz | 2007-05-16 23:23:50 -0700 (Wed, 16 May 2007) | 4 lines
Set the depth to something very small to try to determine if the
crashes on Windows are really due to the stack size or possibly
some other problem.
........
r55398 | neal.norwitz | 2007-05-17 00:04:46 -0700 (Thu, 17 May 2007) | 4 lines
Last try for tweaking the max stack depth. 5000 was the original value,
4000 didn't work either. 1000 does work on Windows. If 2000 works,
that will hopefully be a reasonable balance.
........
r55412 | fred.drake | 2007-05-17 12:29:58 -0700 (Thu, 17 May 2007) | 1 line
fix argument name in documentation; match the implementation
........
r55427 | neal.norwitz | 2007-05-17 22:47:16 -0700 (Thu, 17 May 2007) | 1 line
Verify neither dumps or loads overflow the stack and segfault.
........
r55446 | collin.winter | 2007-05-18 16:11:24 -0700 (Fri, 18 May 2007) | 1 line
Backport PEP 3110's new 'except' syntax to 2.6.
........
r55448 | raymond.hettinger | 2007-05-18 18:11:16 -0700 (Fri, 18 May 2007) | 1 line
Improvements to NamedTuple's implementation, tests, and documentation
........
r55449 | raymond.hettinger | 2007-05-18 18:50:11 -0700 (Fri, 18 May 2007) | 1 line
Fix beginner mistake -- don't mix spaces and tabs.
........
r55450 | neal.norwitz | 2007-05-18 20:48:47 -0700 (Fri, 18 May 2007) | 1 line
Clear data so random memory does not get freed. Will backport.
........
r55452 | neal.norwitz | 2007-05-18 21:34:55 -0700 (Fri, 18 May 2007) | 3 lines
Whoops, need to pay attention to those test failures.
Move the clear to *before* the first use, not after.
........
r55453 | neal.norwitz | 2007-05-18 21:35:52 -0700 (Fri, 18 May 2007) | 1 line
Give some clue as to what happened if the test fails.
........
r55455 | georg.brandl | 2007-05-19 11:09:26 -0700 (Sat, 19 May 2007) | 2 lines
Fix docstring for add_package in site.py.
........
r55458 | brett.cannon | 2007-05-20 00:09:50 -0700 (Sun, 20 May 2007) | 2 lines
Remove the rgbimg module. It has been deprecated since Python 2.5.
........
r55465 | nick.coghlan | 2007-05-20 04:12:49 -0700 (Sun, 20 May 2007) | 1 line
Fix typo in example (should be backported, but my maintenance branch is woefully out of date)
........
................
r55472 | brett.cannon | 2007-05-20 12:06:18 -0700 (Sun, 20 May 2007) | 2 lines
Remove imageop from the Windows build process.
................
r55486 | neal.norwitz | 2007-05-20 23:59:52 -0700 (Sun, 20 May 2007) | 1 line
Remove callable() builtin
................
r55506 | neal.norwitz | 2007-05-22 00:43:29 -0700 (Tue, 22 May 2007) | 78 lines
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
........
................
2007-05-22 15:11:13 -03:00
|
|
|
{"astimezone", (PyCFunction)datetime_astimezone, METH_VARARGS | METH_KEYWORDS,
|
2002-12-25 03:40:55 -04:00
|
|
|
PyDoc_STR("tz -> convert to local time in new timezone tz\n")},
|
|
|
|
|
2003-01-30 18:06:23 -04:00
|
|
|
{"__reduce__", (PyCFunction)datetime_reduce, METH_NOARGS,
|
|
|
|
PyDoc_STR("__reduce__() -> (cls, state)")},
|
|
|
|
|
2002-12-16 16:18:38 -04:00
|
|
|
{NULL, NULL}
|
|
|
|
};
|
|
|
|
|
2003-01-10 23:39:11 -04:00
|
|
|
static char datetime_doc[] =
|
2004-12-19 16:13:24 -04:00
|
|
|
PyDoc_STR("datetime(year, month, day[, hour[, minute[, second[, microsecond[,tzinfo]]]]])\n\
|
|
|
|
\n\
|
|
|
|
The year, month and day arguments are required. tzinfo may be None, or an\n\
|
|
|
|
instance of a tzinfo subclass. The remaining arguments may be ints or longs.\n");
|
2002-12-16 16:18:38 -04:00
|
|
|
|
2003-01-10 23:39:11 -04:00
|
|
|
static PyNumberMethods datetime_as_number = {
|
|
|
|
datetime_add, /* nb_add */
|
|
|
|
datetime_subtract, /* nb_subtract */
|
2002-12-16 16:18:38 -04:00
|
|
|
0, /* nb_multiply */
|
|
|
|
0, /* nb_remainder */
|
|
|
|
0, /* nb_divmod */
|
|
|
|
0, /* nb_power */
|
|
|
|
0, /* nb_negative */
|
|
|
|
0, /* nb_positive */
|
|
|
|
0, /* nb_absolute */
|
2006-11-28 15:15:13 -04:00
|
|
|
0, /* nb_bool */
|
2002-12-16 16:18:38 -04:00
|
|
|
};
|
|
|
|
|
2006-03-22 05:28:35 -04:00
|
|
|
static PyTypeObject PyDateTime_DateTimeType = {
|
Merged revisions 56467-56482 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/p3yk
................
r56477 | martin.v.loewis | 2007-07-21 09:04:38 +0200 (Sa, 21 Jul 2007) | 11 lines
Merged revisions 56466-56476 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r56476 | martin.v.loewis | 2007-07-21 08:55:02 +0200 (Sa, 21 Jul 2007) | 4 lines
PEP 3123: Provide forward compatibility with Python 3.0, while keeping
backwards compatibility. Add Py_Refcnt, Py_Type, Py_Size, and
PyVarObject_HEAD_INIT.
........
................
r56478 | martin.v.loewis | 2007-07-21 09:47:23 +0200 (Sa, 21 Jul 2007) | 2 lines
PEP 3123: Use proper C inheritance for PyObject.
................
r56479 | martin.v.loewis | 2007-07-21 10:06:55 +0200 (Sa, 21 Jul 2007) | 3 lines
Add longintrepr.h to Python.h, so that the compiler can
see that PyFalse is really some kind of PyObject*.
................
r56480 | martin.v.loewis | 2007-07-21 10:47:18 +0200 (Sa, 21 Jul 2007) | 2 lines
Qualify SHIFT, MASK, BASE.
................
r56482 | martin.v.loewis | 2007-07-21 19:10:57 +0200 (Sa, 21 Jul 2007) | 2 lines
Correctly refer to _ob_next.
................
2007-07-21 14:22:18 -03:00
|
|
|
PyVarObject_HEAD_INIT(NULL, 0)
|
2003-01-08 16:40:01 -04:00
|
|
|
"datetime.datetime", /* tp_name */
|
2003-01-10 23:39:11 -04:00
|
|
|
sizeof(PyDateTime_DateTime), /* tp_basicsize */
|
2002-12-16 16:18:38 -04:00
|
|
|
0, /* tp_itemsize */
|
2003-01-10 23:39:11 -04:00
|
|
|
(destructor)datetime_dealloc, /* tp_dealloc */
|
2002-12-16 16:18:38 -04:00
|
|
|
0, /* tp_print */
|
|
|
|
0, /* tp_getattr */
|
|
|
|
0, /* tp_setattr */
|
2009-02-02 16:36:42 -04:00
|
|
|
0, /* tp_reserved */
|
2003-01-10 23:39:11 -04:00
|
|
|
(reprfunc)datetime_repr, /* tp_repr */
|
|
|
|
&datetime_as_number, /* tp_as_number */
|
2002-12-16 16:18:38 -04:00
|
|
|
0, /* tp_as_sequence */
|
|
|
|
0, /* tp_as_mapping */
|
2003-01-10 23:39:11 -04:00
|
|
|
(hashfunc)datetime_hash, /* tp_hash */
|
2002-12-16 16:18:38 -04:00
|
|
|
0, /* tp_call */
|
2003-01-10 23:39:11 -04:00
|
|
|
(reprfunc)datetime_str, /* tp_str */
|
2002-12-16 16:18:38 -04:00
|
|
|
PyObject_GenericGetAttr, /* tp_getattro */
|
|
|
|
0, /* tp_setattro */
|
|
|
|
0, /* tp_as_buffer */
|
2006-07-27 18:53:35 -03:00
|
|
|
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /* tp_flags */
|
2003-01-10 23:39:11 -04:00
|
|
|
datetime_doc, /* tp_doc */
|
2002-12-16 16:18:38 -04:00
|
|
|
0, /* tp_traverse */
|
|
|
|
0, /* tp_clear */
|
2006-08-24 14:29:38 -03:00
|
|
|
datetime_richcompare, /* tp_richcompare */
|
2002-12-16 16:18:38 -04:00
|
|
|
0, /* tp_weaklistoffset */
|
|
|
|
0, /* tp_iter */
|
|
|
|
0, /* tp_iternext */
|
2003-01-10 23:39:11 -04:00
|
|
|
datetime_methods, /* tp_methods */
|
2002-12-16 16:18:38 -04:00
|
|
|
0, /* tp_members */
|
2003-01-10 23:39:11 -04:00
|
|
|
datetime_getset, /* tp_getset */
|
|
|
|
&PyDateTime_DateType, /* tp_base */
|
2002-12-16 16:18:38 -04:00
|
|
|
0, /* tp_dict */
|
|
|
|
0, /* tp_descr_get */
|
|
|
|
0, /* tp_descr_set */
|
|
|
|
0, /* tp_dictoffset */
|
|
|
|
0, /* tp_init */
|
2003-05-17 02:55:19 -03:00
|
|
|
datetime_alloc, /* tp_alloc */
|
2003-01-10 23:39:11 -04:00
|
|
|
datetime_new, /* tp_new */
|
2003-05-16 19:44:06 -03:00
|
|
|
0, /* tp_free */
|
2002-12-16 16:18:38 -04:00
|
|
|
};
|
|
|
|
|
|
|
|
/* ---------------------------------------------------------------------------
|
|
|
|
* Module methods and initialization.
|
|
|
|
*/
|
|
|
|
|
|
|
|
static PyMethodDef module_methods[] = {
|
|
|
|
{NULL, NULL}
|
|
|
|
};
|
|
|
|
|
2004-06-20 19:41:32 -03:00
|
|
|
/* C API. Clients get at this via PyDateTime_IMPORT, defined in
|
|
|
|
* datetime.h.
|
|
|
|
*/
|
|
|
|
static PyDateTime_CAPI CAPI = {
|
|
|
|
&PyDateTime_DateType,
|
|
|
|
&PyDateTime_DateTimeType,
|
|
|
|
&PyDateTime_TimeType,
|
|
|
|
&PyDateTime_DeltaType,
|
|
|
|
&PyDateTime_TZInfoType,
|
|
|
|
new_date_ex,
|
|
|
|
new_datetime_ex,
|
|
|
|
new_time_ex,
|
|
|
|
new_delta_ex,
|
|
|
|
datetime_fromtimestamp,
|
|
|
|
date_fromtimestamp
|
|
|
|
};
|
|
|
|
|
|
|
|
|
2008-06-11 02:26:20 -03:00
|
|
|
|
|
|
|
static struct PyModuleDef datetimemodule = {
|
|
|
|
PyModuleDef_HEAD_INIT,
|
|
|
|
"datetime",
|
|
|
|
"Fast implementation of the datetime type.",
|
|
|
|
-1,
|
|
|
|
module_methods,
|
|
|
|
NULL,
|
|
|
|
NULL,
|
|
|
|
NULL,
|
|
|
|
NULL
|
|
|
|
};
|
|
|
|
|
2002-12-16 16:18:38 -04:00
|
|
|
PyMODINIT_FUNC
|
2008-06-11 02:26:20 -03:00
|
|
|
PyInit_datetime(void)
|
2002-12-16 16:18:38 -04:00
|
|
|
{
|
|
|
|
PyObject *m; /* a module object */
|
|
|
|
PyObject *d; /* its dict */
|
|
|
|
PyObject *x;
|
|
|
|
|
2008-06-11 02:26:20 -03:00
|
|
|
m = PyModule_Create(&datetimemodule);
|
2006-01-19 02:09:39 -04:00
|
|
|
if (m == NULL)
|
2008-06-11 02:26:20 -03:00
|
|
|
return NULL;
|
2002-12-16 16:18:38 -04:00
|
|
|
|
|
|
|
if (PyType_Ready(&PyDateTime_DateType) < 0)
|
2008-06-11 02:26:20 -03:00
|
|
|
return NULL;
|
2002-12-16 16:18:38 -04:00
|
|
|
if (PyType_Ready(&PyDateTime_DateTimeType) < 0)
|
2008-06-11 02:26:20 -03:00
|
|
|
return NULL;
|
2002-12-16 16:18:38 -04:00
|
|
|
if (PyType_Ready(&PyDateTime_DeltaType) < 0)
|
2008-06-11 02:26:20 -03:00
|
|
|
return NULL;
|
2002-12-16 16:18:38 -04:00
|
|
|
if (PyType_Ready(&PyDateTime_TimeType) < 0)
|
2008-06-11 02:26:20 -03:00
|
|
|
return NULL;
|
2002-12-16 16:18:38 -04:00
|
|
|
if (PyType_Ready(&PyDateTime_TZInfoType) < 0)
|
2008-06-11 02:26:20 -03:00
|
|
|
return NULL;
|
2002-12-16 16:18:38 -04:00
|
|
|
|
|
|
|
/* timedelta values */
|
|
|
|
d = PyDateTime_DeltaType.tp_dict;
|
|
|
|
|
|
|
|
x = new_delta(0, 0, 1, 0);
|
|
|
|
if (x == NULL || PyDict_SetItemString(d, "resolution", x) < 0)
|
2008-06-11 02:26:20 -03:00
|
|
|
return NULL;
|
2002-12-16 16:18:38 -04:00
|
|
|
Py_DECREF(x);
|
|
|
|
|
|
|
|
x = new_delta(-MAX_DELTA_DAYS, 0, 0, 0);
|
|
|
|
if (x == NULL || PyDict_SetItemString(d, "min", x) < 0)
|
2008-06-11 02:26:20 -03:00
|
|
|
return NULL;
|
2002-12-16 16:18:38 -04:00
|
|
|
Py_DECREF(x);
|
|
|
|
|
|
|
|
x = new_delta(MAX_DELTA_DAYS, 24*3600-1, 1000000-1, 0);
|
|
|
|
if (x == NULL || PyDict_SetItemString(d, "max", x) < 0)
|
2008-06-11 02:26:20 -03:00
|
|
|
return NULL;
|
2002-12-16 16:18:38 -04:00
|
|
|
Py_DECREF(x);
|
|
|
|
|
|
|
|
/* date values */
|
|
|
|
d = PyDateTime_DateType.tp_dict;
|
|
|
|
|
|
|
|
x = new_date(1, 1, 1);
|
|
|
|
if (x == NULL || PyDict_SetItemString(d, "min", x) < 0)
|
2008-06-11 02:26:20 -03:00
|
|
|
return NULL;
|
2002-12-16 16:18:38 -04:00
|
|
|
Py_DECREF(x);
|
|
|
|
|
|
|
|
x = new_date(MAXYEAR, 12, 31);
|
|
|
|
if (x == NULL || PyDict_SetItemString(d, "max", x) < 0)
|
2008-06-11 02:26:20 -03:00
|
|
|
return NULL;
|
2002-12-16 16:18:38 -04:00
|
|
|
Py_DECREF(x);
|
|
|
|
|
|
|
|
x = new_delta(1, 0, 0, 0);
|
|
|
|
if (x == NULL || PyDict_SetItemString(d, "resolution", x) < 0)
|
2008-06-11 02:26:20 -03:00
|
|
|
return NULL;
|
2002-12-16 16:18:38 -04:00
|
|
|
Py_DECREF(x);
|
|
|
|
|
2003-01-09 23:49:02 -04:00
|
|
|
/* time values */
|
|
|
|
d = PyDateTime_TimeType.tp_dict;
|
2002-12-16 16:18:38 -04:00
|
|
|
|
2003-01-09 23:49:02 -04:00
|
|
|
x = new_time(0, 0, 0, 0, Py_None);
|
2002-12-16 16:18:38 -04:00
|
|
|
if (x == NULL || PyDict_SetItemString(d, "min", x) < 0)
|
2008-06-11 02:26:20 -03:00
|
|
|
return NULL;
|
2002-12-16 16:18:38 -04:00
|
|
|
Py_DECREF(x);
|
|
|
|
|
2003-01-09 23:49:02 -04:00
|
|
|
x = new_time(23, 59, 59, 999999, Py_None);
|
2002-12-16 16:18:38 -04:00
|
|
|
if (x == NULL || PyDict_SetItemString(d, "max", x) < 0)
|
2008-06-11 02:26:20 -03:00
|
|
|
return NULL;
|
2002-12-16 16:18:38 -04:00
|
|
|
Py_DECREF(x);
|
|
|
|
|
|
|
|
x = new_delta(0, 0, 1, 0);
|
|
|
|
if (x == NULL || PyDict_SetItemString(d, "resolution", x) < 0)
|
2008-06-11 02:26:20 -03:00
|
|
|
return NULL;
|
2002-12-16 16:18:38 -04:00
|
|
|
Py_DECREF(x);
|
|
|
|
|
2003-01-10 23:39:11 -04:00
|
|
|
/* datetime values */
|
|
|
|
d = PyDateTime_DateTimeType.tp_dict;
|
2002-12-16 16:18:38 -04:00
|
|
|
|
2003-01-10 23:39:11 -04:00
|
|
|
x = new_datetime(1, 1, 1, 0, 0, 0, 0, Py_None);
|
2002-12-16 16:18:38 -04:00
|
|
|
if (x == NULL || PyDict_SetItemString(d, "min", x) < 0)
|
2008-06-11 02:26:20 -03:00
|
|
|
return NULL;
|
2002-12-16 16:18:38 -04:00
|
|
|
Py_DECREF(x);
|
|
|
|
|
2003-01-10 23:39:11 -04:00
|
|
|
x = new_datetime(MAXYEAR, 12, 31, 23, 59, 59, 999999, Py_None);
|
2002-12-16 16:18:38 -04:00
|
|
|
if (x == NULL || PyDict_SetItemString(d, "max", x) < 0)
|
2008-06-11 02:26:20 -03:00
|
|
|
return NULL;
|
2002-12-16 16:18:38 -04:00
|
|
|
Py_DECREF(x);
|
|
|
|
|
|
|
|
x = new_delta(0, 0, 1, 0);
|
|
|
|
if (x == NULL || PyDict_SetItemString(d, "resolution", x) < 0)
|
2008-06-11 02:26:20 -03:00
|
|
|
return NULL;
|
2002-12-16 16:18:38 -04:00
|
|
|
Py_DECREF(x);
|
|
|
|
|
|
|
|
/* module initialization */
|
|
|
|
PyModule_AddIntConstant(m, "MINYEAR", MINYEAR);
|
|
|
|
PyModule_AddIntConstant(m, "MAXYEAR", MAXYEAR);
|
|
|
|
|
|
|
|
Py_INCREF(&PyDateTime_DateType);
|
|
|
|
PyModule_AddObject(m, "date", (PyObject *) &PyDateTime_DateType);
|
|
|
|
|
2003-01-10 23:39:11 -04:00
|
|
|
Py_INCREF(&PyDateTime_DateTimeType);
|
|
|
|
PyModule_AddObject(m, "datetime",
|
|
|
|
(PyObject *)&PyDateTime_DateTimeType);
|
|
|
|
|
|
|
|
Py_INCREF(&PyDateTime_TimeType);
|
|
|
|
PyModule_AddObject(m, "time", (PyObject *) &PyDateTime_TimeType);
|
|
|
|
|
2002-12-16 16:18:38 -04:00
|
|
|
Py_INCREF(&PyDateTime_DeltaType);
|
|
|
|
PyModule_AddObject(m, "timedelta", (PyObject *) &PyDateTime_DeltaType);
|
|
|
|
|
|
|
|
Py_INCREF(&PyDateTime_TZInfoType);
|
|
|
|
PyModule_AddObject(m, "tzinfo", (PyObject *) &PyDateTime_TZInfoType);
|
|
|
|
|
Merged revisions 79307,79408,79430,79533,79542,79579-79580,79585-79587,79607-79608,79622,79717,79820,79822,79828,79862,79875,79923-79924,79941-79943,79945,79947,79951-79952 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r79307 | florent.xicluna | 2010-03-22 17:45:50 -0500 (Mon, 22 Mar 2010) | 2 lines
#7667: Fix doctest failures with non-ASCII paths.
........
r79408 | victor.stinner | 2010-03-24 20:18:38 -0500 (Wed, 24 Mar 2010) | 2 lines
Fix a gcc warning introduced by r79397.
........
r79430 | brian.curtin | 2010-03-25 18:48:54 -0500 (Thu, 25 Mar 2010) | 2 lines
Fix #6538. Markup RegexObject and MatchObject as classes. Patch by Ryan Arana.
........
r79533 | barry.warsaw | 2010-03-31 16:07:16 -0500 (Wed, 31 Mar 2010) | 6 lines
- Issue #8233: When run as a script, py_compile.py optionally takes a single
argument `-` which tells it to read files to compile from stdin. Each line
is read on demand and the named file is compiled immediately. (Original
patch by Piotr O?\197?\188arowski).
........
r79542 | r.david.murray | 2010-03-31 20:28:39 -0500 (Wed, 31 Mar 2010) | 3 lines
A couple small grammar fixes in test.rst, and rewrite the
check_warnings docs to be clearer.
........
r79579 | georg.brandl | 2010-04-02 03:34:41 -0500 (Fri, 02 Apr 2010) | 1 line
Add 2.6.5.
........
r79580 | georg.brandl | 2010-04-02 03:39:09 -0500 (Fri, 02 Apr 2010) | 1 line
#2768: add a note on how to get a file descriptor.
........
r79585 | georg.brandl | 2010-04-02 04:03:18 -0500 (Fri, 02 Apr 2010) | 1 line
Remove col-spanning cells in logging docs.
........
r79586 | georg.brandl | 2010-04-02 04:07:42 -0500 (Fri, 02 Apr 2010) | 1 line
Document PyImport_ExecCodeModuleEx().
........
r79587 | georg.brandl | 2010-04-02 04:11:49 -0500 (Fri, 02 Apr 2010) | 1 line
#8012: clarification in generator glossary entry.
........
r79607 | andrew.kuchling | 2010-04-02 12:48:23 -0500 (Fri, 02 Apr 2010) | 1 line
#6647: document that catch_warnings is not thread-safe
........
r79608 | andrew.kuchling | 2010-04-02 12:54:26 -0500 (Fri, 02 Apr 2010) | 1 line
#6647: add note to two examples
........
r79622 | tarek.ziade | 2010-04-02 16:34:19 -0500 (Fri, 02 Apr 2010) | 1 line
removed documentation on code that was reverted and pushed into distutils2
........
r79717 | antoine.pitrou | 2010-04-03 16:22:38 -0500 (Sat, 03 Apr 2010) | 4 lines
Fix wording / typography, and a slightly misleading statement
(memoryviews don't support complex structures right now)
........
r79820 | benjamin.peterson | 2010-04-05 22:34:09 -0500 (Mon, 05 Apr 2010) | 1 line
ready _sre types
........
r79822 | georg.brandl | 2010-04-06 03:18:15 -0500 (Tue, 06 Apr 2010) | 1 line
#8320: document return value of recv_into().
........
r79828 | georg.brandl | 2010-04-06 09:33:44 -0500 (Tue, 06 Apr 2010) | 1 line
Add JP.
........
r79862 | georg.brandl | 2010-04-06 15:27:59 -0500 (Tue, 06 Apr 2010) | 1 line
Fix syntax.
........
r79875 | mark.dickinson | 2010-04-06 17:18:23 -0500 (Tue, 06 Apr 2010) | 1 line
More NaN consistency doc fixes.
........
r79923 | georg.brandl | 2010-04-10 06:15:24 -0500 (Sat, 10 Apr 2010) | 1 line
#8360: skipTest was added in 2.7.
........
r79924 | georg.brandl | 2010-04-10 06:16:59 -0500 (Sat, 10 Apr 2010) | 1 line
#8346: update version.
........
r79941 | andrew.kuchling | 2010-04-10 20:39:36 -0500 (Sat, 10 Apr 2010) | 1 line
Two grammar fixes
........
r79942 | andrew.kuchling | 2010-04-10 20:40:06 -0500 (Sat, 10 Apr 2010) | 1 line
Punctuation fix
........
r79943 | andrew.kuchling | 2010-04-10 20:40:30 -0500 (Sat, 10 Apr 2010) | 1 line
Add various items
........
r79945 | andrew.kuchling | 2010-04-10 20:40:49 -0500 (Sat, 10 Apr 2010) | 1 line
name correct
........
r79947 | andrew.kuchling | 2010-04-10 20:44:13 -0500 (Sat, 10 Apr 2010) | 1 line
Remove distutils section
........
r79951 | andrew.kuchling | 2010-04-11 07:48:08 -0500 (Sun, 11 Apr 2010) | 1 line
Two typo fixes
........
r79952 | andrew.kuchling | 2010-04-11 07:49:37 -0500 (Sun, 11 Apr 2010) | 1 line
Add two items
........
2010-04-11 13:12:57 -03:00
|
|
|
x = PyCapsule_New(&CAPI, PyDateTime_CAPSULE_NAME, NULL);
|
|
|
|
if (x == NULL)
|
|
|
|
return NULL;
|
|
|
|
PyModule_AddObject(m, "datetime_CAPI", x);
|
2004-06-20 19:41:32 -03:00
|
|
|
|
2002-12-16 16:18:38 -04:00
|
|
|
/* A 4-year cycle has an extra leap day over what we'd get from
|
|
|
|
* pasting together 4 single years.
|
|
|
|
*/
|
|
|
|
assert(DI4Y == 4 * 365 + 1);
|
|
|
|
assert(DI4Y == days_before_year(4+1));
|
|
|
|
|
|
|
|
/* Similarly, a 400-year cycle has an extra leap day over what we'd
|
|
|
|
* get from pasting together 4 100-year cycles.
|
|
|
|
*/
|
|
|
|
assert(DI400Y == 4 * DI100Y + 1);
|
|
|
|
assert(DI400Y == days_before_year(400+1));
|
|
|
|
|
|
|
|
/* OTOH, a 100-year cycle has one fewer leap day than we'd get from
|
|
|
|
* pasting together 25 4-year cycles.
|
|
|
|
*/
|
|
|
|
assert(DI100Y == 25 * DI4Y - 1);
|
|
|
|
assert(DI100Y == days_before_year(100+1));
|
|
|
|
|
2007-12-02 10:31:20 -04:00
|
|
|
us_per_us = PyLong_FromLong(1);
|
|
|
|
us_per_ms = PyLong_FromLong(1000);
|
|
|
|
us_per_second = PyLong_FromLong(1000000);
|
|
|
|
us_per_minute = PyLong_FromLong(60000000);
|
|
|
|
seconds_per_day = PyLong_FromLong(24 * 3600);
|
2002-12-16 16:18:38 -04:00
|
|
|
if (us_per_us == NULL || us_per_ms == NULL || us_per_second == NULL ||
|
|
|
|
us_per_minute == NULL || seconds_per_day == NULL)
|
2008-06-11 02:26:20 -03:00
|
|
|
return NULL;
|
2002-12-16 16:18:38 -04:00
|
|
|
|
|
|
|
/* The rest are too big for 32-bit ints, but even
|
|
|
|
* us_per_week fits in 40 bits, so doubles should be exact.
|
|
|
|
*/
|
|
|
|
us_per_hour = PyLong_FromDouble(3600000000.0);
|
|
|
|
us_per_day = PyLong_FromDouble(86400000000.0);
|
|
|
|
us_per_week = PyLong_FromDouble(604800000000.0);
|
|
|
|
if (us_per_hour == NULL || us_per_day == NULL || us_per_week == NULL)
|
2008-06-11 02:26:20 -03:00
|
|
|
return NULL;
|
|
|
|
return m;
|
2002-12-16 16:18:38 -04:00
|
|
|
}
|
2003-01-01 17:51:37 -04:00
|
|
|
|
|
|
|
/* ---------------------------------------------------------------------------
|
2003-01-10 23:39:11 -04:00
|
|
|
Some time zone algebra. For a datetime x, let
|
2003-01-01 17:51:37 -04:00
|
|
|
x.n = x stripped of its timezone -- its naive time.
|
|
|
|
x.o = x.utcoffset(), and assuming that doesn't raise an exception or
|
|
|
|
return None
|
|
|
|
x.d = x.dst(), and assuming that doesn't raise an exception or
|
|
|
|
return None
|
|
|
|
x.s = x's standard offset, x.o - x.d
|
|
|
|
|
|
|
|
Now some derived rules, where k is a duration (timedelta).
|
|
|
|
|
|
|
|
1. x.o = x.s + x.d
|
|
|
|
This follows from the definition of x.s.
|
|
|
|
|
2003-01-02 13:55:03 -04:00
|
|
|
2. If x and y have the same tzinfo member, x.s = y.s.
|
2003-01-01 17:51:37 -04:00
|
|
|
This is actually a requirement, an assumption we need to make about
|
|
|
|
sane tzinfo classes.
|
|
|
|
|
|
|
|
3. The naive UTC time corresponding to x is x.n - x.o.
|
|
|
|
This is again a requirement for a sane tzinfo class.
|
|
|
|
|
|
|
|
4. (x+k).s = x.s
|
2003-01-23 22:44:45 -04:00
|
|
|
This follows from #2, and that datimetimetz+timedelta preserves tzinfo.
|
2003-01-01 17:51:37 -04:00
|
|
|
|
2003-01-02 13:55:03 -04:00
|
|
|
5. (x+k).n = x.n + k
|
2003-01-01 17:51:37 -04:00
|
|
|
Again follows from how arithmetic is defined.
|
|
|
|
|
2003-01-23 22:44:45 -04:00
|
|
|
Now we can explain tz.fromutc(x). Let's assume it's an interesting case
|
2003-01-01 17:51:37 -04:00
|
|
|
(meaning that the various tzinfo methods exist, and don't blow up or return
|
|
|
|
None when called).
|
|
|
|
|
2003-01-10 23:39:11 -04:00
|
|
|
The function wants to return a datetime y with timezone tz, equivalent to x.
|
2003-01-23 22:44:45 -04:00
|
|
|
x is already in UTC.
|
2003-01-01 17:51:37 -04:00
|
|
|
|
|
|
|
By #3, we want
|
|
|
|
|
2003-01-23 22:44:45 -04:00
|
|
|
y.n - y.o = x.n [1]
|
2003-01-01 17:51:37 -04:00
|
|
|
|
|
|
|
The algorithm starts by attaching tz to x.n, and calling that y. So
|
|
|
|
x.n = y.n at the start. Then it wants to add a duration k to y, so that [1]
|
|
|
|
becomes true; in effect, we want to solve [2] for k:
|
|
|
|
|
2003-01-23 22:44:45 -04:00
|
|
|
(y+k).n - (y+k).o = x.n [2]
|
2003-01-01 17:51:37 -04:00
|
|
|
|
|
|
|
By #1, this is the same as
|
|
|
|
|
2003-01-23 22:44:45 -04:00
|
|
|
(y+k).n - ((y+k).s + (y+k).d) = x.n [3]
|
2003-01-01 17:51:37 -04:00
|
|
|
|
|
|
|
By #5, (y+k).n = y.n + k, which equals x.n + k because x.n=y.n at the start.
|
|
|
|
Substituting that into [3],
|
|
|
|
|
2003-01-23 22:44:45 -04:00
|
|
|
x.n + k - (y+k).s - (y+k).d = x.n; the x.n terms cancel, leaving
|
|
|
|
k - (y+k).s - (y+k).d = 0; rearranging,
|
|
|
|
k = (y+k).s - (y+k).d; by #4, (y+k).s == y.s, so
|
|
|
|
k = y.s - (y+k).d
|
2003-01-01 17:51:37 -04:00
|
|
|
|
2003-01-23 22:44:45 -04:00
|
|
|
On the RHS, (y+k).d can't be computed directly, but y.s can be, and we
|
|
|
|
approximate k by ignoring the (y+k).d term at first. Note that k can't be
|
|
|
|
very large, since all offset-returning methods return a duration of magnitude
|
|
|
|
less than 24 hours. For that reason, if y is firmly in std time, (y+k).d must
|
|
|
|
be 0, so ignoring it has no consequence then.
|
2003-01-01 17:51:37 -04:00
|
|
|
|
|
|
|
In any case, the new value is
|
|
|
|
|
2003-01-23 22:44:45 -04:00
|
|
|
z = y + y.s [4]
|
2003-01-01 17:51:37 -04:00
|
|
|
|
2003-01-23 22:44:45 -04:00
|
|
|
It's helpful to step back at look at [4] from a higher level: it's simply
|
|
|
|
mapping from UTC to tz's standard time.
|
2003-01-02 13:55:03 -04:00
|
|
|
|
|
|
|
At this point, if
|
|
|
|
|
2003-01-23 22:44:45 -04:00
|
|
|
z.n - z.o = x.n [5]
|
2003-01-02 13:55:03 -04:00
|
|
|
|
|
|
|
we have an equivalent time, and are almost done. The insecurity here is
|
2003-01-01 17:51:37 -04:00
|
|
|
at the start of daylight time. Picture US Eastern for concreteness. The wall
|
|
|
|
time jumps from 1:59 to 3:00, and wall hours of the form 2:MM don't make good
|
2003-01-23 22:44:45 -04:00
|
|
|
sense then. The docs ask that an Eastern tzinfo class consider such a time to
|
|
|
|
be EDT (because it's "after 2"), which is a redundant spelling of 1:MM EST
|
|
|
|
on the day DST starts. We want to return the 1:MM EST spelling because that's
|
2003-01-01 17:51:37 -04:00
|
|
|
the only spelling that makes sense on the local wall clock.
|
|
|
|
|
2003-01-02 13:55:03 -04:00
|
|
|
In fact, if [5] holds at this point, we do have the standard-time spelling,
|
|
|
|
but that takes a bit of proof. We first prove a stronger result. What's the
|
|
|
|
difference between the LHS and RHS of [5]? Let
|
2003-01-01 23:14:59 -04:00
|
|
|
|
2003-01-23 22:44:45 -04:00
|
|
|
diff = x.n - (z.n - z.o) [6]
|
2003-01-01 23:14:59 -04:00
|
|
|
|
2003-01-02 13:55:03 -04:00
|
|
|
Now
|
|
|
|
z.n = by [4]
|
2003-01-23 22:44:45 -04:00
|
|
|
(y + y.s).n = by #5
|
|
|
|
y.n + y.s = since y.n = x.n
|
|
|
|
x.n + y.s = since z and y are have the same tzinfo member,
|
|
|
|
y.s = z.s by #2
|
|
|
|
x.n + z.s
|
2003-01-01 23:14:59 -04:00
|
|
|
|
2003-01-02 13:55:03 -04:00
|
|
|
Plugging that back into [6] gives
|
2003-01-01 23:14:59 -04:00
|
|
|
|
2003-01-02 13:55:03 -04:00
|
|
|
diff =
|
2003-01-23 22:44:45 -04:00
|
|
|
x.n - ((x.n + z.s) - z.o) = expanding
|
|
|
|
x.n - x.n - z.s + z.o = cancelling
|
|
|
|
- z.s + z.o = by #2
|
2003-01-02 13:55:03 -04:00
|
|
|
z.d
|
2003-01-01 23:14:59 -04:00
|
|
|
|
2003-01-02 13:55:03 -04:00
|
|
|
So diff = z.d.
|
2003-01-01 23:14:59 -04:00
|
|
|
|
2003-01-02 13:55:03 -04:00
|
|
|
If [5] is true now, diff = 0, so z.d = 0 too, and we have the standard-time
|
2003-01-23 22:44:45 -04:00
|
|
|
spelling we wanted in the endcase described above. We're done. Contrarily,
|
|
|
|
if z.d = 0, then we have a UTC equivalent, and are also done.
|
2003-01-01 23:14:59 -04:00
|
|
|
|
2003-01-02 13:55:03 -04:00
|
|
|
If [5] is not true now, diff = z.d != 0, and z.d is the offset we need to
|
|
|
|
add to z (in effect, z is in tz's standard time, and we need to shift the
|
2003-01-23 22:44:45 -04:00
|
|
|
local clock into tz's daylight time).
|
2003-01-01 23:14:59 -04:00
|
|
|
|
2003-01-02 13:55:03 -04:00
|
|
|
Let
|
2003-01-01 23:14:59 -04:00
|
|
|
|
2003-01-03 20:26:59 -04:00
|
|
|
z' = z + z.d = z + diff [7]
|
2003-01-01 23:14:59 -04:00
|
|
|
|
2003-01-03 20:26:59 -04:00
|
|
|
and we can again ask whether
|
2003-01-01 23:14:59 -04:00
|
|
|
|
2003-01-23 22:44:45 -04:00
|
|
|
z'.n - z'.o = x.n [8]
|
2003-01-01 23:14:59 -04:00
|
|
|
|
2003-01-23 22:44:45 -04:00
|
|
|
If so, we're done. If not, the tzinfo class is insane, according to the
|
|
|
|
assumptions we've made. This also requires a bit of proof. As before, let's
|
|
|
|
compute the difference between the LHS and RHS of [8] (and skipping some of
|
|
|
|
the justifications for the kinds of substitutions we've done several times
|
|
|
|
already):
|
2003-01-03 20:26:59 -04:00
|
|
|
|
2003-01-23 22:44:45 -04:00
|
|
|
diff' = x.n - (z'.n - z'.o) = replacing z'.n via [7]
|
|
|
|
x.n - (z.n + diff - z'.o) = replacing diff via [6]
|
|
|
|
x.n - (z.n + x.n - (z.n - z.o) - z'.o) =
|
|
|
|
x.n - z.n - x.n + z.n - z.o + z'.o = cancel x.n
|
|
|
|
- z.n + z.n - z.o + z'.o = cancel z.n
|
2003-01-03 20:26:59 -04:00
|
|
|
- z.o + z'.o = #1 twice
|
|
|
|
-z.s - z.d + z'.s + z'.d = z and z' have same tzinfo
|
|
|
|
z'.d - z.d
|
|
|
|
|
|
|
|
So z' is UTC-equivalent to x iff z'.d = z.d at this point. If they are equal,
|
2003-01-23 22:44:45 -04:00
|
|
|
we've found the UTC-equivalent so are done. In fact, we stop with [7] and
|
|
|
|
return z', not bothering to compute z'.d.
|
|
|
|
|
|
|
|
How could z.d and z'd differ? z' = z + z.d [7], so merely moving z' by
|
|
|
|
a dst() offset, and starting *from* a time already in DST (we know z.d != 0),
|
|
|
|
would have to change the result dst() returns: we start in DST, and moving
|
|
|
|
a little further into it takes us out of DST.
|
|
|
|
|
|
|
|
There isn't a sane case where this can happen. The closest it gets is at
|
|
|
|
the end of DST, where there's an hour in UTC with no spelling in a hybrid
|
|
|
|
tzinfo class. In US Eastern, that's 5:MM UTC = 0:MM EST = 1:MM EDT. During
|
|
|
|
that hour, on an Eastern clock 1:MM is taken as being in standard time (6:MM
|
|
|
|
UTC) because the docs insist on that, but 0:MM is taken as being in daylight
|
|
|
|
time (4:MM UTC). There is no local time mapping to 5:MM UTC. The local
|
|
|
|
clock jumps from 1:59 back to 1:00 again, and repeats the 1:MM hour in
|
|
|
|
standard time. Since that's what the local clock *does*, we want to map both
|
|
|
|
UTC hours 5:MM and 6:MM to 1:MM Eastern. The result is ambiguous
|
2003-01-03 20:26:59 -04:00
|
|
|
in local time, but so it goes -- it's the way the local clock works.
|
|
|
|
|
2003-01-23 22:44:45 -04:00
|
|
|
When x = 5:MM UTC is the input to this algorithm, x.o=0, y.o=-5 and y.d=0,
|
|
|
|
so z=0:MM. z.d=60 (minutes) then, so [5] doesn't hold and we keep going.
|
|
|
|
z' = z + z.d = 1:MM then, and z'.d=0, and z'.d - z.d = -60 != 0 so [8]
|
2003-01-03 20:26:59 -04:00
|
|
|
(correctly) concludes that z' is not UTC-equivalent to x.
|
|
|
|
|
|
|
|
Because we know z.d said z was in daylight time (else [5] would have held and
|
|
|
|
we would have stopped then), and we know z.d != z'.d (else [8] would have held
|
2003-10-20 11:01:56 -03:00
|
|
|
and we would have stopped then), and there are only 2 possible values dst() can
|
2003-01-03 20:26:59 -04:00
|
|
|
return in Eastern, it follows that z'.d must be 0 (which it is in the example,
|
|
|
|
but the reasoning doesn't depend on the example -- it depends on there being
|
|
|
|
two possible dst() outcomes, one zero and the other non-zero). Therefore
|
2003-01-23 22:44:45 -04:00
|
|
|
z' must be in standard time, and is the spelling we want in this case.
|
|
|
|
|
|
|
|
Note again that z' is not UTC-equivalent as far as the hybrid tzinfo class is
|
|
|
|
concerned (because it takes z' as being in standard time rather than the
|
|
|
|
daylight time we intend here), but returning it gives the real-life "local
|
|
|
|
clock repeats an hour" behavior when mapping the "unspellable" UTC hour into
|
|
|
|
tz.
|
|
|
|
|
|
|
|
When the input is 6:MM, z=1:MM and z.d=0, and we stop at once, again with
|
|
|
|
the 1:MM standard time spelling we want.
|
|
|
|
|
|
|
|
So how can this break? One of the assumptions must be violated. Two
|
|
|
|
possibilities:
|
|
|
|
|
|
|
|
1) [2] effectively says that y.s is invariant across all y belong to a given
|
|
|
|
time zone. This isn't true if, for political reasons or continental drift,
|
|
|
|
a region decides to change its base offset from UTC.
|
|
|
|
|
|
|
|
2) There may be versions of "double daylight" time where the tail end of
|
|
|
|
the analysis gives up a step too early. I haven't thought about that
|
|
|
|
enough to say.
|
|
|
|
|
|
|
|
In any case, it's clear that the default fromutc() is strong enough to handle
|
|
|
|
"almost all" time zones: so long as the standard offset is invariant, it
|
|
|
|
doesn't matter if daylight time transition points change from year to year, or
|
|
|
|
if daylight time is skipped in some years; it doesn't matter how large or
|
|
|
|
small dst() may get within its bounds; and it doesn't even matter if some
|
|
|
|
perverse time zone returns a negative dst()). So a breaking case must be
|
|
|
|
pretty bizarre, and a tzinfo subclass can override fromutc() if it is.
|
2003-01-01 17:51:37 -04:00
|
|
|
--------------------------------------------------------------------------- */
|