]> granicus.if.org Git - python/commitdiff
Remove many "versionchanged" items that didn't use the official markup,
authorGeorg Brandl <georg@python.org>
Mon, 12 May 2008 18:05:20 +0000 (18:05 +0000)
committerGeorg Brandl <georg@python.org>
Mon, 12 May 2008 18:05:20 +0000 (18:05 +0000)
but just some text embedded in the docs.

Also remove paragraph about implicit relative imports from tutorial.

52 files changed:
Doc/c-api/dict.rst
Doc/c-api/exceptions.rst
Doc/c-api/import.rst
Doc/c-api/init.rst
Doc/c-api/marshal.rst
Doc/c-api/number.rst
Doc/c-api/set.rst
Doc/c-api/slice.rst
Doc/c-api/string.rst
Doc/c-api/typeobj.rst
Doc/extending/newtypes.rst
Doc/library/base64.rst
Doc/library/codeop.rst
Doc/library/cookielib.rst
Doc/library/ctypes.rst
Doc/library/decimal.rst
Doc/library/difflib.rst
Doc/library/fcntl.rst
Doc/library/ftplib.rst
Doc/library/getpass.rst
Doc/library/inspect.rst
Doc/library/json.rst
Doc/library/macos.rst
Doc/library/markup.rst
Doc/library/marshal.rst
Doc/library/math.rst
Doc/library/netrc.rst
Doc/library/os.rst
Doc/library/pickle.rst
Doc/library/profile.rst
Doc/library/random.rst
Doc/library/re.rst
Doc/library/shlex.rst
Doc/library/site.rst
Doc/library/socket.rst
Doc/library/stdtypes.rst
Doc/library/sys.rst
Doc/library/tempfile.rst
Doc/library/textwrap.rst
Doc/library/timeit.rst
Doc/library/traceback.rst
Doc/library/undoc.rst
Doc/library/urllib2.rst
Doc/library/winsound.rst
Doc/library/xml.dom.minidom.rst
Doc/library/xmlrpclib.rst
Doc/reference/simple_stmts.rst
Doc/tutorial/errors.rst
Doc/tutorial/modules.rst
Doc/using/cmdline.rst
Doc/using/mac.rst
Doc/using/windows.rst

index b346d683046516af42b26f43cbcddf268cbd7f22..def60d226cdf54102600c6c77f992ea4aa96a9f5 100644 (file)
@@ -153,9 +153,9 @@ Dictionary Objects
           ...
       }
 
-   The dictionary *p* should not be mutated during iteration.  It is safe (since
-   Python 2.1) to modify the values of the keys as you iterate over the dictionary,
-   but only so long as the set of keys does not change.  For example::
+   The dictionary *p* should not be mutated during iteration.  It is safe to
+   modify the values of the keys as you iterate over the dictionary, but only so
+   long as the set of keys does not change.  For example::
 
       PyObject *key, *value;
       Py_ssize_t pos = 0;
index 3e06e4f23b9e1cab7296581447bd1f014ca6f993..9c9ee7ff7a0dc607aecac6f98d8084afeb79c44f 100644 (file)
@@ -147,7 +147,6 @@ in various ways.  There is a separate error indicator for each thread.
    .. % The descriptions for %zd and %zu are wrong, but the truth is complicated
    .. % because not all compilers support the %z width modifier -- we fake it
    .. % when necessary via interpolating PY_FORMAT_SIZE_T.
-   .. % %u, %lu, %zu should have "new in Python 2.5" blurbs.
 
    +-------------------+---------------+--------------------------------+
    | Format Characters | Type          | Comment                        |
