Title: Why is __builtins__ a dict instead of a module in bpython · Issue #877 · bpython/bpython · GitHub
Open Graph Title: Why is __builtins__ a dict instead of a module in bpython · Issue #877 · bpython/bpython
X Title: Why is __builtins__ a dict instead of a module in bpython · Issue #877 · bpython/bpython
Description: I noticed the type of builtins is a dict in bpython, where it is a module in Python. This means calling __builtins__, type(__builtins__) and dir(__builtins__) gives a completely different behavior. Does anyone know why it is implemented ...
Open Graph Description: I noticed the type of builtins is a dict in bpython, where it is a module in Python. This means calling __builtins__, type(__builtins__) and dir(__builtins__) gives a completely different behavior....
X Description: I noticed the type of builtins is a dict in bpython, where it is a module in Python. This means calling __builtins__, type(__builtins__) and dir(__builtins__) gives a completely different behavior....
Opengraph URL: https://github.com/bpython/bpython/issues/877
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Why is __builtins__ a dict instead of a module in bpython","articleBody":"I noticed the type of __builtins__ is a dict in bpython, where it is a module in Python. This means calling `__builtins__`, `type(__builtins__)` and `dir(__builtins__)` gives a completely different behavior.\r\n\r\nDoes anyone know why it is implemented like this in bpython?\r\n\r\npython:\r\n\r\n```python-console\r\n\u003e\u003e\u003e __builtins__\r\n\u003cmodule 'builtins' (built-in)\u003e\r\n\u003e\u003e\u003e type(__builtins__)\r\n\u003cclass 'module'\u003e\r\n\u003e\u003e\u003e dir(__builtins__)\r\n['ArithmeticError', 'AssertionError', 'AttributeError', 'BaseException', 'BlockingIOError', 'BrokenPipeError', 'BufferError', 'BytesWarning', 'ChildProcessError', 'ConnectionAbortedError', 'ConnectionError', 'ConnectionRefusedError', 'ConnectionResetError', 'DeprecationWarning', 'EOFError', 'Ellipsis', 'EnvironmentError', 'Exception', 'False', 'FileExistsError', 'FileNotFoundError', 'FloatingPointError', 'FutureWarning', 'GeneratorExit', 'IOError', 'ImportError', 'ImportWarning', 'IndentationError', 'IndexError', 'InterruptedError', 'IsADirectoryError', 'KeyError', 'KeyboardInterrupt', 'LookupError', 'MemoryError', 'ModuleNotFoundError', 'NameError', 'None', 'NotADirectoryError', 'NotImplemented', 'NotImplementedError', 'OSError', 'OverflowError', 'PendingDeprecationWarning', 'PermissionError', 'ProcessLookupError', 'RecursionError', 'ReferenceError', 'ResourceWarning', 'RuntimeError', 'RuntimeWarning', 'StopAsyncIteration', 'StopIteration', 'SyntaxError', 'SyntaxWarning', 'SystemError', 'SystemExit', 'TabError', 'TimeoutError', 'True', 'TypeError', 'UnboundLocalError', 'UnicodeDecodeError', 'UnicodeEncodeError', 'UnicodeError', 'UnicodeTranslateError', 'UnicodeWarning', 'UserWarning', 'ValueError', 'Warning', 'ZeroDivisionError', '_', '__build_class__', '__debug__', '__doc__', '__import__', '__loader__', '__name__', '__package__', '__spec__', 'abs', 'all', 'any', 'ascii', 'bin', 'bool', 'breakpoint', 'bytearray', 'bytes', 'callable', 'chr', 'classmethod', 'compile', 'complex', 'copyright', 'credits', 'delattr', 'dict', 'dir', 'divmod', 'enumerate', 'eval', 'exec', 'exit', 'filter', 'float', 'format', 'frozenset', 'getattr', 'globals', 'hasattr', 'hash', 'help', 'hex', 'id', 'input', 'int', 'isinstance', 'issubclass', 'iter', 'len', 'license', 'list', 'locals', 'map', 'max', 'memoryview', 'min', 'next', 'object', 'oct', 'open', 'ord', 'pow', 'print', 'property', 'quit', 'range', 'repr', 'reversed', 'round', 'set', 'setattr', 'slice', 'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple', 'type', 'vars', 'zip']\r\n```\r\n\r\nbpython:\r\n\r\n```python-console\r\n\u003e\u003e\u003e __builtins__\r\n{'__name__': 'builtins', '__doc__': \"Built-in functions, exceptions, and other objects.\\n\\nNoteworthy: None is the `nil' object; Ellipsis represents `...' in slices.\", '__package__': '', '__loader__': \u003cclas\r\ns '_frozen_importlib.BuiltinImporter'\u003e, '__spec__': ModuleSpec(name='builtins', loader=\u003cclass '_frozen_importlib.BuiltinImporter'\u003e, origin='built-in'), '__build_class__': \u003cbuilt-in function __build_class__\u003e\r\n, '__import__': \u003cbuilt-in function __import__\u003e, 'abs': \u003cbuilt-in function abs\u003e, 'all': \u003cbuilt-in function all\u003e, 'any': \u003cbuilt-in function any\u003e, 'ascii': \u003cbuilt-in function ascii\u003e, 'bin': \u003cbuilt-in function \r\nbin\u003e, 'breakpoint': \u003cbuilt-in function breakpoint\u003e, 'callable': \u003cbuilt-in function callable\u003e, 'chr': \u003cbuilt-in function chr\u003e, 'compile': \u003cbuilt-in function compile\u003e, 'delattr': \u003cbuilt-in function delattr\u003e, \r\n'dir': \u003cbuilt-in function dir\u003e, 'divmod': \u003cbuilt-in function divmod\u003e, 'eval': \u003cbuilt-in function eval\u003e, 'exec': \u003cbuilt-in function exec\u003e, 'format': \u003cbuilt-in function format\u003e, 'getattr': \u003cbuilt-in function \r\ngetattr\u003e, 'globals': \u003cbuilt-in function globals\u003e, 'hasattr': \u003cbuilt-in function hasattr\u003e, 'hash': \u003cbuilt-in function hash\u003e, 'hex': \u003cbuilt-in function hex\u003e, 'id': \u003cbuilt-in function id\u003e, 'input': \u003cbuilt-in f\r\nunction input\u003e, 'isinstance': \u003cbuilt-in function isinstance\u003e, 'issubclass': \u003cbuilt-in function issubclass\u003e, 'iter': \u003cbuilt-in function iter\u003e, 'len': \u003cbuilt-in function len\u003e, 'locals': \u003cbuilt-in function loc\r\nals\u003e, 'max': \u003cbuilt-in function max\u003e, 'min': \u003cbuilt-in function min\u003e, 'next': \u003cbuilt-in function next\u003e, 'oct': \u003cbuilt-in function oct\u003e, 'ord': \u003cbuilt-in function ord\u003e, 'pow': \u003cbuilt-in function pow\u003e, 'print\r\n': \u003cbuilt-in function print\u003e, 'repr': \u003cbuilt-in function repr\u003e, 'round': \u003cbuilt-in function round\u003e, 'setattr': \u003cbuilt-in function setattr\u003e, 'sorted': \u003cbuilt-in function sorted\u003e, 'sum': \u003cbuilt-in function su\r\nm\u003e, 'vars': \u003cbuilt-in function vars\u003e, 'None': None, 'Ellipsis': Ellipsis, 'NotImplemented': NotImplemented, 'False': False, 'True': True, 'bool': \u003cclass 'bool'\u003e, 'memoryview': \u003cclass 'memoryview'\u003e, 'bytearr\r\nay': \u003cclass 'bytearray'\u003e, 'bytes': \u003cclass 'bytes'\u003e, 'classmethod': \u003cclass 'classmethod'\u003e, 'complex': \u003cclass 'complex'\u003e, 'dict': \u003cclass 'dict'\u003e, 'enumerate': \u003cclass 'enumerate'\u003e, 'filter': \u003cclass 'filter'\u003e, \r\n'float': \u003cclass 'float'\u003e, 'frozenset': \u003cclass 'frozenset'\u003e, 'property': \u003cclass 'property'\u003e, 'int': \u003cclass 'int'\u003e, 'list': \u003cclass 'list'\u003e, 'map': \u003cclass 'map'\u003e, 'object': \u003cclass 'object'\u003e, 'range': \u003cclass 'r\r\nange'\u003e, 'reversed': \u003cclass 'reversed'\u003e, 'set': \u003cclass 'set'\u003e, 'slice': \u003cclass 'slice'\u003e, 'staticmethod': \u003cclass 'staticmethod'\u003e, 'str': \u003cclass 'str'\u003e, 'super': \u003cclass 'super'\u003e, 'tuple': \u003cclass 'tuple'\u003e, 'typ\r\ne': \u003cclass 'type'\u003e, 'zip': \u003cclass 'zip'\u003e, '__debug__': True, 'BaseException': \u003cclass 'BaseException'\u003e, 'Exception': \u003cclass 'Exception'\u003e, 'TypeError': \u003cclass 'TypeError'\u003e, 'StopAsyncIteration': \u003cclass 'StopA\r\nsyncIteration'\u003e, 'StopIteration': \u003cclass 'StopIteration'\u003e, 'GeneratorExit': \u003cclass 'GeneratorExit'\u003e, 'SystemExit': \u003cclass 'SystemExit'\u003e, 'KeyboardInterrupt': \u003cclass 'KeyboardInterrupt'\u003e, 'ImportError': \u003ccla\r\nss 'ImportError'\u003e, 'ModuleNotFoundError': \u003cclass 'ModuleNotFoundError'\u003e, 'OSError': \u003cclass 'OSError'\u003e, 'EnvironmentError': \u003cclass 'OSError'\u003e, 'IOError': \u003cclass 'OSError'\u003e, 'EOFError': \u003cclass 'EOFError'\u003e, 'R\r\nuntimeError': \u003cclass 'RuntimeError'\u003e, 'RecursionError': \u003cclass 'RecursionError'\u003e, 'NotImplementedError': \u003cclass 'NotImplementedError'\u003e, 'NameError': \u003cclass 'NameError'\u003e, 'UnboundLocalError': \u003cclass 'Unbound\r\nLocalError'\u003e, 'AttributeError': \u003cclass 'AttributeError'\u003e, 'SyntaxError': \u003cclass 'SyntaxError'\u003e, 'IndentationError': \u003cclass 'IndentationError'\u003e, 'TabError': \u003cclass 'TabError'\u003e, 'LookupError': \u003cclass 'LookupE\r\nrror'\u003e, 'IndexError': \u003cclass 'IndexError'\u003e, 'KeyError': \u003cclass 'KeyError'\u003e, 'ValueError': \u003cclass 'ValueError'\u003e, 'UnicodeError': \u003cclass 'UnicodeError'\u003e, 'UnicodeEncodeError': \u003cclass 'UnicodeEncodeError'\u003e, 'U\r\nnicodeDecodeError': \u003cclass 'UnicodeDecodeError'\u003e, 'UnicodeTranslateError': \u003cclass 'UnicodeTranslateError'\u003e, 'AssertionError': \u003cclass 'AssertionError'\u003e, 'ArithmeticError': \u003cclass 'ArithmeticError'\u003e, 'Floatin\r\ngPointError': \u003cclass 'FloatingPointError'\u003e, 'OverflowError': \u003cclass 'OverflowError'\u003e, 'ZeroDivisionError': \u003cclass 'ZeroDivisionError'\u003e, 'SystemError': \u003cclass 'SystemError'\u003e, 'ReferenceError': \u003cclass 'Refere\r\nnceError'\u003e, 'MemoryError': \u003cclass 'MemoryError'\u003e, 'BufferError': \u003cclass 'BufferError'\u003e, 'Warning': \u003cclass 'Warning'\u003e, 'UserWarning': \u003cclass 'UserWarning'\u003e, 'DeprecationWarning': \u003cclass 'DeprecationWarning'\u003e\r\n, 'PendingDeprecationWarning': \u003cclass 'PendingDeprecationWarning'\u003e, 'SyntaxWarning': \u003cclass 'SyntaxWarning'\u003e, 'RuntimeWarning': \u003cclass 'RuntimeWarning'\u003e, 'FutureWarning': \u003cclass 'FutureWarning'\u003e, 'ImportWar\r\nning': \u003cclass 'ImportWarning'\u003e, 'UnicodeWarning': \u003cclass 'UnicodeWarning'\u003e, 'BytesWarning': \u003cclass 'BytesWarning'\u003e, 'ResourceWarning': \u003cclass 'ResourceWarning'\u003e, 'ConnectionError': \u003cclass 'ConnectionError'\u003e\r\n, 'BlockingIOError': \u003cclass 'BlockingIOError'\u003e, 'BrokenPipeError': \u003cclass 'BrokenPipeError'\u003e, 'ChildProcessError': \u003cclass 'ChildProcessError'\u003e, 'ConnectionAbortedError': \u003cclass 'ConnectionAbortedError'\u003e, 'C\r\nonnectionRefusedError': \u003cclass 'ConnectionRefusedError'\u003e, 'ConnectionResetError': \u003cclass 'ConnectionResetError'\u003e, 'FileExistsError': \u003cclass 'FileExistsError'\u003e, 'FileNotFoundError': \u003cclass 'FileNotFoundError\r\n'\u003e, 'IsADirectoryError': \u003cclass 'IsADirectoryError'\u003e, 'NotADirectoryError': \u003cclass 'NotADirectoryError'\u003e, 'InterruptedError': \u003cclass 'InterruptedError'\u003e, 'PermissionError': \u003cclass 'PermissionError'\u003e, 'Proce\r\nssLookupError': \u003cclass 'ProcessLookupError'\u003e, 'TimeoutError': \u003cclass 'TimeoutError'\u003e, 'open': \u003cbuilt-in function open\u003e, 'quit': Use quit() or Ctrl-D (i.e. EOF) to exit, 'exit': Use exit() or Ctrl-D (i.e. EO\r\nF) to exit, 'copyright': Copyright (c) 2001-2020 Python Software Foundation.\r\nAll Rights Reserved.\r\n\r\nCopyright (c) 2000 BeOpen.com.\r\nAll Rights Reserved.\r\n\r\nCopyright (c) 1995-2001 Corporation for National Research Initiatives.\r\nAll Rights Reserved.\r\n\r\nCopyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam.\r\nAll Rights Reserved., 'credits': Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands\r\n for supporting Python development. See www.python.org for more information., 'license': Type license() to see the full license text, 'help': Type help() for interactive help, or help(object) for help a\r\nbout object., '_': None}\r\n\u003e\u003e\u003e type(__builtins__)\r\n\u003cclass 'dict'\u003e\r\n\u003e\u003e\u003e dir(__builtins__)\r\n['__class__', '__class_getitem__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', \r\n'__init_subclass__', '__ior__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__or__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__ror__', '__setattr__', '__setitem__', \r\n'__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']\r\n```","author":{"url":"https://github.com/johanvergeer","@type":"Person","name":"johanvergeer"},"datePublished":"2021-01-17T10:16:25.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":3},"url":"https://github.com/877/bpython/issues/877"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:7d0ea2d3-01ec-59bc-7f1f-54fcf8663191 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | 8A1E:82771:35A71E:4B01DB:6967B555 |
| html-safe-nonce | 3f67b9a386a786d167af66fd67f00e6c2b8953863e0d43711a3fdd799ca7d347 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI4QTFFOjgyNzcxOjM1QTcxRTo0QjAxREI6Njk2N0I1NTUiLCJ2aXNpdG9yX2lkIjoiMzU5NTI0NzMxOTE0NjU0MjQyMSIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | f06f0c3d41aab53a3971c91c29384bc7d46d86ccc8021960470684c654550af7 |
| hovercard-subject-tag | issue:787674041 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/bpython/bpython/877/issue_layout |
| twitter:image | https://opengraph.githubassets.com/29803b041d9b6c21671dbcf6eef38826de399321d011cd58fe1359e7edee109e/bpython/bpython/issues/877 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/29803b041d9b6c21671dbcf6eef38826de399321d011cd58fe1359e7edee109e/bpython/bpython/issues/877 |
| og:image:alt | I noticed the type of builtins is a dict in bpython, where it is a module in Python. This means calling __builtins__, type(__builtins__) and dir(__builtins__) gives a completely different behavior.... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | johanvergeer |
| hostname | github.com |
| expected-hostname | github.com |
| None | 37da06d3fa5ba7066617a4c272eb762a5700bb51ed1d3c3afe3953d910fc4711 |
| turbo-cache-control | no-preview |
| go-import | github.com/bpython/bpython git https://github.com/bpython/bpython.git |
| octolytics-dimension-user_id | 8071396 |
| octolytics-dimension-user_login | bpython |
| octolytics-dimension-repository_id | 21508865 |
| octolytics-dimension-repository_nwo | bpython/bpython |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 21508865 |
| octolytics-dimension-repository_network_root_nwo | bpython/bpython |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 15f3a28e84b7c548701bed51bc22fa9980e9446f |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width