ó
'![c           @   sT  d  Z  d d l m Z d d l m Z d d l m Z d Z d e	 f d „  ƒ  YZ
 d e	 f d	 „  ƒ  YZ d
 „  Z d „  Z d e f d „  ƒ  YZ d e e ƒ f d „  ƒ  YZ d e	 f d „  ƒ  YZ d d Z Z d" \ Z Z e d d g ƒ \ Z Z i d d 6d d 6\ Z Z d \ Z Z e
 ƒ  \ Z Z e ƒ  \ Z Z d „  e d ƒ Dƒ \ Z Z e ƒ  \ Z Z e ƒ  \ Z Z e \ Z Z d e	 f d „  ƒ  YZ e ƒ  \ Z Z e \ Z Z d \ Z Z d \ Z Z e \ Z Z e ƒ  \ Z Z e \ Z Z d e	 f d „  ƒ  YZ d e	 f d „  ƒ  YZ d e f d „  ƒ  YZ d d l Z d  „  Z d d! „ Z d S(#   s.   Check unpacking non-sequences in assignments. iÿÿÿÿ(   t   rename(   t   with_metaclass(   t   nonseqi    t   Seqc           B   s)   e  Z d  Z d „  Z d „  Z d „  Z RS(   s
    sequence c         C   s   t  d ƒ |  _ d  S(   Ni   (   t   ranget   items(   t   self(    (    sL   lib/python2.7/site-packages/pylint/test/functional/unpacking_non_sequence.pyt   __init__   s    c         C   s   |  j  | S(   N(   R   (   R   t   item(    (    sL   lib/python2.7/site-packages/pylint/test/functional/unpacking_non_sequence.pyt   __getitem__   s    c         C   s   t  |  j ƒ S(   N(   t   lenR   (   R   (    (    sL   lib/python2.7/site-packages/pylint/test/functional/unpacking_non_sequence.pyt   __len__   s    (   t   __name__t
   __module__t   __doc__R   R	   R   (    (    (    sL   lib/python2.7/site-packages/pylint/test/functional/unpacking_non_sequence.pyR      s   		t   Iterc           B   s   e  Z d  Z d „  Z RS(   s
    Iterator c         c   s    x t  d ƒ D] } | Vq Wd  S(   Ni   (   R   (   R   t   number(    (    sL   lib/python2.7/site-packages/pylint/test/functional/unpacking_non_sequence.pyt   __iter__   s    (   R   R   R   R   (    (    (    sL   lib/python2.7/site-packages/pylint/test/functional/unpacking_non_sequence.pyR      s   c           C   s   t  r d d g Sd Sd S(   s    returns should be unpackable i   i   i   i   N(   i   i   (   t   True(    (    (    sL   lib/python2.7/site-packages/pylint/test/functional/unpacking_non_sequence.pyt   good_unpacking   s    
c           C   s   t  ƒ  S(   s    returns should be unpackable (   R   (    (    (    sL   lib/python2.7/site-packages/pylint/test/functional/unpacking_non_sequence.pyt   good_unpacking2%   s    t   MetaIterc           B   s   e  Z d  Z d „  Z RS(   s2   metaclass that makes classes that use it iterablesc         C   s
   t  d ƒ S(   Ni   i   (   i   i   (   t   iter(   t   cls(    (    sL   lib/python2.7/site-packages/pylint/test/functional/unpacking_non_sequence.pyR   +   s    (   R   R   R   R   (    (    (    sL   lib/python2.7/site-packages/pylint/test/functional/unpacking_non_sequence.pyR   )   s   t	   IterClassc           B   s   e  Z d  Z RS(   s'   class that is iterable (and unpackable)(   R   R   R   (    (    (    sL   lib/python2.7/site-packages/pylint/test/functional/unpacking_non_sequence.pyR   .   s   t
   AbstrClassc           B   s&   e  Z d  Z d Z d „  Z d „  Z RS(   s   abstract classc         C   s
   t  ‚ d S(   s   abstract methodN(   t   NotImplementedError(   R   (    (    sL   lib/python2.7/site-packages/pylint/test/functional/unpacking_non_sequence.pyt
   setup_pair5   s    c         C   s   |  j  ƒ  |  j \ } } d S(   s:   error should not be emitted because setup_pair is abstractN(   R   t   pair(   R   t   xt   y(    (    sL   lib/python2.7/site-packages/pylint/test/functional/unpacking_non_sequence.pyR   9   s    
N(   R   R   R   t   NoneR   R   R   (    (    (    sL   lib/python2.7/site-packages/pylint/test/functional/unpacking_non_sequence.pyR   1   s   	i   i   i   t   xyc         c   s   |  ] } | Vq d  S(   N(    (   t   .0R   (    (    sL   lib/python2.7/site-packages/pylint/test/functional/unpacking_non_sequence.pys	   <genexpr>E   s    t   NonSeqc           B   s   e  Z d  Z RS(   s    does nothing (   R   R   R   (    (    (    sL   lib/python2.7/site-packages/pylint/test/functional/unpacking_non_sequence.pyR"   K   s   t   ClassUnpackingc           B   s   e  Z d  Z d „  Z RS(   s)    Check unpacking as instance attributes. c         C   s´   d \ |  _  |  _ i d d 6d d 6\ |  _  |  _ d \ |  _  |  _ d \ |  _  } t ƒ  \ } |  _  t ƒ  \ |  _  |  _ t ƒ  \ |  _  |  _ t \ |  _  |  _ t \ |  _  } d S(   s(    test unpacking in instance attributes. i   i   i   R    N(   i   i   (   t   at   bR   R   R"   t
   ValueErrort   nonseq_func(   R   t   c(    (    sL   lib/python2.7/site-packages/pylint/test/functional/unpacking_non_sequence.pyt   testY   s     (   R   R   R   R)   (    (    (    sL   lib/python2.7/site-packages/pylint/test/functional/unpacking_non_sequence.pyR#   V   s   t   TestBasec           B   s   e  Z d  Z e d „  ƒ Z RS(   s,   base class with `test` method implementationc         C   s   |  S(   s   default implementation(    (   t   data(    (    sL   lib/python2.7/site-packages/pylint/test/functional/unpacking_non_sequence.pyR)   i   s    (   R   R   R   t   staticmethodR)   (    (    (    sL   lib/python2.7/site-packages/pylint/test/functional/unpacking_non_sequence.pyR*   g   s   t   Testc           B   s&   e  Z d  Z d „  Z e d „  ƒ Z RS(   s(   child class that overrides `test` methodc         C   s%   |  j  d  ƒ \ |  _ |  _ |  _ d  S(   N(   R)   R   t   aaat   bbbt   ccc(   R   (    (    sL   lib/python2.7/site-packages/pylint/test/functional/unpacking_non_sequence.pyR   p   s    c         C   s   d S(   s   overridden implementationi   i   i   (   i   i   i   (    (   R+   (    (    sL   lib/python2.7/site-packages/pylint/test/functional/unpacking_non_sequence.pyR)   t   s    (   R   R   R   R   R,   R)   (    (    (    sL   lib/python2.7/site-packages/pylint/test/functional/unpacking_non_sequence.pyR-   n   s   	Nc          C   s4   t  j ƒ  \ }  } } } } } |  | | | | | f S(   N(   t   platformt   uname(   t   systemt   nodet   releaset   versiont   machinet	   processor(    (    sL   lib/python2.7/site-packages/pylint/test/functional/unpacking_non_sequence.pyt   flow_control_false_positive}   s    c         C   s&   |  d  k	 r" |  \ } } | | f Sd  S(   N(   R   (   t   vart   var0t   var1(    (    sL   lib/python2.7/site-packages/pylint/test/functional/unpacking_non_sequence.pyt   flow_control_unpackingˆ   s    
(   i   i   (   R   t   osR    R'   t   sixR   t   functional.unpackingR   t   __revision__t   objectR   R   R   R   t   typeR   R   R   R$   R%   t   setR   R"   R&   R   R#   R*   R-   R1   R9   R=   (    (    (    sL   lib/python2.7/site-packages/pylint/test/functional/unpacking_non_sequence.pyt   <module>   sH   			