index 89d5f84f9fe2e3022afced70f79979b1678a9bfe..6f6b4b876735bebcb08ebcdcd7b9ce762cf7d700 100644 (file)
@@ -22,10 +22,8 @@ Importing Modules
    be the case.  (Unfortunately, this has an additional side effect when *name* in
    fact specifies a subpackage instead of a submodule: the submodules specified in
    the package's ``__all__`` variable are  loaded.)  Return a new reference to the
-   imported module, or *NULL* with an exception set on failure.  Before Python 2.4,
-   the module may still be created in the failure case --- examine ``sys.modules``
-   to find out.  Starting with Python 2.4, a failing import of a module no longer
-   leaves the module in ``sys.modules``.
+   imported module, or *NULL* with an exception set on failure.  A failing
+   import of a module doesn't leave the module in :data:`sys.modules`.
 
 
 .. cfunction:: PyObject* PyImport_ImportModuleNoBlock(const char *name)
@@ -47,11 +45,11 @@ Importing Modules
    function :func:`__import__`, as the standard :func:`__import__` function calls
    this function directly.
 
-   The return value is a new reference to the imported module or top-level package,
-   or *NULL* with an exception set on failure (before Python 2.4, the module may
-   still be created in this case).  Like for :func:`__import__`, the return value
-   when a submodule of a package was requested is normally the top-level package,
-   unless a non-empty *fromlist* was given.
+   The return value is a new reference to the imported module or top-level
+   package, or *NULL* with an exception set on failure.  Like for
+   :func:`__import__`, the return value when a submodule of a package was
+   requested is normally the top-level package, unless a non-empty *fromlist*
+   was given.
 
    Failing imports remove incomplete module objects, like with
    :cfunc:`PyImport_ImportModule`.
@@ -106,9 +104,8 @@ Importing Modules
    Given a module name (possibly of the form ``package.module``) and a code object
    read from a Python bytecode file or obtained from the built-in function
    :func:`compile`, load the module.  Return a new reference to the module object,
-   or *NULL* with an exception set if an error occurred.  Before Python 2.4, the
-   module could still be created in error cases.  Starting with Python 2.4, *name*
-   is removed from :attr:`sys.modules` in error cases, and even if *name* was already
+   or *NULL* with an exception set if an error occurred.  *name*
+   is removed from :attr:`sys.modules` in error cases, even if *name* was already
    in :attr:`sys.modules` on entry to :cfunc:`PyImport_ExecCodeModule`.  Leaving
    incompletely initialized modules in :attr:`sys.modules` is dangerous, as imports of
    such modules have no way to know that the module object is an unknown (and
@@ -144,8 +141,6 @@ Importing Modules
    Cache the result in :data:`sys.path_importer_cache`.  Return a new reference
    to the importer object.
 
-   .. versionadded:: 2.6
-
 
 .. cfunction:: void _PyImport_Init()
 
index 53fc735ab21db896ee26fae6a3b1ac55b9deef8c..4bf644588a40097c7bb00704f6c9f4c8fd9e0dce 100644 (file)
@@ -273,14 +273,14 @@ Initialization, Finalization, and Threads
    Return the version of this Python interpreter.  This is a string that looks
    something like ::
 
-      "1.5 (#67, Dec 31 1997, 22:34:28) [GCC 2.7.2.2]"
+      "3.0a5+ (py3k:63103M, May 12 2008, 00:53:55) \n[GCC 4.2.3]"
 
    .. index:: single: version (in module sys)
 
    The first word (up to the first space character) is the current Python version;
    the first three characters are the major and minor version separated by a
    period.  The returned string points into static storage; the caller should not
-   modify its value.  The value is available to Python code as ``sys.version``.
+   modify its value.  The value is available to Python code as :data:`sys.version`.
 
 
 .. cfunction:: const char* Py_GetBuildNumber()
@@ -479,9 +479,9 @@ the lock, and finally storing their thread state pointer, before they can start
 using the Python/C API.  When they are done, they should reset the thread state
 pointer, release the lock, and finally free their thread state data structure.
 
-Beginning with version 2.3, threads can now take advantage of the
-:cfunc:`PyGILState_\*` functions to do all of the above automatically.  The
-typical idiom for calling into Python from a C thread is now::
+Threads can take advantage of the :cfunc:`PyGILState_\*` functions to do all of
+the above automatically.  The typical idiom for calling into Python from a C
+thread is now::
 
    PyGILState_STATE gstate;
    gstate = PyGILState_Ensure();
@@ -777,14 +777,12 @@ The Python interpreter provides some low-level support for attaching profiling
 and execution tracing facilities.  These are used for profiling, debugging, and
 coverage analysis tools.
 
-Starting with Python 2.2, the implementation of this facility was substantially
-revised, and an interface from C was added.  This C interface allows the
-profiling or tracing code to avoid the overhead of calling through Python-level
-callable objects, making a direct C function call instead.  The essential
-attributes of the facility have not changed; the interface allows trace
-functions to be installed per-thread, and the basic events reported to the trace
-function are the same as had been reported to the Python-level trace functions
-in previous versions.
+This C interface allows the profiling or tracing code to avoid the overhead of
+calling through Python-level callable objects, making a direct C function call
+instead.  The essential attributes of the facility have not changed; the
+interface allows trace functions to be installed per-thread, and the basic
+events reported to the trace function are the same as had been reported to the
+Python-level trace functions in previous versions.
 
 
 .. ctype:: int (*Py_tracefunc)(PyObject *obj, PyFrameObject *frame, int what, PyObject *arg)
index e7b5c130d8855d951b02ff3b4adb7e982201db2e..6d9879cb6114865002fb70666d19257ff1d882e2 100644 (file)
@@ -13,9 +13,9 @@ back.  Files used to store marshalled data must be opened in binary mode.
 Numeric values are stored with the least significant byte first.
 
 The module supports two versions of the data format: version 0 is the historical
-version, version 1 (new in Python 2.4) shares interned strings in the file, and
-upon unmarshalling. *Py_MARSHAL_VERSION* indicates the current file format
-(currently 1).
+version, version 1 shares interned strings in the file, and upon unmarshalling.
+Version 2 uses a binary format for floating point numbers.
+*Py_MARSHAL_VERSION* indicates the current file format (currently 2).
 
 
 .. cfunction:: void PyMarshal_WriteLongToFile(long value, FILE *file, int version)
index 187fe7380cfd6988d81cc933edeef45758c1cafc..1bf08ad38c2b7c79309940a69ff9ddaa8d5a88f9 100644 (file)
@@ -267,8 +267,6 @@ Number Protocol
    base. If *n* is not an int object, it is converted with
    :cfunc:`PyNumber_Index` first.
 
-   .. versionadded:: 2.6
-
 
 .. cfunction:: Py_ssize_t PyNumber_AsSsize_t(PyObject *o, PyObject *exc)
 
index 1560717c7469eb369cfb995493fdba0a4c4e6522..434810842145696cf9706836ff07e36b764a94f5 100644 (file)
@@ -93,10 +93,6 @@ the constructor functions work with any iterable Python object.
    set on success or *NULL* on failure.  Raise :exc:`TypeError` if *iterable* is
    not actually iterable.
 
-   .. versionchanged:: 2.6
-      Now guaranteed to return a brand-new :class:`frozenset`.  Formerly,
-      frozensets of zero-length were a singleton.  This got in the way of 
-      building-up new frozensets with :meth:`PySet_Add`.
 
 The following functions and macros are available for instances of :class:`set`
 or :class:`frozenset` or instances of their subtypes.
@@ -127,16 +123,14 @@ or :class:`frozenset` or instances of their subtypes.
 
 .. cfunction:: int PySet_Add(PyObject *set, PyObject *key)
 
-   Add *key* to a :class:`set` instance.  Does not apply to :class:`frozenset`
-   instances.  Return 0 on success or -1 on failure. Raise a :exc:`TypeError` if
-   the *key* is unhashable. Raise a :exc:`MemoryError` if there is no room to grow.
-   Raise a :exc:`SystemError` if *set* is an not an instance of :class:`set` or its
+   Add *key* to a :class:`set` instance.  Also works with :class:`frozenset`
+   instances (like :cfunc:`PyTuple_SetItem` it can be used to fill-in the values
+   of brand new frozensets before they are exposed to other code).  Return 0 on
+   success or -1 on failure. Raise a :exc:`TypeError` if the *key* is
+   unhashable. Raise a :exc:`MemoryError` if there is no room to grow.  Raise a
+   :exc:`SystemError` if *set* is an not an instance of :class:`set` or its
    subtype.
 
-   .. versionchanged:: 2.6
-      Now works with instances of :class:`frozenset` or its subtypes.
-      Like :cfunc:`PyTuple_SetItem` in that it can be used to fill-in the
-      values of brand new frozensets before they are exposed to other code.
 
 The following functions are available for instances of :class:`set` or its
 subtypes but not for instances of :class:`frozenset` or its subtypes.
index ea2b5d68bb677369060f4ddc96d6b22ec4e6e3ad..8761dfc55410a240f55a78b22310874cba7b633d 100644 (file)
@@ -38,10 +38,7 @@ Slice Objects
    indices was not :const:`None` and failed to be converted to an integer, in which
    case -1 is returned with an exception set).
 
-   You probably do not want to use this function.  If you want to use slice objects
-   in versions of Python prior to 2.3, you would probably do well to incorporate
-   the source of :cfunc:`PySlice_GetIndicesEx`, suitably renamed, in the source of
-   your extension.
+   You probably do not want to use this function.
 
 
 .. cfunction:: int PySlice_GetIndicesEx(PySliceObject *slice, Py_ssize_t length, Py_ssize_t *start, Py_ssize_t *stop, Py_ssize_t *step, Py_ssize_t *slicelength)
index d57757ac8d166782c8690fbce0a0fe3babb4c9e7..56fcd80c990835566e938a876eef0552973fa278 100644 (file)
@@ -63,7 +63,6 @@ called with a non-string parameter.
    .. % XXX: The descriptions for %zd and %zu are wrong, but the truth is complicated
    .. % because not all compilers support the %z width modifier -- we fake it
    .. % when necessary via interpolating PY_FORMAT_SIZE_T.
-   .. % %u, %lu, %zu should have "new in Python 2.5" blurbs.
 
    +-------------------+---------------+--------------------------------+
    | Format Characters | Type          | Comment                        |
index 6b7c4ac9dc67280b61eee59acbceb94022b38708..9f475167733ff537c2bb4b797999e9bde7df4f83 100644 (file)
@@ -80,12 +80,10 @@ type objects) *must* have the :attr:`ob_size` field.
 
    This should be done before any instances of the type are created.
    :cfunc:`PyType_Ready` checks if :attr:`ob_type` is *NULL*, and if so,
-   initializes it: in Python 2.2, it is set to ``&PyType_Type``; in Python 2.2.1
-   and later it is initialized to the :attr:`ob_type` field of the base class.
+   initializes it to the :attr:`ob_type` field of the base class.
    :cfunc:`PyType_Ready` will not change this field if it is non-zero.
 
-   In Python 2.2, this field is not inherited by subtypes.  In 2.2.1, and in 2.3
-   and beyond, it is inherited by subtypes.
+   This field is inherited by subtypes.
 
 
 .. cmember:: Py_ssize_t PyVarObject.ob_size
@@ -150,8 +148,7 @@ type objects) *must* have the :attr:`ob_size` field.
    :attr:`_ob_next` fields if they are present.  This means that the only correct
    way to get an initializer for the :attr:`tp_basicsize` is to use the
    ``sizeof`` operator on the struct used to declare the instance layout.
-   The basic size does not include the GC header size (this is new in Python 2.2;
-   in 2.1 and 2.0, the GC header size was included in :attr:`tp_basicsize`).
+   The basic size does not include the GC header size.
 
    These fields are inherited separately by subtypes.  If the base type has a
    non-zero :attr:`tp_itemsize`, it is generally not safe to set
@@ -415,9 +412,8 @@ type objects) *must* have the :attr:`ob_size` field.
    structure.  The :const:`Py_TPFLAGS_HAVE_GC` flag bit is inherited together with
    the :attr:`tp_traverse` and :attr:`tp_clear` fields, i.e. if the
    :const:`Py_TPFLAGS_HAVE_GC` flag bit is clear in the subtype and the
-   :attr:`tp_traverse` and :attr:`tp_clear` fields in the subtype exist (as
-   indicated by the :const:`Py_TPFLAGS_HAVE_RICHCOMPARE` flag bit) and have *NULL*
-   values.
+   :attr:`tp_traverse` and :attr:`tp_clear` fields in the subtype exist and have
+   *NULL* values.
 
    The following bit masks are currently defined; these can be ORed together using
    the ``|`` operator to form the value of the :attr:`tp_flags` field.  The macro
@@ -425,68 +421,6 @@ type objects) *must* have the :attr:`ob_size` field.
    checks whether ``tp->tp_flags & f`` is non-zero.
 
 
