Commit f47a4003 authored by Martin Panter's avatar Martin Panter

Issue #25533: Update documentation regarding the frozen modules table

* "ctypes" documentation was using Python 2 bytes-str equivalence.
* PyImport_FrozenModules is a pointer to const as of Python 3.4
parent 2dc1bbb6
......@@ -272,7 +272,7 @@ Importing Modules
};
.. c:var:: struct _frozen* PyImport_FrozenModules
.. c:var:: const struct _frozen* PyImport_FrozenModules
This pointer is initialized to point to an array of :c:type:`struct _frozen`
records, terminated by one whose members are all *NULL* or zero. When a frozen
......
......@@ -1100,14 +1100,15 @@ access violation or whatever, so it's better to break out of the loop when we
hit the NULL entry::
>>> for item in table:
... print(item.name, item.size)
... if item.name is None:
... break
... print(item.name.decode("ascii"), item.size)
...
__hello__ 104
__phello__ -104
__phello__.spam 104
None 0
_frozen_importlib 31764
_frozen_importlib_external 41499
__hello__ 161
__phello__ -161
__phello__.spam 161
>>>
The fact that standard Python has a frozen module and a frozen package
......
......@@ -140,7 +140,7 @@ support.
.. function:: iter_modules(path=None, prefix='')
Yields ``(module_finder, name, ispkg)`` for all submodules on *path*, or, if
path is ``None``, all top-level modules on ``sys.path``.
*path* is ``None``, all top-level modules on ``sys.path``.
*path* should be either ``None`` or a list of paths to look for modules in.
......@@ -161,7 +161,7 @@ support.
.. function:: walk_packages(path=None, prefix='', onerror=None)
Yields ``(module_finder, name, ispkg)`` for all modules recursively on
*path*, or, if path is ``None``, all accessible modules.
*path*, or, if *path* is ``None``, all accessible modules.
*path* should be either ``None`` or a list of paths to look for modules in.
......
......@@ -77,13 +77,14 @@ class PythonValuesTestCase(unittest.TestCase):
self.assertTrue(entry.size,
"{!r} was reported as having no size".format(entry.name))
continue
items.append((entry.name, entry.size))
items.append((entry.name.decode("ascii"), entry.size))
expected = [(b"__hello__", 161),
(b"__phello__", -161),
(b"__phello__.spam", 161),
expected = [("__hello__", 161),
("__phello__", -161),
("__phello__.spam", 161),
]
self.assertEqual(items, expected)
self.assertEqual(items, expected, "PyImport_FrozenModules example "
"in Doc/library/ctypes.rst may be out of date")
self.assertEqual(sorted(bootstrap_seen), bootstrap_expected,
"frozen bootstrap modules did not match PyImport_FrozenModules")
......
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