o ,º]Æã@sFdZddlmZejr_ddlmZddlmZmZm Z ddl m Z m Zddl Z e jZeZddlmZddlmZdd lmZdd lmZdd lmZdd l m!Z!e"ƒZ#e#fd d„Z gd¢Z$dSddl%Z%e%jZe%j Z e%j Z e%jZe%jZe%jZe%jZe%jZe%j Z e%jZe%jZej&r‘e%jZe%jZgZ$dSdd lmZdd lmZddgZ$dS)a‚ A module that brings in equivalents of various modified Python 3 builtins into Py2. Has no effect on Py3. The builtin functions are: - ``ascii`` (from Py2's future_builtins module) - ``hex`` (from Py2's future_builtins module) - ``oct`` (from Py2's future_builtins module) - ``chr`` (equivalent to ``unichr`` on Py2) - ``input`` (equivalent to ``raw_input`` on Py2) - ``next`` (calls ``__next__`` if it exists, else ``next`` method) - ``open`` (equivalent to io.open on Py2) - ``super`` (backport of Py3's magic zero-argument super() function - ``round`` (new "Banker's Rounding" behaviour from Py3) - ``max`` (new default option from Py3.4) - ``min`` (new default option from Py3.4) ``isinstance`` is also currently exported for backwards compatibility with v0.8.2, although this has been deprecated since v0.9. input() ------- Like the new ``input()`` function from Python 3 (without eval()), except that it returns bytes. Equivalent to Python 2's ``raw_input()``. Warning: By default, importing this module *removes* the old Python 2 input() function entirely from ``__builtin__`` for safety. This is because forgetting to import the new ``input`` from ``future`` might otherwise lead to a security vulnerability (shell injection) on Python 2. To restore it, you can retrieve it yourself from ``__builtin__._old_input``. Fortunately, ``input()`` seems to be seldom used in the wild in Python 2... é)Úutils)Úopen)ÚasciiÚoctÚhex)ÚunichrÚpowN)Únewnext)Únewround)Únewsuper)Únewmax)Únewmin)ÚnewintcCs–t|tƒr t|ƒ}t|tƒrt|ƒ}t|tƒrt|ƒ}z|tkr&t||ƒWSt|||ƒWStyJ|tkr@t|d|ƒYSt|d||ƒYSw)z¿ pow(x, y[, z]) -> number With two arguments, equivalent to x**y. With three arguments, equivalent to (x**y) % z, but may be more efficient (e.g. for ints). y)Ú isinstancerÚlongÚ _SENTINELÚ _builtin_powÚ ValueError)ÚxÚyÚz©rú6/usr/lib/python3/dist-packages/future/builtins/misc.pyrFs     ür) rÚchrrÚinputrÚnextrrrÚroundÚsuperÚmaxÚminrr)'Ú__doc__ÚfuturerÚPY2ÚiorÚfuture_builtinsrrrÚ __builtin__rrrrrÚ raw_inputrÚfuture.builtins.newnextr rÚfuture.builtins.newroundr rÚfuture.builtins.newsuperr rÚfuture.builtins.new_min_maxr rr rÚfuture.types.newintrÚobjectrÚ__all__ÚbuiltinsÚ PY34_PLUSrrrrÚsJ (