B
    A!p\	                 @   s   d Z ddlZddlZddlmZ ddlmZ ddlmZ ddgZ	ej
dk rTe	d	 dd
iZed ed< G dd deZdd ZdS )z Checker for deprecated builtins.    N)BaseChecker)check_messages)IAstroidCheckermapfilter)   r   inputz*Using a list comprehension can be clearer.c               @   sB   e Zd ZefZdZddiZdeddddffZe	d	d
d Z
dS )BadBuiltinCheckerZdeprecated_builtinsZW0141)zUsed builtin function %szbad-builtinzUsed when a black listed builtin function is used (see the bad-function option). Usual black listed functions are the ones like map, or filter , where Python offers now some cleaner alternative like list comprehension.zbad-functionsZcsvz<builtin function names>zMList of builtins function names that should not be used, separated by a comma)defaulttypemetavarhelpzbad-builtinc             C   sr   t |jtjrn|jj}|| ksn|| ksn|| jjkrnt	
|}|rVd||f }nt|}| jd||d d S )Nz%r. %szbad-builtin)nodeargs)
isinstancefuncastroidNamenameframerootZconfigZbad_functionsBUILTIN_HINTSgetreprZadd_message)selfr   r   Zhintr    r   <lib/python3.7/site-packages/pylint/extensions/bad_builtin.py
visit_call3   s    
zBadBuiltinChecker.visit_callN)__name__
__module____qualname__r   Z__implements__r   ZmsgsBAD_FUNCTIONSZoptionsr   r   r   r   r   r   r	      s   r	   c             C   s   |  t|  dS )zRequired method to auto register this checker.

    :param linter: Main interface object for Pylint plugins
    :type linter: Pylint object
    N)Zregister_checkerr	   )Zlinterr   r   r   registerC   s    r"   )__doc__sysr   Zpylint.checkersr   Zpylint.checkers.utilsr   Zpylint.interfacesr   r!   version_infoappendr   r	   r"   r   r   r   r   <module>   s   

,