-   .. data:: Py_TPFLAGS_HAVE_GETCHARBUFFER
-
-      If this bit is set, the :ctype:`PyBufferProcs` struct referenced by
-      :attr:`tp_as_buffer` has the :attr:`bf_getcharbuffer` field.
-
-
-   .. data:: Py_TPFLAGS_HAVE_SEQUENCE_IN
-
-      If this bit is set, the :ctype:`PySequenceMethods` struct referenced by
-      :attr:`tp_as_sequence` has the :attr:`sq_contains` field.
-
-
-   .. data:: Py_TPFLAGS_GC
-
-      This bit is obsolete.  The bit it used to name is no longer in use.  The symbol
-      is now defined as zero.
-
-
-   .. data:: Py_TPFLAGS_HAVE_INPLACEOPS
-
-      If this bit is set, the :ctype:`PySequenceMethods` struct referenced by
-      :attr:`tp_as_sequence` and the :ctype:`PyNumberMethods` structure referenced by
-      :attr:`tp_as_number` contain the fields for in-place operators. In particular,
-      this means that the :ctype:`PyNumberMethods` structure has the fields
-      :attr:`nb_inplace_add`, :attr:`nb_inplace_subtract`,
-      :attr:`nb_inplace_multiply`, :attr:`nb_inplace_divide`,
-      :attr:`nb_inplace_remainder`, :attr:`nb_inplace_power`,
-      :attr:`nb_inplace_lshift`, :attr:`nb_inplace_rshift`, :attr:`nb_inplace_and`,
-      :attr:`nb_inplace_xor`, and :attr:`nb_inplace_or`; and the
-      :ctype:`PySequenceMethods` struct has the fields :attr:`sq_inplace_concat` and
-      :attr:`sq_inplace_repeat`.
-
-
-   .. data:: Py_TPFLAGS_HAVE_RICHCOMPARE
-
-      If this bit is set, the type object has the :attr:`tp_richcompare` field, as
-      well as the :attr:`tp_traverse` and the :attr:`tp_clear` fields.
-
-
-   .. data:: Py_TPFLAGS_HAVE_WEAKREFS
-
-      If this bit is set, the :attr:`tp_weaklistoffset` field is defined.  Instances
-      of a type are weakly referenceable if the type's :attr:`tp_weaklistoffset` field
-      has a value greater than zero.
-
-
-   .. data:: Py_TPFLAGS_HAVE_ITER
-
-      If this bit is set, the type object has the :attr:`tp_iter` and
-      :attr:`tp_iternext` fields.
-
-
-   .. data:: Py_TPFLAGS_HAVE_CLASS
-
-      If this bit is set, the type object has several new fields defined starting in
-      Python 2.2: :attr:`tp_methods`, :attr:`tp_members`, :attr:`tp_getset`,
-      :attr:`tp_base`, :attr:`tp_dict`, :attr:`tp_descr_get`, :attr:`tp_descr_set`,
-      :attr:`tp_dictoffset`, :attr:`tp_init`, :attr:`tp_alloc`, :attr:`tp_new`,
-      :attr:`tp_free`, :attr:`tp_is_gc`, :attr:`tp_bases`, :attr:`tp_mro`,
-      :attr:`tp_cache`, :attr:`tp_subclasses`, and :attr:`tp_weaklist`.
-
-
    .. data:: Py_TPFLAGS_HEAPTYPE
 
       This bit is set when the type object itself is allocated on the heap.  In this
@@ -523,19 +457,15 @@ type objects) *must* have the :attr:`ob_size` field.
       destroyed using :cfunc:`PyObject_GC_Del`.  More information in section
       :ref:`supporting-cycle-detection`.  This bit also implies that the
       GC-related fields :attr:`tp_traverse` and :attr:`tp_clear` are present in
-      the type object; but those fields also exist when
-      :const:`Py_TPFLAGS_HAVE_GC` is clear but
-      :const:`Py_TPFLAGS_HAVE_RICHCOMPARE` is set.
+      the type object.
 
 
    .. data:: Py_TPFLAGS_DEFAULT
 
       This is a bitmask of all the bits that pertain to the existence of certain
       fields in the type object and its extension structures. Currently, it includes
-      the following bits: :const:`Py_TPFLAGS_HAVE_GETCHARBUFFER`,
-      :const:`Py_TPFLAGS_HAVE_SEQUENCE_IN`, :const:`Py_TPFLAGS_HAVE_INPLACEOPS`,
-      :const:`Py_TPFLAGS_HAVE_RICHCOMPARE`, :const:`Py_TPFLAGS_HAVE_WEAKREFS`,
-      :const:`Py_TPFLAGS_HAVE_ITER`, and :const:`Py_TPFLAGS_HAVE_CLASS`.
+      the following bits: :const:`Py_TPFLAGS_HAVE_STACKLESS_EXTENSION`,
+      :const:`Py_TPFLAGS_HAVE_VERSION_TAG`.
 
 
 .. cmember:: char* PyTypeObject.tp_doc
@@ -546,9 +476,6 @@ type objects) *must* have the :attr:`ob_size` field.
 
    This field is *not* inherited by subtypes.
 
-The following three fields only exist if the
-:const:`Py_TPFLAGS_HAVE_RICHCOMPARE` flag bit is set.
-
 
 .. cmember:: traverseproc PyTypeObject.tp_traverse
 
@@ -587,8 +514,7 @@ The following three fields only exist if the
    This field is inherited by subtypes together with :attr:`tp_clear` and the
    :const:`Py_TPFLAGS_HAVE_GC` flag bit: the flag bit, :attr:`tp_traverse`, and
    :attr:`tp_clear` are all inherited from the base type if they are all zero in
-   the subtype *and* the subtype has the :const:`Py_TPFLAGS_HAVE_RICHCOMPARE` flag
-   bit set.
+   the subtype.
 
 
 .. cmember:: inquiry PyTypeObject.tp_clear
@@ -643,8 +569,7 @@ The following three fields only exist if the
    This field is inherited by subtypes together with :attr:`tp_traverse` and the
    :const:`Py_TPFLAGS_HAVE_GC` flag bit: the flag bit, :attr:`tp_traverse`, and
    :attr:`tp_clear` are all inherited from the base type if they are all zero in
-   the subtype *and* the subtype has the :const:`Py_TPFLAGS_HAVE_RICHCOMPARE` flag
-   bit set.
+   the subtype.
 
 
 .. cmember:: richcmpfunc PyTypeObject.tp_richcompare
@@ -688,9 +613,6 @@ The following three fields only exist if the
    +----------------+------------+
 
 
-The next field only exists if the :const:`Py_TPFLAGS_HAVE_WEAKREFS` flag bit is
-set.
-
 .. cmember:: long PyTypeObject.tp_weaklistoffset
 
    If the instances of this type are weakly referenceable, this field is greater
@@ -722,9 +644,6 @@ set.
    :attr:`__weakref__`, the type inherits its :attr:`tp_weaklistoffset` from its
    base type.
 
-The next two fields only exist if the :const:`Py_TPFLAGS_HAVE_CLASS` flag bit is
-set.
-
 
 .. cmember:: getiterfunc PyTypeObject.tp_iter
 
@@ -753,9 +672,6 @@ set.
 
    This field is inherited by subtypes.
 
-The next fields, up to and including :attr:`tp_weaklist`, only exist if the
-:const:`Py_TPFLAGS_HAVE_CLASS` flag bit is set.
-
 
 .. cmember:: struct PyMethodDef* PyTypeObject.tp_methods
 
@@ -933,10 +849,7 @@ The next fields, up to and including :attr:`tp_weaklist`, only exist if the
    has returned an instance of the type.  If the :attr:`tp_new` function returns an
    instance of some other type that is not a subtype of the original type, no
    :attr:`tp_init` function is called; if :attr:`tp_new` returns an instance of a
-   subtype of the original type, the subtype's :attr:`tp_init` is called.  (VERSION
-   NOTE: described here is what is implemented in Python 2.2.1 and later.  In
-   Python 2.2, the :attr:`tp_init` of the type of the object returned by
-   :attr:`tp_new` was always called, if not *NULL*.)
+   subtype of the original type, the subtype's :attr:`tp_init` is called.
 
    This field is inherited by subtypes.
 
@@ -995,26 +908,17 @@ The next fields, up to and including :attr:`tp_weaklist`, only exist if the
    deferred to :attr:`tp_init`.
 
    This field is inherited by subtypes, except it is not inherited by static types
-   whose :attr:`tp_base` is *NULL* or ``&PyBaseObject_Type``.  The latter exception
-   is a precaution so that old extension types don't become callable simply by
-   being linked with Python 2.2.
+   whose :attr:`tp_base` is *NULL* or ``&PyBaseObject_Type``.
 
 
 .. cmember:: destructor PyTypeObject.tp_free
 
-   An optional pointer to an instance deallocation function.
-
-   The signature of this function has changed slightly: in Python 2.2 and 2.2.1,
-   its signature is :ctype:`destructor`::
-
-      void tp_free(PyObject *)
-
-   In Python 2.3 and beyond, its signature is :ctype:`freefunc`::
+   An optional pointer to an instance deallocation function.  Its signature is
+   :ctype:`freefunc`::
 
       void tp_free(void *)
 
-   The only initializer that is compatible with both versions is ``PyObject_Free``,
-   whose definition has suitably adapted in Python 2.3.
+   An initializer that is compatible with this signature is :cfunc:`PyObject_Free`.
 
    This field is inherited by static subtypes, but not by dynamic subtypes
    (subtypes created by a class statement); in the latter, this field is set to a
@@ -1040,8 +944,7 @@ The next fields, up to and including :attr:`tp_weaklist`, only exist if the
    :cdata:`PyType_Type`, defines this function to distinguish between statically
    and dynamically allocated types.)
 
-   This field is inherited by subtypes.  (VERSION NOTE: in Python 2.2, it was not
-   inherited.  It is inherited in 2.2.1 and later versions.)
+   This field is inherited by subtypes.
 
 
 .. cmember:: PyObject* PyTypeObject.tp_bases
