³ò
C3IHc           @   s   d  d k  l Z d  d k l Z d  d k l Z d  d k Z d e f d     YZ d e f d     YZ d	 e f d
     YZ	 d S(   i˙˙˙˙(   t   Check(   t   Warning(   t   BaseVisitorNt   OpCheckc           B   s/   e  Z e d  d  Z e d d  Z d   Z RS(   s7   Check for (++) and (--) which are legal, but not usefuls4   Operator (%s) doesn't exist, statement has no effects   Check for unary +s#   Operator (+) normally has no effectc            sD   d d    f d     Y}  i  o t i  i  |    n d  S(   Nt	   OpVisitorc              s,   e  Z    f d    Z    f d   Z RS(   c            sQ   | i    d i t i i j o  i |   i d  n  i |   i  d  S(   Ni    s   ++(   t   getChildrent	   __class__t   compilert   astt   UnaryAddt   warningt   operatort   operatorPlus(   t   st   n(   t   selft   file(    s)   C:\py\_spe\plugins\pychecker2\OpChecks.pyt   visitUnaryAdd   s     c            s>   | i    d i t i i j o  i |   i d  n d  S(   Ni    s   --(   R   R   R   R   t   UnarySubR
   R   (   R   R   (   R   R   (    s)   C:\py\_spe\plugins\pychecker2\OpChecks.pyt   visitUnarySub   s     (   t   __name__t
   __module__R   R   (    (   R   R   (    s)   C:\py\_spe\plugins\pychecker2\OpChecks.pyR      s   (    (   t	   parseTreeR   t   walk(   R   R   t   unused_checklistR   (    (   R   R   s)   C:\py\_spe\plugins\pychecker2\OpChecks.pyt   check   s    

(   R   R   R   R   R   R   (    (    (    s)   C:\py\_spe\plugins\pychecker2\OpChecks.pyR      s   		t   ExceptCheckc           B   s    e  Z e d  d  Z d   Z RS(   s   Warn about "except:"s/   Empty except clauses can hide unexpected errorsc            sG   d t  f    f d     Y}  i o t i  i |    n d  S(   Nt   ExceptVisitorc              s   e  Z    f d    Z RS(   c            sY   xE | i  D]: \ } } } | d  j o  i | i d   i  q
 q
 W|  i |  d  S(   Ni    (   t   handlerst   NoneR
   t   nodest   emptyExceptt   visitChildren(   R   t   nodet   exct   dett   code(   R   R   (    s)   C:\py\_spe\plugins\pychecker2\OpChecks.pyt   visitTryExcept'   s
    
 "(   R   R   R%   (    (   R   R   (    s)   C:\py\_spe\plugins\pychecker2\OpChecks.pyR   &   s   (   R   R   R   R   (   R   R   R   R   (    (   R   R   s)   C:\py\_spe\plugins\pychecker2\OpChecks.pyR   %   s    
(   R   R   R   R   R   (    (    (    s)   C:\py\_spe\plugins\pychecker2\OpChecks.pyR   !   s   	t   CompareCheckc           B   s    e  Z e d  d  Z d   Z RS(   s   warn about "== None"s!   use "is" when comparing with Nonec            sV     f d     d t  f   f d     Y}  i o t i  i |    n d  S(   Nc            sN   | d j o= | i  t i i j o' | i d j o  i |    i  n d  S(   Ns   ==R   (   R   R   R   t   Namet   nameR
   t   useIs(   R!   t   exprt   op(   R   R   (    s)   C:\py\_spe\plugins\pychecker2\OpChecks.pyt   checkEqualNone4   s    t   CompareVisitorc              s   e  Z   f d    Z RS(   c            s~   | i    } xK t d t |  d d  D]- } | | | d !\ } }   | | |  q) W| d \ } }   | | |  d  S(   Ni    i   i   iŝ˙˙˙(   R   t   ranget   len(   R   R!   t   childrent   it   leftR+   t   right(   R,   (    s)   C:\py\_spe\plugins\pychecker2\OpChecks.pyt   visitCompare;   s     (   R   R   R4   (    (   R,   (    s)   C:\py\_spe\plugins\pychecker2\OpChecks.pyR-   :   s   (   R   R   R   R   (   R   R   R   R-   (    (   R,   R   R   s)   C:\py\_spe\plugins\pychecker2\OpChecks.pyR   3   s    	
(   R   R   R   R)   R   (    (    (    s)   C:\py\_spe\plugins\pychecker2\OpChecks.pyR&   /   s   	(
   t   pychecker2.CheckR    t   pychecker2.WarningR   t   pychecker2.utilR   R   R   R   R&   (    (    (    s)   C:\py\_spe\plugins\pychecker2\OpChecks.pys   <module>   s   