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

staticmethod.
This commit is contained in:
Brett Cannon 2014-05-09 12:28:22 -04:00
parent a237a98753
commit 6eaac13c92
4 changed files with 17 additions and 2 deletions

View File

@ -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::
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`.

View File

@ -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
============= =============

View File

@ -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'

View File

@ -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.