Commit a28cf6fe authored by Benjamin Peterson's avatar Benjamin Peterson

merge heads

parents 742b2f8d 0a4dfc3d
......@@ -61,12 +61,6 @@ accessible to C code. They all work with the current interpreter thread's
Return the object *name* from the :mod:`sys` module or *NULL* if it does
not exist, without setting an exception.
.. c:function:: FILE *PySys_GetFile(char *name, FILE *def)
Return the :c:type:`FILE*` associated with the object *name* in the
:mod:`sys` module, or *def* if *name* is not in the module or is not associated
with a :c:type:`FILE*`.
.. c:function:: int PySys_SetObject(char *name, PyObject *v)
Set *name* in the :mod:`sys` module to *v* unless *v* is *NULL*, in which
......
......@@ -1315,10 +1315,6 @@ PySys_AddWarnOption:char*:s::
PySys_AddXOption:void:::
PySys_AddXOption:const wchar_t*:s::
PySys_GetFile:FILE*:::
PySys_GetFile:char*:name::
PySys_GetFile:FILE*:def::
PySys_GetObject:PyObject*::0:
PySys_GetObject:char*:name::
......
......@@ -58,6 +58,7 @@ perform some operation on a file. ::
int
main(int argc, char *argv[])
{
Py_SetProgramName(argv[0]); /* optional but recommended */
Py_Initialize();
PyRun_SimpleString("from time import time,ctime\n"
"print('Today is', ctime(time()))\n");
......@@ -65,14 +66,18 @@ perform some operation on a file. ::
return 0;
}
The above code first initializes the Python interpreter with
:c:func:`Py_Initialize`, followed by the execution of a hard-coded Python script
that print the date and time. Afterwards, the :c:func:`Py_Finalize` call shuts
the interpreter down, followed by the end of the program. In a real program,
you may want to get the Python script from another source, perhaps a text-editor
routine, a file, or a database. Getting the Python code from a file can better
be done by using the :c:func:`PyRun_SimpleFile` function, which saves you the
trouble of allocating memory space and loading the file contents.
Function :c:func:`Py_SetProgramName` should be called before
:c:func:`Py_Initialize` to inform the interpreter about paths to
Python run-time libraries. Next initialize the Python interpreter
with :c:func:`Py_Initialize`, followed by the execution of a
hard-coded Python script that prints the date and time. Afterwards,
the :c:func:`Py_Finalize` call shuts the interpreter down, followed by
the end of the program. In a real program, you may want to get the
Python script from another source, perhaps a text-editor routine, a
file, or a database. Getting the Python code from a file can better
be done by using the :c:func:`PyRun_SimpleFile` function, which saves
you the trouble of allocating memory space and loading the file
contents.
.. _lower-level-embedding:
......
......@@ -1094,8 +1094,8 @@ testing. Try it out with ``import __hello__`` for example.
Surprises
^^^^^^^^^
There are some edges in :mod:`ctypes` where you may be expect something else than
what actually happens.
There are some edges in :mod:`ctypes` where you might expect something other
than what actually happens.
Consider the following example::
......
:mod:`unittest.mock` --- mock object library
============================================
......@@ -646,7 +647,7 @@ the `new_callable` argument to `patch`.
which have no meaning on a non-callable mock.
Mock objects that use a class or an instance as a `spec` or `spec_set` are able
to pass `isintance` tests:
to pass `isinstance` tests:
>>> mock = Mock(spec=SomeClass)
>>> isinstance(mock, SomeClass)
......
......@@ -12,6 +12,17 @@ integer as the registry handle, a :ref:`handle object <handle-object>` is used
to ensure that the handles are closed correctly, even if the programmer neglects
to explicitly close them.
.. _exception-changed:
.. versionchanged:: 3.3
Several functions in this module used to raise a
:exc:`WindowsError`, which is now an alias of :exc:`OSError`.
.. _functions:
Functions
------------------
This module offers the following functions:
......@@ -37,12 +48,11 @@ This module offers the following functions:
*key* is the predefined handle to connect to.
The return value is the handle of the opened key. If the function fails, a
The return value is the handle of the opened key. If the function fails, an
:exc:`OSError` exception is raised.
.. versionchanged:: 3.3
This function used to raise a :exc:`WindowsError`, which is now an
alias of :exc:`OSError`.
See :ref:`above <exception-changed>`.
.. function:: CreateKey(key, sub_key)
......@@ -60,12 +70,11 @@ This module offers the following functions:
If the key already exists, this function opens the existing key.
The return value is the handle of the opened key. If the function fails, a
The return value is the handle of the opened key. If the function fails, an
:exc:`OSError` exception is raised.
.. versionchanged:: 3.3
This function used to raise a :exc:`WindowsError`, which is now an
alias of :exc:`OSError`.
See :ref:`above <exception-changed>`.
.. function:: CreateKeyEx(key, sub_key, reserved=0, access=KEY_WRITE)
......@@ -89,14 +98,13 @@ This module offers the following functions:
If the key already exists, this function opens the existing key.
The return value is the handle of the opened key. If the function fails, a
The return value is the handle of the opened key. If the function fails, an
:exc:`OSError` exception is raised.
.. versionadded:: 3.2
.. versionchanged:: 3.3
This function used to raise a :exc:`WindowsError`, which is now an
alias of :exc:`OSError`.
See :ref:`above <exception-changed>`.
.. function:: DeleteKey(key, sub_key)
......@@ -112,11 +120,10 @@ This module offers the following functions:
*This method can not delete keys with subkeys.*
If the method succeeds, the entire key, including all of its values, is removed.
If the method fails, a :exc:`OSError` exception is raised.
If the method fails, an :exc:`OSError` exception is raised.
.. versionchanged:: 3.3
This function used to raise a :exc:`WindowsError`, which is now an
alias of :exc:`OSError`.
See :ref:`above <exception-changed>`.
.. function:: DeleteKeyEx(key, sub_key, access=KEY_WOW64_64KEY, reserved=0)
......@@ -145,15 +152,14 @@ This module offers the following functions:
*This method can not delete keys with subkeys.*
If the method succeeds, the entire key, including all of its values, is
removed. If the method fails, a :exc:`OSError` exception is raised.
removed. If the method fails, an :exc:`OSError` exception is raised.
On unsupported Windows versions, :exc:`NotImplementedError` is raised.
.. versionadded:: 3.2
.. versionchanged:: 3.3
This function used to raise a :exc:`WindowsError`, which is now an
alias of :exc:`OSError`.
See :ref:`above <exception-changed>`.
.. function:: DeleteValue(key, value)
......@@ -176,12 +182,11 @@ This module offers the following functions:
*index* is an integer that identifies the index of the key to retrieve.
The function retrieves the name of one subkey each time it is called. It is
typically called repeatedly until a :exc:`OSError` exception is
typically called repeatedly until an :exc:`OSError` exception is
raised, indicating, no more values are available.
.. versionchanged:: 3.3
This function used to raise a :exc:`WindowsError`, which is now an
alias of :exc:`OSError`.
See :ref:`above <exception-changed>`.
.. function:: EnumValue(key, index)
......@@ -194,7 +199,7 @@ This module offers the following functions:
*index* is an integer that identifies the index of the value to retrieve.
The function retrieves the name of one subkey each time it is called. It is
typically called repeatedly, until a :exc:`OSError` exception is
typically called repeatedly, until an :exc:`OSError` exception is
raised, indicating no more values.
The result is a tuple of 3 items:
......@@ -214,8 +219,7 @@ This module offers the following functions:
+-------+--------------------------------------------+
.. versionchanged:: 3.3
This function used to raise a :exc:`WindowsError`, which is now an
alias of :exc:`OSError`.
See :ref:`above <exception-changed>`.
.. function:: ExpandEnvironmentStrings(str)
......@@ -295,8 +299,7 @@ This module offers the following functions:
Allow the use of named arguments.
.. versionchanged:: 3.3
This function used to raise a :exc:`WindowsError`, which is now an
alias of :exc:`OSError`.
See :ref:`above <exception-changed>`.
.. function:: QueryInfoKey(key)
......
......@@ -632,6 +632,8 @@ Core and Builtins
- Issue #15110: Fix the tracebacks generated by "import xxx" to not show the
importlib stack frames.
- Issue #16369: Global PyTypeObjects not initialized with PyType_Ready(...).
- Issue #15020: The program name used to search for Python's path is now
"python3" under Unix, not "python".
......
......@@ -1019,7 +1019,7 @@ static PyMethodDef deque_methods[] = {
};
PyDoc_STRVAR(deque_doc,
"deque(iterable[, maxlen]) --> deque object\n\
"deque([iterable[, maxlen]]) --> deque object\n\
\n\
Build an ordered collection with optimized access from its endpoints.");
......
......@@ -89,7 +89,7 @@ PyDoc_STRVAR(ConnectRegistry_doc,
"key is the predefined handle to connect to.\n"
"\n"
"The return value is the handle of the opened key.\n"
"If the function fails, a WindowsError exception is raised.");
"If the function fails, an OSError exception is raised.");
PyDoc_STRVAR(CreateKey_doc,
"CreateKey(key, sub_key) -> key\n"
......@@ -104,7 +104,7 @@ PyDoc_STRVAR(CreateKey_doc,
"If the key already exists, this function opens the existing key.\n"
"\n"
"The return value is the handle of the opened key.\n"
"If the function fails, a WindowsError exception is raised.");
"If the function fails, an OSError exception is raised.");
PyDoc_STRVAR(CreateKeyEx_doc,
"CreateKeyEx(key, sub_key, reserved=0, access=KEY_WRITE) -> key\n"
......@@ -122,7 +122,7 @@ PyDoc_STRVAR(CreateKeyEx_doc,
"If the key already exists, this function opens the existing key\n"
"\n"
"The return value is the handle of the opened key.\n"
"If the function fails, a WindowsError exception is raised.");
"If the function fails, an OSError exception is raised.");
PyDoc_STRVAR(DeleteKey_doc,
"DeleteKey(key, sub_key)\n"
......@@ -136,7 +136,7 @@ PyDoc_STRVAR(DeleteKey_doc,
"This method can not delete keys with subkeys.\n"
"\n"
"If the function succeeds, the entire key, including all of its values,\n"
"is removed. If the function fails, a WindowsError exception is raised.");
"is removed. If the function fails, an OSError exception is raised.");
PyDoc_STRVAR(DeleteKeyEx_doc,
"DeleteKeyEx(key, sub_key, access=KEY_WOW64_64KEY, reserved=0)\n"
......@@ -153,7 +153,7 @@ PyDoc_STRVAR(DeleteKeyEx_doc,
"This method can not delete keys with subkeys.\n"
"\n"
"If the function succeeds, the entire key, including all of its values,\n"
"is removed. If the function fails, a WindowsError exception is raised.\n"
"is removed. If the function fails, an OSError exception is raised.\n"
"On unsupported Windows versions, NotImplementedError is raised.");
PyDoc_STRVAR(DeleteValue_doc,
......@@ -171,7 +171,7 @@ PyDoc_STRVAR(EnumKey_doc,
"index is an integer that identifies the index of the key to retrieve.\n"
"\n"
"The function retrieves the name of one subkey each time it is called.\n"
"It is typically called repeatedly until a WindowsError exception is\n"
"It is typically called repeatedly until an OSError exception is\n"
"raised, indicating no more values are available.");
PyDoc_STRVAR(EnumValue_doc,
......@@ -181,7 +181,7 @@ PyDoc_STRVAR(EnumValue_doc,
"index is an integer that identifies the index of the value to retrieve.\n"
"\n"
"The function retrieves the name of one subkey each time it is called.\n"
"It is typically called repeatedly, until a WindowsError exception\n"
"It is typically called repeatedly, until an OSError exception\n"
"is raised, indicating no more values.\n"
"\n"
"The result is a tuple of 3 items:\n"
......@@ -240,7 +240,7 @@ PyDoc_STRVAR(OpenKey_doc,
" security access for the key. Default is KEY_READ\n"
"\n"
"The result is a new handle to the specified key\n"
"If the function fails, a WindowsError exception is raised.");
"If the function fails, an OSError exception is raised.");
PyDoc_STRVAR(OpenKeyEx_doc, "See OpenKey()");
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment