????

Your IP : 3.16.130.230


Current Path : /proc/self/root/lib/python3.6/site-packages/future/builtins/__pycache__/
Upload File :
Current File : //proc/self/root/lib/python3.6/site-packages/future/builtins/__pycache__/misc.cpython-36.pyc

3

�c��
@sZdZddlmZejr�ddlmZddlmZmZm	Z	ddl
mZm
Zddl
Z
e
jZeZddlmZddlmZdd	lmZdd
lmZddlmZddl m!Z!e"�Z#e#fd
d�Z
dddddddddddddg
Z$n�ddl%Z%e%jZe%jZe%j	Z	e%jZe%jZe%jZe%jZe%jZe%j
Z
e%jZe%jZej&�r6e%jZe%jZgZ$n dd
lmZddlmZddgZ$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�rt|�}t|t�r$t|�}t|t�r6t|�}y"|tkrJt||�St|||�SWn:tk
r�|tkr~t|d|�St|d||�SYnXdS)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).
        yN)�
isinstancerZlong�	_SENTINEL�_builtin_pow�
ValueError)�x�y�z�r�/usr/lib/python3.6/misc.pyrFs



rr�chrr�inputr�nextrr�round�super�max�min)'�__doc__ZfuturerZPY2�iorZfuture_builtinsrrrZ__builtin__rrrrrZ	raw_inputrZfuture.builtins.newnextr	rZfuture.builtins.newroundr
rZfuture.builtins.newsuperrrZfuture.builtins.new_min_maxrrr
rZfuture.types.newintr�objectr�__all__�builtinsZ	PY34_PLUSrrrr�<module>'sJ