ó
žòQc           @   s¤   y d  d l  Z  e  j Z Wn\ e k
 rw d  d l Z  d e  j j k rk d	 e  j _ e d „  ƒ e  j _ n  d „  Z n Xd e	 f d „  ƒ  YZ
 d „  Z d „  Z d S(
   iÿÿÿÿNt   decorator_listc         C   s   |  j  S(   N(   t
   decorators(   t   s(    (    s   flake8/util.pyt   <lambda>   s    c         c   sŽ   |  j  s d Sxz |  j  D]o } t |  | d ƒ } t | t j ƒ rI | Vq t | t ƒ r x+ | D]  } t | t j ƒ r_ | Vq_ q_ Wq q Wd S(   s•   
        Yield all direct child nodes of *node*, that is, all fields that
        are nodes and all items of fields that are lists of nodes.
        N(   t   _fieldst   getattrt   Nonet
   isinstancet   astt   ASTt   list(   t   nodet   namet   fieldt   item(    (    s   flake8/util.pyt   iter_child_nodes   s    	t
   OrderedSetc           B   s   e  Z d  Z d Z d „  Z RS(   s   List without duplicates.c         C   s    | |  k r |  j  | ƒ n  d  S(   N(   t   append(   t   selft   value(    (    s   flake8/util.pyt   add#   s    (    (   t   __name__t
   __module__t   __doc__t	   __slots__R   (    (    (    s   flake8/util.pyR      s   c      	   C   s   t  |  ƒ }  |  j ƒ  d	 k S(
   s,   Guess if the value could be an on/off togglet   1t   0t   Ft   Tt   TRUEt   FALSEt   ONt   OFF(   R   R   R   R   s   TRUEs   FALSER   R    (   t   strt   upper(   t   val(    (    s   flake8/util.pyt   is_flag(   s    c         C   s   t  |  ƒ j ƒ  d k S(   s   Return true if flag is onR   R   R   R   (   R   R   s   TRUEs   ON(   R!   R"   (   R#   (    (    s   flake8/util.pyt   flag_on.   s    (    (   R   R   t   ImportErrort   _astt   ClassDefR   R    t   propertyt   FunctionDefR
   R   R$   R%   (    (    (    s   flake8/util.pyt   <module>   s   		