B
    S£†\£  ã               @   s†   d Z ddlZddlZddlZddlZej ej¡Ze 	d¡fdd„Z
dd„ Zdd	„ Zd
d„ Ze ejde¡ ej ejedd„ ¡ dS )zHooks for nose library.é    Nz([A-Z])c             C   s   |  dd„ | ¡S )Nc             S   s   d|   ¡ d  ¡  S )NÚ_r   )ÚgroupsÚlower)Úm© r   ú7lib/python3.7/site-packages/astroid/brain/brain_nose.pyÚ<lambda>   s    z_pep8.<locals>.<lambda>)Úsub)ÚnameZcapsr   r   r   Ú_pep8   s    r   c              c   s    t  t d¡¡} yt| d  ¡ ƒ}W n tjk
r:   dS X x^| ¡ D ]R}|j	 
d¡r|d|j	kr|t|j	ƒ}|t ||¡fV  |j	dkrFdt ||¡fV  qFW dS )z+Get an iterator of names and bound methods.zY
    import unittest

    class Test(unittest.TestCase):
        pass
    a = Test()
    ÚaNÚassertr   ZassertEqualZassert_equals)Ú_BUILDERÚstring_buildÚtextwrapÚdedentÚnextZinferÚastroidZInferenceErrorÚmethodsr
   Ú
startswithr   ZBoundMethod)ÚmoduleZcaseÚmethodÚ	pep8_namer   r   r   Ú_nose_tools_functions   s    

r   c             C   s$   xt ƒ D ]\}}|g| j|< qW d S )N)r   Úlocals)ZnodeZmethod_namer   r   r   r   Ú_nose_tools_transform1   s    r   c              C   s\   t  d¡} ddg}x$tƒ D ]\}}| |¡ || |< qW | d j}t |¡}||_||_| S )z+Custom transform for the nose.tools module.z__all__ = []Zok_Zeq_Ú__all__)r   r   r   ÚappendÚparentr   ZListÚvalue)ZstubZall_entriesr   r   Z
all_assignZ
all_objectr   r   r   Ú_nose_tools_trivial_transform6   s    



r    znose.tools.trivialc             C   s
   | j dkS )Nz
nose.tools)r
   )Únr   r   r   r   L   s    r   )Ú__doc__Úrer   r   Zastroid.builderZbuilderZAstroidBuilderZMANAGERr   Úcompiler   r   r   r    Zregister_module_extenderZregister_transformZModuler   r   r   r   Ú<module>   s   