Merged revisions 62021,62029,62035-62038,62043-62044,62052-62053 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r62021 | benjamin.peterson | 2008-03-28 18:11:01 -0500 (Fri, 28 Mar 2008) | 2 lines

  NIL => NULL
........
  r62029 | amaury.forgeotdarc | 2008-03-28 20:42:31 -0500 (Fri, 28 Mar 2008) | 3 lines

  Correctly call the base class tearDown();
  otherwise running test_logging twice produce the errors we see on all buildbots
........
  r62035 | raymond.hettinger | 2008-03-29 05:42:07 -0500 (Sat, 29 Mar 2008) | 1 line

  Be explicit about what efficient means.
........
  r62036 | georg.brandl | 2008-03-29 06:46:18 -0500 (Sat, 29 Mar 2008) | 2 lines

  Fix capitalization.
........
  r62037 | amaury.forgeotdarc | 2008-03-29 07:42:54 -0500 (Sat, 29 Mar 2008) | 5 lines

  lib2to3 should install a logging handler only when run as a main program,
  not when used as a library.

  This may please the buildbots, which fail when test_lib2to3 is run before test_logging.
........
  r62043 | benjamin.peterson | 2008-03-29 10:24:25 -0500 (Sat, 29 Mar 2008) | 3 lines

  #2503 make singletons compared with "is" not == or !=
  Thanks to Wummel for the patch
........
  r62044 | gerhard.haering | 2008-03-29 14:11:52 -0500 (Sat, 29 Mar 2008) | 2 lines

  Documented the lastrowid attribute.
........
  r62052 | benjamin.peterson | 2008-03-30 14:35:10 -0500 (Sun, 30 Mar 2008) | 2 lines

  Updated README regarding doc formats
........
  r62053 | georg.brandl | 2008-03-30 14:41:39 -0500 (Sun, 30 Mar 2008) | 2 lines

  The other download formats will be available for 2.6 too.
........
diff --git a/Demo/classes/Dbm.py b/Demo/classes/Dbm.py
index ecc117d..617fe99 100755
--- a/Demo/classes/Dbm.py
+++ b/Demo/classes/Dbm.py
@@ -50,7 +50,7 @@
                 value = d[key]
                 print('currently:', value)
             value = eval(input('value: '))
-            if value == None:
+            if value is None:
                 del d[key]
             else:
                 d[key] = value
diff --git a/Demo/curses/ncurses.py b/Demo/curses/ncurses.py
index fc22ff7..0bdc1a9 100644
--- a/Demo/curses/ncurses.py
+++ b/Demo/curses/ncurses.py
@@ -9,7 +9,7 @@
 from curses import panel
 
 def wGetchar(win = None):
-    if win == None: win = stdscr
+    if win is None: win = stdscr
     return win.getch()
 
 def Getchar():
diff --git a/Demo/rpc/mountclient.py b/Demo/rpc/mountclient.py
index 3bb88b1..81797df 100644
--- a/Demo/rpc/mountclient.py
+++ b/Demo/rpc/mountclient.py
@@ -100,7 +100,7 @@
     # This function is called to cough up a suitable
     # authentication object for a call to procedure 'proc'.
     def mkcred(self):
-        if self.cred == None:
+        if self.cred is None:
             self.cred = rpc.AUTH_UNIX, rpc.make_auth_unix_default()
         return self.cred
 
diff --git a/Demo/rpc/nfsclient.py b/Demo/rpc/nfsclient.py
index aad8cf3..c36e3d2 100644
--- a/Demo/rpc/nfsclient.py
+++ b/Demo/rpc/nfsclient.py
@@ -129,7 +129,7 @@
         self.unpacker = NFSUnpacker('')
 
     def mkcred(self):
-        if self.cred == None:
+        if self.cred is None:
             self.cred = rpc.AUTH_UNIX, rpc.make_auth_unix_default()
         return self.cred
 
@@ -170,7 +170,7 @@
             for fileid, name, cookie in entries:
                 list.append((fileid, name))
                 last_cookie = cookie
-            if eof or last_cookie == None:
+            if eof or last_cookie is None:
                 break
             ra = (ra[0], last_cookie, ra[2])
         return list
@@ -184,7 +184,7 @@
     else: filesys = None
     from mountclient import UDPMountClient, TCPMountClient
     mcl = TCPMountClient(host)
-    if filesys == None:
+    if filesys is None:
         list = mcl.Export()
         for item in list:
             print(item)
diff --git a/Demo/rpc/rpc.py b/Demo/rpc/rpc.py
index 99115d3..789880b 100644
--- a/Demo/rpc/rpc.py
+++ b/Demo/rpc/rpc.py
@@ -260,13 +260,13 @@
 
     def mkcred(self):
         # Override this to use more powerful credentials
-        if self.cred == None:
+        if self.cred is None:
             self.cred = (AUTH_NULL, make_auth_null())
         return self.cred
 
     def mkverf(self):
         # Override this to use a more powerful verifier
-        if self.verf == None:
+        if self.verf is None:
             self.verf = (AUTH_NULL, make_auth_null())
         return self.verf
 
@@ -317,7 +317,7 @@
 def bindresvport(sock, host):
     global last_resv_port_tried
     FIRST, LAST = 600, 1024 # Range of ports to try
-    if last_resv_port_tried == None:
+    if last_resv_port_tried is None:
         import os
         last_resv_port_tried = FIRST + os.getpid() % (LAST-FIRST)
     for i in range(last_resv_port_tried, LAST) + \
@@ -811,7 +811,7 @@
     def session(self):
         call, host_port = self.sock.recvfrom(8192)
         reply = self.handle(call)
-        if reply != None:
+        if reply is not None:
             self.sock.sendto(reply, host_port)
 
 
diff --git a/Demo/tkinter/guido/paint.py b/Demo/tkinter/guido/paint.py
index d46e20b..7b2e814 100644
--- a/Demo/tkinter/guido/paint.py
+++ b/Demo/tkinter/guido/paint.py
@@ -50,7 +50,7 @@
 def motion(event):
     if b1 == "down":
         global xold, yold
-        if xold != None and yold != None:
+        if xold is not None and yold is not None:
             event.widget.create_line(xold,yold,event.x,event.y,smooth=TRUE)
                           # here's where you draw it. smooth. neat.
         xold = event.x
diff --git a/Doc/library/array.rst b/Doc/library/array.rst
index efe80b7..08142e1 100644
--- a/Doc/library/array.rst
+++ b/Doc/library/array.rst
@@ -3,12 +3,12 @@
 ===================================================
 
 .. module:: array
-   :synopsis: Efficient arrays of uniformly typed numeric values.
+   :synopsis: Space efficient arrays of uniformly typed numeric values.
 
 
 .. index:: single: arrays
 
-This module defines an object type which can efficiently represent an array of
+This module defines an object type which can compactly represent an array of
 basic values: characters, integers, floating point numbers.  Arrays are sequence
 types and behave very much like lists, except that the type of objects stored in
 them is constrained.  The type is specified at object creation time by using a
diff --git a/Include/object.h b/Include/object.h
index b4b9ce2..0c23e02 100644
--- a/Include/object.h
+++ b/Include/object.h
@@ -562,7 +562,7 @@
 objects that don't contain references to other objects or heap memory
 this can be the standard function free().  Both macros can be used
 wherever a void expression is allowed.  The argument must not be a
-NIL pointer.  If it may be NIL, use Py_XINCREF/Py_XDECREF instead.
+NULL pointer.  If it may be NULL, use Py_XINCREF/Py_XDECREF instead.
 The macro _Py_NewReference(op) initialize reference counts to 1, and
 in special builds (Py_REF_DEBUG, Py_TRACE_REFS) performs additional
 bookkeeping appropriate to the special build.
diff --git a/Lib/bsddb/dbshelve.py b/Lib/bsddb/dbshelve.py
index 3727270..7344945 100644
--- a/Lib/bsddb/dbshelve.py
+++ b/Lib/bsddb/dbshelve.py
@@ -135,7 +135,7 @@
 
 
     def keys(self, txn=None):
-        if txn != None:
+        if txn is not None:
             return self.db.keys(txn)
         else:
             return self.db.keys()
@@ -161,7 +161,7 @@
 
 
     def items(self, txn=None):
-        if txn != None:
+        if txn is not None:
             items = self.db.items(txn)
         else:
             items = self.db.items()