@@ -1309,7 +1212,7 @@ member in the :ctype:`PyTypeObject` structure should be *NULL*.  Otherwise, the
    did not have this member, so a new Python interpreter using an old extension
    needs to be able to test for its presence before using it.
 
-
+.. XXX out of date!
 .. ctype:: PyBufferProcs
 
    Structure used to hold the function pointers which define an implementation of
@@ -1352,13 +1255,6 @@ member in the :ctype:`PyTypeObject` structure should be *NULL*.  Otherwise, the
       characters present.
 
 
-.. data:: Py_TPFLAGS_HAVE_GETCHARBUFFER
-
-   Flag bit set in the type structure to indicate that the :attr:`bf_getcharbuffer`
-   slot is known.  This being set does not indicate that the object supports the
-   buffer interface or that the :attr:`bf_getcharbuffer` slot is non-*NULL*.
-
-
 .. ctype:: Py_ssize_t (*readbufferproc) (PyObject *self, Py_ssize_t segment, void **ptrptr)
 
    Return a pointer to a readable segment of the buffer in ``*ptrptr``.  This
index 106aae31f4a041824158bc6012b3bc8d46902545..17da3b5d7c6ba86f24d1b3394d968065c8a4d646 100644 (file)
@@ -19,14 +19,6 @@ strings and lists in core Python.
 This is not hard; the code for all extension types follows a pattern, but there
 are some details that you need to understand before you can get started.
 
-.. note::
-
-   The way new types are defined changed dramatically (and for the better) in
-   Python 2.2.  This document documents how to define new types for Python 2.2 and
-   later.  If you need to support older versions of Python, you will need to refer
-   to `older versions of this documentation
-   <http://www.python.org/doc/versions/>`_.
-
 
 .. _dnt-basics:
 
@@ -734,9 +726,8 @@ For each subobject that can participate in cycles, we need to call the
 *arg* passed to the traversal method.  It returns an integer value that must be
 returned if it is non-zero.
 
-Python 2.4 and higher provide a :cfunc:`Py_VISIT` macro that automates calling
-visit functions.  With :cfunc:`Py_VISIT`, :cfunc:`Noddy_traverse` can be
-simplified::
+Python provides a :cfunc:`Py_VISIT` macro that automates calling visit
+functions.  With :cfunc:`Py_VISIT`, :cfunc:`Noddy_traverse` can be simplified::
 
    static int
    Noddy_traverse(Noddy *self, visitproc visit, void *arg)
@@ -789,9 +780,9 @@ collection is run, our :attr:`tp_traverse` handler could get called. We can't
 take a chance of having :cfunc:`Noddy_traverse` called when a member's reference
 count has dropped to zero and its value hasn't been set to *NULL*.
 
-Python 2.4 and higher provide a :cfunc:`Py_CLEAR` that automates the careful
-decrementing of reference counts.  With :cfunc:`Py_CLEAR`, the
-:cfunc:`Noddy_clear` function can be simplified::
+Python provides a :cfunc:`Py_CLEAR` that automates the careful decrementing of
+reference counts.  With :cfunc:`Py_CLEAR`, the :cfunc:`Noddy_clear` function can
+be simplified::
 
    static int
    Noddy_clear(Noddy *self)
@@ -1397,7 +1388,6 @@ Here is a desultory example of the implementation of the call function. ::
 
 XXX some fields need to be added here... ::
 
-   /* Added in release 2.2 */
    /* Iterators */
    getiterfunc tp_iter;
    iternextfunc tp_iternext;
index 68a941faf74b09681950b9561356310851ea55b4..35b61aeab4ea2d34d553762a8601c1e4f0f89d55 100644 (file)
@@ -21,8 +21,7 @@ encoding and decoding string objects using all three alphabets.  The legacy
 interface provides for encoding and decoding to and from file-like objects as
 well as strings, but only using the Base64 standard alphabet.
 
-The modern interface, which was introduced in Python 2.4, provides:
-
+The modern interface provides:
 
 .. function:: b64encode(s[, altchars])
 
index 456f6dd3c4c1ee23e89cc2f3262507e99cb00698..97b62679a9bcae7a9ec02b61598bca2283f10887 100644 (file)
@@ -66,28 +66,3 @@ To do just the former:
    :func:`compile_command`; the difference is that if the instance compiles program
    text containing a ``__future__`` statement, the instance 'remembers' and
    compiles all subsequent program texts with the statement in force.
-
-A note on version compatibility: the :class:`Compile` and
-:class:`CommandCompiler` are new in Python 2.2.  If you want to enable the
-future-tracking features of 2.2 but also retain compatibility with 2.1 and
-earlier versions of Python you can either write ::
-
-   try:
-       from codeop import CommandCompiler
-       compile_command = CommandCompiler()
-       del CommandCompiler
-   except ImportError:
-       from codeop import compile_command
-
-which is a low-impact change, but introduces possibly unwanted global state into
-your program, or you can write::
-
-   try:
-       from codeop import CommandCompiler
-   except ImportError:
-       def CommandCompiler():
-           from codeop import compile_command
-           return compile_command
-
-and then call ``CommandCompiler`` every time you need a fresh compiler object.
-
index f6008f110455362f5a0358b7642a6a35a11a81f5..c8e72989446302b4b93bdaff595b48415221fdfc 100644 (file)
@@ -38,12 +38,7 @@ The module defines the following exception:
 .. exception:: LoadError
 
    Instances of :class:`FileCookieJar` raise this exception on failure to load
-   cookies from a file.
-
-   .. note::
-
-      For backwards-compatibility with Python 2.4 (which raised an :exc:`IOError`),
-      :exc:`LoadError` is a subclass of :exc:`IOError`.
+   cookies from a file.  :exc:`LoadError` is a subclass of :exc:`IOError`.
 
 
 The following classes are provided:
@@ -266,11 +261,6 @@ contained :class:`Cookie` objects.
    :exc:`LoadError` will be raised.  Also, :exc:`IOError` may be raised, for
    example if the file does not exist.
 
-   .. note::
-
-      For backwards-compatibility with Python 2.4 (which raised an :exc:`IOError`),
-      :exc:`LoadError` is a subclass of :exc:`IOError`.
-
 
 .. method:: FileCookieJar.revert(filename=None, ignore_discard=False, ignore_expires=False)
 
index 6968f42df19d5303303ae625e1a36b62dec8f9e1..5efa548a8241ce00a8b457d7fe4bb2e266f4c89d 100644 (file)
@@ -1957,7 +1957,6 @@ Data types
       is zero.  If the source buffer is not large enough a ValueError
       is raised.
 
-      .. versionadded:: 2.6
 
    .. method:: _CData.from_buffer_copy(source[, offset])
 
@@ -1967,8 +1966,6 @@ Data types
       in bytes; the default is zero.  If the source buffer is not
       large enough a ValueError is raised.
 
-      .. versionadded:: 2.6
-
 
    .. method:: from_address(address)
 
index b7dd32f90623140232d651063cf88b0dc36f45c0..7052c7bd2160ec3b319010b4df28629a6f9ab3b5 100644 (file)
@@ -766,9 +766,8 @@ Each thread has its own current context which is accessed or changed using the
 
    Set the current context for the active thread to *c*.
 
-Beginning with Python 2.5, you can also use the :keyword:`with` statement and
-the :func:`localcontext` function to temporarily change the active context.
-
+You can also use the :keyword:`with` statement and the :func:`localcontext`
+function to temporarily change the active context.
 
 .. function:: localcontext([c])
 
index 01c9c85f8fb7c3e60330d51932bdbdab6778e0cf..00f273e21f13f0036954614b7d33dc8595c5619d 100644 (file)
@@ -201,14 +201,13 @@ diffs. For comparing directories and files, see also, the :mod:`filecmp` module.
    Optional keyword parameters *linejunk* and *charjunk* are for filter functions
    (or ``None``):
 
-   *linejunk*: A function that accepts a single string argument, and returns true
-   if the string is junk, or false if not. The default is (``None``), starting with
-   Python 2.3.  Before then, the default was the module-level function
-   :func:`IS_LINE_JUNK`, which filters out lines without visible characters, except
-   for at most one pound character (``'#'``). As of Python 2.3, the underlying
-   :class:`SequenceMatcher` class does a dynamic analysis of which lines are so
-   frequent as to constitute noise, and this usually works better than the pre-2.3
-   default.
+   *linejunk*: A function that accepts a single string argument, and returns
+   true if the string is junk, or false if not. The default is ``None``. There
+   is also a module-level function :func:`IS_LINE_JUNK`, which filters out lines
+   without visible characters, except for at most one pound character (``'#'``)
+   -- however the underlying :class:`SequenceMatcher` class does a dynamic
+   analysis of which lines are so frequent as to constitute noise, and this
+   usually works better than using this function.
 
    *charjunk*: A function that accepts a character (a string of length 1), and
    returns if the character is junk, or false if not. The default is module-level
