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
This commit is contained in:
parent
2dc1bbb659
commit
f47a400347
|
@ -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")
|
||||
|
|
Loading…
Reference in New Issue