
    d                        d Z ddlmZ ej        r^ddlmZ ddlmZmZm	Z	 ddl
mZmZ ddl
Z
e
j        ZeZddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddl m!Z!  e"            Z#e#fdZg dZ$dS ddl%Z%e%j        Ze%j        Ze%j	        Z	e%j        Ze%j        Ze%j        Ze%j        Ze%j        Ze%j        Ze%j        Ze%j        Zej&        re%j        Ze%j        Zg Z$dS dd
lmZ ddlmZ ddgZ$dS )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)newintc                    t          | t                    rt          |           } t          |t                    rt          |          }t          |t                    rt          |          }	 |t          k    rt	          | |          S t	          | ||          S # t
          $ r7 |t          k    rt	          | dz   |          cY S t	          | dz   ||          cY S w xY w)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zs      4lib/python3.11/site-packages/future/builtins/misc.pyr	   r	   F   s     a   	QAa   	QAa   	QA		0I~ -#Aq)))#Aq!,,, 	0 	0 	0I~ 0#AbD!,,,,,#AbD!Q/////		0s   .B 	B (CCC)r   chrr   inputr   nextr   r   r	   roundsupermaxminr    r   )'__doc__futurer   PY2ior   future_builtinsr   r   r   __builtin__r   r   r	   r   r   	raw_inputr   future.builtins.newnextr
   r   future.builtins.newroundr   r   future.builtins.newsuperr   r   future.builtins.new_min_maxr   r   r   r    future.types.newintr   objectr   __all__builtins	PY34_PLUS     r   <module>r3      s  & &P       	9 P!//////////>>>>>>>> 'J E777777::::::::::::999999999999******I 0 0 0 0<> > >GGG OOONE
,C
,CNE=D$J
,C=D
,CNENE !ll============%.r2   