.. cfunction:: void Py_SetPythonHome(wchar_t *home)
Set the default "home" directory, that is, the location of the standard
- Python libraries. The libraries are searched in
- :file:`{home}/lib/python{version}` and :file:`{home}/lib/python{version}`.
+ Python libraries. See :envvar:`PYTHONHOME` for the meaning of the
+ argument string.
+
The argument should point to a zero-terminated character string in static
storage whose contents will not change for the duration of the program's
execution. No code in the Python interpreter will change the contents of
.. note::
- If *length* is greater than zero, the returned list object's items are
+ If *len* is greater than zero, the returned list object's items are
set to ``NULL``. Thus you cannot use abstract API functions such as
:cfunc:`PySequence_SetItem` or expose the object to Python code before
setting all items to a real object with :cfunc:`PyList_SetItem`.
.. cfunction:: PyObject* PyList_GetItem(PyObject *list, Py_ssize_t index)
- Return the object at position *pos* in the list pointed to by *p*. The
+ Return the object at position *index* in the list pointed to by *list*. The
position must be positive, indexing from the end of the list is not
- supported. If *pos* is out of bounds, return *NULL* and set an
+ supported. If *index* is out of bounds, return *NULL* and set an
:exc:`IndexError` exception.
UnicodeDecodeError: 'utf8' codec can't decode byte 0x80 in position 0:
unexpected code byte
>>> b'\x80abc'.decode("utf-8", "replace")
- '\ufffdabc'
+ '?abc'
>>> b'\x80abc'.decode("utf-8", "ignore")
'abc'
+(In this code example, the Unicode replacement character has been replaced by
+a question mark because it may not be displayed on some systems.)
+
Encodings are specified as strings containing the encoding's name. Python 3.2
comes with roughly 100 different encodings; see the Python Library Reference at
:ref:`standard-encodings` for a list. Some encodings have multiple names; for
.. function:: whichdb(filename)
- This functionattempts to guess which of the several simple database modules
+ This function attempts to guess which of the several simple database modules
available --- :mod:`dbm.gnu`, :mod:`dbm.ndbm` or :mod:`dbm.dumb` --- should
be used to open a given file.
:class:`SequenceMatcher` objects have the following methods:
-
.. method:: set_seqs(a, b)
Set the two sequences to be compared.
just "foo".
.. versionadded:: 3.1
- The :class:`NullHandler` class was not present in previous versions, but is
- now included, so that it need not be defined in library code.
-
+ The :class:`NullHandler` class.
Logging Levels
more information.
.. versionadded:: 3.1
-
-The :class:`NullHandler` class was not present in previous versions.
+ The :class:`NullHandler` class.
The :class:`NullHandler`, :class:`StreamHandler` and :class:`FileHandler`
classes are defined in the core logging package. The other handlers are
Outputs the record to the file.
+
.. _null-handler:
NullHandler
does not do any formatting or output. It is essentially a "no-op" handler
for use by library developers.
-
.. class:: NullHandler()
Returns a new instance of the :class:`NullHandler` class.
-
.. method:: emit(record)
This method does nothing.
Returns the message for this :class:`LogRecord` instance after merging any
user-supplied arguments with the message.
+
.. _logger-adapter:
LoggerAdapter Objects
:class:`LoggerAdapter` instances are used to conveniently pass contextual
information into logging calls. For a usage example , see the section on
-`adding contextual information to your logging output`__.
+:ref:`adding contextual information to your logging output <context-info>`.
-__ context-info_
.. class:: LoggerAdapter(logger, extra)
- Returns an instance of :class:`LoggerAdapter` initialized with an
- underlying :class:`Logger` instance and a dict-like object.
+ Returns an instance of :class:`LoggerAdapter` initialized with an
+ underlying :class:`Logger` instance and a dict-like object.
- .. method:: process(msg, kwargs)
+ .. method:: process(msg, kwargs)
- Modifies the message and/or keyword arguments passed to a logging call in
- order to insert contextual information. This implementation takes the object
- passed as *extra* to the constructor and adds it to *kwargs* using key
- 'extra'. The return value is a (*msg*, *kwargs*) tuple which has the
- (possibly modified) versions of the arguments passed in.
+ Modifies the message and/or keyword arguments passed to a logging call in
+ order to insert contextual information. This implementation takes the object
+ passed as *extra* to the constructor and adds it to *kwargs* using key
+ 'extra'. The return value is a (*msg*, *kwargs*) tuple which has the
+ (possibly modified) versions of the arguments passed in.
In addition to the above, :class:`LoggerAdapter` supports all the logging
methods of :class:`Logger`, i.e. :meth:`debug`, :meth:`info`, :meth:`warning`,
Availability: Unix, Windows.
-.. function:: makedirs(path[, mode])
+.. function:: makedirs(path, mode=0o777)
.. index::
single: directory; creating
.. note::
- :func:`makedirs` will become confused if the path elements to create include
- :data:`os.pardir`.
+ :func:`makedirs` will become confused if the path elements to create
+ include :data:`pardir`.
This function handles UNC paths correctly.
objects. :mod:`marshal` exists primarily to support Python's :file:`.pyc`
files.
-The :mod:`pickle` module differs from :mod:`marshal` several significant ways:
+The :mod:`pickle` module differs from :mod:`marshal` in several significant ways:
* The :mod:`pickle` module keeps track of the objects it has already serialized,
so that later references to the same object won't be serialized again.
-:mod:`urllib.request` --- extensible library for opening URLs
+:mod:`urllib.request` --- Extensible library for opening URLs
=============================================================
.. module:: urllib.request
users for the required information on the controlling terminal. A subclass may
override this method to support more appropriate behavior if needed.
- The :class:`FancyURLopener` class offers one additional method that should be
- overloaded to provide the appropriate behavior:
+ The :class:`FancyURLopener` class offers one additional method that should be
+ overloaded to provide the appropriate behavior:
- .. method:: prompt_user_passwd(host, realm)
+ .. method:: prompt_user_passwd(host, realm)
- Return information needed to authenticate the user at the given host in the
- specified security realm. The return value should be a tuple, ``(user,
- password)``, which can be used for basic authentication.
+ Return information needed to authenticate the user at the given host in the
+ specified security realm. The return value should be a tuple, ``(user,
+ password)``, which can be used for basic authentication.
+
+ The implementation prompts for this information on the terminal; an application
+ should override this method to use an appropriate interaction model in the local
+ environment.
- The implementation prompts for this information on the terminal; an application
- should override this method to use an appropriate interaction model in the local
- environment.
.. class:: OpenerDirector()
-:mod:`urllib.response` --- Response classes used by urllib.
-===========================================================
+:mod:`urllib.response` --- Response classes used by urllib
+==========================================================
.. module:: urllib.response
:synopsis: Response classes used by urllib.
.. note::
The file-like object is read-only and provides the following methods:
- :meth:`read`, :meth:`readline`, :meth:`readlines`, :meth:`__iter__`,
- :meth:`__next__`.
+ :meth:`!read`, :meth:`!readline`, :meth:`!readlines`, :meth:`!__iter__`,
+ :meth:`!__next__`.
.. note::
true numerically due to roundoff. For example, and assuming a platform on which
a Python float is an IEEE 754 double-precision number, in order that ``-1e-100 %
1e100`` have the same sign as ``1e100``, the computed result is ``-1e-100 +
- 1e100``, which is numerically exactly equal to ``1e100``. Function :func:`fmod`
- in the :mod:`math` module returns a result whose sign matches the sign of the
+ 1e100``, which is numerically exactly equal to ``1e100``. The function
+ :func:`math.fmod` returns a result whose sign matches the sign of the
first argument instead, and so returns ``-1e-100`` in this case. Which approach
is more appropriate depends on the application.
the :keyword:`is` operator, like those involving comparisons between instance
methods, or constants. Check their documentation for more info.
-.. [#] The ``%`` is also used for string formatting; the same precedence applies.
+.. [#] The ``%`` operator is also used for string formatting; the same
+ precedence applies.
.. [#] The power operator ``**`` binds less tightly than an arithmetic or
bitwise unary operator on its right, that is, ``2**-1`` is ``0.5``.
return sum(x() is not None for x in self.data)
def __contains__(self, item):
- return ref(item) in self.data
+ try:
+ wr = ref(item)
+ except TypeError:
+ return False
+ return wr in self.data
def __reduce__(self):
return (self.__class__, (list(self),),
result = result + self.section('FILE', file)
return result
- def docclass(self, object, name=None, mod=None):
+ def docclass(self, object, name=None, mod=None, *ignored):
"""Produce text documentation for a given class object."""
realname = object.__name__
name = name or realname
def test_contains(self):
for c in self.letters:
self.assertEqual(c in self.s, c in self.d)
- self.assertRaises(TypeError, self.s.__contains__, [[]])
+ # 1 is not weakref'able, but that TypeError is caught by __contains__
+ self.assertNotIn(1, self.s)
self.assertTrue(self.obj in self.fs)
del self.obj
self.assertTrue(ustr('F') not in self.fs)
RFC 2396: "Uniform Resource Identifiers (URI)": Generic Syntax by T.
Berners-Lee, R. Fielding, and L. Masinter, August 1998.
-RFC 2368: "The mailto URL scheme", by P.Hoffman , L Masinter, J. Zwinski, July 1998.
+RFC 2368: "The mailto URL scheme", by P.Hoffman , L Masinter, J. Zawinski, July 1998.
RFC 1808: "Relative Uniform Resource Locators", by R. Fielding, UC Irvine, June
1995.
without folding whitespace. It now uses the continuation_ws, as it
does for continuation lines that it creates itself.
+- Issue #10360: In WeakSet, do not raise TypeErrors when testing for
+ membership of non-weakrefable objects.
+
+- Issue #10549: Fix pydoc traceback when text-documenting certain classes.
+
- Issue #11110: Fix _sqlite to not deref a NULL when module creation fails.
- Issue #11089: Fix performance issue limiting the use of ConfigParser()
needed = 0;
}
else if (values == (PyObject *)self || !PyByteArray_Check(values)) {
- /* Make a copy an call this function recursively */
+ /* Make a copy and call this function recursively */
int err;
values = PyByteArray_FromObject(values);
if (values == NULL)