@@ -302,7 +301,7 @@ diffs. For comparing directories and files, see also, the :mod:`filecmp` module.
 
    Return true for ignorable lines.  The line *line* is ignorable if *line* is
    blank or contains a single ``'#'``, otherwise it is not ignorable.  Used as a
-   default for parameter *linejunk* in :func:`ndiff` before Python 2.3.
+   default for parameter *linejunk* in :func:`ndiff` in older versions.
 
 
 .. function:: IS_CHARACTER_JUNK(ch)
index 7244e7ba99616db2f7b68bf1b799f5cfd44cdaca..0e6940709e4b2d7b81a56a02ced8aa36b31e38c4 100644 (file)
@@ -65,7 +65,7 @@ The module defines the following functions:
    so long as the buffer you pass is as least as long as what the operating system
    wants to put there, things should work.
 
-   If *mutate_flag* is true, then the buffer is (in effect) passed to the
+   If *mutate_flag* is true (the default), then the buffer is (in effect) passed to the
    underlying :func:`ioctl` system call, the latter's return code is passed back to
    the calling Python, and the buffer's new contents reflect the action of the
    :func:`ioctl`.  This is a slight simplification, because if the supplied buffer
@@ -73,10 +73,6 @@ The module defines the following functions:
    long which is then passed to :func:`ioctl` and copied back into the supplied
    buffer.
 
-   If *mutate_flag* is not supplied, then from Python 2.5 it defaults to true,
-   which is a change from versions 2.3 and 2.4. Supply the argument explicitly if
-   version portability is a priority.
-
    An example::
 
       >>> import array, fcntl, struct, termios, os
index 4ce8893d35c31ab1e254dc8b16926f0bb4ca71e6..41bdcd89277ab53aebe46f6a2f4a770da5a33223 100644 (file)
@@ -187,9 +187,8 @@ followed by ``lines`` for the text version or ``binary`` for the binary version.
 
 .. method:: FTP.set_pasv(boolean)
 
-   Enable "passive" mode if *boolean* is true, other disable passive mode.  (In
-   Python 2.0 and before, passive mode was off by default; in Python 2.1 and later,
-   it is on by default.)
+   Enable "passive" mode if *boolean* is true, other disable passive mode.
+   Passive mode is on by default.
 
 
 .. method:: FTP.storbinary(command, file[, blocksize, callback])
index 91c811beff4120889954706d22d0751a68e8b2c3..ff1c0916f7cac9438c9535d9f3f1b38a1ef7a80c 100644 (file)
@@ -12,11 +12,11 @@ The :mod:`getpass` module provides two functions:
 
 .. function:: getpass([prompt[, stream]])
 
-   Prompt the user for a password without echoing.  The user is prompted using the
-   string *prompt*, which defaults to ``'Password: '``. On Unix, the prompt is
-   written to the file-like object *stream*.  *stream* defaults to the
-   controlling terminal (/dev/tty) or if that is unavailable to ``sys.stderr``
-   (this argument is ignored on Windows).
+   Prompt the user for a password without echoing.  The user is prompted using
+   the string *prompt*, which defaults to ``'Password: '``.  On Unix, the prompt
+   is written to the file-like object *stream*.  *stream* defaults to the
+   controlling terminal (:file:`/dev/tty`) or if that is unavailable to
+   ``sys.stderr`` (this argument is ignored on Windows).
 
    If echo free input is unavailable getpass() falls back to printing
    a warning message to *stream* and reading from ``sys.stdin`` and
@@ -24,9 +24,6 @@ The :mod:`getpass` module provides two functions:
 
    Availability: Macintosh, Unix, Windows.
 
-   .. versionchanged:: 2.6
-      On Unix it defaults to using /dev/tty before falling back
-      to ``sys.stdin`` and ``sys.stderr``.
    .. note::
       If you call getpass from within IDLE, the input may be done in the
       terminal you launched IDLE from rather than the idle window itself.
index d622e1d01846c6fd54e51219cf843efc0fae7bb9..7ef5d3f181bf931b93b255b907b4af0bbedc7d96 100644 (file)
@@ -273,10 +273,10 @@ attributes:
    Return true if the object is a method descriptor, but not if :func:`ismethod`
    or :func:`isclass` or :func:`isfunction` are true.
 
-   This is new as of Python 2.2, and, for example, is true of
-   ``int.__add__``. An object passing this test has a :attr:`__get__` attribute
-   but not a :attr:`__set__` attribute, but beyond that the set of attributes
-   varies.  :attr:`__name__` is usually sensible, and :attr:`__doc__` often is.
+   This, for example, is true of ``int.__add__``.  An object passing this test
+   has a :attr:`__get__` attribute but not a :attr:`__set__` attribute, but
+   beyond that the set of attributes varies.  :attr:`__name__` is usually
+   sensible, and :attr:`__doc__` often is.
 
    Methods implemented via descriptors that also pass one of the other tests
    return false from the :func:`ismethoddescriptor` test, simply because the
index a0a62d1370189d1474d34d7ee0882baf392cd3da..79430c351302ce676481e115fdc58b511bd03d28 100644 (file)
@@ -5,7 +5,6 @@
    :synopsis: Encode and decode the JSON format.
 .. moduleauthor:: Bob Ippolito <bob@redivi.com>
 .. sectionauthor:: Bob Ippolito <bob@redivi.com>
-.. versionadded:: 2.6
 
 JSON (JavaScript Object Notation) <http://json.org> is a subset of JavaScript
 syntax (ECMA-262 3rd edition) used as a lightweight data interchange format.
index 543f8686cff520f7c168d7f1193777d2e2e5481e..0eb7225a4ea554b97f1bfd5309a83a4ab137c9cf 100644 (file)
@@ -16,9 +16,7 @@ Note the capitalization of the module name; this is a historical artifact.
 
 .. data:: runtimemodel
 
-   Always ``'macho'``, from Python 2.4 on. In earlier versions of Python the value
-   could also be ``'ppc'`` for the classic Mac OS 8 runtime model or ``'carbon'``
-   for the Mac OS 9 runtime model.
+   Always ``'macho'``.
 
 
 .. data:: linkmodel
index dd0dd8f08fc11b7b4785c744585b98ac34bf9532..19ce7b9e7356b92c651a6da061aa343a1aeeed3e 100644 (file)
@@ -11,11 +11,9 @@ Language (SGML) and the Hypertext Markup Language (HTML), and several interfaces
 for working with the Extensible Markup Language (XML).
 
 It is important to note that modules in the :mod:`xml` package require that
-there be at least one SAX-compliant XML parser available. Starting with Python
-2.3, the Expat parser is included with Python, so the :mod:`xml.parsers.expat`
-module will always be available. You may still want to be aware of the `PyXML
-add-on package <http://pyxml.sourceforge.net/>`_; that package provides an
-extended set of XML libraries for Python.
+there be at least one SAX-compliant XML parser available. The Expat parser is
+included with Python, so the :mod:`xml.parsers.expat` module will always be
+available.
 
 The documentation for the :mod:`xml.dom` and :mod:`xml.sax` packages are the
 definition of the Python bindings for the DOM and SAX interfaces.
@@ -35,10 +33,3 @@ definition of the Python bindings for the DOM and SAX interfaces.
    xml.sax.utils.rst
    xml.sax.reader.rst
    xml.etree.elementtree.rst
-
-.. seealso::
-
-   `Python/XML Libraries <http://pyxml.sourceforge.net/>`_
-      Home page for the PyXML package, containing an extension of :mod:`xml` package
-      bundled with Python.
-
index fbe3e45559c00b92c049833dbca9c56b243fb49f..8ef443f868908e41d958a317f9991389696d80bd 100644 (file)
@@ -100,10 +100,9 @@ In addition, the following constants are defined:
 
 .. data:: version
 
-   Indicates the format that the module uses. Version 0 is the historical format,
-   version 1 (added in Python 2.4) shares interned strings and version 2 (added in
-   Python 2.5) uses a binary format for floating point numbers. The current version
-   is 2.
+   Indicates the format that the module uses. Version 0 is the historical
+   format, version 1 shares interned strings and version 2 uses a binary format
+   for floating point numbers. The current version is 2.
 
 
 .. rubric:: Footnotes
index d9593a8edfdc23983459acd23c10295b9ffe43d0..b153f21abdd3d587548344f32f5ca8d82a84bef3 100644 (file)
@@ -277,10 +277,6 @@ The module also defines two mathematical constants:
    platform and libm implementation. It's usually :exc:`ValueError` for *EDOM*
    and :exc:`OverflowError` for errno *ERANGE*.
 
-   ..versionchanged:: 2.6
-      In earlier versions of Python the outcome of an operation with NaN as
-      input depended on platform and libm implementation.
-
 
 .. seealso::
 
