
    e                        d 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rddlmZ dd	gZd
ZeedZ G d de      ZddZy)z Checker for deprecated builtins.    )annotations)TYPE_CHECKING)nodes)BaseChecker)only_required_for_messages)PyLintermapfilterz*Using a list comprehension can be clearer.)r	   r
   c                  J    e Zd ZdZddiZdeddddffZ ed	      dd
       Zy)BadBuiltinCheckerdeprecated_builtinsW0141)zUsed builtin function %sbad-builtinzUsed when a disallowed builtin function is used (see the bad-function option). Usual disallowed functions are the ones like map, or filter , where Python offers now some cleaner alternative like list comprehension.zbad-functionscsvz<builtin function names>zMList of builtins function names that should not be used, separated by a comma)defaulttypemetavarhelpr   c                   t        |j                  t        j                        r|j                  j                  }||j                         v st||j                         v sa|| j                  j                  j                  v r>t        j                  |      }|r|d| n
t        |      }| j                  d||       y y y y y )Nz. r   )nodeargs)
isinstancefuncr   Namenameframerootlinterconfigbad_functionsBUILTIN_HINTSgetrepradd_message)selfr   r   hintr   s        ?/usr/lib/python3/dist-packages/pylint/extensions/bad_builtin.py
visit_callzBadBuiltinChecker.visit_call3   s    dii,99>>D DJJL(DDIIK,?4;;--;;;(,,T2D26dXRv.DJD$$]D$I < -@(	 -    N)r   z
nodes.CallreturnNone)	__name__
__module____qualname__r   msgsBAD_FUNCTIONSoptionsr   r(    r)   r'   r   r      sU     D 
	D (5-			
G  .	J /	Jr)   r   c                8    | j                  t        |              y )N)register_checkerr   )r   s    r'   registerr5   @   s    
-f56r)   N)r   r   r*   r+   )__doc__
__future__r   typingr   astroidr   pylint.checkersr   pylint.checkers.utilsr   pylint.lintr   r0   LIST_COMP_MSGr!   r   r5   r2   r)   r'   <module>r>      sL   
 ' "    ' <$!<%?$J $JN7r)   