From 1a3284ed69d545e4ef59869998cb8c29233a45fa Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sun, 2 Dec 2007 09:40:06 +0000 Subject: #1535: rename __builtin__ module to builtins. --- Demo/classes/Range.py | 6 +-- Demo/imputil/knee.py | 6 +-- Demo/pdist/client.py | 6 +-- Doc/c-api/init.rst | 8 ++-- Doc/c-api/intro.rst | 4 +- Doc/glossary.rst | 2 +- Doc/library/__builtin__.rst | 41 -------------------- Doc/library/builtins.rst | 41 ++++++++++++++++++++ Doc/library/functions.rst | 4 +- Doc/library/imputil.rst | 10 ++--- Doc/library/python.rst | 2 +- Doc/library/rlcompleter.rst | 2 +- Doc/library/runpy.rst | 2 +- Doc/library/sys.rst | 2 +- Doc/reference/executionmodel.rst | 8 ++-- Doc/reference/lexical_analysis.rst | 2 +- Doc/reference/toplevel_components.rst | 4 +- Doc/tutorial/classes.rst | 2 +- Doc/tutorial/modules.rst | 8 ++-- Include/object.h | 4 +- Lib/aifc.py | 6 +-- Lib/codecs.py | 4 +- Lib/dumbdbm.py | 1 - Lib/gettext.py | 12 +++--- Lib/gzip.py | 8 ++-- Lib/idlelib/ColorDelegator.py | 4 +- Lib/idlelib/RemoteDebugger.py | 2 +- Lib/ihooks.py | 22 +++++------ Lib/imputil.py | 6 +-- Lib/inspect.py | 4 +- Lib/io.py | 2 +- Lib/locale.py | 2 +- Lib/optparse.py | 6 +-- Lib/pickletools.py | 72 +++++++++++++++++------------------ Lib/plat-mac/icopen.py | 6 +-- Lib/py_compile.py | 4 +- Lib/pydoc.py | 10 ++--- Lib/repr.py | 10 ++--- Lib/rlcompleter.py | 4 +- Lib/site.py | 18 ++++----- Lib/sunau.py | 8 ++-- Lib/tarfile.py | 2 +- Lib/test/pickletester.py | 24 ++++++------ Lib/test/test_compile.py | 8 ++-- Lib/test/test_exceptions.py | 2 +- Lib/test/test_gettext.py | 8 ++-- Lib/test/test_inspect.py | 4 +- Lib/test/test_iterlen.py | 2 +- Lib/test/test_pep352.py | 8 ++-- Lib/test/test_site.py | 20 +++++----- Lib/test/test_sys.py | 10 ++--- Lib/test/test_traceback.py | 2 +- Lib/traceback.py | 2 +- Lib/wave.py | 6 +-- Misc/Vim/vim_syntax.py | 4 +- Modules/_bsddb.c | 2 +- Modules/_lsprof.c | 6 +-- Modules/config.c.in | 2 +- Objects/exceptions.c | 2 +- Objects/listobject.c | 2 +- Objects/typeobject.c | 6 +-- PC/bdist_wininst/install.c | 2 +- PC/config.c | 2 +- PC/os2emx/config.c | 2 +- PC/os2vacpp/config.c | 2 +- Python/bltinmodule.c | 4 +- Python/errors.c | 2 +- Python/import.c | 26 ++++++------- Python/pythonrun.c | 16 ++++---- Python/sysmodule.c | 8 ++-- Tools/freeze/makeconfig.py | 2 +- 71 files changed, 281 insertions(+), 282 deletions(-) delete mode 100644 Doc/library/__builtin__.rst create mode 100644 Doc/library/builtins.rst diff --git a/Demo/classes/Range.py b/Demo/classes/Range.py index 0f84157..a0cef74 100755 --- a/Demo/classes/Range.py +++ b/Demo/classes/Range.py @@ -64,9 +64,9 @@ class oldrange: def test(): - import time, __builtin__ + import time, builtins #Just a quick sanity check - correct_result = __builtin__.range(5, 100, 3) + correct_result = builtins.range(5, 100, 3) oldrange_result = list(oldrange(5, 100, 3)) genrange_result = list(genrange(5, 100, 3)) if genrange_result != correct_result or oldrange_result != correct_result: @@ -81,7 +81,7 @@ def test(): for i in genrange(1000): pass t3 = time.time() - for i in __builtin__.range(1000): + for i in builtins.range(1000): pass t4 = time.time() print(t2-t1, 'sec (old-style class)') diff --git a/Demo/imputil/knee.py b/Demo/imputil/knee.py index 49fdf2b..435b51c 100644 --- a/Demo/imputil/knee.py +++ b/Demo/imputil/knee.py @@ -7,7 +7,7 @@ This code is intended to be read, not executed. However, it does work """ -import sys, imp, __builtin__ +import sys, imp, builtins # Replacement for __import__() @@ -117,7 +117,7 @@ def reload(module): # Save the original hooks -original_import = __builtin__.__import__ +original_import = builtins.__import__ # Now install our hooks -__builtin__.__import__ = import_hook +builtins.__import__ = import_hook diff --git a/Demo/pdist/client.py b/Demo/pdist/client.py index 13158f2..c9fe369 100755 --- a/Demo/pdist/client.py +++ b/Demo/pdist/client.py @@ -3,7 +3,7 @@ import sys import socket import pickle -import __builtin__ +import builtins import os @@ -90,8 +90,8 @@ class Client: if exception is None: return value x = exception - if hasattr(__builtin__, exception): - x = getattr(__builtin__, exception) + if hasattr(builtins, exception): + x = getattr(builtins, exception) elif exception in ('posix.error', 'mac.error'): x = os.error if x == exception: diff --git a/Doc/c-api/init.rst b/Doc/c-api/init.rst index 0058e10..3467ed7 100644 --- a/Doc/c-api/init.rst +++ b/Doc/c-api/init.rst @@ -17,7 +17,7 @@ Initialization, Finalization, and Threads single: PyEval_AcquireLock() single: modules (in module sys) single: path (in module sys) - module: __builtin__ + module: builtins module: __main__ module: sys triple: module; search; path @@ -29,7 +29,7 @@ Initialization, Finalization, and Threads exception of :cfunc:`Py_SetProgramName`, :cfunc:`PyEval_InitThreads`, :cfunc:`PyEval_ReleaseLock`, and :cfunc:`PyEval_AcquireLock`. This initializes the table of loaded modules (``sys.modules``), and creates the fundamental - modules :mod:`__builtin__`, :mod:`__main__` and :mod:`sys`. It also initializes + modules :mod:`builtins`, :mod:`__main__` and :mod:`sys`. It also initializes the module search path (``sys.path``). It does not set ``sys.argv``; use :cfunc:`PySys_SetArgv` for that. This is a no-op when called for a second time (without calling :cfunc:`Py_Finalize` first). There is no return value; it is a @@ -83,7 +83,7 @@ Initialization, Finalization, and Threads .. cfunction:: PyThreadState* Py_NewInterpreter() .. index:: - module: __builtin__ + module: builtins module: __main__ module: sys single: stdout (in module sys) @@ -93,7 +93,7 @@ Initialization, Finalization, and Threads Create a new sub-interpreter. This is an (almost) totally separate environment for the execution of Python code. In particular, the new interpreter has separate, independent versions of all imported modules, including the - fundamental modules :mod:`__builtin__`, :mod:`__main__` and :mod:`sys`. The + fundamental modules :mod:`builtins`, :mod:`__main__` and :mod:`sys`. The table of loaded modules (``sys.modules``) and the module search path (``sys.path``) are also separate. The new environment has no ``sys.argv`` variable. It has new standard I/O stream file objects ``sys.stdin``, diff --git a/Doc/c-api/intro.rst b/Doc/c-api/intro.rst index 60b0052..0717241 100644 --- a/Doc/c-api/intro.rst +++ b/Doc/c-api/intro.rst @@ -507,7 +507,7 @@ interpreter can only be used after the interpreter has been initialized. .. index:: single: Py_Initialize() - module: __builtin__ + module: builtins module: __main__ module: sys module: exceptions @@ -516,7 +516,7 @@ interpreter can only be used after the interpreter has been initialized. The basic initialization function is :cfunc:`Py_Initialize`. This initializes the table of loaded modules, and creates the fundamental modules -:mod:`__builtin__`, :mod:`__main__`, :mod:`sys`, and :mod:`exceptions`. It also +:mod:`builtins`, :mod:`__main__`, :mod:`sys`, and :mod:`exceptions`. It also initializes the module search path (``sys.path``). .. index:: single: PySys_SetArgv() diff --git a/Doc/glossary.rst b/Doc/glossary.rst index aa69867..cb75f84 100644 --- a/Doc/glossary.rst +++ b/Doc/glossary.rst @@ -268,7 +268,7 @@ Glossary dictionaries. There are the local, global and builtin namespaces as well as nested namespaces in objects (in methods). Namespaces support modularity by preventing naming conflicts. For instance, the functions - :func:`__builtin__.open` and :func:`os.open` are distinguished by their + :func:`builtins.open` and :func:`os.open` are distinguished by their namespaces. Namespaces also aid readability and maintainability by making it clear which module implements a function. For instance, writing :func:`random.seed` or :func:`itertools.izip` makes it clear that those diff --git a/Doc/library/__builtin__.rst b/Doc/library/__builtin__.rst deleted file mode 100644 index b3e1e11..0000000 --- a/Doc/library/__builtin__.rst +++ /dev/null @@ -1,41 +0,0 @@ - -:mod:`__builtin__` --- Built-in objects -======================================= - -.. module:: __builtin__ - :synopsis: The module that provides the built-in namespace. - - -This module provides direct access to all 'built-in' identifiers of Python; for -example, ``__builtin__.open`` is the full name for the built-in function -:func:`open`. See chapter :ref:`builtin`. - -This module is not normally accessed explicitly by most applications, but can be -useful in modules that provide objects with the same name as a built-in value, -but in which the built-in of that name is also needed. For example, in a module -that wants to implement an :func:`open` function that wraps the built-in -:func:`open`, this module can be used directly:: - - import __builtin__ - - def open(path): - f = __builtin__.open(path, 'r') - return UpperCaser(f) - - class UpperCaser: - '''Wrapper around a file that converts output to upper-case.''' - - def __init__(self, f): - self._f = f - - def read(self, count=-1): - return self._f.read(count).upper() - - # ... - -As an implementation detail, most modules have the name ``__builtins__`` (note -the ``'s'``) made available as part of their globals. The value of -``__builtins__`` is normally either this module or the value of this modules's -:attr:`__dict__` attribute. Since this is an implementation detail, it may not -be used by alternate implementations of Python. - diff --git a/Doc/library/builtins.rst b/Doc/library/builtins.rst new file mode 100644 index 0000000..2a5c7f5 --- /dev/null +++ b/Doc/library/builtins.rst @@ -0,0 +1,41 @@ + +:mod:`builtins` --- Built-in objects +==================================== + +.. module:: builtins + :synopsis: The module that provides the built-in namespace. + + +This module provides direct access to all 'built-in' identifiers of Python; for +example, ``builtins.open`` is the full name for the built-in function +:func:`open`. See chapter :ref:`builtin`. + +This module is not normally accessed explicitly by most applications, but can be +useful in modules that provide objects with the same name as a built-in value, +but in which the built-in of that name is also needed. For example, in a module +that wants to implement an :func:`open` function that wraps the built-in +:func:`open`, this module can be used directly:: + + import builtins + + def open(path): + f = builtins.open(path, 'r') + return UpperCaser(f) + + class UpperCaser: + '''Wrapper around a file that converts output to upper-case.''' + + def __init__(self, f): + self._f = f + + def read(self, count=-1): + return self._f.read(count).upper() + + # ... + +As an implementation detail, most modules have the name ``__builtins__`` (note +the ``'s'``) made available as part of their globals. The value of +``__builtins__`` is normally either this module or the value of this modules's +:attr:`__dict__` attribute. Since this is an implementation detail, it may not +be used by alternate implementations of Python. + diff --git a/Doc/library/functions.rst b/Doc/library/functions.rst index 68601e5..5d0d8a5 100644 --- a/Doc/library/functions.rst +++ b/Doc/library/functions.rst @@ -356,7 +356,7 @@ available. They are listed here in alphabetical order. dictionaries as global and local namespace. If the *globals* dictionary is present and lacks '__builtins__', the current globals are copied into *globals* before *expression* is parsed. This means that *expression* normally has full - access to the standard :mod:`__builtin__` module and restricted environments are + access to the standard :mod:`builtins` module and restricted environments are propagated. If the *locals* dictionary is omitted it defaults to the *globals* dictionary. If both dictionaries are omitted, the expression is executed in the environment where :keyword:`eval` is called. The return value is the result of @@ -398,7 +398,7 @@ available. They are listed here in alphabetical order. If the *globals* dictionary does not contain a value for the key ``__builtins__``, a reference to the dictionary of the built-in module - :mod:`__builtin__` is inserted under that key. That way you can control what + :mod:`builtins` is inserted under that key. That way you can control what builtins are available to the executed code by inserting your own ``__builtins__`` dictionary into *globals* before passing it to :func:`exec`. diff --git a/Doc/library/imputil.rst b/Doc/library/imputil.rst index eff1cb9..c05ae1a 100644 --- a/Doc/library/imputil.rst +++ b/Doc/library/imputil.rst @@ -108,7 +108,7 @@ This code is intended to be read, not executed. However, it does work :: - import sys, imp, __builtin__ + import sys, imp, builtins # Replacement for __import__() def import_hook(name, globals=None, locals=None, fromlist=None): @@ -218,12 +218,12 @@ This code is intended to be read, not executed. However, it does work # Save the original hooks - original_import = __builtin__.__import__ - original_reload = __builtin__.reload + original_import = builtins.__import__ + original_reload = builtins.reload # Now install our hooks - __builtin__.__import__ = import_hook - __builtin__.reload = reload_hook + builtins.__import__ = import_hook + builtins.reload = reload_hook .. index:: module: knee diff --git a/Doc/library/python.rst b/Doc/library/python.rst index 3384322..0fdfa53 100644 --- a/Doc/library/python.rst +++ b/Doc/library/python.rst @@ -13,7 +13,7 @@ overview: .. toctree:: sys.rst - __builtin__.rst + builtins.rst __main__.rst warnings.rst contextlib.rst diff --git a/Doc/library/rlcompleter.rst b/Doc/library/rlcompleter.rst index 402a120..cec1e86 100644 --- a/Doc/library/rlcompleter.rst +++ b/Doc/library/rlcompleter.rst @@ -55,7 +55,7 @@ Completer objects have the following method: Return the *state*th completion for *text*. If called for *text* that doesn't include a period character (``'.'``), it will - complete from names currently defined in :mod:`__main__`, :mod:`__builtin__` and + complete from names currently defined in :mod:`__main__`, :mod:`builtins` and keywords (as defined by the :mod:`keyword` module). If called for a dotted name, it will try to evaluate anything without obvious diff --git a/Doc/library/runpy.rst b/Doc/library/runpy.rst index d476879..2254906 100644 --- a/Doc/library/runpy.rst +++ b/Doc/library/runpy.rst @@ -46,7 +46,7 @@ The :mod:`runpy` module provides a single function: does not make filename information available, this variable is set to ``None``. ``__builtins__`` is automatically initialised with a reference to the top level - namespace of the :mod:`__builtin__` module. + namespace of the :mod:`builtins` module. If the argument *alter_sys* is supplied and evaluates to ``True``, then ``sys.argv[0]`` is updated with the value of ``__file__`` and diff --git a/Doc/library/sys.rst b/Doc/library/sys.rst index 33de4f6..3b9112a 100644 --- a/Doc/library/sys.rst +++ b/Doc/library/sys.rst @@ -78,7 +78,7 @@ always available. .. function:: displayhook(value) If *value* is not ``None``, this function prints it to ``sys.stdout``, and saves - it in ``__builtin__._``. + it in ``builtins._``. ``sys.displayhook`` is called on the result of evaluating an expression entered in an interactive Python session. The display of these values can be customized diff --git a/Doc/reference/executionmodel.rst b/Doc/reference/executionmodel.rst index 1478cc7..1f85e49 100644 --- a/Doc/reference/executionmodel.rst +++ b/Doc/reference/executionmodel.rst @@ -105,7 +105,7 @@ If the :keyword:`global` statement occurs within a block, all uses of the name specified in the statement refer to the binding of that name in the top-level namespace. Names are resolved in the top-level namespace by searching the global namespace, i.e. the namespace of the module containing the code block, -and the builtin namespace, the namespace of the module :mod:`__builtin__`. The +and the builtin namespace, the namespace of the module :mod:`builtins`. The global namespace is searched first. If the name is not found there, the builtin namespace is searched. The global statement must precede all uses of the name. @@ -117,8 +117,8 @@ The built-in namespace associated with the execution of a code block is actually found by looking up the name ``__builtins__`` in its global namespace; this should be a dictionary or a module (in the latter case the module's dictionary is used). By default, when in the :mod:`__main__` module, ``__builtins__`` is -the built-in module :mod:`__builtin__` (note: no 's'); when in any other module, -``__builtins__`` is an alias for the dictionary of the :mod:`__builtin__` module +the built-in module :mod:`builtins`; when in any other module, +``__builtins__`` is an alias for the dictionary of the :mod:`builtins` module itself. ``__builtins__`` can be set to a user-created dictionary to create a weak form of restricted execution. @@ -126,7 +126,7 @@ weak form of restricted execution. Users should not touch ``__builtins__``; it is strictly an implementation detail. Users wanting to override values in the built-in namespace should - :keyword:`import` the :mod:`__builtin__` (no 's') module and modify its + :keyword:`import` the :mod:`builtins` module and modify its attributes appropriately. .. index:: module: __main__ diff --git a/Doc/reference/lexical_analysis.rst b/Doc/reference/lexical_analysis.rst index 1b315a6..741f8ec 100644 --- a/Doc/reference/lexical_analysis.rst +++ b/Doc/reference/lexical_analysis.rst @@ -344,7 +344,7 @@ characters: ``_*`` Not imported by ``from module import *``. The special identifier ``_`` is used in the interactive interpreter to store the result of the last evaluation; it is - stored in the :mod:`__builtin__` module. When not in interactive mode, ``_`` + stored in the :mod:`builtins` module. When not in interactive mode, ``_`` has no special meaning and is not defined. See section :ref:`import`. .. note:: diff --git a/Doc/reference/toplevel_components.rst b/Doc/reference/toplevel_components.rst index 0ab9aaf..21f801c 100644 --- a/Doc/reference/toplevel_components.rst +++ b/Doc/reference/toplevel_components.rst @@ -23,13 +23,13 @@ Complete Python programs .. index:: module: sys module: __main__ - module: __builtin__ + module: builtins While a language specification need not prescribe how the language interpreter is invoked, it is useful to have a notion of a complete Python program. A complete Python program is executed in a minimally initialized environment: all built-in and standard modules are available, but none have been initialized, -except for :mod:`sys` (various system services), :mod:`__builtin__` (built-in +except for :mod:`sys` (various system services), :mod:`builtins` (built-in functions, exceptions and ``None``) and :mod:`__main__`. The latter is used to provide the local and global namespace for execution of the complete program. diff --git a/Doc/tutorial/classes.rst b/Doc/tutorial/classes.rst index 4e95419..577c7e9 100644 --- a/Doc/tutorial/classes.rst +++ b/Doc/tutorial/classes.rst @@ -98,7 +98,7 @@ until the interpreter quits. The statements executed by the top-level invocation of the interpreter, either read from a script file or interactively, are considered part of a module called :mod:`__main__`, so they have their own global namespace. (The built-in names actually also live in a module; this is -called :mod:`__builtin__`.) +called :mod:`builtins`.) The local namespace for a function is created when the function is called, and deleted when the function returns or raises an exception that is not handled diff --git a/Doc/tutorial/modules.rst b/Doc/tutorial/modules.rst index 4d8b48f..2a14b35 100644 --- a/Doc/tutorial/modules.rst +++ b/Doc/tutorial/modules.rst @@ -308,14 +308,14 @@ Without arguments, :func:`dir` lists the names you have defined currently:: Note that it lists all types of names: variables, modules, functions, etc. -.. index:: module: __builtin__ +.. index:: module: builtins :func:`dir` does not list the names of built-in functions and variables. If you want a list of those, they are defined in the standard module -:mod:`__builtin__`:: +:mod:`builtins`:: - >>> import __builtin__ - >>> dir(__builtin__) + >>> import builtins + >>> dir(builtins) ['ArithmeticError', 'AssertionError', 'AttributeError', 'BaseException', 'Buffer Error', 'DeprecationWarning', 'EOFError', 'Ellipsis', 'EnvironmentError', 'Excep diff --git a/Include/object.h b/Include/object.h index b5ed054..942f801 100644 --- a/Include/object.h +++ b/Include/object.h @@ -458,8 +458,8 @@ PyAPI_FUNC(void) PyObject_ClearWeakRefs(PyObject *); extern int _PyObject_SlotCompare(PyObject *, PyObject *); -/* PyObject_Dir(obj) acts like Python __builtin__.dir(obj), returning a - list of strings. PyObject_Dir(NULL) is like __builtin__.dir(), +/* PyObject_Dir(obj) acts like Python builtins.dir(obj), returning a + list of strings. PyObject_Dir(NULL) is like builtins.dir(), returning the names of the current locals. In this case, if there are no current locals, NULL is returned, and PyErr_Occurred() is false. */ diff --git a/Lib/aifc.py b/Lib/aifc.py index 085fa90..9b41c35 100644 --- a/Lib/aifc.py +++ b/Lib/aifc.py @@ -135,7 +135,7 @@ writeframesraw. """ import struct -import __builtin__ +import builtins __all__ = ["Error","open","openfp"] @@ -336,7 +336,7 @@ class Aifc_read: def __init__(self, f): if type(f) == type(''): - f = __builtin__.open(f, 'rb') + f = builtins.open(f, 'rb') # else, assume it is an open file object already self.initfp(f) @@ -557,7 +557,7 @@ class Aifc_write: def __init__(self, f): if type(f) == type(''): filename = f - f = __builtin__.open(f, 'wb') + f = builtins.open(f, 'wb') else: # else, assume it is an open file object already filename = '???' diff --git a/Lib/codecs.py b/Lib/codecs.py index 982c282..06cec17 100644 --- a/Lib/codecs.py +++ b/Lib/codecs.py @@ -7,7 +7,7 @@ Written by Marc-Andre Lemburg (mal@lemburg.com). """#" -import __builtin__, sys +import builtins, sys ### Registry and builtin stateless codec functions @@ -858,7 +858,7 @@ def open(filename, mode='rb', encoding=None, errors='strict', buffering=1): 'b' not in mode: # Force opening of the file in binary mode mode = mode + 'b' - file = __builtin__.open(filename, mode, buffering) + file = builtins.open(filename, mode, buffering) if encoding is None: return file info = lookup(encoding) diff --git a/Lib/dumbdbm.py b/Lib/dumbdbm.py index 7741fbb..e44e1f5 100644 --- a/Lib/dumbdbm.py +++ b/Lib/dumbdbm.py @@ -23,7 +23,6 @@ is read when the database is opened, and some updates rewrite the whole index) import io as _io import os as _os -import __builtin__ import UserDict _BLOCKSIZE = 512 diff --git a/Lib/gettext.py b/Lib/gettext.py index be24f1d..6e14a93 100644 --- a/Lib/gettext.py +++ b/Lib/gettext.py @@ -236,18 +236,18 @@ class NullTranslations: self._output_charset = charset def install(self, str=False, names=None): - import __builtin__ - __builtin__.__dict__['_'] = str and self.ugettext or self.gettext + import builtins + builtins.__dict__['_'] = str and self.ugettext or self.gettext if hasattr(names, "__contains__"): if "gettext" in names: - __builtin__.__dict__['gettext'] = __builtin__.__dict__['_'] + builtins.__dict__['gettext'] = builtins.__dict__['_'] if "ngettext" in names: - __builtin__.__dict__['ngettext'] = (str and self.ungettext + builtins.__dict__['ngettext'] = (str and self.ungettext or self.ngettext) if "lgettext" in names: - __builtin__.__dict__['lgettext'] = self.lgettext + builtins.__dict__['lgettext'] = self.lgettext if "lngettext" in names: - __builtin__.__dict__['lngettext'] = self.lngettext + builtins.__dict__['lngettext'] = self.lngettext class GNUTranslations(NullTranslations): diff --git a/Lib/gzip.py b/Lib/gzip.py index 4f750c0..a044087 100644 --- a/Lib/gzip.py +++ b/Lib/gzip.py @@ -7,7 +7,7 @@ but random access is not allowed.""" import struct, sys, time import zlib -import __builtin__ +import builtins __all__ = ["GzipFile","open"] @@ -92,7 +92,7 @@ class GzipFile: if mode and 'b' not in mode: mode += 'b' if fileobj is None: - fileobj = self.myfileobj = __builtin__.open(filename, mode or 'rb') + fileobj = self.myfileobj = builtins.open(filename, mode or 'rb') if filename is None: if hasattr(fileobj, 'name'): filename = fileobj.name else: filename = '' @@ -487,13 +487,13 @@ def _test(): print("filename doesn't end in .gz:", repr(arg)) continue f = open(arg, "rb") - g = __builtin__.open(arg[:-3], "wb") + g = builtins.open(arg[:-3], "wb") else: if arg == "-": f = sys.stdin g = GzipFile(filename="", mode="wb", fileobj=sys.stdout) else: - f = __builtin__.open(arg, "rb") + f = builtins.open(arg, "rb") g = open(arg + ".gz", "wb") while True: chunk = f.read(1024) diff --git a/Lib/idlelib/ColorDelegator.py b/Lib/idlelib/ColorDelegator.py index b93aa5a..e7112c9 100644 --- a/Lib/idlelib/ColorDelegator.py +++ b/Lib/idlelib/ColorDelegator.py @@ -1,7 +1,7 @@ import time import re import keyword -import __builtin__ +import builtins from Tkinter import * from idlelib.Delegator import Delegator from idlelib.configHandler import idleConf @@ -14,7 +14,7 @@ def any(name, alternates): def make_pat(): kw = r"\b" + any("KEYWORD", keyword.kwlist) + r"\b" - builtinlist = [str(name) for name in dir(__builtin__) + builtinlist = [str(name) for name in dir(builtins) if not name.startswith('_')] # self.file = open("file") : # 1st 'file' colorized normal, 2nd as builtin, 3rd as string diff --git a/Lib/idlelib/RemoteDebugger.py b/Lib/idlelib/RemoteDebugger.py index e5b95b4..46582d1 100644 --- a/Lib/idlelib/RemoteDebugger.py +++ b/Lib/idlelib/RemoteDebugger.py @@ -172,7 +172,7 @@ class IdbAdapter: def dict_item(self, did, key): dict = dicttable[did] value = dict[key] - value = repr(value) ### can't pickle module '__builtin__' + value = repr(value) ### can't pickle module 'builtins' return value #----------end class IdbAdapter---------- diff --git a/Lib/ihooks.py b/Lib/ihooks.py index d2eabc4..433f513 100644 --- a/Lib/ihooks.py +++ b/Lib/ihooks.py @@ -49,7 +49,7 @@ by the way the __import__ hook is used by the Python interpreter.) """ -import __builtin__ +import builtins import imp import os import sys @@ -375,18 +375,18 @@ class BasicModuleImporter(_Verbose): # XXX Should this try to clear the module's namespace? def install(self): - self.save_import_module = __builtin__.__import__ - if not hasattr(__builtin__, 'unload'): - __builtin__.unload = None - self.save_unload = __builtin__.unload - __builtin__.__import__ = self.import_module - __builtin__.unload = self.unload + self.save_import_module = builtins.__import__ + if not hasattr(builtins, 'unload'): + builtins.unload = None + self.save_unload = builtins.unload + builtins.__import__ = self.import_module + builtins.unload = self.unload def uninstall(self): - __builtin__.__import__ = self.save_import_module - __builtin__.unload = self.save_unload - if not __builtin__.unload: - del __builtin__.unload + builtins.__import__ = self.save_import_module + builtins.unload = self.save_unload + if not builtins.unload: + del builtins.unload class ModuleImporter(BasicModuleImporter): diff --git a/Lib/imputil.py b/Lib/imputil.py index 1d09ba5..4278e31 100644 --- a/Lib/imputil.py +++ b/Lib/imputil.py @@ -13,7 +13,7 @@ Exported classes: # note: avoid importing non-builtin modules import imp ### not available in JPython? import sys -import __builtin__ +import builtins # for the DirectoryImporter import struct @@ -26,7 +26,7 @@ _ModuleType = type(sys) ### doesn't work in JPython... class ImportManager: "Manage the import process." - def install(self, namespace=vars(__builtin__)): + def install(self, namespace=vars(builtins)): "Install this ImportManager into the specified namespace." if isinstance(namespace, _ModuleType): @@ -404,7 +404,7 @@ def _compile(pathname, timestamp): codestring = open(pathname, 'rU').read() if codestring and codestring[-1] != '\n': codestring = codestring + '\n' - code = __builtin__.compile(codestring, pathname, 'exec') + code = builtins.compile(codestring, pathname, 'exec') # try to cache the compiled code try: diff --git a/Lib/inspect.py b/Lib/inspect.py index a1910e4..994dbdc 100644 --- a/Lib/inspect.py +++ b/Lib/inspect.py @@ -444,7 +444,7 @@ def getmodule(object, _filename=None): if mainobject is object: return main # Check builtins - builtin = sys.modules['__builtin__'] + builtin = sys.modules['builtins'] if hasattr(builtin, object.__name__): builtinobject = getattr(builtin, object.__name__) if builtinobject is object: @@ -775,7 +775,7 @@ def strseq(object, convert, join=joinseq): def formatannotation(annotation, base_module=None): if isinstance(annotation, type): - if annotation.__module__ in ('__builtin__', base_module): + if annotation.__module__ in ('builtins', base_module): return annotation.__name__ return annotation.__module__+'.'+annotation.__name__ return repr(annotation) diff --git a/Lib/io.py b/Lib/io.py index f66f48b..ff03901 100644 --- a/Lib/io.py +++ b/Lib/io.py @@ -184,7 +184,7 @@ def open(file, mode="r", buffering=None, encoding=None, newline=None, class OpenWrapper: - """Wrapper for __builtin__.open + """Wrapper for builtins.open Trick so that open won't become a bound method when stored as a class variable (as dumbdbm does). diff --git a/Lib/locale.py b/Lib/locale.py index 3f30ca0..ce0ca81 100644 --- a/Lib/locale.py +++ b/Lib/locale.py @@ -12,7 +12,7 @@ """ import sys, encodings, encodings.aliases -from __builtin__ import str as _builtin_str +from builtins import str as _builtin_str # Try importing the _locale module. # diff --git a/Lib/optparse.py b/Lib/optparse.py index f702e1a..ab2ce40 100644 --- a/Lib/optparse.py +++ b/Lib/optparse.py @@ -636,13 +636,13 @@ class Option: else: # Allow type objects or builtin type conversion functions # (int, str, etc.) as an alternative to their names. (The - # complicated check of __builtin__ is only necessary for + # complicated check of builtins is only necessary for # Python 2.1 and earlier, and is short-circuited by the # first check on modern Pythons.) - import __builtin__ + import builtins if ( isinstance(self.type, type) or (hasattr(self.type, "__name__") and - getattr(__builtin__, self.type.__name__, None) is self.type) ): + getattr(builtins, self.type.__name__, None) is self.type) ): self.type = self.type.__name__ if self.type == "str": diff --git a/Lib/pickletools.py b/Lib/pickletools.py index af84c1f..0665cd0 100644 --- a/Lib/pickletools.py +++ b/Lib/pickletools.py @@ -2054,25 +2054,25 @@ highest protocol among opcodes = 0 33: ( MARK 34: c GLOBAL 'pickletools _Example' 56: p PUT 2 - 59: c GLOBAL '__builtin__ object' - 79: p PUT 3 - 82: N NONE - 83: t TUPLE (MARK at 33) - 84: p PUT 4 - 87: R REDUCE - 88: p PUT 5 - 91: ( MARK - 92: d DICT (MARK at 91) - 93: p PUT 6 - 96: V UNICODE 'value' - 103: p PUT 7 - 106: L LONG 42 - 110: s SETITEM - 111: b BUILD - 112: a APPEND - 113: g GET 5 - 116: a APPEND - 117: . STOP + 59: c GLOBAL 'builtins object' + 76: p PUT 3 + 79: N NONE + 80: t TUPLE (MARK at 33) + 81: p PUT 4 + 84: R REDUCE + 85: p PUT 5 + 88: ( MARK + 89: d DICT (MARK at 88) + 90: p PUT 6 + 93: V UNICODE 'value' + 100: p PUT 7 + 103: L LONG 42 + 107: s SETITEM + 108: b BUILD + 109: a APPEND + 110: g GET 5 + 113: a APPEND + 114: . STOP highest protocol among opcodes = 0 >>> dis(pickle.dumps(x, 1)) @@ -2084,23 +2084,23 @@ highest protocol among opcodes = 0 31: ( MARK 32: c GLOBAL 'pickletools _Example' 54: q BINPUT 2 - 56: c GLOBAL '__builtin__ object' - 76: q BINPUT 3 - 78: N NONE - 79: t TUPLE (MARK at 31) - 80: q BINPUT 4 - 82: R REDUCE - 83: q BINPUT 5 - 85: } EMPTY_DICT - 86: q BINPUT 6 - 88: X BINUNICODE 'value' - 98: q BINPUT 7 - 100: K BININT1 42 - 102: s SETITEM - 103: b BUILD - 104: h BINGET 5 - 106: e APPENDS (MARK at 3) - 107: . STOP + 56: c GLOBAL 'builtins object' + 73: q BINPUT 3 + 75: N NONE + 76: t TUPLE (MARK at 31) + 77: q BINPUT 4 + 79: R REDUCE + 80: q BINPUT 5 + 82: } EMPTY_DICT + 83: q BINPUT 6 + 85: X BINUNICODE 'value' + 95: q BINPUT 7 + 97: K BININT1 42 + 99: s SETITEM + 100: b BUILD + 101: h BINGET 5 + 103: e APPENDS (MARK at 3) + 104: . STOP highest protocol among opcodes = 1 Try "the canonical" recursive-object test. diff --git a/Lib/plat-mac/icopen.py b/Lib/plat-mac/icopen.py index eea6083..146a333 100644 --- a/Lib/plat-mac/icopen.py +++ b/Lib/plat-mac/icopen.py @@ -37,9 +37,9 @@ The next time you launch PythonInterpreter or Python IDE, the patch will take effect. """ -import __builtin__ +import builtins -_builtin_open = globals().get('_builtin_open', __builtin__.open) +_builtin_open = globals().get('_builtin_open', builtins.open) def _open_with_typer(*args): file = _builtin_open(*args) @@ -55,7 +55,7 @@ def _open_with_typer(*args): pass return file -__builtin__.open = _open_with_typer +builtins.open = _open_with_typer """ open('test.py') diff --git a/Lib/py_compile.py b/Lib/py_compile.py index 912972b..982d19d 100644 --- a/Lib/py_compile.py +++ b/Lib/py_compile.py @@ -3,7 +3,7 @@ This module has intimate knowledge of the format of .pyc files. """ -import __builtin__ +import builtins import imp import marshal import os @@ -139,7 +139,7 @@ def compile(file, cfile=None, dfile=None, doraise=False): if codestring and codestring[-1] != '\n': codestring = codestring + '\n' try: - codeobject = __builtin__.compile(codestring, dfile or file,'exec') + codeobject = builtins.compile(codestring, dfile or file,'exec') except Exception as err: py_exc = PyCompileError(err.__class__, err, dfile or file) if doraise: diff --git a/Lib/pydoc.py b/Lib/pydoc.py index 51d627e..d94c3d3 100755 --- a/Lib/pydoc.py +++ b/Lib/pydoc.py @@ -52,7 +52,7 @@ Richard Chamberlain, for the first implementation of textdoc. # the current directory is changed with os.chdir(), an incorrect # path will be displayed. -import sys, imp, os, re, inspect, __builtin__, pkgutil +import sys, imp, os, re, inspect, builtins, pkgutil from repr import Repr try: from collections import deque @@ -787,7 +787,7 @@ class HTMLDoc(Doc): thisclass = attrs[0][2] attrs, inherited = _split_list(attrs, lambda t: t[2] is thisclass) - if thisclass is __builtin__.object: + if thisclass is builtins.object: attrs = inherited continue elif thisclass is object: @@ -1184,7 +1184,7 @@ class TextDoc(Doc): thisclass = attrs[0][2] attrs, inherited = _split_list(attrs, lambda t: t[2] is thisclass) - if thisclass is __builtin__.object: + if thisclass is builtins.object: attrs = inherited continue elif thisclass is object: @@ -1450,8 +1450,8 @@ def locate(path, forceload=0): except AttributeError: return None return object else: - if hasattr(__builtin__, path): - return getattr(__builtin__, path) + if hasattr(builtins, path): + return getattr(builtins, path) # --------------------------------------- interactive interpreter interface diff --git a/Lib/repr.py b/Lib/repr.py index ceb36f9..9893c71 100644 --- a/Lib/repr.py +++ b/Lib/repr.py @@ -2,7 +2,7 @@ __all__ = ["Repr","repr"] -import __builtin__ +import builtins from itertools import islice class Repr: @@ -84,16 +84,16 @@ class Repr: return '{%s}' % (s,) def repr_str(self, x, level): - s = __builtin__.repr(x[:self.maxstring]) + s = builtins.repr(x[:self.maxstring]) if len(s) > self.maxstring: i = max(0, (self.maxstring-3)//2) j = max(0, self.maxstring-3-i) - s = __builtin__.repr(x[:i] + x[len(x)-j:]) + s = builtins.repr(x[:i] + x[len(x)-j:]) s = s[:i] + '...' + s[len(s)-j:] return s def repr_int(self, x, level): - s = __builtin__.repr(x) # XXX Hope this isn't too slow... + s = builtins.repr(x) # XXX Hope this isn't too slow... if len(s) > self.maxlong: i = max(0, (self.maxlong-3)//2) j = max(0, self.maxlong-3-i) @@ -102,7 +102,7 @@ class Repr: def repr_instance(self, x, level): try: - s = __builtin__.repr(x) + s = builtins.repr(x) # Bugs in x.__repr__() can cause arbitrary # exceptions -- then make up something except Exception: diff --git a/Lib/rlcompleter.py b/Lib/rlcompleter.py index 1c5750b..74b2e47 100644 --- a/Lib/rlcompleter.py +++ b/Lib/rlcompleter.py @@ -33,7 +33,7 @@ used, and this module (and the readline module) are silently inactive. """ -import __builtin__ +import builtins import __main__ __all__ = ["Completer"] @@ -97,7 +97,7 @@ class Completer: matches = [] n = len(text) for list in [keyword.kwlist, - __builtin__.__dict__, + builtins.__dict__, self.namespace]: for word in list: if word[:n] == text and word != "__builtins__": diff --git a/Lib/site.py b/Lib/site.py index f1db89c..b97f945 100644 --- a/Lib/site.py +++ b/Lib/site.py @@ -60,7 +60,7 @@ ImportError exception, it is silently ignored. import sys import os -import __builtin__ +import builtins def makepath(*paths): @@ -251,8 +251,8 @@ def setquit(): except: pass raise SystemExit(code) - __builtin__.quit = Quitter('quit') - __builtin__.exit = Quitter('exit') + builtins.quit = Quitter('quit') + builtins.exit = Quitter('exit') class _Printer(object): @@ -319,18 +319,18 @@ class _Printer(object): break def setcopyright(): - """Set 'copyright' and 'credits' in __builtin__""" - __builtin__.copyright = _Printer("copyright", sys.copyright) + """Set 'copyright' and 'credits' in builtins""" + builtins.copyright = _Printer("copyright", sys.copyright) if sys.platform[:4] == 'java': - __builtin__.credits = _Printer( + builtins.credits = _Printer( "credits", "Jython is maintained by the Jython developers (www.jython.org).") else: - __builtin__.credits = _Printer("credits", """\ + builtins.credits = _Printer("credits", """\ Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands for supporting Python development. See www.python.org for more information.""") here = os.path.dirname(os.__file__) - __builtin__.license = _Printer( + builtins.license = _Printer( "license", "See http://www.python.org/%.3s/license.html" % sys.version, ["LICENSE.txt", "LICENSE"], [os.path.join(here, os.pardir), here, os.curdir]) @@ -350,7 +350,7 @@ class _Helper(object): return pydoc.help(*args, **kwds) def sethelper(): - __builtin__.help = _Helper() + builtins.help = _Helper() def aliasmbcs(): """On Windows, some default encodings are not provided by Python, diff --git a/Lib/sunau.py b/Lib/sunau.py index f255502..b312501 100644 --- a/Lib/sunau.py +++ b/Lib/sunau.py @@ -153,8 +153,8 @@ class Au_read: def __init__(self, f): if type(f) == type(''): - import __builtin__ - f = __builtin__.open(f, 'rb') + import builtins + f = builtins.open(f, 'rb') self.initfp(f) def __del__(self): @@ -282,8 +282,8 @@ class Au_write: def __init__(self, f): if type(f) == type(''): - import __builtin__ - f = __builtin__.open(f, 'wb') + import builtins + f = builtins.open(f, 'wb') self.initfp(f) def __del__(self): diff --git a/Lib/tarfile.py b/Lib/tarfile.py index 23252f4..f8afae9 100644 --- a/Lib/tarfile.py +++ b/Lib/tarfile.py @@ -65,7 +65,7 @@ except ImportError: # from tarfile import * __all__ = ["TarFile", "TarInfo", "is_tarfile", "TarError"] -from __builtin__ import open as _open # Since 'open' is TarFile.open +from builtins import open as _open # Since 'open' is TarFile.open #--------------------------------------------------------- # tar constants diff --git a/Lib/test/pickletester.py b/Lib/test/pickletester.py index 6db3572..b20f599 100644 --- a/Lib/test/pickletester.py +++ b/Lib/test/pickletester.py @@ -91,7 +91,7 @@ class use_metaclass(object, metaclass=metaclass): DATA0 = ( b'(lp0\nL0\naL1\naF2.0\nac' - b'__builtin__\ncomplex\n' + b'builtins\ncomplex\n' b'p1\n(F3.0\nF0.0\ntp2\nRp' b'3\naL1\naL-1\naL255\naL-' b'255\naL-256\naL65535\na' @@ -100,8 +100,8 @@ DATA0 = ( b'647\naL-2147483648\na(' b'Vabc\np4\ng4\nccopy_reg' b'\n_reconstructor\np5\n(' - b'c__main__\nC\np6\nc__bu' - b'iltin__\nobject\np7\nNt' + b'c__main__\nC\np6\ncbu' + b'iltins\nobject\np7\nNt' b'p8\nRp9\n(dp10\nVfoo\np1' b'1\nL1\nsVbar\np12\nL2\nsb' b'g9\ntp13\nag13\naL5\na.' @@ -118,7 +118,7 @@ DATA0_DIS = """\ 12: a APPEND 13: F FLOAT 2.0 18: a APPEND - 19: c GLOBAL '__builtin__ complex' + 19: c GLOBAL 'builtins complex' 40: p PUT 1 43: ( MARK 44: F FLOAT 3.0 @@ -159,7 +159,7 @@ DATA0_DIS = """\ 199: ( MARK 200: c GLOBAL '__main__ C' 212: p PUT 6 - 215: c GLOBAL '__builtin__ object' + 215: c GLOBAL 'builtins object' 235: p PUT 7 238: N NONE 239: t TUPLE (MARK at 199) @@ -191,15 +191,15 @@ highest protocol among opcodes = 0 """ DATA1 = ( - b']q\x00(K\x00K\x01G@\x00\x00\x00\x00\x00\x00\x00c__' - b'builtin__\ncomplex\nq\x01' + b']q\x00(K\x00K\x01G@\x00\x00\x00\x00\x00\x00\x00c' + b'builtins\ncomplex\nq\x01' b'(G@\x08\x00\x00\x00\x00\x00\x00G\x00\x00\x00\x00\x00\x00\x00\x00t' b'q\x02Rq\x03K\x01J\xff\xff\xff\xffK\xffJ\x01\xff\xff\xffJ' b'\x00\xff\xff\xffM\xff\xffJ\x01\x00\xff\xffJ\x00\x00\xff\xffJ\xff\xff' b'\xff\x7fJ\x01\x00\x00\x80J\x00\x00\x00\x80(X\x03\x00\x00\x00ab' b'cq\x04h\x04ccopy_reg\n_reco' b'nstructor\nq\x05(c__main' - b'__\nC\nq\x06c__builtin__\n' + b'__\nC\nq\x06cbuiltins\n' b'object\nq\x07Ntq\x08Rq\t}q\n(' b'X\x03\x00\x00\x00fooq\x0bK\x01X\x03\x00\x00\x00bar' b'q\x0cK\x02ubh\ttq\rh\rK\x05e.' @@ -213,7 +213,7 @@ DATA1_DIS = """\ 4: K BININT1 0 6: K BININT1 1 8: G BINFLOAT 2.0 - 17: c GLOBAL '__builtin__ complex' + 17: c GLOBAL 'builtins complex' 38: q BINPUT 1 40: ( MARK 41: G BINFLOAT 3.0 @@ -242,7 +242,7 @@ DATA1_DIS = """\ 152: ( MARK 153: c GLOBAL '__main__ C' 165: q BINPUT 6 - 167: c GLOBAL '__builtin__ object' + 167: c GLOBAL 'builtins object' 187: q BINPUT 7 189: N NONE 190: t TUPLE (MARK at 152) @@ -272,7 +272,7 @@ highest protocol among opcodes = 1 DATA2 = ( b'\x80\x02]q\x00(K\x00K\x01G@\x00\x00\x00\x00\x00\x00\x00c' - b'__builtin__\ncomplex\n' + b'builtins\ncomplex\n' b'q\x01G@\x08\x00\x00\x00\x00\x00\x00G\x00\x00\x00\x00\x00\x00\x00\x00' b'\x86q\x02Rq\x03K\x01J\xff\xff\xff\xffK\xffJ\x01\xff\xff\xff' b'J\x00\xff\xff\xffM\xff\xffJ\x01\x00\xff\xffJ\x00\x00\xff\xffJ\xff' @@ -292,7 +292,7 @@ DATA2_DIS = """\ 6: K BININT1 0 8: K BININT1 1 10: G BINFLOAT 2.0 - 19: c GLOBAL '__builtin__ complex' + 19: c GLOBAL 'builtins complex' 40: q BINPUT 1 42: G BINFLOAT 3.0 51: G BINFLOAT 0.0 diff --git a/Lib/test/test_compile.py b/Lib/test/test_compile.py index e7ffc02..cc490d7 100644 --- a/Lib/test/test_compile.py +++ b/Lib/test/test_compile.py @@ -7,10 +7,10 @@ class TestSpecifics(unittest.TestCase): def test_debug_assignment(self): # catch assignments to __debug__ self.assertRaises(SyntaxError, compile, '__debug__ = 1', '?', 'single') - import __builtin__ - prev = __builtin__.__debug__ - setattr(__builtin__, '__debug__', 'sure') - setattr(__builtin__, '__debug__', prev) + import builtins + prev = builtins.__debug__ + setattr(builtins, '__debug__', 'sure') + setattr(builtins, '__debug__', prev) def test_argument_handling(self): # detect duplicate positional and keyword arguments diff --git a/Lib/test/test_exceptions.py b/Lib/test/test_exceptions.py index d1f9b1a..ae4687f 100644 --- a/Lib/test/test_exceptions.py +++ b/Lib/test/test_exceptions.py @@ -288,7 +288,7 @@ class ExceptionTests(unittest.TestCase): raise else: # Verify module name - self.assertEquals(type(e).__module__, '__builtin__') + self.assertEquals(type(e).__module__, 'builtins') # Verify no ref leaks in Exc_str() s = str(e) for checkArgName in expected: diff --git a/Lib/test/test_gettext.py b/Lib/test/test_gettext.py index 12a657c..a875272 100644 --- a/Lib/test/test_gettext.py +++ b/Lib/test/test_gettext.py @@ -146,13 +146,13 @@ trggrkg zrffntr pngnybt yvoenel.''') t.install(str=True) eq(_('mullusk'), 'bacon') # Test installation of other methods - import __builtin__ + import builtins t.install(str=True, names=["gettext", "lgettext"]) eq(_, t.ugettext) - eq(__builtin__.gettext, t.ugettext) + eq(builtins.gettext, t.ugettext) eq(lgettext, t.lgettext) - del __builtin__.gettext - del __builtin__.lgettext + del builtins.gettext + del builtins.lgettext class GettextTestCase2(GettextBaseTest): diff --git a/Lib/test/test_inspect.py b/Lib/test/test_inspect.py index 60a7ad1..75e66ed 100644 --- a/Lib/test/test_inspect.py +++ b/Lib/test/test_inspect.py @@ -29,7 +29,7 @@ modfile = normcase(modfile) def revise(filename, *args): return (normcase(filename),) + args -import __builtin__ +import builtins try: 1/0 @@ -197,7 +197,7 @@ class TestRetrievingSourceCode(GetSourceBase): # Do it again (check the caching isn't broken) self.assertEqual(inspect.getmodule(mod.StupidGit.abuse), mod) # Check a builtin - self.assertEqual(inspect.getmodule(str), sys.modules["__builtin__"]) + self.assertEqual(inspect.getmodule(str), sys.modules["builtins"]) # Check filename override self.assertEqual(inspect.getmodule(None, modfile), mod) diff --git a/Lib/test/test_iterlen.py b/Lib/test/test_iterlen.py index afd7287..93b77b6 100644 --- a/Lib/test/test_iterlen.py +++ b/Lib/test/test_iterlen.py @@ -46,7 +46,7 @@ from test import test_support from itertools import repeat from collections import deque from UserList import UserList -from __builtin__ import len as _len +from builtins import len as _len n = 10 diff --git a/Lib/test/test_pep352.py b/Lib/test/test_pep352.py index ddeee1a..db117ef 100644 --- a/Lib/test/test_pep352.py +++ b/Lib/test/test_pep352.py @@ -1,5 +1,5 @@ import unittest -import __builtin__ +import builtins import warnings from test.test_support import run_unittest import os @@ -23,7 +23,7 @@ class ExceptionClassTests(unittest.TestCase): def test_inheritance(self): # Make sure the inheritance hierarchy matches the documentation exc_set = set() - for object_ in __builtin__.__dict__.values(): + for object_ in builtins.__dict__.values(): try: if issubclass(object_, BaseException): exc_set.add(object_.__name__) @@ -35,7 +35,7 @@ class ExceptionClassTests(unittest.TestCase): try: superclass_name = inheritance_tree.readline().rstrip() try: - last_exc = getattr(__builtin__, superclass_name) + last_exc = getattr(builtins, superclass_name) except AttributeError: self.fail("base class %s not a built-in" % superclass_name) self.failUnless(superclass_name in exc_set, @@ -58,7 +58,7 @@ class ExceptionClassTests(unittest.TestCase): left_bracket = exc_name.index('[') exc_name = exc_name[:left_bracket-1] # cover space try: - exc = getattr(__builtin__, exc_name) + exc = getattr(builtins, exc_name) except AttributeError: self.fail("%s not a built-in exception" % exc_name) if last_depth < depth: diff --git a/Lib/test/test_site.py b/Lib/test/test_site.py index 11bb674..4624ea6 100644 --- a/Lib/test/test_site.py +++ b/Lib/test/test_site.py @@ -6,7 +6,7 @@ executing have not been removed. """ import unittest from test.test_support import TestSkipped, TestFailed, run_unittest, TESTFN -import __builtin__ +import builtins import os import sys import encodings @@ -162,7 +162,7 @@ class ImportSideEffectTests(unittest.TestCase): # as an absolute path. # Handled by abs__file__() site.abs__file__() - for module in (sys, os, __builtin__): + for module in (sys, os, builtins): try: self.failUnless(os.path.isabs(module.__file__), repr(module)) except AttributeError: @@ -187,18 +187,18 @@ class ImportSideEffectTests(unittest.TestCase): pass def test_setting_quit(self): - # 'quit' and 'exit' should be injected into __builtin__ - self.failUnless(hasattr(__builtin__, "quit")) - self.failUnless(hasattr(__builtin__, "exit")) + # 'quit' and 'exit' should be injected into builtins + self.failUnless(hasattr(builtins, "quit")) + self.failUnless(hasattr(builtins, "exit")) def test_setting_copyright(self): - # 'copyright' and 'credits' should be in __builtin__ - self.failUnless(hasattr(__builtin__, "copyright")) - self.failUnless(hasattr(__builtin__, "credits")) + # 'copyright' and 'credits' should be in builtins + self.failUnless(hasattr(builtins, "copyright")) + self.failUnless(hasattr(builtins, "credits")) def test_setting_help(self): - # 'help' should be set in __builtin__ - self.failUnless(hasattr(__builtin__, "help")) + # 'help' should be set in builtins + self.failUnless(hasattr(builtins, "help")) def test_aliasing_mbcs(self): if sys.platform == "win32": diff --git a/Lib/test/test_sys.py b/Lib/test/test_sys.py index 767f3a8..435a696 100644 --- a/Lib/test/test_sys.py +++ b/Lib/test/test_sys.py @@ -15,22 +15,22 @@ class SysModuleTest(unittest.TestCase): sys.displayhook = self.orig_displayhook def test_original_displayhook(self): - import __builtin__ + import builtins out = io.StringIO() sys.stdout = out dh = sys.__displayhook__ self.assertRaises(TypeError, dh) - if hasattr(__builtin__, "_"): - del __builtin__._ + if hasattr(builtins, "_"): + del builtins._ dh(None) self.assertEqual(out.getvalue(), "") - self.assert_(not hasattr(__builtin__, "_")) + self.assert_(not hasattr(builtins, "_")) dh(42) self.assertEqual(out.getvalue(), "42\n") - self.assertEqual(__builtin__._, 42) + self.assertEqual(builtins._, 42) del sys.stdout self.assertRaises(RuntimeError, dh, 42) diff --git a/Lib/test/test_traceback.py b/Lib/test/test_traceback.py index 36ea067..93e5126 100644 --- a/Lib/test/test_traceback.py +++ b/Lib/test/test_traceback.py @@ -65,7 +65,7 @@ class TracebackCases(unittest.TestCase): err = traceback.format_exception_only(X, X()) self.assertEqual(len(err), 1) str_value = '' % X.__name__ - if X.__module__ in ('__main__', '__builtin__'): + if X.__module__ in ('__main__', 'builtins'): str_name = X.__name__ else: str_name = '.'.join([X.__module__, X.__name__]) diff --git a/Lib/traceback.py b/Lib/traceback.py index 11ece25..0c01ac3 100644 --- a/Lib/traceback.py +++ b/Lib/traceback.py @@ -168,7 +168,7 @@ def format_exception_only(etype, value): stype = etype.__name__ smod = etype.__module__ - if smod not in ("__main__", "__builtin__"): + if smod not in ("__main__", "builtins"): stype = smod + '.' + stype if not issubclass(etype, SyntaxError): diff --git a/Lib/wave.py b/Lib/wave.py index eda3697..8455522 100644 --- a/Lib/wave.py +++ b/Lib/wave.py @@ -71,7 +71,7 @@ The close() method is called automatically when the class instance is destroyed. """ -import __builtin__ +import builtins __all__ = ["open", "openfp", "Error"] @@ -156,7 +156,7 @@ class Wave_read: def __init__(self, f): self._i_opened_the_file = None if isinstance(f, str): - f = __builtin__.open(f, 'rb') + f = builtins.open(f, 'rb') self._i_opened_the_file = f # else, assume it is an open file object already try: @@ -300,7 +300,7 @@ class Wave_write: def __init__(self, f): self._i_opened_the_file = None if isinstance(f, str): - f = __builtin__.open(f, 'wb') + f = builtins.open(f, 'wb') self._i_opened_the_file = f try: self.initfp(f) diff --git a/Misc/Vim/vim_syntax.py b/Misc/Vim/vim_syntax.py index 3212bf4..14c5512 100644 --- a/Misc/Vim/vim_syntax.py +++ b/Misc/Vim/vim_syntax.py @@ -4,7 +4,7 @@ from __future__ import with_statement import keyword import exceptions -import __builtin__ +import builtins from string import Template comment_header = '''" Auto-generated Vim syntax file for Python. @@ -39,7 +39,7 @@ exception_names = sorted(exc for exc in dir(exceptions) # nothing that comes with modules (e.g., __name__), so just exclude anything in # the 'exceptions' module since we want to ignore exceptions *and* what any # module would have -builtin_names = sorted(builtin for builtin in dir(__builtin__) +builtin_names = sorted(builtin for builtin in dir(builtins) if builtin not in dir(exceptions)) escapes = (r'+\\[abfnrtv\'"\\]+', r'"\\\o\{1,3}"', r'"\\x\x\{2}"', diff --git a/Modules/_bsddb.c b/Modules/_bsddb.c index 0587071..24f2562 100644 --- a/Modules/_bsddb.c +++ b/Modules/_bsddb.c @@ -6002,7 +6002,7 @@ PyMODINIT_FUNC init_bsddb(void) * using one base class. */ PyDict_SetItemString(d, "KeyError", PyExc_KeyError); { - PyObject *builtin_mod = PyImport_ImportModule("__builtin__"); + PyObject *builtin_mod = PyImport_ImportModule("builtins"); PyDict_SetItemString(d, "__builtins__", builtin_mod); } PyRun_String("class DBNotFoundError(DBError, KeyError): pass\n" diff --git a/Modules/_lsprof.c b/Modules/_lsprof.c index 7e85dcf..1707679 100644 --- a/Modules/_lsprof.c +++ b/Modules/_lsprof.c @@ -186,13 +186,13 @@ normalizeUserObj(PyObject *obj) modname = PyModule_GetName(mod); if (modname == NULL) { PyErr_Clear(); - modname = "__builtin__"; + modname = "builtins"; } } else { - modname = "__builtin__"; + modname = "builtins"; } - if (strcmp(modname, "__builtin__") != 0) + if (strcmp(modname, "builtins") != 0) return PyUnicode_FromFormat("<%s.%s>", modname, fn->m_ml->ml_name); diff --git a/Modules/config.c.in b/Modules/config.c.in index e9c54a9..0531fab 100644 --- a/Modules/config.c.in +++ b/Modules/config.c.in @@ -48,7 +48,7 @@ struct _inittab _PyImport_Inittab[] = { /* These entries are here for sys.builtin_module_names */ {"__main__", NULL}, - {"__builtin__", NULL}, + {"builtins", NULL}, {"sys", NULL}, /* This lives in gcmodule.c */ diff --git a/Objects/exceptions.c b/Objects/exceptions.c index e26c350..14e1bfb 100644 --- a/Objects/exceptions.c +++ b/Objects/exceptions.c @@ -1849,7 +1849,7 @@ _PyExc_Init(void) PRE_INIT(UnicodeWarning) PRE_INIT(BytesWarning) - bltinmod = PyImport_ImportModule("__builtin__"); + bltinmod = PyImport_ImportModule("builtins"); if (bltinmod == NULL) Py_FatalError("exceptions bootstrapping error."); bdict = PyModule_GetDict(bltinmod); diff --git a/Objects/listobject.c b/Objects/listobject.c index ea10abf..01ada08 100644 --- a/Objects/listobject.c +++ b/Objects/listobject.c @@ -1961,7 +1961,7 @@ is_default_cmp(PyObject *cmpfunc) module = PyUnicode_AsString(f->m_module); if (module == NULL) return 0; - if (strcmp(module, "__builtin__") != 0) + if (strcmp(module, "builtins") != 0) return 0; if (strcmp(f->m_ml->ml_name, "cmp") != 0) return 0; diff --git a/Objects/typeobject.c b/Objects/typeobject.c index fd6f5ce..99ba799 100644 --- a/Objects/typeobject.c +++ b/Objects/typeobject.c @@ -112,7 +112,7 @@ type_module(PyTypeObject *type, void *context) if (s != NULL) return PyUnicode_FromStringAndSize( type->tp_name, (Py_ssize_t)(s - type->tp_name)); - return PyUnicode_FromString("__builtin__"); + return PyUnicode_FromString("builtins"); } } @@ -397,7 +397,7 @@ type_repr(PyTypeObject *type) else kind = "type"; - if (mod != NULL && PyUnicode_CompareWithASCIIString(mod, "__builtin__")) + if (mod != NULL && PyUnicode_CompareWithASCIIString(mod, "builtins")) rtn = PyUnicode_FromFormat("<%s '%U.%U'>", kind, mod, name); else rtn = PyUnicode_FromFormat("<%s '%s'>", kind, type->tp_name); @@ -2455,7 +2455,7 @@ object_repr(PyObject *self) name = type_name(type, NULL); if (name == NULL) return NULL; - if (mod != NULL && PyUnicode_CompareWithASCIIString(mod, "__builtin__")) + if (mod != NULL && PyUnicode_CompareWithASCIIString(mod, "builtins")) rtn = PyUnicode_FromFormat("<%U.%U object at %p>", mod, name, self); else rtn = PyUnicode_FromFormat("<%s object at %p>", diff --git a/PC/bdist_wininst/install.c b/PC/bdist_wininst/install.c index 0ce2371..3f7d774 100644 --- a/PC/bdist_wininst/install.c +++ b/PC/bdist_wininst/install.c @@ -654,7 +654,7 @@ static int prepare_script_environment(HINSTANCE hPython) if (!Py_BuildValue || !PyArg_ParseTuple || !PyErr_Format) return 1; - mod = PyImport_ImportModule("__builtin__"); + mod = PyImport_ImportModule("builtins"); if (mod) { int i; g_PyExc_ValueError = PyObject_GetAttrString(mod, "ValueError"); diff --git a/PC/config.c b/PC/config.c index 63ff2c0..fee254a 100644 --- a/PC/config.c +++ b/PC/config.c @@ -143,7 +143,7 @@ struct _inittab _PyImport_Inittab[] = { /* These entries are here for sys.builtin_module_names */ {"__main__", NULL}, - {"__builtin__", NULL}, + {"builtins", NULL}, {"sys", NULL}, {"_types", init_types}, diff --git a/PC/os2emx/config.c b/PC/os2emx/config.c index 3524429..47378fd 100644 --- a/PC/os2emx/config.c +++ b/PC/os2emx/config.c @@ -156,7 +156,7 @@ struct _inittab _PyImport_Inittab[] = { /* These entries are here for sys.builtin_module_names */ {"__main__", NULL}, - {"__builtin__", NULL}, + {"builtins", NULL}, {"sys", NULL}, /* This lives in gcmodule.c */ diff --git a/PC/os2vacpp/config.c b/PC/os2vacpp/config.c index 62bb8b2..7be2b0b 100644 --- a/PC/os2vacpp/config.c +++ b/PC/os2vacpp/config.c @@ -94,7 +94,7 @@ struct _inittab _PyImport_Inittab[] = { /* These entries are here for sys.builtin_module_names */ {"__main__", NULL}, - {"__builtin__", NULL}, + {"builtins", NULL}, {"sys", NULL}, /* Sentinel */ diff --git a/Python/bltinmodule.c b/Python/bltinmodule.c index fb7e223..053e083 100644 --- a/Python/bltinmodule.c +++ b/Python/bltinmodule.c @@ -1851,7 +1851,7 @@ PyObject * _PyBuiltin_Init(void) { PyObject *mod, *dict, *debug; - mod = Py_InitModule4("__builtin__", builtin_methods, + mod = Py_InitModule4("builtins", builtin_methods, builtin_doc, (PyObject *)NULL, PYTHON_API_VERSION); if (mod == NULL) @@ -1859,7 +1859,7 @@ _PyBuiltin_Init(void) dict = PyModule_GetDict(mod); #ifdef Py_TRACE_REFS - /* __builtin__ exposes a number of statically allocated objects + /* "builtins" exposes a number of statically allocated objects * that, before this code was added in 2.3, never showed up in * the list of "all objects" maintained by Py_TRACE_REFS. As a * result, programs leaking references to None and False (etc) diff --git a/Python/errors.c b/Python/errors.c index 1cd5dfd..063187b 100644 --- a/Python/errors.c +++ b/Python/errors.c @@ -645,7 +645,7 @@ PyErr_WriteUnraisable(PyObject *obj) else { char* modstr = PyUnicode_AsString(moduleName); if (modstr && - strcmp(modstr, "__builtin__") != 0) + strcmp(modstr, "builtins") != 0) { PyFile_WriteString(modstr, f); PyFile_WriteString(".", f); diff --git a/Python/import.c b/Python/import.c index 1ea9297..419f3e9 100644 --- a/Python/import.c +++ b/Python/import.c @@ -400,11 +400,11 @@ PyImport_Cleanup(void) deleted *last* of all, they would come too late in the normal destruction order. Sigh. */ - value = PyDict_GetItemString(modules, "__builtin__"); + value = PyDict_GetItemString(modules, "builtins"); if (value != NULL && PyModule_Check(value)) { dict = PyModule_GetDict(value); if (Py_VerboseFlag) - PySys_WriteStderr("# clear __builtin__._\n"); + PySys_WriteStderr("# clear builtins._\n"); PyDict_SetItemString(dict, "_", Py_None); } value = PyDict_GetItemString(modules, "sys"); @@ -436,11 +436,11 @@ PyImport_Cleanup(void) PyDict_SetItemString(modules, "__main__", Py_None); } - /* The special treatment of __builtin__ here is because even + /* The special treatment of "builtins" here is because even when it's not referenced as a module, its dictionary is referenced by almost every module's __builtins__. Since deleting a module clears its dictionary (even if there are - references left to it), we need to delete the __builtin__ + references left to it), we need to delete the "builtins" module last. Likewise, we don't delete sys until the very end because it is implicitly referenced (e.g. by print). @@ -451,7 +451,7 @@ PyImport_Cleanup(void) re-imported. */ /* Next, repeatedly delete modules with a reference count of - one (skipping __builtin__ and sys) and delete them */ + one (skipping builtins and sys) and delete them */ do { ndone = 0; pos = 0; @@ -460,7 +460,7 @@ PyImport_Cleanup(void) continue; if (PyUnicode_Check(key) && PyModule_Check(value)) { name = PyUnicode_AsString(key); - if (strcmp(name, "__builtin__") == 0) + if (strcmp(name, "builtins") == 0) continue; if (strcmp(name, "sys") == 0) continue; @@ -474,12 +474,12 @@ PyImport_Cleanup(void) } } while (ndone > 0); - /* Next, delete all modules (still skipping __builtin__ and sys) */ + /* Next, delete all modules (still skipping builtins and sys) */ pos = 0; while (PyDict_Next(modules, &pos, &key, &value)) { if (PyUnicode_Check(key) && PyModule_Check(value)) { name = PyUnicode_AsString(key); - if (strcmp(name, "__builtin__") == 0) + if (strcmp(name, "builtins") == 0) continue; if (strcmp(name, "sys") == 0) continue; @@ -490,7 +490,7 @@ PyImport_Cleanup(void) } } - /* Next, delete sys and __builtin__ (in that order) */ + /* Next, delete sys and builtins (in that order) */ value = PyDict_GetItemString(modules, "sys"); if (value != NULL && PyModule_Check(value)) { if (Py_VerboseFlag) @@ -498,12 +498,12 @@ PyImport_Cleanup(void) _PyModule_Clear(value); PyDict_SetItemString(modules, "sys", Py_None); } - value = PyDict_GetItemString(modules, "__builtin__"); + value = PyDict_GetItemString(modules, "builtins"); if (value != NULL && PyModule_Check(value)) { if (Py_VerboseFlag) - PySys_WriteStderr("# cleanup __builtin__\n"); + PySys_WriteStderr("# cleanup builtins\n"); _PyModule_Clear(value); - PyDict_SetItemString(modules, "__builtin__", Py_None); + PyDict_SetItemString(modules, "builtins", Py_None); } /* Finally, clear and delete the modules directory */ @@ -2491,7 +2491,7 @@ PyImport_Import(PyObject *module_name) /* No globals -- use standard builtins, and fake globals */ PyErr_Clear(); - builtins = PyImport_ImportModuleLevel("__builtin__", + builtins = PyImport_ImportModuleLevel("builtins", NULL, NULL, NULL, 0); if (builtins == NULL) return NULL; diff --git a/Python/pythonrun.c b/Python/pythonrun.c index 08b0d83..d1a062b 100644 --- a/Python/pythonrun.c +++ b/Python/pythonrun.c @@ -211,7 +211,7 @@ Py_InitializeEx(int install_sigs) bimod = _PyBuiltin_Init(); if (bimod == NULL) - Py_FatalError("Py_Initialize: can't initialize __builtin__"); + Py_FatalError("Py_Initialize: can't initialize builtins modules"); interp->builtins = PyModule_GetDict(bimod); if (interp->builtins == NULL) Py_FatalError("Py_Initialize: can't initialize builtins dict"); @@ -243,7 +243,7 @@ Py_InitializeEx(int install_sigs) _PyImport_Init(); /* phase 2 of builtins */ - _PyImport_FixupExtension("__builtin__", "__builtin__"); + _PyImport_FixupExtension("builtins", "builtins"); _PyImportHooks_Init(); @@ -572,7 +572,7 @@ Py_NewInterpreter(void) interp->modules = PyDict_New(); interp->modules_reloading = PyDict_New(); - bimod = _PyImport_FindExtension("__builtin__", "__builtin__"); + bimod = _PyImport_FindExtension("builtins", "builtins"); if (bimod != NULL) { interp->builtins = PyModule_GetDict(bimod); if (interp->builtins == NULL) @@ -682,7 +682,7 @@ initmain(void) Py_FatalError("can't create __main__ module"); d = PyModule_GetDict(m); if (PyDict_GetItemString(d, "__builtins__") == NULL) { - PyObject *bimod = PyImport_ImportModule("__builtin__"); + PyObject *bimod = PyImport_ImportModule("builtins"); if (bimod == NULL || PyDict_SetItemString(d, "__builtins__", bimod) != 0) Py_FatalError("can't add __builtins__ to __main__"); @@ -717,7 +717,7 @@ initsite(void) } } -/* Initialize sys.stdin, stdout, stderr and __builtin__.open */ +/* Initialize sys.stdin, stdout, stderr and builtins.open */ static int initstdio(void) { @@ -739,7 +739,7 @@ initstdio(void) } Py_DECREF(m); - if (!(bimod = PyImport_ImportModule("__builtin__"))) { + if (!(bimod = PyImport_ImportModule("builtins"))) { goto error; } @@ -750,7 +750,7 @@ initstdio(void) goto error; } - /* Set __builtin__.open */ + /* Set builtins.open */ if (PyObject_SetAttrString(bimod, "open", wrapper) == -1) { goto error; } @@ -1362,7 +1362,7 @@ PyErr_Display(PyObject *exception, PyObject *value, PyObject *tb) } else { char* modstr = PyUnicode_AsString(moduleName); - if (modstr && strcmp(modstr, "__builtin__")) + if (modstr && strcmp(modstr, "builtins")) { err = PyFile_WriteString(modstr, f); err += PyFile_WriteString(".", f); diff --git a/Python/sysmodule.c b/Python/sysmodule.c index 6f68e00..e793707 100644 --- a/Python/sysmodule.c +++ b/Python/sysmodule.c @@ -72,10 +72,10 @@ sys_displayhook(PyObject *self, PyObject *o) PyObject *outf; PyInterpreterState *interp = PyThreadState_GET()->interp; PyObject *modules = interp->modules; - PyObject *builtins = PyDict_GetItemString(modules, "__builtin__"); + PyObject *builtins = PyDict_GetItemString(modules, "builtins"); if (builtins == NULL) { - PyErr_SetString(PyExc_RuntimeError, "lost __builtin__"); + PyErr_SetString(PyExc_RuntimeError, "lost builtins module"); return NULL; } @@ -106,7 +106,7 @@ sys_displayhook(PyObject *self, PyObject *o) PyDoc_STRVAR(displayhook_doc, "displayhook(object) -> None\n" "\n" -"Print an object to sys.stdout and also save it in __builtin__.\n" +"Print an object to sys.stdout and also save it in builtins.\n" ); static PyObject * @@ -896,7 +896,7 @@ __excepthook__ -- the original excepthook; don't touch!\n\ \n\ Functions:\n\ \n\ -displayhook() -- print an object to the screen, and save it in __builtin__._\n\ +displayhook() -- print an object to the screen, and save it in builtins._\n\ excepthook() -- print an exception and its traceback to sys.stderr\n\ exc_info() -- return thread-safe information about the current exception\n\ exit() -- exit the interpreter by raising SystemExit\n\ diff --git a/Tools/freeze/makeconfig.py b/Tools/freeze/makeconfig.py index 0bf8756..e2a181c 100644 --- a/Tools/freeze/makeconfig.py +++ b/Tools/freeze/makeconfig.py @@ -3,7 +3,7 @@ import re # Write the config.c file -never = ['marshal', '__main__', '__builtin__', 'sys', 'exceptions'] +never = ['marshal', '__main__', 'builtins', 'sys', 'exceptions'] def makeconfig(infp, outfp, modules, with_ifdef=0): m1 = re.compile('-- ADDMODULE MARKER 1 --') -- cgit v0.12