File: //opt/alt/python27/lib/python2.7/site-packages/future/types/newdict.pyo
�
�A�[c           @   s�   d  Z  d d l Z d d l m Z d d l m Z e Z e j d  Z	 d e
 f d �  �  YZ d e e e � f d	 �  �  YZ d g Z
 d S(
   s�  
A dict subclass for Python 2 that behaves like Python 3's dict
Example use:
>>> from builtins import dict
>>> d1 = dict()    # instead of {} for an empty dict
>>> d2 = dict(key1='value1', key2='value2')
The keys, values and items methods now return iterators on Python 2.x
(with set-like behaviour on Python 2.7).
>>> for d in (d1, d2):
...     assert not isinstance(d.keys(), list)
...     assert not isinstance(d.values(), list)
...     assert not isinstance(d.items(), list)
i����N(   t   with_metaclass(   t	   newobjecti   t   BaseNewDictc           B   s   e  Z d  �  Z RS(   c         C   s-   |  t  k r t | t � St | j |  � Sd  S(   N(   t   newdictt
   isinstancet
   _builtin_dictt
   issubclasst	   __class__(   t   clst   instance(    (    sE   /opt/alt/python27/lib/python2.7/site-packages/future/types/newdict.pyt   __instancecheck__   s    
(   t   __name__t
   __module__R
   (    (    (    sE   /opt/alt/python27/lib/python2.7/site-packages/future/types/newdict.pyR      s   R   c           B   s;   e  Z d  Z d �  Z d �  Z d �  Z d �  Z d �  Z RS(   s7   
    A backport of the Python 3 dict object to Py2
    c         C   sF   t  d k r |  j �  St  d k r, |  j �  St  d	 k rB |  j �  Sd S(
   s�   
        On Python 2.7+:
            D.items() -> a set-like object providing a view on D's items
        On Python 2.6:
            D.items() -> an iterator over D's items
        i   i   i   i   i    N(   i   i   (   i   i   (   i   i    (   t   vert	   viewitemst	   iteritemst   items(   t   self(    (    sE   /opt/alt/python27/lib/python2.7/site-packages/future/types/newdict.pyR   )   s    
c         C   sF   t  d k r |  j �  St  d k r, |  j �  St  d	 k rB |  j �  Sd S(
   s�   
        On Python 2.7+:
            D.keys() -> a set-like object providing a view on D's keys
        On Python 2.6:
            D.keys() -> an iterator over D's keys
        i   i   i   i   i    N(   i   i   (   i   i   (   i   i    (   R
   t   viewkeyst   iterkeyst   keys(   R   (    (    sE   /opt/alt/python27/lib/python2.7/site-packages/future/types/newdict.pyR   7   s    
c         C   sF   t  d k r |  j �  St  d k r, |  j �  St  d	 k rB |  j �  Sd S(
   s�   
        On Python 2.7+:
            D.values() -> a set-like object providing a view on D's values
        On Python 2.6:
            D.values() -> an iterator over D's values
        i   i   i   i   i    N(   i   i   (   i   i   (   i   i    (   R
   t
   viewvaluest
   itervaluest   values(   R   (    (    sE   /opt/alt/python27/lib/python2.7/site-packages/future/types/newdict.pyR   E   s    
c         O   sn   t  | � d k r( t t |  � j |  � St | d � t k rK | d } n
 | d } t t |  � j |  | � S(   s�  
        dict() -> new empty dictionary
        dict(mapping) -> new dictionary initialized from a mapping object's
            (key, value) pairs
        dict(iterable) -> new dictionary initialized as if via:
            d = {}
            for k, v in iterable:
                d[k] = v
        dict(**kwargs) -> new dictionary initialized with the name=value pairs
            in the keyword argument list.  For example:  dict(one=1, two=2)
        i    (   t   lent   superR   t   __new__t   type(   R   t   argst   kwargst   value(    (    sE   /opt/alt/python27/lib/python2.7/site-packages/future/types/newdict.pyR   S   s    
c         C   s
   t  |  � S(   s=   
        Hook for the future.utils.native() function
        (   t   dict(   R   (    (    sE   /opt/alt/python27/lib/python2.7/site-packages/future/types/newdict.pyt
   __native__h   s    (   R   R   t   __doc__R   R   R   R   R    (    (    (    sE   /opt/alt/python27/lib/python2.7/site-packages/future/types/newdict.pyR   %   s   				(   R!   t   syst   future.utilsR    t   future.types.newobjectR   R   R   t   version_infoR
   R   R   R   t   __all__(    (    (    sE   /opt/alt/python27/lib/python2.7/site-packages/future/types/newdict.pyt   <module>   s   
J