@@ -172,7 +172,7 @@
         return newitems
 
     def values(self, txn=None):
-        if txn != None:
+        if txn is not None:
             values = self.db.values(txn)
         else:
             values = self.db.values()
diff --git a/Lib/bsddb/test/test_basics.py b/Lib/bsddb/test/test_basics.py
index 4e070bd..6b99cc1 100644
--- a/Lib/bsddb/test/test_basics.py
+++ b/Lib/bsddb/test/test_basics.py
@@ -366,7 +366,7 @@
         else:
             if set_raises_error:
                 self.fail("expected exception")
-            if n != None:
+            if n is not None:
                 self.fail("expected None: %r" % (n,))
 
         rec = c.get_both(b'0404', self.makeData(b'0404'))
@@ -380,7 +380,7 @@
         else:
             if get_raises_error:
                 self.fail("expected exception")
-            if n != None:
+            if n is not None:
                 self.fail("expected None: %r" % (n,))
 
         if self.d.get_type() == db.DB_BTREE:
diff --git a/Lib/bsddb/test/test_dbtables.py b/Lib/bsddb/test/test_dbtables.py
index 8964de8..f1328f0 100644
--- a/Lib/bsddb/test/test_dbtables.py
+++ b/Lib/bsddb/test/test_dbtables.py
@@ -328,7 +328,7 @@
         self.tdb.Insert(tabname, {'Type': b'Unknown', 'Access': b'0'})
 
         def set_type(type):
-            if type == None:
+            if type is None:
                 return b'MP3'
             return type
 
diff --git a/Lib/idlelib/AutoComplete.py b/Lib/idlelib/AutoComplete.py
index b2b1657..ac0827c 100644
--- a/Lib/idlelib/AutoComplete.py
+++ b/Lib/idlelib/AutoComplete.py
@@ -35,10 +35,9 @@
                                    "popupwait", type="int", default=0)
 
     def __init__(self, editwin=None):
-        if editwin == None:  # subprocess and test
-            self.editwin = None
-            return
         self.editwin = editwin
+        if editwin is None:  # subprocess and test
+            return
         self.text = editwin.text
         self.autocompletewindow = None
 
diff --git a/Lib/idlelib/PyShell.py b/Lib/idlelib/PyShell.py
index 434df67..7c66088 100644
--- a/Lib/idlelib/PyShell.py
+++ b/Lib/idlelib/PyShell.py
@@ -922,7 +922,7 @@
                 "The program is still running!\n Do you want to kill it?",
                 default="ok",
                 parent=self.text)
-            if response == False:
+            if response is False:
                 return "cancel"
         if self.reading:
             self.top.quit()
diff --git a/Lib/lib-tk/Tkinter.py b/Lib/lib-tk/Tkinter.py
index 33b5ed0..23ebe54 100644
--- a/Lib/lib-tk/Tkinter.py
+++ b/Lib/lib-tk/Tkinter.py
@@ -187,7 +187,7 @@
         else:
             self._name = 'PY_VAR' + repr(_varnum)
             _varnum += 1
-        if value != None:
+        if value is not None:
             self.set(value)
         elif not self._tk.call("info", "exists", self._name):
             self.set(self._default)
diff --git a/Lib/lib-tk/turtle.py b/Lib/lib-tk/turtle.py
index 7cf298d..960a9f6 100644
--- a/Lib/lib-tk/turtle.py
+++ b/Lib/lib-tk/turtle.py
@@ -749,25 +749,25 @@
     global _width, _height, _startx, _starty
 
     width = geometry.get('width',_width)
-    if width is None or width >= 0:
+    if width >= 0 or width is None:
         _width = width
     else:
         raise ValueError("width can not be less than 0")
 
     height = geometry.get('height',_height)
-    if height is None or height >= 0:
+    if height >= 0 or height is None:
         _height = height
     else:
         raise ValueError("height can not be less than 0")
 
     startx = geometry.get('startx', _startx)
-    if startx is None or startx >= 0:
+    if startx >= 0 or startx is None:
         _startx = _startx
     else:
         raise ValueError("startx can not be less than 0")
 
     starty = geometry.get('starty', _starty)
-    if starty is None or starty >= 0:
+    if starty >= 0 or starty is None:
         _starty = starty
     else:
         raise ValueError("startx can not be less than 0")
diff --git a/Lib/lib2to3/refactor.py b/Lib/lib2to3/refactor.py
index 49c9a03..ae7d3cdf 100755
--- a/Lib/lib2to3/refactor.py
+++ b/Lib/lib2to3/refactor.py
@@ -28,15 +28,6 @@
 from . import fixes
 from . import pygram
 
