Commits

Armin Rigo  committed 7bdfe7c

Implement the module future_builtins at app-level.

  • Participants
  • Parent commits 3b4edc3
  • Branches fast-forward

Comments (0)

Files changed (1)

File lib_pypy/future_builtins.py

+"""This module provides functions that will be builtins in Python 3.0,
+but that conflict with builtins that already exist in Python 2.x.
+
+Functions:
+
+hex(arg) -- Returns the hexadecimal representation of an integer
+oct(arg) -- Returns the octal representation of an integer
+ascii(arg) -- Same as repr(arg)
+map, filter, zip -- Same as itertools.imap, ifilter, izip
+
+The typical usage of this module is to replace existing builtins in a
+module's namespace:
+
+from future_builtins import hex, oct
+"""
+
+__all__ = ['hex', 'oct', 'ascii', 'map', 'filter', 'zip']
+
+from itertools import imap as map, ifilter as filter, izip as zip
+
+ascii = repr
+_builtin_hex = hex
+_builtin_oct = oct
+
+def hex(arg):
+    return _builtin_hex(arg).rstrip('L')
+
+def oct(arg):
+    result = _builtin_oct(arg).rstrip('L')
+    if result == '0':
+        return '0o0'
+    i = result.index('0') + 1
+    return result[:i] + 'o' + result[i:]