index e6cc6488b8ab81b2cdadf344c1e81e8601efc23d..91990df029337ad3adddc380ed17c1cea493dbdd 100644 (file)
@@ -66,9 +66,8 @@ Instances of :class:`netrc` have public instance variables:
 
 .. note::
 
-   Passwords are limited to a subset of the ASCII character set. Versions of
-   this module prior to 2.3 were extremely limited.  Starting with 2.3, all
-   ASCII punctuation is allowed in passwords.  However, note that whitespace and
+   Passwords are limited to a subset of the ASCII character set.  All ASCII
+   punctuation is allowed in passwords, however, note that whitespace and
    non-printable characters are not allowed in passwords.  This is a limitation
    of the way the .netrc file is parsed and may be removed in the future.
 
index bf0fe19beaf6fe2650490e0bb9acc712ca5f95a5..55e007a6d9cc370b196f59076f822fc78159627c 100644 (file)
@@ -463,8 +463,7 @@ by file descriptors.
 
    If you're starting with a Python file object *f*, first do ``f.flush()``, and
    then do ``os.fsync(f.fileno())``, to ensure that all internal buffers associated
-   with *f* are written to disk. Availability: Macintosh, Unix, and Windows
-   starting in 2.2.3.
+   with *f* are written to disk.  Availability: Macintosh, Unix, and Windows.
 
 
 .. function:: ftruncate(fd, length)