-if sys.version_info < (2, 4):
-    hdlr = logging.StreamHandler()
-    fmt = logging.Formatter('%(name)s: %(message)s')
-    hdlr.setFormatter(fmt)
-    logging.root.addHandler(hdlr)
-else:
-    logging.basicConfig(format='%(name)s: %(message)s', level=logging.INFO)
-
-
 def main(args=None):
     """Main program.
 
@@ -73,6 +64,15 @@
         print("Use --help to show usage.", file=sys.stderr)
         return 2
 
+    # Set up logging handler
+    if sys.version_info < (2, 4):
+        hdlr = logging.StreamHandler()
+        fmt = logging.Formatter('%(name)s: %(message)s')
+        hdlr.setFormatter(fmt)
+        logging.root.addHandler(hdlr)
+    else:
+        logging.basicConfig(format='%(name)s: %(message)s', level=logging.INFO)
+
     # Initialize the refactoring tool
     rt = RefactoringTool(options)
 
diff --git a/Lib/plat-mac/EasyDialogs.py b/Lib/plat-mac/EasyDialogs.py
index 68beafa..f697417 100644
--- a/Lib/plat-mac/EasyDialogs.py
+++ b/Lib/plat-mac/EasyDialogs.py
@@ -78,7 +78,7 @@
         return
     h = d.GetDialogItemAsControl(2)
     SetDialogItemText(h, lf2cr(msg))
-    if ok != None:
+    if ok is not None:
         h = d.GetDialogItemAsControl(1)
         h.SetControlTitle(ok)
     d.SetDialogDefaultItem(1)
@@ -115,10 +115,10 @@
     SetDialogItemText(h, lf2cr(default))
     d.SelectDialogItemText(4, 0, 999)
 #       d.SetDialogItem(4, 0, 255)
-    if ok != None:
+    if ok is not None:
         h = d.GetDialogItemAsControl(1)
         h.SetControlTitle(ok)
-    if cancel != None:
+    if cancel is not None:
         h = d.GetDialogItemAsControl(2)
         h.SetControlTitle(cancel)
     d.SetDialogDefaultItem(1)
@@ -159,10 +159,10 @@
     SetControlData(pwd, kControlEditTextPart, kControlEditTextPasswordTag, default)
     d.SelectDialogItemText(4, 0, 999)
     Ctl.SetKeyboardFocus(d.GetDialogWindow(), pwd, kControlEditTextPart)
-    if ok != None:
+    if ok is not None:
         h = d.GetDialogItemAsControl(1)
         h.SetControlTitle(ok)
-    if cancel != None:
+    if cancel is not None:
         h = d.GetDialogItemAsControl(2)
         h.SetControlTitle(cancel)
     d.SetDialogDefaultItem(Dialogs.ok)
@@ -203,19 +203,19 @@
     # The question string is item 5
     h = d.GetDialogItemAsControl(5)
     SetDialogItemText(h, lf2cr(question))
-    if yes != None:
+    if yes is not None:
         if yes == '':
             d.HideDialogItem(2)
         else:
             h = d.GetDialogItemAsControl(2)
             h.SetControlTitle(yes)
-    if no != None:
+    if no is not None:
         if no == '':
             d.HideDialogItem(3)
         else:
             h = d.GetDialogItemAsControl(3)
             h.SetControlTitle(no)
-    if cancel != None:
+    if cancel is not None:
         if cancel == '':
             d.HideDialogItem(4)
         else:
@@ -316,7 +316,7 @@
 
     def set(self, value, max=None):
         """set(value) - Set progress bar position"""
-        if max != None:
+        if max is not None:
             self.maxval = max
             bar = self.d.GetDialogItemAsControl(3)
             if max <= 0:    # indeterminate bar
diff --git a/Lib/plat-mac/FrameWork.py b/Lib/plat-mac/FrameWork.py
index 8f8be55..fabd97e 100644
--- a/Lib/plat-mac/FrameWork.py
+++ b/Lib/plat-mac/FrameWork.py
@@ -92,7 +92,7 @@
 def setwatchcursor():
     global _watch
 
-    if _watch == None:
+    if _watch is None:
         _watch = GetCursor(4).data
     SetCursor(_watch)
 
@@ -129,7 +129,7 @@
         self._quititem = MenuItem(m, "Quit", "Q", self._quit)
 
     def gethelpmenu(self):
-        if self._helpmenu == None:
+        if self._helpmenu is None:
             self._helpmenu = HelpMenu(self.menubar)
         return self._helpmenu
 
@@ -266,7 +266,7 @@
         else:
             name = "do_%d" % partcode
 
-        if wid == None:
+        if wid is None:
             # No window, or a non-python window
             try:
                 handler = getattr(self, name)
@@ -475,7 +475,7 @@
         self.menus = None
 
     def addmenu(self, title, after = 0, id=None):
-        if id == None:
+        if id is None:
             id = self.getnextid()
         if DEBUG: print('Newmenu', title, id) # XXXX
         m = NewMenu(id, title)
@@ -907,8 +907,8 @@
         self.barx_enabled = self.bary_enabled = 1
         x0, y0, x1, y1 = self.wid.GetWindowPort().GetPortBounds()
         vx, vy = self.getscrollbarvalues()
-        if vx == None: self.barx_enabled, vx = 0, 0
-        if vy == None: self.bary_enabled, vy = 0, 0
+        if vx is None: self.barx_enabled, vx = 0, 0
+        if vy is None: self.bary_enabled, vy = 0, 0
         if wantx:
             rect = x0-1, y1-(SCROLLBARWIDTH-1), x1-(SCROLLBARWIDTH-2), y1+1
             self.barx = NewControl(self.wid, rect, "", 1, vx, 0, 32767, 16, 0)
@@ -1007,7 +1007,7 @@
         SetPort(self.wid)
         vx, vy = self.getscrollbarvalues()
         if self.barx:
-            if vx == None:
+            if vx is None:
                 self.barx.HiliteControl(255)
                 self.barx_enabled = 0
             else:
@@ -1017,7 +1017,7 @@
                         self.barx.HiliteControl(0)
                 self.barx.SetControlValue(vx)
         if self.bary:
-            if vy == None:
+            if vy is None:
                 self.bary.HiliteControl(255)
                 self.bary_enabled = 0
             else:
diff --git a/Lib/plat-mac/MiniAEFrame.py b/Lib/plat-mac/MiniAEFrame.py
index e2f7cec..16f44d9 100644
--- a/Lib/plat-mac/MiniAEFrame.py
+++ b/Lib/plat-mac/MiniAEFrame.py
@@ -159,7 +159,7 @@
             #Same try/except comment as above
             rv = _function(**_parameters)
 
-        if rv == None:
+        if rv is None:
             aetools.packevent(_reply, {})
         else:
             aetools.packevent(_reply, {'----':rv})
diff --git a/Lib/plat-mac/PixMapWrapper.py b/Lib/plat-mac/PixMapWrapper.py
index a4bacaa..98abb4a 100644
--- a/Lib/plat-mac/PixMapWrapper.py
+++ b/Lib/plat-mac/PixMapWrapper.py
@@ -147,9 +147,9 @@
         """Draw this pixmap into the given (default current) grafport."""
         src = self.bounds
         dest = [x1,y1,x2,y2]
-        if x2 == None:
+        if x2 is None:
             dest[2] = x1 + src[2]-src[0]
-        if y2 == None:
+        if y2 is None:
             dest[3] = y1 + src[3]-src[1]
         if not port: port = Qd.GetPort()
         Qd.CopyBits(self.PixMap(), port.GetPortBitMapForCopyBits(), src, tuple(dest),
diff --git a/Lib/plat-mac/aepack.py b/Lib/plat-mac/aepack.py
index b030140..c082b1d 100644
--- a/Lib/plat-mac/aepack.py
+++ b/Lib/plat-mac/aepack.py
@@ -82,7 +82,7 @@
         else:
             return pack(x).AECoerceDesc(forcetype)
 
-    if x == None:
+    if x is None:
         return AE.AECreateDesc(b'null', '')
 
     if isinstance(x, AEDescType):
diff --git a/Lib/plat-mac/buildtools.py b/Lib/plat-mac/buildtools.py
index 1545014..87a099e 100644
--- a/Lib/plat-mac/buildtools.py
+++ b/Lib/plat-mac/buildtools.py
@@ -203,13 +203,13 @@
     dummy, tmplowner = copyres(input, output, skiptypes, 1, progress)
 
     Res.CloseResFile(input)
-##  if ownertype == None:
+##  if ownertype is None:
 ##      raise BuildError, "No owner resource found in either resource file or template"
     # Make sure we're manipulating the output resource file now
 
     Res.UseResFile(output)
 
-    if ownertype == None:
+    if ownertype is None:
         # No owner resource in the template. We have skipped the
         # Python owner resource, so we have to add our own. The relevant
         # bundle stuff is already included in the interpret/applet template.
diff --git a/Lib/plat-mac/findertools.py b/Lib/plat-mac/findertools.py
index bebd2a0..9bb35e6 100644
--- a/Lib/plat-mac/findertools.py
+++ b/Lib/plat-mac/findertools.py
@@ -124,7 +124,7 @@
     """comment: get or set the Finder-comment of the item, displayed in the 'Get Info' window."""
     object = Carbon.File.FSRef(object)
     object_alias = object.FSNewAliasMonimal()
-    if comment == None:
+    if comment is None:
         return _getcomment(object_alias)
     else:
         return _setcomment(object_alias, comment)
@@ -329,7 +329,7 @@
     """label: set or get the label of the item. Specify file by name or fsspec."""
     object = Carbon.File.FSRef(object)
     object_alias = object.FSNewAliasMinimal()
-    if index == None:
+    if index is None:
         return _getlabel(object_alias)
     if index < 0 or index > 7:
         index = 0
@@ -375,7 +375,7 @@
     """
     fsr = Carbon.File.FSRef(folder)
     folder_alias = fsr.FSNewAliasMinimal()
-    if view == None:
+    if view is None:
         return _getwindowview(folder_alias)
     return _setwindowview(folder_alias, view)
 
