Kaydet (Commit) 6eaac13c authored tarafından Brett Cannon's avatar Brett Cannon

Issue #21156: importlib.abc.InspectLoader.source_to_code() is now a

staticmethod.
üst a237a987
...@@ -499,7 +499,7 @@ ABC hierarchy:: ...@@ -499,7 +499,7 @@ ABC hierarchy::
.. versionchanged:: 3.4 .. versionchanged:: 3.4
Raises :exc:`ImportError` instead of :exc:`NotImplementedError`. Raises :exc:`ImportError` instead of :exc:`NotImplementedError`.
.. method:: source_to_code(data, path='<string>') .. staticmethod:: source_to_code(data, path='<string>')
Create a code object from Python source. Create a code object from Python source.
...@@ -508,8 +508,14 @@ ABC hierarchy:: ...@@ -508,8 +508,14 @@ ABC hierarchy::
the "path" to where the source code originated from, which can be an the "path" to where the source code originated from, which can be an
abstract concept (e.g. location in a zip file). abstract concept (e.g. location in a zip file).
With the subsequent code object one can execute it in a module by
running ``exec(code, module.__dict__)``.
.. versionadded:: 3.4 .. versionadded:: 3.4
.. versionchanged:: 3.5
Made the method static.
.. method:: exec_module(module) .. method:: exec_module(module)
Implementation of :meth:`Loader.exec_module`. Implementation of :meth:`Loader.exec_module`.
......
...@@ -158,6 +158,11 @@ Improved Modules ...@@ -158,6 +158,11 @@ Improved Modules
*module* contains no docstrings instead of raising :exc:`ValueError` *module* contains no docstrings instead of raising :exc:`ValueError`
(contributed by Glenn Jones in :issue:`15916`). (contributed by Glenn Jones in :issue:`15916`).
* :func:`importlib.abc.InspectLoader.source_to_code` is now a
static method to make it easier to work with source code in a string.
With a module object that you want to initialize you can then use
``exec(code, module.__dict__)`` to execute the code in the module.
Optimizations Optimizations
============= =============
......
...@@ -217,7 +217,8 @@ class InspectLoader(Loader): ...@@ -217,7 +217,8 @@ class InspectLoader(Loader):
""" """
raise ImportError raise ImportError
def source_to_code(self, data, path='<string>'): @staticmethod
def source_to_code(data, path='<string>'):
"""Compile 'data' into a code object. """Compile 'data' into a code object.
The 'data' argument can be anything that compile() can handle. The'path' The 'data' argument can be anything that compile() can handle. The'path'
......
...@@ -73,6 +73,9 @@ Core and Builtins ...@@ -73,6 +73,9 @@ Core and Builtins
Library Library
------- -------
- Issue #21156: importlib.abc.InspectLoader.source_to_code() is now a
staticmethod.
- Issue #21396: Fix TextIOWrapper(..., write_through=True) to not force a - Issue #21396: Fix TextIOWrapper(..., write_through=True) to not force a
flush() on the underlying binary stream. Patch by akira. flush() on the underlying binary stream. Patch by akira.
......
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