index c3b9c8fe49e5d50807f1aafed3e28fa8ca3d43c7..21945238d6af5fcd464aeb35238561197e7fd013 100644 (file)
@@ -262,17 +262,6 @@ The :mod:`pickle` module also exports two callables [#]_, :class:`Pickler` and
       pickled by reference and not by value.  This method is useful when re-using
       picklers.
 
-      .. note::
-
-         Prior to Python 2.3, :meth:`clear_memo` was only available on the picklers
-         created by :mod:`cPickle`.  In the :mod:`pickle` module, picklers have an
-         instance variable called :attr:`memo` which is a Python dictionary.  So to clear
-         the memo for a :mod:`pickle` module pickler, you could do the following::
-
-            mypickler.memo.clear()
-
-         Code that does not need to support older versions of Python should simply use
-         :meth:`clear_memo`.
 
 It is possible to make multiple calls to the :meth:`dump` method of the same
 :class:`Pickler` instance.  These must then be matched to the same number of
index 5f770f6339e7b7ab3dcb125b2894d921ae8ad738..f763f2d0a63044b0e83d8b3d08feeb8b2d4d8639 100644 (file)
@@ -546,7 +546,7 @@ The object of this exercise is to get a fairly consistent result. If your
 computer is *very* fast, or your timer function has poor resolution, you might
 have to pass 100000, or even 1000000, to get consistent results.
 
-When you have a consistent answer, there are three ways you can use it: [#]_ ::
+When you have a consistent answer, there are three ways you can use it::
 
    import profile
 
@@ -616,8 +616,3 @@ The resulting profiler will then call :func:`your_time_func`.
 .. [#] Updated and converted to LaTeX by Guido van Rossum. Further updated by Armin
    Rigo to integrate the documentation for the new :mod:`cProfile` module of Python
    2.5.
-
-.. [#] Prior to Python 2.2, it was necessary to edit the profiler source code to embed
-   the bias as a literal number.  You still can, but that method is no longer
-   described, because no longer needed.
-
index afdff76c6b2fdfe8ce24d8a4e988390aab0dd1e8..d8c3f5abbeb1fb6561fe9ee403dd95b05eb4c8b4 100644 (file)
@@ -58,8 +58,6 @@ Bookkeeping functions:
    Return an object capturing the current internal state of the generator.  This
    object can be passed to :func:`setstate` to restore the state.
 
-   State values produced in Python 2.6 cannot be loaded into earlier versions.
-
 
 .. function:: setstate(state)
 
index 019652e11ca5718d14952dcb5712920a5c37746f..e3867c04723fbf07f948386127d60d5719474833 100644 (file)
@@ -1035,10 +1035,10 @@ recursion, you may encounter a :exc:`RuntimeError` exception with the message
 
 You can often restructure your regular expression to avoid recursion.
 
-Starting with Python 2.3, simple uses of the ``*?`` pattern are special-cased to
-avoid recursion.  Thus, the above regular expression can avoid recursion by
-being recast as ``Begin [a-zA-Z0-9_ ]*?end``.  As a further benefit, such
-regular expressions will run faster than their recursive equivalents.
+Simple uses of the ``*?`` pattern are special-cased to avoid recursion.  Thus,
+the above regular expression can avoid recursion by being recast as ``Begin
+[a-zA-Z0-9_ ]*?end``.  As a further benefit, such regular expressions will run
+faster than their recursive equivalents.
 
 
 search() vs. match()
index 4c509d896fa1e51a0878b6d09a13efe664e89d0b..7d88610fbe4f3f6dd46155574074527ab173e67f 100644 (file)
@@ -43,15 +43,14 @@ The :mod:`shlex` module defines the following class:
    A :class:`shlex` instance or subclass instance is a lexical analyzer object.
    The initialization argument, if present, specifies where to read characters
    from. It must be a file-/stream-like object with :meth:`read` and
-   :meth:`readline` methods, or a string (strings are accepted since Python 2.3).
-   If no argument is given, input will be taken from ``sys.stdin``.  The second
-   optional argument is a filename string, which sets the initial value of the
-   :attr:`infile` member.  If the *instream* argument is omitted or equal to
-   ``sys.stdin``, this second argument defaults to "stdin".  The *posix* argument
-   was introduced in Python 2.3, and defines the operational mode.  When *posix* is
-   not true (default), the :class:`shlex` instance will operate in compatibility
-   mode.  When operating in POSIX mode, :class:`shlex` will try to be as close as
-   possible to the POSIX shell parsing rules.
+   :meth:`readline` methods, or a string.  If no argument is given, input will
+   be taken from ``sys.stdin``.  The second optional argument is a filename
+   string, which sets the initial value of the :attr:`infile` member.  If the
+   *instream* argument is omitted or equal to ``sys.stdin``, this second
+   argument defaults to "stdin".  The *posix* argument defines the operational
+   mode: when *posix* is not true (default), the :class:`shlex` instance will
+   operate in compatibility mode.  When operating in POSIX mode, :class:`shlex`
+   will try to be as close as possible to the POSIX shell parsing rules.
 
 
 .. seealso::
index 354043f4285dcb5810580d75ca3f96bcb46f23be..a574878673efdc9a2b8560952bf62536a0479d19 100644 (file)
@@ -87,8 +87,6 @@ empty, and the path manipulations are skipped; however the import of
 
    A list of prefixes for site package directories
 
-   .. versionadded:: 2.6
-
 
 .. data:: ENABLE_USER_SITE
 
@@ -96,32 +94,22 @@ empty, and the path manipulations are skipped; however the import of
    user site directory is enabled and added to sys.path. When the flag
    is None the user site directory is disabled for security reasons.
 
-   .. versionadded:: 2.6
-
 
 .. data:: USER_SITE
 
    Path to the user site directory for the current Python version or None
 
-   .. versionadded:: 2.6
-
 
 .. data:: USER_BASE
 
    Path to the base directory for user site directories
 
-   .. versionadded:: 2.6
-
 
 .. envvar:: PYTHONNOUSERSITE
 
-   .. versionadded:: 2.6
-
 
 .. envvar:: PYTHONUSERBASE
 
-   .. versionadded:: 2.6
-
 
 .. function:: addsitedir(sitedir, known_paths=None)
 
index a55ae70f6331e4582af4aa27a6aed08adcf63c04..9a3af1d71bcdc72829ccbcc4c2f183965b7eefa6 100644 (file)
@@ -479,12 +479,6 @@ correspond to Unix system calls applicable to sockets.
    Bind the socket to *address*.  The socket must not already be bound. (The format
    of *address* depends on the address family --- see above.)
 
-   .. note::
-
-      This method has historically accepted a pair of parameters for :const:`AF_INET`
-      addresses instead of only a tuple.  This was never intentional and is no longer
-      available in Python 2.0 and later.
-
 
 .. method:: socket.close()
 
@@ -498,12 +492,6 @@ correspond to Unix system calls applicable to sockets.
    Connect to a remote socket at *address*. (The format of *address* depends on the
    address family --- see above.)
 
-   .. note::
-
-      This method has historically accepted a pair of parameters for :const:`AF_INET`
-      addresses instead of only a tuple.  This was never intentional and is no longer
-      available in Python 2.0 and later.
-
 
 .. method:: socket.connect_ex(address)
 
@@ -514,12 +502,6 @@ correspond to Unix system calls applicable to sockets.
    :cdata:`errno` variable.  This is useful to support, for example, asynchronous
    connects.
 
-   .. note::
-
-      This method has historically accepted a pair of parameters for :const:`AF_INET`
-      addresses instead of only a tuple. This was never intentional and is no longer
-      available in Python 2.0 and later.
-
 
 .. method:: socket.fileno()
 
index c910347e3a5a8b54e15504599baefcce81ecfcf4..9e06a222091c901235ac64f50368ac755b6f92eb 100644 (file)
@@ -1906,7 +1906,7 @@ Files have the following methods:
    which requires that the file be open will raise a :exc:`ValueError` after the
    file has been closed.  Calling :meth:`close` more than once is allowed.
 
-   As of Python 2.5, you can avoid having to call this method explicitly if you use
+   You can avoid having to call this method explicitly if you use
    the :keyword:`with` statement.  For example, the following code will
    automatically close *f* when the :keyword:`with` block is exited::
 
index f66899c6f45c5f50424aea0345ee57c7c9c8fadd..0929f0e30e3e22dc0406cf146a9bf8b8879f7a25 100644 (file)
@@ -152,21 +152,18 @@ always available.
 
    .. warning::
 
-      Assigning the *traceback* return value to a local variable in a function that is
-      handling an exception will cause a circular reference.  This will prevent
-      anything referenced by a local variable in the same function or by the traceback
-      from being garbage collected.  Since most functions don't need access to the
-      traceback, the best solution is to use something like ``exctype, value =
-      sys.exc_info()[:2]`` to extract only the exception type and value.  If you do
-      need the traceback, make sure to delete it after use (best done with a
-      :keyword:`try` ... :keyword:`finally` statement) or to call :func:`exc_info` in
-      a function that does not itself handle an exception.
-
-   .. note::
-
-      Beginning with Python 2.2, such cycles are automatically reclaimed when garbage
-      collection is enabled and they become unreachable, but it remains more efficient
-      to avoid creating cycles.
+      Assigning the *traceback* return value to a local variable in a function
+      that is handling an exception will cause a circular reference.  Since most
+      functions don't need access to the traceback, the best solution is to use
+      something like ``exctype, value = sys.exc_info()[:2]`` to extract only the
+      exception type and value.  If you do need the traceback, make sure to
+      delete it after use (best done with a :keyword:`try`
+      ... :keyword:`finally` statement) or to call :func:`exc_info` in a
+      function that does not itself handle an exception.
+
+      Such cycles are normally automatically reclaimed when garbage collection
+      is enabled and they become unreachable, but it remains more efficient to
+      avoid creating cycles.
 
 
 .. data:: exec_prefix
index 4de9236df848caf4807f0a2fd9065d76cddd96c8..7363940d418a1e21afdf0ffa4b5d18f124b9fddc 100644 (file)
    pair: temporary; file
 
 This module generates temporary files and directories.  It works on all
-supported platforms.
-
-In version 2.3 of Python, this module was overhauled for enhanced security.  It
-now provides three new functions, :func:`NamedTemporaryFile`, :func:`mkstemp`,
-and :func:`mkdtemp`, which should eliminate all remaining need to use the
-insecure :func:`mktemp` function.  Temporary file names created by this module
-no longer contain the process ID; instead a string of six random characters is
-used.
+supported platforms.  It provides three new functions,
+:func:`NamedTemporaryFile`, :func:`mkstemp`, and :func:`mkdtemp`, which should
+eliminate all remaining need to use the insecure :func:`mktemp` function.
+Temporary file names created by this module no longer contain the process ID;
+instead a string of six random characters is used.
 
 Also, all the user-callable functions now take additional arguments which
 allow direct control over the location and name of temporary files.  It is
@@ -208,10 +205,6 @@ the appropriate function arguments, instead.
    On Windows, the default prefix is :file:`~T`; on all other systems it is
    :file:`tmp`.
 
-   Older versions of this module used to require that ``template`` be set to
-   ``None`` after a call to :func:`os.fork`; this has not been necessary since
-   version 1.5.2.
-
 
 .. function:: gettempprefix()
 
index 9b2ad111597e13f2a5854de7a5053402fe605e43..243e43ca88fdb6c51f5e43d2803aa90e3b56fefe 100644 (file)
@@ -52,9 +52,7 @@ indentation from strings that have unwanted whitespace to the left of the text.
 
    Note that tabs and spaces are both treated as whitespace, but they are not
    equal: the lines ``"  hello"`` and ``"\thello"`` are considered to have no
-   common leading whitespace.  (This behaviour is new in Python 2.5; older versions
-   of this module incorrectly expanded tabs before searching for common leading
-   whitespace.)
+   common leading whitespace.
 
    For example::
 
index 6a8a94d5a7ff5c7dda1be6447cc653e97b2c0c0d..495ac81344d80f3a81832ab4279b56a134054955 100644 (file)
@@ -94,8 +94,8 @@ The module defines the following public class:
 
          timeit.Timer('for i in range(10): oct(i)', 'gc.enable()').timeit()
 
-Starting with version 2.6, the module also defines two convenience functions:
 
+The module also defines two convenience functions:
 
 .. function:: repeat(stmt[, setup[, timer[, repeat=3 [, number=1000000]]]])
 
index 2f29aae11f1a8afda65bcd737de72f21c3568d7a..389753ac198012b63e273aa4369e5a7614111c83 100644 (file)
@@ -122,14 +122,6 @@ The module defines the following functions:
    A shorthand for ``format_list(extract_stack(f, limit))``.
 
 
-.. function:: tb_lineno(tb)
-
-   This function returns the current line number set in the traceback object.  This
-   function was necessary because in versions of Python prior to 2.3 when the
-   :option:`-O` flag was passed to Python the ``tb.tb_lineno`` was not updated
-   correctly.  This function has no use in versions past 2.3.
-
-
 .. _traceback-example:
 
 Traceback Examples
index 62157d44f50c310690a8c31a4a25c9dffe7222b8..b3145301d7385735463449f60d0a4f217e86c968 100644 (file)
@@ -149,7 +149,7 @@ in the build tree and either rebuilding Python if the modules are statically
 linked, or building and installing the shared object if using dynamically-loaded
 extensions.
 
-.. (lib-old is empty as of Python 2.5)
+.. XXX new explanation of lib-old necessary
 
    Those which are written in Python will be installed into the directory
    \file{lib-old/} installed as part of the standard library.  To use
index d6a5fbd243243dcc8ed2d791635f05f4d4b6c508..7987007afe2fe2759704aa4e296be3f031857000 100644 (file)
@@ -71,9 +71,8 @@ The :mod:`urllib2` module defines the following functions:
    If the Python installation has SSL support (i.e., if the :mod:`ssl` module can be imported),
    :class:`HTTPSHandler` will also be added.
 
-   Beginning in Python 2.3, a :class:`BaseHandler` subclass may also change its
-   :attr:`handler_order` member variable to modify its position in the handlers
-   list.
+   A :class:`BaseHandler` subclass may also change its :attr:`handler_order`
+   member variable to modify its position in the handlers list.
 
 The following exceptions are raised as appropriate:
 
index 308884891eb300566dbd49054ae003ee86bc7062..dfe3c84253e8528d8883d11a65c27826e4100a25 100644 (file)
@@ -20,13 +20,6 @@ provided by Windows platforms.  It includes functions and several constants.
    parameter specifies the number of milliseconds the sound should last.  If the
    system is not able to beep the speaker, :exc:`RuntimeError` is raised.
 
-   .. note::
-
-      Under Windows 95 and 98, the Windows :cfunc:`Beep` function exists but is
-      useless (it ignores its arguments).  In that case Python simulates it via direct
-      port manipulation (added in version 2.1).  It's unknown whether that will work
-      on all systems.
-
 
 .. function:: PlaySound(sound, flags)
 
index bb3ad02b31a4b1b9b3a762b36dc090424b07b1c7..fb3f5cf4c176243e47da6caaeaaa7d7a63fe070a 100644 (file)
@@ -162,16 +162,6 @@ module documentation.  This section lists the differences between the API and
    There's also an *encoding* argument; see :meth:`toxml`.
 
 
-The following standard DOM methods have special considerations with
-:mod:`xml.dom.minidom`:
-
-.. method:: Node.cloneNode(deep)
-
-   Although this method was present in the version of :mod:`xml.dom.minidom`
-   packaged with Python 2.0, it was seriously broken.  This has been corrected for
-   subsequent releases.
-
-
 .. _dom-example:
 
 DOM Example
@@ -224,18 +214,18 @@ rules apply:
   :exc:`TypeError` and :exc:`AttributeError`.
 
 * :class:`NodeList` objects are implemented using Python's built-in list type.
-  Starting with Python 2.2, these objects provide the interface defined in the DOM
-  specification, but with earlier versions of Python they do not support the
-  official API.  They are, however, much more "Pythonic" than the interface
-  defined in the W3C recommendations.
+  These objects provide the interface defined in the DOM specification, but with
+  earlier versions of Python they do not support the official API.  They are,
+  however, much more "Pythonic" than the interface defined in the W3C
+  recommendations.
 
 The following interfaces have no implementation in :mod:`xml.dom.minidom`:
 
 * :class:`DOMTimeStamp`
 
-* :class:`DocumentType` (added in Python 2.1)
+* :class:`DocumentType`
 
-* :class:`DOMImplementation` (added in Python 2.1)
+* :class:`DOMImplementation`
 
 * :class:`CharacterData`
 
index dd6a0ccf82dcd784bf4772a5a38db76f8ad3c2c2..c1f13c389c86a1551aecdcde196cd2d5947db360 100644 (file)
@@ -86,9 +86,8 @@ between conformable Python objects and XML on the wire.
    raise a special :exc:`Fault` instance, used to signal XML-RPC server errors, or
    :exc:`ProtocolError` used to signal an error in the HTTP/HTTPS transport layer.
    Both :exc:`Fault` and :exc:`ProtocolError` derive from a base class called
-   :exc:`Error`.  Note that even though starting with Python 2.2 you can subclass
-   builtin types, the xmlrpclib module currently does not marshal instances of such
-   subclasses.
+   :exc:`Error`.  Note that the xmlrpclib module currently does not marshal
+   instances of subclasses of builtin types.
 
    When passing strings, characters special to XML such as ``<``, ``>``, and ``&``
    will be automatically escaped.  However, it's the caller's responsibility to
index cdf249b1c03c2f6884dffe84433f4c4c919ed6e5..2f9db9dee903950d0201653e20f14fbd7090dce0 100644 (file)
@@ -451,13 +451,11 @@ evaluation stack: enough information is saved so that the next time :meth:`next`
 is invoked, the function can proceed exactly as if the :keyword:`yield`
 statement were just another external call.
 
-As of Python version 2.5, the :keyword:`yield` statement is now allowed in the
-:keyword:`try` clause of a :keyword:`try` ...  :keyword:`finally` construct.  If
-the generator is not resumed before it is finalized (by reaching a zero
-reference count or by being garbage collected), the generator-iterator's
-:meth:`close` method will be called, allowing any pending :keyword:`finally`
-clauses to execute.
-
+The :keyword:`yield` statement is allowed in the :keyword:`try` clause of a
+:keyword:`try` ...  :keyword:`finally` construct.  If the generator is not
+resumed before it is finalized (by reaching a zero reference count or by being
+garbage collected), the generator-iterator's :meth:`close` method will be
+called, allowing any pending :keyword:`finally` clauses to execute.
 
 .. seealso::
 
index cedffd5ba65ccb3d8552eebc62fdf7f716243e05..a9687e5fbc9a4d699f4500a4c6b9211783e7e5fd 100644 (file)
@@ -344,8 +344,7 @@ occurred in the :keyword:`try` clause and has not been handled by an
 been executed.  The :keyword:`finally` clause is also executed "on the way out"
 when any other clause of the :keyword:`try` statement is left via a
 :keyword:`break`, :keyword:`continue` or :keyword:`return` statement.  A more
-complicated example (having :keyword:`except` and :keyword:`finally` clauses in
-the same :keyword:`try` statement works as of Python 2.5)::
+complicated example::
 
    >>> def divide(x, y):
    ...     try:
index 279afc812bd38f214fd131fc04398daae3dd207e..eee989faa80174e5a858f705025c588ff40db4e4 100644 (file)
@@ -493,35 +493,24 @@ packages.
 Intra-package References
 ------------------------
 
-The submodules often need to refer to each other.  For example, the
-:mod:`surround` module might use the :mod:`echo` module.  In fact, such
-references are so common that the :keyword:`import` statement first looks in the
-containing package before looking in the standard module search path. Thus, the
-:mod:`surround` module can simply use ``import echo`` or ``from echo import
-echofilter``.  If the imported module is not found in the current package (the
-package of which the current module is a submodule), the :keyword:`import`
-statement looks for a top-level module with the given name.
-
 When packages are structured into subpackages (as with the :mod:`sound` package
 in the example), you can use absolute imports to refer to submodules of siblings
 packages.  For example, if the module :mod:`sound.filters.vocoder` needs to use
 the :mod:`echo` module in the :mod:`sound.effects` package, it can use ``from
 sound.effects import echo``.
 
-Starting with Python 2.5, in addition to the implicit relative imports described
-above, you can write explicit relative imports with the ``from module import
-name`` form of import statement. These explicit relative imports use leading
-dots to indicate the current and parent packages involved in the relative
-import. From the :mod:`surround` module for example, you might use::
+You can also write relative imports, with the ``from module import name`` form
+of import statement.  These imports use leading dots to indicate the current and
+parent packages involved in the relative import.  From the :mod:`surround`
+module for example, you might use::
 
    from . import echo
    from .. import formats
    from ..filters import equalizer
 
-Note that both explicit and implicit relative imports are based on the name of
-the current module. Since the name of the main module is always ``"__main__"``,
-modules intended for use as the main module of a Python application should
-always use absolute imports.
+Note that relative imports are based on the name of the current module.  Since
+the name of the main module is always ``"__main__"``, modules intended for use
+as the main module of a Python application must always use absolute imports.
 
 
 Packages in Multiple Directories
index 8704b7fd0fdf44ae49c407aaa06b3ed5085177b4..ae661ce35be7196bc9350c533389bc49f352e68e 100644 (file)
@@ -130,9 +130,6 @@ source.
    added to the start of :data:`sys.path` and the ``__main__.py`` file in
    that location is executed as the :mod:`__main__` module.
 
-   .. versionchanged:: 2.5
-      Directories and zipfiles containing a ``__main__.py`` file at the top
-      level are now considered valid Python scripts.
 
 If no interface option is given, :option:`-i` is implied, ``sys.argv[0]`` is
 an empty string (``""``) and the current directory will be added to the
@@ -157,7 +154,7 @@ Generic options
 
    Print the Python version number and exit.  Example output could be::
     
-       Python 2.5.1
+       Python 3.0
 
 
 Miscellaneous options
@@ -174,8 +171,6 @@ Miscellaneous options
    If given, Python won't try to write ``.pyc`` or ``.pyo`` files on the
    import of source modules.  See also :envvar:`PYTHONDONTWRITEBYTECODE`.
 
-   .. versionadded:: 2.6
-
 
 .. cmdoption:: -d
 
@@ -216,8 +211,6 @@ Miscellaneous options
 
    Don't add user site directory to sys.path
 
-   .. versionadded:: 2.6
-
    .. seealso::
 
       :pep:`370` -- Per user site-packages directory
@@ -432,8 +425,6 @@ These environment variables influence Python's behavior.
    If this is set, Python won't try to write ``.pyc`` or ``.pyo`` files on the
    import of source modules.
 
-   .. versionadded:: 2.6
-
 
 .. envvar:: PYTHONNOUSERSITE
 
@@ -470,8 +461,6 @@ if Python was configured with the :option:`--with-pydebug` build option.
 
    If set, Python will print threading debug info.
 
-   .. versionchanged:: 2.6
-      Previously, this variable was called ``THREADDEBUG``.
 
 .. envvar:: PYTHONDUMPREFS
 
index 7811f374da1a3dada52cd4ae75a5e5c726a2d5bb..8953e0b395c11ba00375fc3c9eef6ebf8c6e3f49 100644 (file)
@@ -14,18 +14,13 @@ the IDE and the Package Manager that are worth pointing out.
 
 The Mac-specific modules are documented in :ref:`mac-specific-services`.
 
-Python on Mac OS 9 or earlier can be quite different from Python on Unix or
-Windows, but is beyond the scope of this manual, as that platform is no longer
-supported, starting with Python 2.4. See http://www.cwi.nl/~jack/macpython for
-installers for the latest 2.3 release for Mac OS 9 and related documentation.
-
 
 .. _getting-osx:
 
 Getting and Installing MacPython
 ================================
 
-Mac OS X 10.4 comes with Python 2.3 pre-installed by Apple. However, you are
+Mac OS X 10.5 comes with Python 2.5 pre-installed by Apple. However, you are
 encouraged to install the most recent version of Python from the Python website
 (http://www.python.org). A "universal binary" build of Python 2.5, which runs
 natively on the Mac's new Intel and legacy PPC CPU's, is available there.
index cd706a7df52bfa5bc46300f36290698bc78023cd..4064fa16b833956ea1aca2296ec4d5942d218646 100644 (file)
@@ -24,8 +24,6 @@ With ongoing development of Python, some platforms that used to be supported
 earlier are no longer supported (due to the lack of users or developers).
 Check :pep:`11` for details on all unsupported platforms.
 
-* DOS and Windows 3.x are deprecated since Python 2.0 and code specific to these
-  systems was removed in Python 2.1.
 * Up to 2.5, Python was still compatible with Windows 95, 98 and ME (but already
   raised a deprecation warning on installation).  For Python 2.6 (and all
   following releases), this support was dropped and new releases are just