@@ -535,7 +535,7 @@
     Development opportunity: get and set the data as PICT."""
     fsr = Carbon.File.FSRef(object)
     object_alias = fsr.FSNewAliasMinimal()
-    if icondata == None:
+    if icondata is None:
         return _geticon(object_alias)
     return _seticon(object_alias, icondata)
 
diff --git a/Lib/plat-mac/gensuitemodule.py b/Lib/plat-mac/gensuitemodule.py
index 9d4df6d..c3b42e4 100644
--- a/Lib/plat-mac/gensuitemodule.py
+++ b/Lib/plat-mac/gensuitemodule.py
@@ -770,7 +770,7 @@
             fp.write("        if _object:\n")
             fp.write("            _arguments['----'] = _object\n")
         else:
-            fp.write("        if _no_object != None: raise TypeError, 'No direct arg expected'\n")
+            fp.write("        if _no_object is not None: raise TypeError, 'No direct arg expected'\n")
         fp.write("\n")
         #
         # Do enum-name substitution
diff --git a/Lib/plat-mac/ic.py b/Lib/plat-mac/ic.py
index 5a377eb..f4f8370 100644
--- a/Lib/plat-mac/ic.py
+++ b/Lib/plat-mac/ic.py
@@ -198,12 +198,12 @@
         self.ic.ICLaunchURL(hint, url, 0, len(url))
 
     def parseurl(self, data, start=None, end=None, hint=""):
-        if start == None:
+        if start is None:
             selStart = 0
             selEnd = len(data)
         else:
             selStart = selEnd = start
-        if end != None:
+        if end is not None:
             selEnd = end
         selStart, selEnd = self.ic.ICParseURL(hint, data, selStart, selEnd, self.h)
         return self.h.data, selStart, selEnd
@@ -227,27 +227,27 @@
 
 def launchurl(url, hint=""):
     global _dft_ic
-    if _dft_ic == None: _dft_ic = IC()
+    if _dft_ic is None: _dft_ic = IC()
     return _dft_ic.launchurl(url, hint)
 
 def parseurl(data, start=None, end=None, hint=""):
     global _dft_ic
-    if _dft_ic == None: _dft_ic = IC()
+    if _dft_ic is None: _dft_ic = IC()
     return _dft_ic.parseurl(data, start, end, hint)
 
 def mapfile(filename):
     global _dft_ic
-    if _dft_ic == None: _dft_ic = IC()
+    if _dft_ic is None: _dft_ic = IC()
     return _dft_ic.mapfile(filename)
 
 def maptypecreator(type, creator, filename=""):
     global _dft_ic
-    if _dft_ic == None: _dft_ic = IC()
+    if _dft_ic is None: _dft_ic = IC()
     return _dft_ic.maptypecreator(type, creator, filename)
 
 def settypecreator(file):
     global _dft_ic
-    if _dft_ic == None: _dft_ic = IC()
+    if _dft_ic is None: _dft_ic = IC()
     return _dft_ic.settypecreator(file)
 
 def _test():
diff --git a/Lib/plat-mac/lib-scriptpackages/CodeWarrior/CodeWarrior_suite.py b/Lib/plat-mac/lib-scriptpackages/CodeWarrior/CodeWarrior_suite.py
index 1106937..ab1fd6a 100644
--- a/Lib/plat-mac/lib-scriptpackages/CodeWarrior/CodeWarrior_suite.py
+++ b/Lib/plat-mac/lib-scriptpackages/CodeWarrior/CodeWarrior_suite.py
@@ -51,7 +51,7 @@
         _subcode = 'MAKE'
 
         if _arguments: raise TypeError('No optional args expected')
-        if _no_object != None: raise TypeError('No direct arg expected')
+        if _no_object is not None: raise TypeError('No direct arg expected')
 
 
         _reply, _arguments, _attributes = self.send(_code, _subcode,
@@ -135,7 +135,8 @@
         _subcode = 'EXPT'
 
         aetools.keysubst(_arguments, self._argmap_export)
-        if _no_object != None: raise TypeError('No direct arg expected')
+        if _arguments: raise TypeError('No optional args expected')
+        if _no_object is not None: raise TypeError('No direct arg expected')
 
 
         _reply, _arguments, _attributes = self.send(_code, _subcode,
@@ -154,7 +155,7 @@
         _subcode = 'RMOB'
 
         if _arguments: raise TypeError('No optional args expected')
-        if _no_object != None: raise TypeError('No direct arg expected')
+        if _no_object is not None: raise TypeError('No direct arg expected')
 
 
         _reply, _arguments, _attributes = self.send(_code, _subcode,
@@ -193,7 +194,7 @@
         _subcode = 'RUN '
 
         if _arguments: raise TypeError('No optional args expected')
-        if _no_object != None: raise TypeError('No direct arg expected')
+        if _no_object is not None: raise TypeError('No direct arg expected')
 
 
         _reply, _arguments, _attributes = self.send(_code, _subcode,
@@ -232,7 +233,7 @@
         _subcode = 'UP2D'
 
         if _arguments: raise TypeError('No optional args expected')
-        if _no_object != None: raise TypeError('No direct arg expected')
+        if _no_object is not None: raise TypeError('No direct arg expected')
 
 
         _reply, _arguments, _attributes = self.send(_code, _subcode,
diff --git a/Lib/plat-mac/lib-scriptpackages/CodeWarrior/Metrowerks_Shell_Suite.py b/Lib/plat-mac/lib-scriptpackages/CodeWarrior/Metrowerks_Shell_Suite.py
index 4a9cc5e..48f42fd 100644
--- a/Lib/plat-mac/lib-scriptpackages/CodeWarrior/Metrowerks_Shell_Suite.py
+++ b/Lib/plat-mac/lib-scriptpackages/CodeWarrior/Metrowerks_Shell_Suite.py
@@ -72,7 +72,7 @@
         _subcode = 'ClsP'
 
         if _arguments: raise TypeError('No optional args expected')
-        if _no_object != None: raise TypeError('No direct arg expected')
+        if _no_object is not None: raise TypeError('No direct arg expected')
 
 
         _reply, _arguments, _attributes = self.send(_code, _subcode,
@@ -190,7 +190,7 @@
         _subcode = 'GDoc'
 
         if _arguments: raise TypeError('No optional args expected')
-        if _no_object != None: raise TypeError('No direct arg expected')
+        if _no_object is not None: raise TypeError('No direct arg expected')
 
 
         _reply, _arguments, _attributes = self.send(_code, _subcode,
@@ -217,7 +217,8 @@
         _subcode = 'Gref'
 
         aetools.keysubst(_arguments, self._argmap_Get_Preferences)
-        if _no_object != None: raise TypeError('No direct arg expected')
+        if _arguments: raise TypeError('No optional args expected')
+        if _no_object is not None: raise TypeError('No direct arg expected')
 
 
         _reply, _arguments, _attributes = self.send(_code, _subcode,
@@ -263,7 +264,7 @@
         _subcode = 'GetP'
 
         if _arguments: raise TypeError('No optional args expected')
-        if _no_object != None: raise TypeError('No direct arg expected')
+        if _no_object is not None: raise TypeError('No direct arg expected')
 
 
         _reply, _arguments, _attributes = self.send(_code, _subcode,
@@ -283,7 +284,7 @@
         _subcode = 'GSeg'
 
         if _arguments: raise TypeError('No optional args expected')
-        if _no_object != None: raise TypeError('No direct arg expected')
+        if _no_object is not None: raise TypeError('No direct arg expected')
 
 
         _reply, _arguments, _attributes = self.send(_code, _subcode,
@@ -324,7 +325,7 @@
         _subcode = 'NsCl'
 
         if _arguments: raise TypeError('No optional args expected')
-        if _no_object != None: raise TypeError('No direct arg expected')
+        if _no_object is not None: raise TypeError('No direct arg expected')
 
 
         _reply, _arguments, _attributes = self.send(_code, _subcode,
@@ -410,7 +411,8 @@
         _subcode = 'Make'
 
         aetools.keysubst(_arguments, self._argmap_Make_Project)
-        if _no_object != None: raise TypeError('No direct arg expected')
+        if _arguments: raise TypeError('No optional args expected')
+        if _no_object is not None: raise TypeError('No direct arg expected')
 
 
         _reply, _arguments, _attributes = self.send(_code, _subcode,
@@ -503,7 +505,7 @@
         _subcode = 'RemB'
 
         if _arguments: raise TypeError('No optional args expected')
-        if _no_object != None: raise TypeError('No direct arg expected')
+        if _no_object is not None: raise TypeError('No direct arg expected')
 
 
         _reply, _arguments, _attributes = self.send(_code, _subcode,
@@ -543,7 +545,7 @@
         _subcode = 'ReFP'
 
         if _arguments: raise TypeError('No optional args expected')
-        if _no_object != None: raise TypeError('No direct arg expected')
+        if _no_object is not None: raise TypeError('No direct arg expected')
 
 
         _reply, _arguments, _attributes = self.send(_code, _subcode,
@@ -570,7 +572,8 @@
         _subcode = 'RunP'
 
         aetools.keysubst(_arguments, self._argmap_Run_Project)
-        if _no_object != None: raise TypeError('No direct arg expected')
+        if _arguments: raise TypeError('No optional args expected')
+        if _no_object is not None: raise TypeError('No direct arg expected')
 
 
         _reply, _arguments, _attributes = self.send(_code, _subcode,
@@ -682,7 +685,8 @@
         _subcode = 'Pref'
 
         aetools.keysubst(_arguments, self._argmap_Set_Preferences)
-        if _no_object != None: raise TypeError('No direct arg expected')
+        if _arguments: raise TypeError('No optional args expected')
+        if _no_object is not None: raise TypeError('No direct arg expected')
 
 
         _reply, _arguments, _attributes = self.send(_code, _subcode,
@@ -778,7 +782,8 @@
         _subcode = 'UpdP'
 
         aetools.keysubst(_arguments, self._argmap_Update_Project)
-        if _no_object != None: raise TypeError('No direct arg expected')
+        if _arguments: raise TypeError('No optional args expected')
+        if _no_object is not None: raise TypeError('No direct arg expected')
 
 
         _reply, _arguments, _attributes = self.send(_code, _subcode,
diff --git a/Lib/plat-mac/lib-scriptpackages/CodeWarrior/Standard_Suite.py b/Lib/plat-mac/lib-scriptpackages/CodeWarrior/Standard_Suite.py
index 54deabb..a0df41e 100644
--- a/Lib/plat-mac/lib-scriptpackages/CodeWarrior/Standard_Suite.py
+++ b/Lib/plat-mac/lib-scriptpackages/CodeWarrior/Standard_Suite.py
@@ -115,7 +115,7 @@
         _subcode = 'crel'
 
         aetools.keysubst(_arguments, self._argmap_make)
-        if _no_object != None: raise TypeError('No direct arg expected')
+        if _no_object is not None: raise TypeError('No direct arg expected')
 
 
         _reply, _arguments, _attributes = self.send(_code, _subcode,
diff --git a/Lib/plat-mac/lib-scriptpackages/Explorer/Required_Suite.py b/Lib/plat-mac/lib-scriptpackages/Explorer/Required_Suite.py
index 7c902fb..cc6ef6f 100644
--- a/Lib/plat-mac/lib-scriptpackages/Explorer/Required_Suite.py
+++ b/Lib/plat-mac/lib-scriptpackages/Explorer/Required_Suite.py
@@ -61,7 +61,7 @@
         _subcode = 'quit'
 
         if _arguments: raise TypeError('No optional args expected')
-        if _no_object != None: raise TypeError('No direct arg expected')
+        if _no_object is not None: raise TypeError('No direct arg expected')
 
 
         _reply, _arguments, _attributes = self.send(_code, _subcode,
@@ -80,7 +80,7 @@
         _subcode = 'oapp'
 
         if _arguments: raise TypeError('No optional args expected')
-        if _no_object != None: raise TypeError('No direct arg expected')
+        if _no_object is not None: raise TypeError('No direct arg expected')
 
 
         _reply, _arguments, _attributes = self.send(_code, _subcode,
diff --git a/Lib/plat-mac/lib-scriptpackages/Explorer/Web_Browser_Suite.py b/Lib/plat-mac/lib-scriptpackages/Explorer/Web_Browser_Suite.py
index 78c58c8..a7e4a8c 100644
--- a/Lib/plat-mac/lib-scriptpackages/Explorer/Web_Browser_Suite.py
+++ b/Lib/plat-mac/lib-scriptpackages/Explorer/Web_Browser_Suite.py
@@ -42,7 +42,7 @@
         _subcode = 'CLSA'
 
         if _arguments: raise TypeError('No optional args expected')
-        if _no_object != None: raise TypeError('No direct arg expected')
+        if _no_object is not None: raise TypeError('No direct arg expected')
 
 
         _reply, _arguments, _attributes = self.send(_code, _subcode,
@@ -69,7 +69,8 @@
         _subcode = 'CLOS'
 
         aetools.keysubst(_arguments, self._argmap_CloseWindow)
-        if _no_object != None: raise TypeError('No direct arg expected')
+        if _arguments: raise TypeError('No optional args expected')
+        if _no_object is not None: raise TypeError('No direct arg expected')
 
 
         _reply, _arguments, _attributes = self.send(_code, _subcode,
@@ -110,7 +111,7 @@
         _subcode = 'LSTW'
 
         if _arguments: raise TypeError('No optional args expected')
-        if _no_object != None: raise TypeError('No direct arg expected')
+        if _no_object is not None: raise TypeError('No direct arg expected')
 
 
         _reply, _arguments, _attributes = self.send(_code, _subcode,
diff --git a/Lib/plat-mac/lib-scriptpackages/Finder/Finder_Basics.py b/Lib/plat-mac/lib-scriptpackages/Finder/Finder_Basics.py
index 4afe48a..3433d7a 100644
--- a/Lib/plat-mac/lib-scriptpackages/Finder/Finder_Basics.py
+++ b/Lib/plat-mac/lib-scriptpackages/Finder/Finder_Basics.py
@@ -20,7 +20,7 @@
         _subcode = 'copy'
 
         if _arguments: raise TypeError('No optional args expected')
-        if _no_object != None: raise TypeError('No direct arg expected')
+        if _no_object is not None: raise TypeError('No direct arg expected')
 
 
         _reply, _arguments, _attributes = self.send(_code, _subcode,
diff --git a/Lib/plat-mac/lib-scriptpackages/Finder/Legacy_suite.py b/Lib/plat-mac/lib-scriptpackages/Finder/Legacy_suite.py
index c2eb48a..fc9da2e 100644
--- a/Lib/plat-mac/lib-scriptpackages/Finder/Legacy_suite.py
+++ b/Lib/plat-mac/lib-scriptpackages/Finder/Legacy_suite.py
@@ -20,7 +20,7 @@
         _subcode = 'rest'
 
         if _arguments: raise TypeError('No optional args expected')
-        if _no_object != None: raise TypeError('No direct arg expected')
+        if _no_object is not None: raise TypeError('No direct arg expected')
 
 
         _reply, _arguments, _attributes = self.send(_code, _subcode,
@@ -39,7 +39,7 @@
         _subcode = 'shut'
 
         if _arguments: raise TypeError('No optional args expected')
-        if _no_object != None: raise TypeError('No direct arg expected')
+        if _no_object is not None: raise TypeError('No direct arg expected')
 
 
         _reply, _arguments, _attributes = self.send(_code, _subcode,
@@ -58,7 +58,7 @@
         _subcode = 'slep'
 
         if _arguments: raise TypeError('No optional args expected')
-        if _no_object != None: raise TypeError('No direct arg expected')
+        if _no_object is not None: raise TypeError('No direct arg expected')
 
 
         _reply, _arguments, _attributes = self.send(_code, _subcode,
diff --git a/Lib/plat-mac/lib-scriptpackages/Finder/Standard_Suite.py b/Lib/plat-mac/lib-scriptpackages/Finder/Standard_Suite.py
index ff28486..ff75edc 100644
--- a/Lib/plat-mac/lib-scriptpackages/Finder/Standard_Suite.py
+++ b/Lib/plat-mac/lib-scriptpackages/Finder/Standard_Suite.py
@@ -179,7 +179,7 @@
         _subcode = 'crel'
 
         aetools.keysubst(_arguments, self._argmap_make)
-        if _no_object != None: raise TypeError('No direct arg expected')
+        if _no_object is not None: raise TypeError('No direct arg expected')
 
 
         _reply, _arguments, _attributes = self.send(_code, _subcode,
@@ -285,7 +285,7 @@
         _subcode = 'quit'
 
         if _arguments: raise TypeError('No optional args expected')
-        if _no_object != None: raise TypeError('No direct arg expected')
+        if _no_object is not None: raise TypeError('No direct arg expected')
 
 
         _reply, _arguments, _attributes = self.send(_code, _subcode,
diff --git a/Lib/plat-mac/lib-scriptpackages/Netscape/Mozilla_suite.py b/Lib/plat-mac/lib-scriptpackages/Netscape/Mozilla_suite.py
index 21a28d8..89cb37f 100644
--- a/Lib/plat-mac/lib-scriptpackages/Netscape/Mozilla_suite.py
+++ b/Lib/plat-mac/lib-scriptpackages/Netscape/Mozilla_suite.py
@@ -21,7 +21,7 @@
         _subcode = 'Impt'
 
         if _arguments: raise TypeError('No optional args expected')
-        if _no_object != None: raise TypeError('No direct arg expected')
+        if _no_object is not None: raise TypeError('No direct arg expected')
 
 
         _reply, _arguments, _attributes = self.send(_code, _subcode,
@@ -41,7 +41,7 @@
         _subcode = 'upro'
 
         if _arguments: raise TypeError('No optional args expected')
-        if _no_object != None: raise TypeError('No direct arg expected')
+        if _no_object is not None: raise TypeError('No direct arg expected')
 
 
         _reply, _arguments, _attributes = self.send(_code, _subcode,
@@ -61,7 +61,7 @@
         _subcode = 'wurl'
 
         if _arguments: raise TypeError('No optional args expected')
-        if _no_object != None: raise TypeError('No direct arg expected')
+        if _no_object is not None: raise TypeError('No direct arg expected')
 
 
         _reply, _arguments, _attributes = self.send(_code, _subcode,
@@ -126,7 +126,7 @@
         _subcode = 'addr'
 
         if _arguments: raise TypeError('No optional args expected')
-        if _no_object != None: raise TypeError('No direct arg expected')
+        if _no_object is not None: raise TypeError('No direct arg expected')
 
 
         _reply, _arguments, _attributes = self.send(_code, _subcode,
@@ -165,7 +165,7 @@
         _subcode = 'prfl'
 
         if _arguments: raise TypeError('No optional args expected')
-        if _no_object != None: raise TypeError('No direct arg expected')
+        if _no_object is not None: raise TypeError('No direct arg expected')
 
 
         _reply, _arguments, _attributes = self.send(_code, _subcode,
diff --git a/Lib/plat-mac/lib-scriptpackages/Netscape/PowerPlant.py b/Lib/plat-mac/lib-scriptpackages/Netscape/PowerPlant.py
index a0c84b2..a5dd228 100644
--- a/Lib/plat-mac/lib-scriptpackages/Netscape/PowerPlant.py
+++ b/Lib/plat-mac/lib-scriptpackages/Netscape/PowerPlant.py
@@ -25,7 +25,7 @@
         _subcode = 'sttg'
 
         aetools.keysubst(_arguments, self._argmap_SwitchTellTarget)
-        if _no_object != None: raise TypeError('No direct arg expected')
+        if _no_object is not None: raise TypeError('No direct arg expected')
 
 
         _reply, _arguments, _attributes = self.send(_code, _subcode,
diff --git a/Lib/plat-mac/lib-scriptpackages/Netscape/Required_suite.py b/Lib/plat-mac/lib-scriptpackages/Netscape/Required_suite.py
index 8767ac3..a7d3e96 100644
--- a/Lib/plat-mac/lib-scriptpackages/Netscape/Required_suite.py
+++ b/Lib/plat-mac/lib-scriptpackages/Netscape/Required_suite.py
@@ -61,7 +61,7 @@
         _subcode = 'quit'
 
         if _arguments: raise TypeError('No optional args expected')
-        if _no_object != None: raise TypeError('No direct arg expected')
+        if _no_object is not None: raise TypeError('No direct arg expected')
 
 
         _reply, _arguments, _attributes = self.send(_code, _subcode,
@@ -80,7 +80,7 @@
         _subcode = 'oapp'
 
         if _arguments: raise TypeError('No optional args expected')
-        if _no_object != None: raise TypeError('No direct arg expected')
+        if _no_object is not None: raise TypeError('No direct arg expected')
 
 
         _reply, _arguments, _attributes = self.send(_code, _subcode,
diff --git a/Lib/plat-mac/lib-scriptpackages/Netscape/WorldWideWeb_suite.py b/Lib/plat-mac/lib-scriptpackages/Netscape/WorldWideWeb_suite.py
index 2bfa2a5..24a89e7 100644
--- a/Lib/plat-mac/lib-scriptpackages/Netscape/WorldWideWeb_suite.py
+++ b/Lib/plat-mac/lib-scriptpackages/Netscape/WorldWideWeb_suite.py
@@ -154,7 +154,7 @@
         _subcode = 'LSTW'
 
         if _arguments: raise TypeError('No optional args expected')
-        if _no_object != None: raise TypeError('No direct arg expected')
+        if _no_object is not None: raise TypeError('No direct arg expected')
 
 
         _reply, _arguments, _attributes = self.send(_code, _subcode,
diff --git a/Lib/plat-mac/lib-scriptpackages/StdSuites/AppleScript_Suite.py b/Lib/plat-mac/lib-scriptpackages/StdSuites/AppleScript_Suite.py
index 5e710b9..e5acd48 100644
--- a/Lib/plat-mac/lib-scriptpackages/StdSuites/AppleScript_Suite.py
+++ b/Lib/plat-mac/lib-scriptpackages/StdSuites/AppleScript_Suite.py
@@ -268,7 +268,7 @@
         _subcode = 'actv'
 
         if _arguments: raise TypeError('No optional args expected')
-        if _no_object != None: raise TypeError('No direct arg expected')
+        if _no_object is not None: raise TypeError('No direct arg expected')
 
 
         _reply, _arguments, _attributes = self.send(_code, _subcode,
@@ -371,7 +371,7 @@
         _subcode = 'tend'
 
         if _arguments: raise TypeError('No optional args expected')
-        if _no_object != None: raise TypeError('No direct arg expected')
+        if _no_object is not None: raise TypeError('No direct arg expected')
 
 
         _reply, _arguments, _attributes = self.send(_code, _subcode,
@@ -443,7 +443,7 @@
         _subcode = 'idle'
 
         if _arguments: raise TypeError('No optional args expected')
-        if _no_object != None: raise TypeError('No direct arg expected')
+        if _no_object is not None: raise TypeError('No direct arg expected')
 
 
         _reply, _arguments, _attributes = self.send(_code, _subcode,
@@ -462,7 +462,7 @@
         _subcode = 'noop'
 
         if _arguments: raise TypeError('No optional args expected')
-        if _no_object != None: raise TypeError('No direct arg expected')
+        if _no_object is not None: raise TypeError('No direct arg expected')
 
 
         _reply, _arguments, _attributes = self.send(_code, _subcode,
@@ -585,7 +585,7 @@
         _subcode = 'log1'
 
         if _arguments: raise TypeError('No optional args expected')
-        if _no_object != None: raise TypeError('No direct arg expected')
+        if _no_object is not None: raise TypeError('No direct arg expected')
 
 
         _reply, _arguments, _attributes = self.send(_code, _subcode,
@@ -625,7 +625,8 @@
         _subcode = 'log0'
 
         if _arguments: raise TypeError('No optional args expected')
-        if _no_object != None: raise TypeError('No direct arg expected')
+        if _no_object is not None: raise TypeError('No direct arg expected')
+
 
 
         _reply, _arguments, _attributes = self.send(_code, _subcode,
@@ -644,7 +645,7 @@
         _subcode = 'tell'
 
         if _arguments: raise TypeError('No optional args expected')
-        if _no_object != None: raise TypeError('No direct arg expected')
+        if _no_object is not None: raise TypeError('No direct arg expected')
 
 
         _reply, _arguments, _attributes = self.send(_code, _subcode,
diff --git a/Lib/plat-mac/lib-scriptpackages/StdSuites/Standard_Suite.py b/Lib/plat-mac/lib-scriptpackages/StdSuites/Standard_Suite.py
index 187ea50..e305668 100644
--- a/Lib/plat-mac/lib-scriptpackages/StdSuites/Standard_Suite.py
+++ b/Lib/plat-mac/lib-scriptpackages/StdSuites/Standard_Suite.py
@@ -255,7 +255,7 @@
         _subcode = 'crel'
 
         aetools.keysubst(_arguments, self._argmap_make)
-        if _no_object != None: raise TypeError('No direct arg expected')
+        if _no_object is not None: raise TypeError('No direct arg expected')
 
 
         _reply, _arguments, _attributes = self.send(_code, _subcode,
@@ -345,7 +345,7 @@
         _subcode = 'quit'
 
         aetools.keysubst(_arguments, self._argmap_quit)
-        if _no_object != None: raise TypeError('No direct arg expected')
+        if _no_object is not None: raise TypeError('No direct arg expected')
 
         aetools.enumsubst(_arguments, 'savo', _Enum_savo)
 
@@ -365,7 +365,7 @@
         _subcode = 'rapp'
 
         if _arguments: raise TypeError('No optional args expected')
-        if _no_object != None: raise TypeError('No direct arg expected')
+        if _no_object is not None: raise TypeError('No direct arg expected')
 
 
         _reply, _arguments, _attributes = self.send(_code, _subcode,
@@ -384,7 +384,7 @@
         _subcode = 'oapp'
 
         if _arguments: raise TypeError('No optional args expected')
-        if _no_object != None: raise TypeError('No direct arg expected')
+        if _no_object is not None: raise TypeError('No direct arg expected')
 
 
         _reply, _arguments, _attributes = self.send(_code, _subcode,
diff --git a/Lib/plat-mac/lib-scriptpackages/SystemEvents/Standard_Suite.py b/Lib/plat-mac/lib-scriptpackages/SystemEvents/Standard_Suite.py
index 5778288..a0cd3da 100644
--- a/Lib/plat-mac/lib-scriptpackages/SystemEvents/Standard_Suite.py
+++ b/Lib/plat-mac/lib-scriptpackages/SystemEvents/Standard_Suite.py
@@ -175,7 +175,7 @@
         _subcode = 'crel'
 
         aetools.keysubst(_arguments, self._argmap_make)
-        if _no_object != None: raise TypeError('No direct arg expected')
+        if _no_object is not None: raise TypeError('No direct arg expected')
 
 
         _reply, _arguments, _attributes = self.send(_code, _subcode,
diff --git a/Lib/plat-mac/lib-scriptpackages/Terminal/Standard_Suite.py b/Lib/plat-mac/lib-scriptpackages/Terminal/Standard_Suite.py
index 61a27a8..0020e52 100644
--- a/Lib/plat-mac/lib-scriptpackages/Terminal/Standard_Suite.py
+++ b/Lib/plat-mac/lib-scriptpackages/Terminal/Standard_Suite.py
@@ -175,7 +175,7 @@
         _subcode = 'crel'
 
         aetools.keysubst(_arguments, self._argmap_make)
-        if _no_object != None: raise TypeError('No direct arg expected')
+        if _no_object is not None: raise TypeError('No direct arg expected')
 
 
         _reply, _arguments, _attributes = self.send(_code, _subcode,
diff --git a/Lib/plat-mac/lib-scriptpackages/_builtinSuites/builtin_Suite.py b/Lib/plat-mac/lib-scriptpackages/_builtinSuites/builtin_Suite.py
index 7d5abbd..a5ee8c6 100644
--- a/Lib/plat-mac/lib-scriptpackages/_builtinSuites/builtin_Suite.py
+++ b/Lib/plat-mac/lib-scriptpackages/_builtinSuites/builtin_Suite.py
@@ -37,8 +37,7 @@
         _subcode = 'oapp'
 
         if _arguments: raise TypeError('No optional args expected')
-        if _no_object != None: raise TypeError('No direct arg expected')
-
+        if _no_object is not None: raise TypeError('No direct arg expected')
 
         _reply, _arguments, _attributes = self.send(_code, _subcode,
                         _arguments, _attributes)
@@ -56,7 +55,7 @@
         _subcode = 'rapp'
 
         if _arguments: raise TypeError('No optional args expected')
-        if _no_object != None: raise TypeError('No direct arg expected')
+        if _no_object is not None: raise TypeError('No direct arg expected')
 
 
         _reply, _arguments, _attributes = self.send(_code, _subcode,
@@ -100,7 +99,7 @@
         _subcode = 'quit'
 
         aetools.keysubst(_arguments, self._argmap_quit)
-        if _no_object != None: raise TypeError('No direct arg expected')
+        if _no_object is not None: raise TypeError('No direct arg expected')
 
         aetools.enumsubst(_arguments, 'savo', _Enum_savo)
 
diff --git a/Lib/plat-mac/macostools.py b/Lib/plat-mac/macostools.py
index 80c3727..3d5b6f8 100644
--- a/Lib/plat-mac/macostools.py
+++ b/Lib/plat-mac/macostools.py
@@ -106,7 +106,7 @@
     sf = srcfss.FSpGetFInfo()
     df = dstfss.FSpGetFInfo()
     df.Creator, df.Type = sf.Creator, sf.Type
-    if forcetype != None:
+    if forcetype is not None:
         df.Type = forcetype
     df.Flags = (sf.Flags & COPY_FLAGS)
     dstfss.FSpSetFInfo(df)
diff --git a/Lib/plat-mac/videoreader.py b/Lib/plat-mac/videoreader.py
index 42954b7..50f9299 100644
--- a/Lib/plat-mac/videoreader.py
+++ b/Lib/plat-mac/videoreader.py
@@ -188,7 +188,7 @@
 
     def GetVideoFrameRate(self):
         tv = self.videocurtime
-        if tv == None:
+        if tv is None:
             tv = 0
         flags = QuickTime.nextTimeStep|QuickTime.nextTimeEdgeOK
         tv, dur = self.videomedia.GetMediaNextInterestingTime(flags, tv, 1.0)
@@ -199,7 +199,7 @@
         if not time is None:
             self.audiocurtime = time
         flags = QuickTime.nextTimeStep|QuickTime.nextTimeEdgeOK
-        if self.audiocurtime == None:
+        if self.audiocurtime is None:
             self.audiocurtime = 0
         tv = self.audiomedia.GetMediaNextInterestingTimeOnly(flags, self.audiocurtime, 1.0)
         if tv < 0 or (self.audiocurtime and tv < self.audiocurtime):
@@ -215,7 +215,7 @@
         if not time is None:
             self.videocurtime = time
         flags = QuickTime.nextTimeStep
-        if self.videocurtime == None:
+        if self.videocurtime is None:
             flags = flags | QuickTime.nextTimeEdgeOK
             self.videocurtime = 0
         tv = self.videomedia.GetMediaNextInterestingTimeOnly(flags, self.videocurtime, 1.0)
diff --git a/Lib/plat-os2emx/grp.py b/Lib/plat-os2emx/grp.py
index 8ac9b15..ee63ef8 100644
--- a/Lib/plat-os2emx/grp.py
+++ b/Lib/plat-os2emx/grp.py
@@ -143,7 +143,7 @@
     while 1:
         entry = group.readline().strip()
         if len(entry) > 3:
-            if sep == None:
+            if sep is None:
                 sep = __get_field_sep(entry)
             fields = entry.split(sep)
             fields[2] = int(fields[2])
diff --git a/Lib/plat-os2emx/pwd.py b/Lib/plat-os2emx/pwd.py
index e1739bd..2cb077f 100644
--- a/Lib/plat-os2emx/pwd.py
+++ b/Lib/plat-os2emx/pwd.py
@@ -167,7 +167,7 @@
     while True:
         entry = passwd.readline().strip()
         if len(entry) > 6:
-            if sep == None:
+            if sep is None:
                 sep = __get_field_sep(entry)
             fields = entry.split(sep)
             for i in (2, 3):
diff --git a/Lib/test/test_ast.py b/Lib/test/test_ast.py
index 68e5c88..cd69ce1 100644
--- a/Lib/test/test_ast.py
+++ b/Lib/test/test_ast.py
@@ -124,7 +124,7 @@
 
 def test_order(ast_node, parent_pos):
 
-    if not isinstance(ast_node, _ast.AST) or ast_node._fields == None:
+    if not isinstance(ast_node, _ast.AST) or ast_node._fields is None:
         return
     if isinstance(ast_node, (_ast.expr, _ast.stmt, _ast.excepthandler)):
         node_pos = (ast_node.lineno, ast_node.col_offset)
@@ -135,7 +135,7 @@
         if isinstance(value, list):
             for child in value:
                 test_order(child, parent_pos)
-        elif value != None:
+        elif value is not None:
             test_order(value, parent_pos)
 
 def run_tests():
diff --git a/Lib/test/test_logging.py b/Lib/test/test_logging.py
index ee9e392..6f5af15 100644
--- a/Lib/test/test_logging.py
+++ b/Lib/test/test_logging.py
@@ -450,6 +450,7 @@
 
     def tearDown(self):
         self.mem_hdlr.close()
+        BaseTest.tearDown(self)
 
     def test_flush(self):
         # The memory handler flushes to its target handler based on specific
diff --git a/Lib/test/test_mailbox.py b/Lib/test/test_mailbox.py
index ca87229..bc77621 100644
--- a/Lib/test/test_mailbox.py
+++ b/Lib/test/test_mailbox.py
@@ -626,9 +626,9 @@
                                                                 "tmp")),
                              "File in wrong location: '%s'" % head)
             match = pattern.match(tail)
-            self.assert_(match != None, "Invalid file name: '%s'" % tail)
+            self.assert_(match is not None, "Invalid file name: '%s'" % tail)
             groups = match.groups()
-            if previous_groups != None:
+            if previous_groups is not None:
                 self.assert_(int(groups[0] >= previous_groups[0]),
                              "Non-monotonic seconds: '%s' before '%s'" %
                              (previous_groups[0], groups[0]))
diff --git a/Lib/test/test_pyclbr.py b/Lib/test/test_pyclbr.py
index c96ae6d..25c7d85 100644
--- a/Lib/test/test_pyclbr.py
+++ b/Lib/test/test_pyclbr.py
@@ -55,7 +55,7 @@
 
         ignore = set(ignore) | set(['object'])
 
-        if module == None:
+        if module is None:
             # Import it.
             # ('<silly>' is to work around an API silliness in __import__)
             module = __import__(moduleName, globals(), {}, ['<silly>'])
diff --git a/Lib/test/test_ssl.py b/Lib/test/test_ssl.py
index 4e9bfb3..0bd4392 100644
--- a/Lib/test/test_ssl.py
+++ b/Lib/test/test_ssl.py
@@ -670,7 +670,7 @@
                           expectedToWork,
                           certsreqs=None):
 
-        if certsreqs == None:
+        if certsreqs is None:
             certsreqs = ssl.CERT_NONE
 
         if certsreqs == ssl.CERT_NONE:
diff --git a/Lib/xml/sax/expatreader.py b/Lib/xml/sax/expatreader.py
index c4fb930..26b05c3 100644
--- a/Lib/xml/sax/expatreader.py
+++ b/Lib/xml/sax/expatreader.py
@@ -107,7 +107,7 @@
         xmlreader.IncrementalParser.parse(self, source)
 
     def prepareParser(self, source):
-        if source.getSystemId() != None:
+        if source.getSystemId() is not None:
             self._parser.SetBase(source.getSystemId())
 
     # Redefined setContentHandler to allow changing handlers during parsing
diff --git a/Mac/BuildScript/build-installer.py b/Mac/BuildScript/build-installer.py
index 0b62ea6..6cf9c21 100755
--- a/Mac/BuildScript/build-installer.py
+++ b/Mac/BuildScript/build-installer.py
@@ -289,7 +289,7 @@
     fd = os.popen(commandline, 'r')
     data = fd.read()
     xit = fd.close()
-    if xit != None:
+    if xit is not None:
         sys.stdout.write(data)
         raise RuntimeError("command failed: %s"%(commandline,))
 
@@ -300,7 +300,7 @@
     fd = os.popen(commandline, 'r')
     data = fd.read()
     xit = fd.close()
-    if xit != None:
+    if xit is not None:
         sys.stdout.write(data)
         raise RuntimeError("command failed: %s"%(commandline,))
 
diff --git a/Mac/Demo/applescript/Disk_Copy/Utility_Events.py b/Mac/Demo/applescript/Disk_Copy/Utility_Events.py
index 03df938..9213345 100644
--- a/Mac/Demo/applescript/Disk_Copy/Utility_Events.py
+++ b/Mac/Demo/applescript/Disk_Copy/Utility_Events.py
@@ -26,7 +26,7 @@
         _subcode = 'SEL1'
 
         aetools.keysubst(_arguments, self._argmap_select_disk_image)
-        if _no_object != None: raise TypeError('No direct arg expected')
+        if _no_object is not None: raise TypeError('No direct arg expected')y
 
         aetools.enumsubst(_arguments, 'SELp', _Enum_TEXT)
 
@@ -52,8 +52,7 @@
         _subcode = 'SEL2'
 
         aetools.keysubst(_arguments, self._argmap_select_DiskScript)
-        if _no_object != None: raise TypeError('No direct arg expected')
-
+        if _no_object is not None: raise TypeError('No direct arg expected')
         aetools.enumsubst(_arguments, 'SELp', _Enum_TEXT)
 
         _reply, _arguments, _attributes = self.send(_code, _subcode,
@@ -78,7 +77,7 @@
         _subcode = 'SEL3'
 
         aetools.keysubst(_arguments, self._argmap_select_disk_image_or_DiskScript)
-        if _no_object != None: raise TypeError('No direct arg expected')
+        if _no_object is not None: raise TypeError('No direct arg expected')
 
         aetools.enumsubst(_arguments, 'SELp', _Enum_TEXT)
 
@@ -104,7 +103,7 @@
         _subcode = 'SEL4'
 
         aetools.keysubst(_arguments, self._argmap_select_floppy_disk_image)
-        if _no_object != None: raise TypeError('No direct arg expected')
+        if _no_object is not None: raise TypeError('No direct arg expected')
 
         aetools.enumsubst(_arguments, 'SELp', _Enum_TEXT)
 
@@ -130,7 +129,7 @@
         _subcode = 'SEL5'
 
         aetools.keysubst(_arguments, self._argmap_select_disk)
-        if _no_object != None: raise TypeError('No direct arg expected')
+        if _no_object is not None: raise TypeError('No direct arg expected')
 
         aetools.enumsubst(_arguments, 'SELp', _Enum_TEXT)
 
@@ -156,7 +155,7 @@
         _subcode = 'SEL6'
 
         aetools.keysubst(_arguments, self._argmap_select_folder)
-        if _no_object != None: raise TypeError('No direct arg expected')
+        if _no_object is not None: raise TypeError('No direct arg expected')
 
         aetools.enumsubst(_arguments, 'SELp', _Enum_TEXT)
 
diff --git a/Mac/Tools/Doc/HelpIndexingTool/Standard_Suite.py b/Mac/Tools/Doc/HelpIndexingTool/Standard_Suite.py
index 140e8b9..7f0b63a 100644
--- a/Mac/Tools/Doc/HelpIndexingTool/Standard_Suite.py
+++ b/Mac/Tools/Doc/HelpIndexingTool/Standard_Suite.py
@@ -103,7 +103,7 @@
         _subcode = 'crel'
 
         aetools.keysubst(_arguments, self._argmap_make)
-        if _no_object != None: raise TypeError('No direct arg expected')
+        if _no_object is not None: raise TypeError('No direct arg expected')
 
 
         _reply, _arguments, _attributes = self.send(_code, _subcode,
diff --git a/Mac/Tools/Doc/setup.py b/Mac/Tools/Doc/setup.py
index e1d8fb1..b020b40 100644
--- a/Mac/Tools/Doc/setup.py
+++ b/Mac/Tools/Doc/setup.py
@@ -174,10 +174,10 @@
                 ('root', 'root'))
 #               import pdb ; pdb.set_trace()
         build_cmd = self.get_finalized_command('build')
-        if self.build_dest == None:
+        if self.build_dest is None:
             build_cmd = self.get_finalized_command('build')
             self.build_dest = build_cmd.build_dest
-        if self.install_doc == None:
+        if self.install_doc is None:
             self.install_doc = os.path.join(self.prefix, DESTDIR)
         print('INSTALL', self.build_dest, '->', self.install_doc)
 
diff --git a/Mac/scripts/buildpkg.py b/Mac/scripts/buildpkg.py
index ad0afe4..c592588 100644
--- a/Mac/scripts/buildpkg.py
+++ b/Mac/scripts/buildpkg.py
@@ -183,7 +183,7 @@
 
         # set folder attributes
         self.sourceFolder = root
-        if resources == None:
+        if resources is None:
             self.resourceFolder = root
         else:
             self.resourceFolder = resources
diff --git a/README b/README
index ecc0bea..41e8a8d 100644
--- a/README
+++ b/README
@@ -37,6 +37,14 @@
 
     http://docs.python.org/dev/3.0/
 
+All documentation is also available online at the Python web site
+(http://docs.python.org/, see below).  It is available online for occasional
+reference, or can be downloaded in many formats for faster access.  The
+documentation is downloadable in HTML, PostScript, PDF, LaTeX (through 2.5), and
+reStructuredText (2.6+) formats; the LaTeX and reStructuredText versions are
+primarily for documentation authors, translators, and people with special
+formatting requirements.
+
 This is a work in progress; please help improve it!
 
 The design documents for Python 3000 are also online.  While the
@@ -77,6 +85,12 @@
 is incomplete, and also doesn't list anything merged in from the 2.6
 release under development).
 
+Proposals for enhancement
+------------------------------
+
+If you have a proposal to change Python, it's best to submit a Python
+Enhancement Proposal (PEP) first.  All current PEPs, as well as guidelines for
+submitting a new PEP, are listed at http://www.python.org/dev/peps/.
 
 Converting From Python 2.x to 3.0
 ---------------------------------
diff --git a/Tools/bgen/bgen/bgenGenerator.py b/Tools/bgen/bgen/bgenGenerator.py
index f554fe2..d55b4a4 100644
--- a/Tools/bgen/bgen/bgenGenerator.py
+++ b/Tools/bgen/bgen/bgenGenerator.py
@@ -148,7 +148,7 @@
         for arg in self.argumentList:
             if arg.flags == ErrorMode or arg.flags == SelfMode:
                 continue
-            if arg.type == None:
+            if arg.type is None:
                 str = 'void'
             else:
                 if hasattr(arg.type, 'typeName'):