summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorChristian Heimes <christian@cheimes.de>2008-02-23 18:30:17 (GMT)
committerChristian Heimes <christian@cheimes.de>2008-02-23 18:30:17 (GMT)
commit05e8be17fd15d8e649e026600f5ab20e1154599f (patch)
treeaecf3cd024e9cf2ed2ae49087b6c74dba29c7c7e /Lib
parent5abe9125f9eb858fdaca966d687bb32387603f45 (diff)
downloadcpython-05e8be17fd15d8e649e026600f5ab20e1154599f.zip
cpython-05e8be17fd15d8e649e026600f5ab20e1154599f.tar.gz
cpython-05e8be17fd15d8e649e026600f5ab20e1154599f.tar.bz2
Merged revisions 60990-61002 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r60990 | eric.smith | 2008-02-23 17:05:26 +0100 (Sat, 23 Feb 2008) | 1 line Removed duplicate Py_CHARMASK define. It's already defined in Python.h. ........ r60991 | andrew.kuchling | 2008-02-23 17:23:05 +0100 (Sat, 23 Feb 2008) | 4 lines #1330538: Improve comparison of xmlrpclib.DateTime and datetime instances. Remove automatic handling of datetime.date and datetime.time. This breaks backward compatibility, but python-dev discussion was strongly against this automatic conversion; see the bug for a link. ........ r60994 | andrew.kuchling | 2008-02-23 17:39:43 +0100 (Sat, 23 Feb 2008) | 1 line #835521: Add index entries for various pickle-protocol methods and attributes ........ r60995 | andrew.kuchling | 2008-02-23 18:10:46 +0100 (Sat, 23 Feb 2008) | 2 lines #1433694: minidom's .normalize() failed to set .nextSibling for last element. Fix by Malte Helmert ........ r61000 | christian.heimes | 2008-02-23 18:40:11 +0100 (Sat, 23 Feb 2008) | 1 line Patch #2167 from calvin: Remove unused imports ........ r61001 | christian.heimes | 2008-02-23 18:42:31 +0100 (Sat, 23 Feb 2008) | 1 line Patch #1957: syslogmodule: Release GIL when calling syslog(3) ........ r61002 | christian.heimes | 2008-02-23 18:52:07 +0100 (Sat, 23 Feb 2008) | 2 lines Issue #2051 and patch from Alexander Belopolsky: Permission for pyc and pyo files are inherited from the py file. ........
Diffstat (limited to 'Lib')
-rw-r--r--Lib/SimpleHTTPServer.py1
-rw-r--r--Lib/ctypes/test/__init__.py2
-rw-r--r--Lib/ctypes/test/test_checkretval.py1
-rw-r--r--Lib/ctypes/test/test_find.py2
-rw-r--r--Lib/ctypes/test/test_libc.py1
-rw-r--r--Lib/ctypes/test/test_numbers.py2
-rw-r--r--Lib/curses/wrapper.py2
-rw-r--r--Lib/distutils/bcppcompiler.py2
-rw-r--r--Lib/distutils/command/bdist_dumb.py2
-rw-r--r--Lib/distutils/command/bdist_rpm.py1
-rw-r--r--Lib/distutils/command/build_scripts.py2
-rw-r--r--Lib/distutils/command/install.py1
-rw-r--r--Lib/distutils/command/install_headers.py1
-rw-r--r--Lib/distutils/command/register.py2
-rw-r--r--Lib/distutils/filelist.py1
-rw-r--r--Lib/distutils/tests/test_dist.py2
-rw-r--r--Lib/distutils/tests/test_sysconfig.py1
-rw-r--r--Lib/distutils/unixccompiler.py1
-rw-r--r--Lib/email/base64mime.py1
-rw-r--r--Lib/httplib.py1
-rw-r--r--Lib/idlelib/MultiCall.py1
-rw-r--r--Lib/idlelib/RemoteDebugger.py1
-rw-r--r--Lib/idlelib/TreeWidget.py1
-rw-r--r--Lib/idlelib/UndoDelegator.py1
-rw-r--r--Lib/idlelib/keybindingDialog.py2
-rw-r--r--Lib/idlelib/run.py1
-rw-r--r--Lib/lib-tk/tkSimpleDialog.py1
-rw-r--r--Lib/logging/handlers.py3
-rw-r--r--Lib/ntpath.py2
-rw-r--r--Lib/plat-mac/MiniAEFrame.py1
-rw-r--r--Lib/plat-mac/aepack.py1
-rw-r--r--Lib/plat-mac/bgenlocations.py2
-rw-r--r--Lib/plat-mac/macostools.py2
-rw-r--r--Lib/sqlite3/test/hooks.py2
-rw-r--r--Lib/ssl.py2
-rw-r--r--Lib/test/fork_wait.py1
-rw-r--r--Lib/test/list_tests.py1
-rw-r--r--Lib/test/seq_tests.py1
-rw-r--r--Lib/test/test___all__.py2
-rw-r--r--Lib/test/test_abc.py1
-rw-r--r--Lib/test/test_applesingle.py1
-rw-r--r--Lib/test/test_class.py1
-rw-r--r--Lib/test/test_cmd.py1
-rw-r--r--Lib/test/test_compare.py1
-rw-r--r--Lib/test/test_copy.py1
-rw-r--r--Lib/test/test_datetime.py1
-rwxr-xr-xLib/test/test_dbm.py1
-rw-r--r--Lib/test/test_dis.py2
-rw-r--r--Lib/test/test_dummy_threading.py1
-rw-r--r--Lib/test/test_email.py1
-rw-r--r--Lib/test/test_eof.py1
-rw-r--r--Lib/test/test_extcall.py2
-rw-r--r--Lib/test/test_fileinput.py2
-rw-r--r--Lib/test/test_fractions.py2
-rw-r--r--Lib/test/test_getargs2.py3
-rw-r--r--Lib/test/test_gzip.py2
-rwxr-xr-xLib/test/test_htmlparser.py1
-rw-r--r--Lib/test/test_httplib.py1
-rw-r--r--Lib/test/test_imp.py1
-rw-r--r--Lib/test/test_index.py1
-rw-r--r--Lib/test/test_list.py1
-rw-r--r--Lib/test/test_minidom.py9
-rw-r--r--Lib/test/test_module.py2
-rw-r--r--Lib/test/test_modulefinder.py2
-rw-r--r--Lib/test/test_multibytecodec_support.py2
-rw-r--r--Lib/test/test_optparse.py1
-rw-r--r--Lib/test/test_ossaudiodev.py5
-rw-r--r--Lib/test/test_pickle.py1
-rw-r--r--Lib/test/test_pkg.py1
-rw-r--r--Lib/test/test_plistlib.py1
-rw-r--r--Lib/test/test_poll.py2
-rw-r--r--Lib/test/test_posix.py1
-rw-r--r--Lib/test/test_pyclbr.py2
-rw-r--r--Lib/test/test_resource.py1
-rw-r--r--Lib/test/test_rfc822.py1
-rw-r--r--Lib/test/test_scriptpackages.py3
-rw-r--r--Lib/test/test_sgmllib.py3
-rw-r--r--Lib/test/test_site.py3
-rw-r--r--Lib/test/test_socketserver.py1
-rw-r--r--Lib/test/test_sqlite.py1
-rwxr-xr-xLib/test/test_strftime.py2
-rw-r--r--Lib/test/test_support.py1
-rw-r--r--Lib/test/test_tuple.py1
-rw-r--r--Lib/test/test_unpack.py1
-rw-r--r--Lib/test/test_urllib.py4
-rw-r--r--Lib/test/test_urllib2.py6
-rw-r--r--Lib/test/test_urllib2_localnet.py1
-rw-r--r--Lib/test/test_userdict.py1
-rw-r--r--Lib/test/test_userlist.py1
-rwxr-xr-xLib/test/test_userstring.py1
-rw-r--r--Lib/test/test_whichdb.py1
-rw-r--r--Lib/test/test_xml_etree.py3
-rw-r--r--Lib/test/test_xml_etree_c.py3
-rw-r--r--Lib/test/test_xmlrpc.py55
-rw-r--r--Lib/xml/dom/minidom.py2
-rw-r--r--Lib/xmlrpclib.py74
96 files changed, 103 insertions, 182 deletions
diff --git a/Lib/SimpleHTTPServer.py b/Lib/SimpleHTTPServer.py
index eea3243..deedd4b 100644
--- a/Lib/SimpleHTTPServer.py
+++ b/Lib/SimpleHTTPServer.py
@@ -14,7 +14,6 @@ import os
import posixpath
import BaseHTTPServer
import urllib
-import urlparse
import cgi
import shutil
import mimetypes
diff --git a/Lib/ctypes/test/__init__.py b/Lib/ctypes/test/__init__.py
index 372c6e8..60b4975 100644
--- a/Lib/ctypes/test/__init__.py
+++ b/Lib/ctypes/test/__init__.py
@@ -1,4 +1,4 @@
-import glob, os, sys, unittest, getopt, time
+import os, sys, unittest, getopt, time
use_resources = []
diff --git a/Lib/ctypes/test/test_checkretval.py b/Lib/ctypes/test/test_checkretval.py
index 28be6c6..d15bd2e 100644
--- a/Lib/ctypes/test/test_checkretval.py
+++ b/Lib/ctypes/test/test_checkretval.py
@@ -1,5 +1,4 @@
import unittest
-import sys
from ctypes import *
diff --git a/Lib/ctypes/test/test_find.py b/Lib/ctypes/test/test_find.py
index 9f61cdb..dc05093 100644
--- a/Lib/ctypes/test/test_find.py
+++ b/Lib/ctypes/test/test_find.py
@@ -1,5 +1,5 @@
import unittest
-import os, sys
+import sys
from ctypes import *
from ctypes.util import find_library
from ctypes.test import is_resource_enabled
diff --git a/Lib/ctypes/test/test_libc.py b/Lib/ctypes/test/test_libc.py
index 0e14c2f..b204fae 100644
--- a/Lib/ctypes/test/test_libc.py
+++ b/Lib/ctypes/test/test_libc.py
@@ -1,4 +1,3 @@
-import sys, os
import unittest
from ctypes import *
diff --git a/Lib/ctypes/test/test_numbers.py b/Lib/ctypes/test/test_numbers.py
index 16e69cb..c0732de 100644
--- a/Lib/ctypes/test/test_numbers.py
+++ b/Lib/ctypes/test/test_numbers.py
@@ -1,6 +1,6 @@
from ctypes import *
import unittest
-import sys, struct
+import struct
def valid_ranges(*types):
# given a sequence of numeric types, collect their _type_
diff --git a/Lib/curses/wrapper.py b/Lib/curses/wrapper.py
index 5335204..9f1d867 100644
--- a/Lib/curses/wrapper.py
+++ b/Lib/curses/wrapper.py
@@ -7,7 +7,7 @@ to a sane state so you can read the resulting traceback.
"""
-import sys, curses
+import curses
def wrapper(func, *args, **kwds):
"""Wrapper function that initializes curses and calls another function,
diff --git a/Lib/distutils/bcppcompiler.py b/Lib/distutils/bcppcompiler.py
index 1ab76c5..c5e5cd2 100644
--- a/Lib/distutils/bcppcompiler.py
+++ b/Lib/distutils/bcppcompiler.py
@@ -14,7 +14,7 @@ for the Borland C++ compiler.
__revision__ = "$Id$"
-import sys, os
+import os
from distutils.errors import \
DistutilsExecError, DistutilsPlatformError, \
CompileError, LibError, LinkError, UnknownFileError
diff --git a/Lib/distutils/command/bdist_dumb.py b/Lib/distutils/command/bdist_dumb.py
index f899617..2d39922 100644
--- a/Lib/distutils/command/bdist_dumb.py
+++ b/Lib/distutils/command/bdist_dumb.py
@@ -9,7 +9,7 @@ __revision__ = "$Id$"
import os
from distutils.core import Command
from distutils.util import get_platform
-from distutils.dir_util import create_tree, remove_tree, ensure_relative
+from distutils.dir_util import remove_tree, ensure_relative
from distutils.errors import *
from distutils.sysconfig import get_python_version
from distutils import log
diff --git a/Lib/distutils/command/bdist_rpm.py b/Lib/distutils/command/bdist_rpm.py
index 72f74f9..83efb8e 100644
--- a/Lib/distutils/command/bdist_rpm.py
+++ b/Lib/distutils/command/bdist_rpm.py
@@ -6,7 +6,6 @@ distributions)."""
__revision__ = "$Id$"
import sys, os
-import glob
from distutils.core import Command
from distutils.debug import DEBUG
from distutils.util import get_platform
diff --git a/Lib/distutils/command/build_scripts.py b/Lib/distutils/command/build_scripts.py
index 7b44264..3ac5b0c 100644
--- a/Lib/distutils/command/build_scripts.py
+++ b/Lib/distutils/command/build_scripts.py
@@ -4,7 +4,7 @@ Implements the Distutils 'build_scripts' command."""
__revision__ = "$Id$"
-import sys, os, re
+import os, re
from stat import ST_MODE
from distutils import sysconfig
from distutils.core import Command
diff --git a/Lib/distutils/command/install.py b/Lib/distutils/command/install.py
index b768663..e4ee680 100644
--- a/Lib/distutils/command/install.py
+++ b/Lib/distutils/command/install.py
@@ -14,7 +14,6 @@ from distutils.errors import DistutilsPlatformError
from distutils.file_util import write_file
from distutils.util import convert_path, subst_vars, change_root
from distutils.errors import DistutilsOptionError
-from glob import glob
if sys.version < "2.2":
WINDOWS_SCHEME = {
diff --git a/Lib/distutils/command/install_headers.py b/Lib/distutils/command/install_headers.py
index 7114eaf..346daaa 100644
--- a/Lib/distutils/command/install_headers.py
+++ b/Lib/distutils/command/install_headers.py
@@ -5,7 +5,6 @@ files to the Python include directory."""
__revision__ = "$Id$"
-import os
from distutils.core import Command
diff --git a/Lib/distutils/command/register.py b/Lib/distutils/command/register.py
index d123d32..40d9f20 100644
--- a/Lib/distutils/command/register.py
+++ b/Lib/distutils/command/register.py
@@ -7,7 +7,7 @@ Implements the Distutils 'register' command (register with the repository).
__revision__ = "$Id$"
-import sys, os, urllib2, getpass, urlparse
+import os, string, urllib2, getpass, urlparse
import io, ConfigParser
from distutils.core import Command
diff --git a/Lib/distutils/filelist.py b/Lib/distutils/filelist.py
index 6506c30..8eab0a9 100644
--- a/Lib/distutils/filelist.py
+++ b/Lib/distutils/filelist.py
@@ -8,7 +8,6 @@ __revision__ = "$Id$"
import os, re
import fnmatch
-from glob import glob
from distutils.util import convert_path
from distutils.errors import DistutilsTemplateError, DistutilsInternalError
from distutils import log
diff --git a/Lib/distutils/tests/test_dist.py b/Lib/distutils/tests/test_dist.py
index 23506b5..91acf45 100644
--- a/Lib/distutils/tests/test_dist.py
+++ b/Lib/distutils/tests/test_dist.py
@@ -3,10 +3,8 @@
import distutils.cmd
import distutils.dist
import os
-import shutil
import io
import sys
-import tempfile
import unittest
from test.test_support import TESTFN
diff --git a/Lib/distutils/tests/test_sysconfig.py b/Lib/distutils/tests/test_sysconfig.py
index 770b7c3..d56f7e9 100644
--- a/Lib/distutils/tests/test_sysconfig.py
+++ b/Lib/distutils/tests/test_sysconfig.py
@@ -2,7 +2,6 @@
from distutils import sysconfig
import os
-import sys
import unittest
from test.test_support import TESTFN
diff --git a/Lib/distutils/unixccompiler.py b/Lib/distutils/unixccompiler.py
index ee975e1..25a042d 100644
--- a/Lib/distutils/unixccompiler.py
+++ b/Lib/distutils/unixccompiler.py
@@ -16,7 +16,6 @@ the "typical" Unix-style command-line C compiler:
__revision__ = "$Id$"
import os, sys
-from copy import copy
from distutils import sysconfig
from distutils.dep_util import newer
diff --git a/Lib/email/base64mime.py b/Lib/email/base64mime.py
index cff558e..c60f8db 100644
--- a/Lib/email/base64mime.py
+++ b/Lib/email/base64mime.py
@@ -35,7 +35,6 @@ __all__ = [
'header_length',
]
-import re
from base64 import b64encode
from binascii import b2a_base64, a2b_base64
diff --git a/Lib/httplib.py b/Lib/httplib.py
index bb873e4..638a92b 100644
--- a/Lib/httplib.py
+++ b/Lib/httplib.py
@@ -66,7 +66,6 @@ Req-started-unread-response _CS_REQ_STARTED <response_class>
Req-sent-unread-response _CS_REQ_SENT <response_class>
"""
-import errno
import io
import mimetools
import socket
diff --git a/Lib/idlelib/MultiCall.py b/Lib/idlelib/MultiCall.py
index c59ccfe..f2e3887 100644
--- a/Lib/idlelib/MultiCall.py
+++ b/Lib/idlelib/MultiCall.py
@@ -30,7 +30,6 @@ Each function will be called at most once for each event.
"""
import sys
-import os
import re
import Tkinter
diff --git a/Lib/idlelib/RemoteDebugger.py b/Lib/idlelib/RemoteDebugger.py
index 46582d1..d8662bb 100644
--- a/Lib/idlelib/RemoteDebugger.py
+++ b/Lib/idlelib/RemoteDebugger.py
@@ -20,7 +20,6 @@ barrier, in particular frame and traceback objects.
"""
-import sys
import types
from idlelib import rpc
from idlelib import Debugger
diff --git a/Lib/idlelib/TreeWidget.py b/Lib/idlelib/TreeWidget.py
index 0009de8..04e16a2 100644
--- a/Lib/idlelib/TreeWidget.py
+++ b/Lib/idlelib/TreeWidget.py
@@ -15,7 +15,6 @@
# - optimize tree redraw after expand of subnode
import os
-import sys
from Tkinter import *
import imp
diff --git a/Lib/idlelib/UndoDelegator.py b/Lib/idlelib/UndoDelegator.py
index cdda142..57b02df 100644
--- a/Lib/idlelib/UndoDelegator.py
+++ b/Lib/idlelib/UndoDelegator.py
@@ -1,4 +1,3 @@
-import sys
import string
from Tkinter import *
diff --git a/Lib/idlelib/keybindingDialog.py b/Lib/idlelib/keybindingDialog.py
index 7f4cc91..f326b6f 100644
--- a/Lib/idlelib/keybindingDialog.py
+++ b/Lib/idlelib/keybindingDialog.py
@@ -3,7 +3,7 @@ Dialog for building Tkinter accelerator key bindings
"""
from Tkinter import *
import tkMessageBox
-import string, os
+import string
class GetKeysDialog(Toplevel):
def __init__(self,parent,title,action,currentKeySequences):
diff --git a/Lib/idlelib/run.py b/Lib/idlelib/run.py
index 407e543..63880d6 100644
--- a/Lib/idlelib/run.py
+++ b/Lib/idlelib/run.py
@@ -1,5 +1,4 @@
import sys
-import os
import linecache
import time
import socket
diff --git a/Lib/lib-tk/tkSimpleDialog.py b/Lib/lib-tk/tkSimpleDialog.py
index f4ed77a..573c3a3 100644
--- a/Lib/lib-tk/tkSimpleDialog.py
+++ b/Lib/lib-tk/tkSimpleDialog.py
@@ -26,7 +26,6 @@ askstring -- get a string from the user
'''
from Tkinter import *
-import os
class Dialog(Toplevel):
diff --git a/Lib/logging/handlers.py b/Lib/logging/handlers.py
index 850e3bd..4645f3e 100644
--- a/Lib/logging/handlers.py
+++ b/Lib/logging/handlers.py
@@ -24,8 +24,7 @@ Copyright (C) 2001-2007 Vinay Sajip. All Rights Reserved.
To use, simply 'import logging' and log away!
"""
-import sys, logging, socket, os, struct, time, glob
-import pickle
+import logging, socket, os, pickle, struct, time, glob
from stat import ST_DEV, ST_INO
try:
diff --git a/Lib/ntpath.py b/Lib/ntpath.py
index c4a4ac5..59f1402 100644
--- a/Lib/ntpath.py
+++ b/Lib/ntpath.py
@@ -6,8 +6,8 @@ module as os.path.
"""
import os
-import stat
import sys
+import stat
import genericpath
from genericpath import *
diff --git a/Lib/plat-mac/MiniAEFrame.py b/Lib/plat-mac/MiniAEFrame.py
index eed7428..e2f7cec 100644
--- a/Lib/plat-mac/MiniAEFrame.py
+++ b/Lib/plat-mac/MiniAEFrame.py
@@ -6,7 +6,6 @@ There are two classes:
only suitable for the simplest of AppleEvent servers.
"""
-import sys
import traceback
import MacOS
from Carbon import AE
diff --git a/Lib/plat-mac/aepack.py b/Lib/plat-mac/aepack.py
index 5f8efd2..b030140 100644
--- a/Lib/plat-mac/aepack.py
+++ b/Lib/plat-mac/aepack.py
@@ -20,7 +20,6 @@ import Carbon.File
import io
import aetypes
from aetypes import mkenum, ObjectSpecifier
-import os
# These ones seem to be missing from AppleEvents
# (they're in AERegistry.h)
diff --git a/Lib/plat-mac/bgenlocations.py b/Lib/plat-mac/bgenlocations.py
index 041a6ff..88e8f67 100644
--- a/Lib/plat-mac/bgenlocations.py
+++ b/Lib/plat-mac/bgenlocations.py
@@ -5,7 +5,7 @@
# but mac-style for MacPython, whether running on OS9 or OSX.
#
-import sys, os
+import os
Error = "bgenlocations.Error"
#
diff --git a/Lib/plat-mac/macostools.py b/Lib/plat-mac/macostools.py
index 67d32e7..80c3727 100644
--- a/Lib/plat-mac/macostools.py
+++ b/Lib/plat-mac/macostools.py
@@ -7,9 +7,7 @@ copy(src, dst) - Full copy of 'src' to 'dst'
from Carbon import Res
from Carbon import File, Files
import os
-import sys
import MacOS
-import time
try:
openrf = MacOS.openrf
except AttributeError:
diff --git a/Lib/sqlite3/test/hooks.py b/Lib/sqlite3/test/hooks.py
index d67028f..28f2404 100644
--- a/Lib/sqlite3/test/hooks.py
+++ b/Lib/sqlite3/test/hooks.py
@@ -21,7 +21,7 @@
# misrepresented as being the original software.
# 3. This notice may not be removed or altered from any source distribution.
-import os, unittest
+import unittest
import sqlite3 as sqlite
class CollationTests(unittest.TestCase):
diff --git a/Lib/ssl.py b/Lib/ssl.py
index c229cd3..968f9a0 100644
--- a/Lib/ssl.py
+++ b/Lib/ssl.py
@@ -54,7 +54,7 @@ PROTOCOL_SSLv23
PROTOCOL_TLSv1
"""
-import os, sys, textwrap
+import textwrap
import _ssl # if we can't import it, let the error propagate
diff --git a/Lib/test/fork_wait.py b/Lib/test/fork_wait.py
index 38e2b4f..678e3c4 100644
--- a/Lib/test/fork_wait.py
+++ b/Lib/test/fork_wait.py
@@ -10,7 +10,6 @@ active threads survive in the child after a fork(); this is an error.
"""
import os, sys, time, thread, unittest
-from test.test_support import TestSkipped
LONGSLEEP = 2
SHORTSLEEP = 0.5
diff --git a/Lib/test/list_tests.py b/Lib/test/list_tests.py
index 49283e4..4ffa668 100644
--- a/Lib/test/list_tests.py
+++ b/Lib/test/list_tests.py
@@ -5,7 +5,6 @@ Tests common to list and UserList.UserList
import sys
import os
-import unittest
from test import test_support, seq_tests
def CmpToKey(mycmp):
diff --git a/Lib/test/seq_tests.py b/Lib/test/seq_tests.py
index 81fe627..a3815e2 100644
--- a/Lib/test/seq_tests.py
+++ b/Lib/test/seq_tests.py
@@ -3,7 +3,6 @@ Tests common to tuple, list and UserList.UserList
"""
import unittest
-from test import test_support
import sys
# Various iterables
diff --git a/Lib/test/test___all__.py b/Lib/test/test___all__.py
index 6e844e7..a2a2519 100644
--- a/Lib/test/test___all__.py
+++ b/Lib/test/test___all__.py
@@ -1,5 +1,5 @@
import unittest
-from test.test_support import verbose, run_unittest
+from test.test_support import run_unittest
import sys
diff --git a/Lib/test/test_abc.py b/Lib/test/test_abc.py
index 80b0123..7a932fc 100644
--- a/Lib/test/test_abc.py
+++ b/Lib/test/test_abc.py
@@ -3,7 +3,6 @@
"""Unit tests for abc.py."""
-import sys
import unittest
from test import test_support
diff --git a/Lib/test/test_applesingle.py b/Lib/test/test_applesingle.py
index 96450e3..9dfcb19 100644
--- a/Lib/test/test_applesingle.py
+++ b/Lib/test/test_applesingle.py
@@ -5,7 +5,6 @@ import macostools
import Carbon.File
import MacOS
import os
-import sys
from test import test_support
import struct
import applesingle
diff --git a/Lib/test/test_class.py b/Lib/test/test_class.py
index ab44a4c..730826d 100644
--- a/Lib/test/test_class.py
+++ b/Lib/test/test_class.py
@@ -1,7 +1,6 @@
"Test the functionality of Python classes implementing operators."
import unittest
-import sys
from test import test_support
diff --git a/Lib/test/test_cmd.py b/Lib/test/test_cmd.py
index 3ed6322..2c77931 100644
--- a/Lib/test/test_cmd.py
+++ b/Lib/test/test_cmd.py
@@ -5,7 +5,6 @@ Original by Michael Schneider
"""
-from test import test_support
import cmd
import sys
import trace
diff --git a/Lib/test/test_compare.py b/Lib/test/test_compare.py
index 15fe3c2..de32f3c 100644
--- a/Lib/test/test_compare.py
+++ b/Lib/test/test_compare.py
@@ -1,4 +1,3 @@
-import sys
import unittest
from test import test_support
diff --git a/Lib/test/test_copy.py b/Lib/test/test_copy.py
index cf94593..8b50e47 100644
--- a/Lib/test/test_copy.py
+++ b/Lib/test/test_copy.py
@@ -1,6 +1,5 @@
"""Unit tests for the copy module."""
-import sys
import copy
import copy_reg
diff --git a/Lib/test/test_datetime.py b/Lib/test/test_datetime.py
index 8ac7160..e768a9c 100644
--- a/Lib/test/test_datetime.py
+++ b/Lib/test/test_datetime.py
@@ -4,7 +4,6 @@ See http://www.zope.org/Members/fdrake/DateTimeWiki/TestCases
"""
import os
-import sys
import pickle
import unittest
diff --git a/Lib/test/test_dbm.py b/Lib/test/test_dbm.py
index 806125f..4c97a4c 100755
--- a/Lib/test/test_dbm.py
+++ b/Lib/test/test_dbm.py
@@ -3,7 +3,6 @@
Roger E. Masse
"""
import os
-import random
import dbm
from dbm import error
from test.test_support import verbose, verify, TestSkipped, TESTFN
diff --git a/Lib/test/test_dis.py b/Lib/test/test_dis.py
index f135780..ceb7509 100644
--- a/Lib/test/test_dis.py
+++ b/Lib/test/test_dis.py
@@ -1,6 +1,6 @@
# Minimal tests for dis module
-from test.test_support import verbose, run_unittest
+from test.test_support import run_unittest
import unittest
import sys
import dis
diff --git a/Lib/test/test_dummy_threading.py b/Lib/test/test_dummy_threading.py
index 90bf6e0..6f16241 100644
--- a/Lib/test/test_dummy_threading.py
+++ b/Lib/test/test_dummy_threading.py
@@ -3,7 +3,6 @@
# Create a bunch of threads, let each do some work, wait until all are done
from test.test_support import verbose
-import random
import dummy_threading as _threading
import time
diff --git a/Lib/test/test_email.py b/Lib/test/test_email.py
index 736c393..e12cbd3 100644
--- a/Lib/test/test_email.py
+++ b/Lib/test/test_email.py
@@ -1,7 +1,6 @@
# Copyright (C) 2001-2007 Python Software Foundation
# email package unit tests
-import unittest
# The specific tests now live in Lib/email/test
from email.test.test_email import suite
from test import test_support
diff --git a/Lib/test/test_eof.py b/Lib/test/test_eof.py
index 1187d07..4284d11 100644
--- a/Lib/test/test_eof.py
+++ b/Lib/test/test_eof.py
@@ -1,7 +1,6 @@
#! /usr/bin/env python
"""test script for a few new invalid token catches"""
-import os
import unittest
from test import test_support
diff --git a/Lib/test/test_extcall.py b/Lib/test/test_extcall.py
index 596a3ef..bad1440 100644
--- a/Lib/test/test_extcall.py
+++ b/Lib/test/test_extcall.py
@@ -1,4 +1,4 @@
-from test.test_support import verify, verbose, TestFailed, sortdict
+from test.test_support import verify, TestFailed, sortdict
from collections import UserDict, UserList
def e(a, b):
diff --git a/Lib/test/test_fileinput.py b/Lib/test/test_fileinput.py
index 2ba3bc3..aa38527 100644
--- a/Lib/test/test_fileinput.py
+++ b/Lib/test/test_fileinput.py
@@ -6,7 +6,7 @@ Nick Mathewson
import unittest
from test.test_support import verbose, TESTFN, run_unittest
from test.test_support import unlink as safe_unlink
-import sys, os, re
+import sys, re
from io import StringIO
from fileinput import FileInput, hook_encoded
diff --git a/Lib/test/test_fractions.py b/Lib/test/test_fractions.py
index dacb587..21c1761 100644
--- a/Lib/test/test_fractions.py
+++ b/Lib/test/test_fractions.py
@@ -1,7 +1,7 @@
"""Tests for Lib/fractions.py."""
from decimal import Decimal
-from test.test_support import run_unittest, verbose
+from test.test_support import run_unittest
import math
import operator
import fractions
diff --git a/Lib/test/test_getargs2.py b/Lib/test/test_getargs2.py
index 9172576..4253141 100644
--- a/Lib/test/test_getargs2.py
+++ b/Lib/test/test_getargs2.py
@@ -1,8 +1,7 @@
import unittest
from test import test_support
-import sys
-import warnings, re
+import warnings
warnings.filterwarnings("ignore",
category=DeprecationWarning,
message=".*integer argument expected, got float",
diff --git a/Lib/test/test_gzip.py b/Lib/test/test_gzip.py
index 31000df..08f7f3f 100644
--- a/Lib/test/test_gzip.py
+++ b/Lib/test/test_gzip.py
@@ -4,7 +4,7 @@
import unittest
from test import test_support
-import sys, os
+import os
import gzip
diff --git a/Lib/test/test_htmlparser.py b/Lib/test/test_htmlparser.py
index b408a18..a4f2c34 100755
--- a/Lib/test/test_htmlparser.py
+++ b/Lib/test/test_htmlparser.py
@@ -2,7 +2,6 @@
import HTMLParser
import pprint
-import sys
import unittest
from test import test_support
diff --git a/Lib/test/test_httplib.py b/Lib/test/test_httplib.py
index 7e5a8a5..4caf996 100644
--- a/Lib/test/test_httplib.py
+++ b/Lib/test/test_httplib.py
@@ -1,6 +1,5 @@
import httplib
import io
-import sys
import socket
from unittest import TestCase
diff --git a/Lib/test/test_imp.py b/Lib/test/test_imp.py
index 3b0a13d..13a3bfd 100644
--- a/Lib/test/test_imp.py
+++ b/Lib/test/test_imp.py
@@ -1,5 +1,4 @@
import imp
-import thread
import unittest
from test import test_support
diff --git a/Lib/test/test_index.py b/Lib/test/test_index.py
index 9a22020..71cfb15 100644
--- a/Lib/test/test_index.py
+++ b/Lib/test/test_index.py
@@ -1,7 +1,6 @@
import unittest
from test import test_support
import operator
-import sys
maxsize = test_support.MAX_Py_ssize_t
minsize = -maxsize-1
diff --git a/Lib/test/test_list.py b/Lib/test/test_list.py
index 5b84a42..b3b2195 100644
--- a/Lib/test/test_list.py
+++ b/Lib/test/test_list.py
@@ -1,4 +1,3 @@
-import unittest
import sys
from test import test_support, list_tests
diff --git a/Lib/test/test_minidom.py b/Lib/test/test_minidom.py
index d1a72bd..9ea60a9 100644
--- a/Lib/test/test_minidom.py
+++ b/Lib/test/test_minidom.py
@@ -3,7 +3,6 @@
import os
import sys
import pickle
-import traceback
from io import StringIO
from test.test_support import verbose, run_unittest, TestSkipped
import unittest
@@ -791,6 +790,14 @@ class MinidomTest(unittest.TestCase):
"testNormalize -- single empty node removed")
doc.unlink()
+ def testBug1433694(self):
+ doc = parseString("<o><i/>t</o>")
+ node = doc.documentElement
+ node.childNodes[1].nodeValue = ""
+ node.normalize()
+ self.confirm(node.childNodes[-1].nextSibling == None,
+ "Final child's .nextSibling should be None")
+
def testSiblings(self):
doc = parseString("<doc><?pi?>text?<elm/></doc>")
root = doc.documentElement
diff --git a/Lib/test/test_module.py b/Lib/test/test_module.py
index d091c6b..35c765e 100644
--- a/Lib/test/test_module.py
+++ b/Lib/test/test_module.py
@@ -1,6 +1,6 @@
# Test the module type
import unittest
-from test.test_support import verbose, run_unittest
+from test.test_support import run_unittest
import sys
ModuleType = type(sys)
diff --git a/Lib/test/test_modulefinder.py b/Lib/test/test_modulefinder.py
index 3bc22ab..80c06d7 100644
--- a/Lib/test/test_modulefinder.py
+++ b/Lib/test/test_modulefinder.py
@@ -1,5 +1,5 @@
import __future__
-import sys, os
+import os
import unittest
import distutils.dir_util
import tempfile
diff --git a/Lib/test/test_multibytecodec_support.py b/Lib/test/test_multibytecodec_support.py
index 6b67057..42df9d7 100644
--- a/Lib/test/test_multibytecodec_support.py
+++ b/Lib/test/test_multibytecodec_support.py
@@ -4,7 +4,7 @@
# Common Unittest Routines for CJK codecs
#
-import sys, codecs, os.path
+import sys, codecs
import unittest, re
from test import test_support
from io import BytesIO
diff --git a/Lib/test/test_optparse.py b/Lib/test/test_optparse.py
index 1cfdd50..71de869 100644
--- a/Lib/test/test_optparse.py
+++ b/Lib/test/test_optparse.py
@@ -15,7 +15,6 @@ import copy
import unittest
from io import StringIO
-from pprint import pprint
from test import test_support
diff --git a/Lib/test/test_ossaudiodev.py b/Lib/test/test_ossaudiodev.py
index 97d5989..8f9bf6f 100644
--- a/Lib/test/test_ossaudiodev.py
+++ b/Lib/test/test_ossaudiodev.py
@@ -1,14 +1,11 @@
from test import test_support
test_support.requires('audio')
-from test.test_support import verbose, findfile, TestSkipped
+from test.test_support import findfile, TestSkipped
import errno
-import fcntl
import ossaudiodev
-import os
import sys
-import select
import sunaudio
import time
import audioop
diff --git a/Lib/test/test_pickle.py b/Lib/test/test_pickle.py
index f54381f..aa09a6a 100644
--- a/Lib/test/test_pickle.py
+++ b/Lib/test/test_pickle.py
@@ -1,5 +1,4 @@
import pickle
-import unittest
import io
from test import test_support
diff --git a/Lib/test/test_pkg.py b/Lib/test/test_pkg.py
index 630956d..dcc7433 100644
--- a/Lib/test/test_pkg.py
+++ b/Lib/test/test_pkg.py
@@ -4,7 +4,6 @@ import sys
import os
import tempfile
import textwrap
-import traceback
import unittest
from test import test_support
diff --git a/Lib/test/test_plistlib.py b/Lib/test/test_plistlib.py
index 5c6a059..883b01f 100644
--- a/Lib/test/test_plistlib.py
+++ b/Lib/test/test_plistlib.py
@@ -3,7 +3,6 @@
import unittest
import plistlib
import os
-import time
import datetime
from test import test_support
diff --git a/Lib/test/test_poll.py b/Lib/test/test_poll.py
index a6110e6..cd9bfb0 100644
--- a/Lib/test/test_poll.py
+++ b/Lib/test/test_poll.py
@@ -1,6 +1,6 @@
# Test case for the os.poll() function
-import sys, os, select, random, unittest
+import os, select, random, unittest
from test.test_support import TestSkipped, TESTFN, run_unittest
try:
diff --git a/Lib/test/test_posix.py b/Lib/test/test_posix.py
index efd5fb0..13f8f9e 100644
--- a/Lib/test/test_posix.py
+++ b/Lib/test/test_posix.py
@@ -9,7 +9,6 @@ except ImportError:
import time
import os
-import sys
import unittest
import warnings
warnings.filterwarnings('ignore', '.* potential security risk .*',
diff --git a/Lib/test/test_pyclbr.py b/Lib/test/test_pyclbr.py
index f041823..c96ae6d 100644
--- a/Lib/test/test_pyclbr.py
+++ b/Lib/test/test_pyclbr.py
@@ -3,7 +3,7 @@
Nick Mathewson
'''
from test.test_support import run_unittest
-import unittest, sys
+import sys
from types import FunctionType, MethodType, BuiltinFunctionType
import pyclbr
from unittest import TestCase
diff --git a/Lib/test/test_resource.py b/Lib/test/test_resource.py
index 86440b5..b66caf8 100644
--- a/Lib/test/test_resource.py
+++ b/Lib/test/test_resource.py
@@ -1,7 +1,6 @@
import unittest
from test import test_support
-import os
import resource
import time
diff --git a/Lib/test/test_rfc822.py b/Lib/test/test_rfc822.py
index b563c9c..1f5dd64 100644
--- a/Lib/test/test_rfc822.py
+++ b/Lib/test/test_rfc822.py
@@ -1,5 +1,4 @@
import rfc822
-import sys
import unittest
from test import test_support
diff --git a/Lib/test/test_scriptpackages.py b/Lib/test/test_scriptpackages.py
index a2e03f9..ee14be2 100644
--- a/Lib/test/test_scriptpackages.py
+++ b/Lib/test/test_scriptpackages.py
@@ -1,9 +1,6 @@
# Copyright (C) 2003 Python Software Foundation
import unittest
-import os
-import sys
-import tempfile
from test import test_support
import aetools
diff --git a/Lib/test/test_sgmllib.py b/Lib/test/test_sgmllib.py
index f0f8ad6..374b921 100644
--- a/Lib/test/test_sgmllib.py
+++ b/Lib/test/test_sgmllib.py
@@ -1,4 +1,3 @@
-import htmlentitydefs
import pprint
import re
import sgmllib
@@ -116,7 +115,7 @@ class SGMLParserTestCase(unittest.TestCase):
try:
events = self.get_events(source)
except:
- import sys
+ #import sys
#print >>sys.stderr, pprint.pformat(self.events)
raise
if events != expected_events:
diff --git a/Lib/test/test_site.py b/Lib/test/test_site.py
index 4624ea6..b80d6e6 100644
--- a/Lib/test/test_site.py
+++ b/Lib/test/test_site.py
@@ -5,12 +5,11 @@ executing have not been removed.
"""
import unittest
-from test.test_support import TestSkipped, TestFailed, run_unittest, TESTFN
+from test.test_support import TestSkipped, run_unittest, TESTFN
import builtins
import os
import sys
import encodings
-import tempfile
# Need to make sure to not import 'site' if someone specified ``-S`` at the
# command-line. Detect this by just making sure 'site' has not been imported
# already.
diff --git a/Lib/test/test_socketserver.py b/Lib/test/test_socketserver.py
index 0fccdd9..69f0b53 100644
--- a/Lib/test/test_socketserver.py
+++ b/Lib/test/test_socketserver.py
@@ -9,7 +9,6 @@ import imp
import select
import time
import threading
-from functools import wraps
import unittest
import SocketServer
diff --git a/Lib/test/test_sqlite.py b/Lib/test/test_sqlite.py
index f033772..c1523e1 100644
--- a/Lib/test/test_sqlite.py
+++ b/Lib/test/test_sqlite.py
@@ -1,5 +1,4 @@
from test.test_support import run_unittest, TestSkipped
-import unittest
try:
import _sqlite3
diff --git a/Lib/test/test_strftime.py b/Lib/test/test_strftime.py
index c6db3dd..0870134 100755
--- a/Lib/test/test_strftime.py
+++ b/Lib/test/test_strftime.py
@@ -2,7 +2,7 @@
# Sanity checker for time.strftime
-import time, calendar, sys, os, re
+import time, calendar, sys, re
from test.test_support import verbose
def main():
diff --git a/Lib/test/test_support.py b/Lib/test/test_support.py
index 0fd5d88..ba36448 100644
--- a/Lib/test/test_support.py
+++ b/Lib/test/test_support.py
@@ -10,7 +10,6 @@ import sys
import os
import os.path
import warnings
-import types
import unittest
class Error(Exception):
diff --git a/Lib/test/test_tuple.py b/Lib/test/test_tuple.py
index 1da0ef3..62c5d71 100644
--- a/Lib/test/test_tuple.py
+++ b/Lib/test/test_tuple.py
@@ -1,4 +1,3 @@
-import unittest
from test import test_support, seq_tests
class TupleTest(seq_tests.CommonTest):
diff --git a/Lib/test/test_unpack.py b/Lib/test/test_unpack.py
index 75033ed..a90b5e5 100644
--- a/Lib/test/test_unpack.py
+++ b/Lib/test/test_unpack.py
@@ -122,7 +122,6 @@ error)
__test__ = {'doctests' : doctests}
def test_main(verbose=False):
- import sys
from test import test_support
from test import test_unpack
test_support.run_doctest(test_unpack, verbose)
diff --git a/Lib/test/test_urllib.py b/Lib/test/test_urllib.py
index c233e35..d58414c 100644
--- a/Lib/test/test_urllib.py
+++ b/Lib/test/test_urllib.py
@@ -8,10 +8,6 @@ from test import test_support
import os
import mimetools
import tempfile
-import ftplib
-import threading
-import socket
-import time
def hexescape(char):
"""Escape char as RFC 2396 specifies"""
diff --git a/Lib/test/test_urllib2.py b/Lib/test/test_urllib2.py
index 199119a..6ceec06 100644
--- a/Lib/test/test_urllib2.py
+++ b/Lib/test/test_urllib2.py
@@ -1,7 +1,7 @@
import unittest
from test import test_support
-import os, socket
+import os
import io
import urllib2
@@ -584,7 +584,7 @@ class HandlerTests(unittest.TestCase):
self.assertEqual(int(headers["Content-length"]), len(data))
def test_file(self):
- import time, rfc822, socket
+ import rfc822, socket
h = urllib2.FileHandler()
o = h.parent = MockOpener()
@@ -988,7 +988,7 @@ class HandlerTests(unittest.TestCase):
def _test_basic_auth(self, opener, auth_handler, auth_header,
realm, http_handler, password_manager,
request_url, protected_url):
- import base64, httplib
+ import base64
user, password = "wile", "coyote"
# .add_password() fed through to password manager
diff --git a/Lib/test/test_urllib2_localnet.py b/Lib/test/test_urllib2_localnet.py
index f0b5dea..663330b 100644
--- a/Lib/test/test_urllib2_localnet.py
+++ b/Lib/test/test_urllib2_localnet.py
@@ -1,6 +1,5 @@
#!/usr/bin/env python
-import sys
import threading
import urlparse
import urllib2
diff --git a/Lib/test/test_userdict.py b/Lib/test/test_userdict.py
index 643caf9..3a8a8b4 100644
--- a/Lib/test/test_userdict.py
+++ b/Lib/test/test_userdict.py
@@ -1,6 +1,5 @@
# Check every path through every method of UserDict
-import unittest
from test import test_support, mapping_tests
import collections
diff --git a/Lib/test/test_userlist.py b/Lib/test/test_userlist.py
index 9d012e0..a0daa4e 100644
--- a/Lib/test/test_userlist.py
+++ b/Lib/test/test_userlist.py
@@ -1,7 +1,6 @@
# Check every path through every method of UserList
from collections import UserList
-import unittest
from test import test_support, list_tests
class UserListTest(list_tests.CommonTest):
diff --git a/Lib/test/test_userstring.py b/Lib/test/test_userstring.py
index a0fefc3..e8fb135 100755
--- a/Lib/test/test_userstring.py
+++ b/Lib/test/test_userstring.py
@@ -2,7 +2,6 @@
# UserString is a wrapper around the native builtin string type.
# UserString instances should behave similar to builtin string objects.
-import unittest
import string
from test import test_support, string_tests
diff --git a/Lib/test/test_whichdb.py b/Lib/test/test_whichdb.py
index 7746329..e63eb0f 100644
--- a/Lib/test/test_whichdb.py
+++ b/Lib/test/test_whichdb.py
@@ -8,7 +8,6 @@ import test.test_support
import unittest
import whichdb
import anydbm
-import tempfile
import glob
from test.test_anydbm import delete_files, dbm_iterator
diff --git a/Lib/test/test_xml_etree.py b/Lib/test/test_xml_etree.py
index 1a6b7f3..8470584 100644
--- a/Lib/test/test_xml_etree.py
+++ b/Lib/test/test_xml_etree.py
@@ -2,7 +2,8 @@
# all included components work as they should. For a more extensive
# test suite, see the selftest script in the ElementTree distribution.
-import doctest, sys
+import doctest
+import sys
from test import test_support
diff --git a/Lib/test/test_xml_etree_c.py b/Lib/test/test_xml_etree_c.py
index c8eec40..80e91d1 100644
--- a/Lib/test/test_xml_etree_c.py
+++ b/Lib/test/test_xml_etree_c.py
@@ -1,6 +1,7 @@
# xml.etree test for cElementTree
-import doctest, sys
+import doctest
+import sys
from test import test_support
diff --git a/Lib/test/test_xmlrpc.py b/Lib/test/test_xmlrpc.py
index 092be51..0836533 100644
--- a/Lib/test/test_xmlrpc.py
+++ b/Lib/test/test_xmlrpc.py
@@ -26,10 +26,6 @@ alist = [{'astring': 'foo@bar.baz.spam',
(2005, 2, 10, 11, 41, 23, 0, 1, -1)),
'datetime3': xmlrpclib.DateTime(
datetime.datetime(2005, 2, 10, 11, 41, 23)),
- 'datetime4': xmlrpclib.DateTime(
- datetime.date(2005, 2, 10)),
- 'datetime5': xmlrpclib.DateTime(
- datetime.time(11, 41, 23)),
}]
class XMLRPCTestCase(unittest.TestCase):
@@ -53,34 +49,14 @@ class XMLRPCTestCase(unittest.TestCase):
(newdt,), m = xmlrpclib.loads(s, use_datetime=0)
self.assertEquals(newdt, xmlrpclib.DateTime('20050210T11:41:23'))
- def test_dump_bare_date(self):
- # This checks that an unwrapped datetime.date object can be handled
- # by the marshalling code. This can't be done via test_dump_load()
- # since the unmarshaller produces a datetime object
- d = datetime.datetime(2005, 2, 10, 11, 41, 23).date()
- s = xmlrpclib.dumps((d,))
- (newd,), m = xmlrpclib.loads(s, use_datetime=1)
- self.assertEquals(newd.date(), d)
- self.assertEquals(newd.time(), datetime.time(0, 0, 0))
- self.assertEquals(m, None)
-
- (newdt,), m = xmlrpclib.loads(s, use_datetime=0)
- self.assertEquals(newdt, xmlrpclib.DateTime('20050210T00:00:00'))
-
- def test_dump_bare_time(self):
- # This checks that an unwrapped datetime.time object can be handled
- # by the marshalling code. This can't be done via test_dump_load()
- # since the unmarshaller produces a datetime object
- t = datetime.datetime(2005, 2, 10, 11, 41, 23).time()
- s = xmlrpclib.dumps((t,))
- (newt,), m = xmlrpclib.loads(s, use_datetime=1)
- today = datetime.datetime.now().date().strftime("%Y%m%d")
- self.assertEquals(newt.time(), t)
- self.assertEquals(newt.date(), datetime.datetime.now().date())
- self.assertEquals(m, None)
-
- (newdt,), m = xmlrpclib.loads(s, use_datetime=0)
- self.assertEquals(newdt, xmlrpclib.DateTime('%sT11:41:23'%today))
+ def test_cmp_datetime_DateTime(self):
+ now = datetime.datetime.now()
+ dt = xmlrpclib.DateTime(now.timetuple())
+ self.assert_(dt == now)
+ self.assert_(now == dt)
+ then = now + datetime.timedelta(seconds=4)
+ self.assert_(then >= dt)
+ self.assert_(dt < then)
def test_bug_1164912 (self):
d = xmlrpclib.DateTime()
@@ -201,21 +177,6 @@ class DateTimeTestCase(unittest.TestCase):
t = xmlrpclib.DateTime(d)
self.assertEqual(str(t), '20070102T03:04:05')
- def test_datetime_date(self):
- d = datetime.date(2007,9,8)
- t = xmlrpclib.DateTime(d)
- self.assertEqual(str(t), '20070908T00:00:00')
-
- def test_datetime_time(self):
- d = datetime.time(13,17,19)
- # allow for date rollover by checking today's or tomorrow's dates
- dd1 = datetime.datetime.now().date()
- dd2 = dd1 + datetime.timedelta(days=1)
- vals = (dd1.strftime('%Y%m%dT13:17:19'),
- dd2.strftime('%Y%m%dT13:17:19'))
- t = xmlrpclib.DateTime(d)
- self.assertEqual(str(t) in vals, True)
-
def test_repr(self):
d = datetime.datetime(2007,1,2,3,4,5)
t = xmlrpclib.DateTime(d)
diff --git a/Lib/xml/dom/minidom.py b/Lib/xml/dom/minidom.py
index 3087a5c..b6f0a862 100644
--- a/Lib/xml/dom/minidom.py
+++ b/Lib/xml/dom/minidom.py
@@ -204,6 +204,8 @@ class Node(xml.dom.Node):
L.append(child)
if child.nodeType == Node.ELEMENT_NODE:
child.normalize()
+ if L:
+ L[-1].nextSibling = None
self.childNodes[:] = L
def cloneNode(self, deep):
diff --git a/Lib/xmlrpclib.py b/Lib/xmlrpclib.py
index da96420..2e68a1b 100644
--- a/Lib/xmlrpclib.py
+++ b/Lib/xmlrpclib.py
@@ -298,13 +298,6 @@ class DateTime:
if datetime and isinstance(value, datetime.datetime):
self.value = value.strftime("%Y%m%dT%H:%M:%S")
return
- if datetime and isinstance(value, datetime.date):
- self.value = value.strftime("%Y%m%dT%H:%M:%S")
- return
- if datetime and isinstance(value, datetime.time):
- today = datetime.datetime.now().strftime("%Y%m%d")
- self.value = value.strftime(today+"T%H:%M:%S")
- return
if not isinstance(value, (tuple, time.struct_time)):
if value == 0:
value = time.time()
@@ -312,15 +305,57 @@ class DateTime:
value = time.strftime("%Y%m%dT%H:%M:%S", value)
self.value = value
- def __eq__(self, other):
+ def make_comparable(self, other):
if isinstance(other, DateTime):
- other = other.value
- return self.value == other
+ s = self.value
+ o = other.value
+ elif datetime and isinstance(other, datetime.datetime):
+ s = self.value
+ o = other.strftime("%Y%m%dT%H:%M:%S")
+ elif isinstance(other, (str, unicode)):
+ s = self.value
+ o = other
+ elif hasattr(other, "timetuple"):
+ s = self.timetuple()
+ o = other.timetuple()
+ else:
+ otype = (hasattr(other, "__class__")
+ and other.__class__.__name__
+ or type(other))
+ raise TypeError("Can't compare %s and %s" %
+ (self.__class__.__name__, otype))
+ return s, o
+
+ def __lt__(self, other):
+ s, o = self.make_comparable(other)
+ return s < o
+
+ def __le__(self, other):
+ s, o = self.make_comparable(other)
+ return s <= o
+
+ def __gt__(self, other):
+ s, o = self.make_comparable(other)
+ return s > o
+
+ def __ge__(self, other):
+ s, o = self.make_comparable(other)
+ return s >= o
+
+ def __eq__(self, other):
+ s, o = self.make_comparable(other)
+ return s == o
def __ne__(self, other):
- if isinstance(other, DateTime):
- other = other.value
- return self.value != other
+ s, o = self.make_comparable(other)
+ return s != o
+
+ def timetuple(self):
+ return time.strptime(self.value, "%Y%m%dT%H:%M:%S")
+
+ def __cmp__(self, other):
+ s, o = self.make_comparable(other)
+ return cmp(s, o)
##
# Get date/time value.
@@ -669,19 +704,6 @@ class Marshaller:
write("</dateTime.iso8601></value>\n")
dispatch[datetime.datetime] = dump_datetime
- def dump_date(self, value, write):
- write("<value><dateTime.iso8601>")
- write(value.strftime("%Y%m%dT00:00:00"))
- write("</dateTime.iso8601></value>\n")
- dispatch[datetime.date] = dump_date
-
- def dump_time(self, value, write):
- write("<value><dateTime.iso8601>")
- write(datetime.datetime.now().date().strftime("%Y%m%dT"))
- write(value.strftime("%H:%M:%S"))
- write("</dateTime.iso8601></value>\n")
- dispatch[datetime.time] = dump_time
-
def dump_instance(self, value, write):
# check for special wrappers
if value.__class__ in WRAPPERS: