B
    18™\F  ã               @   sB   d dl Z d dlZd dlZdd„ Zdd„ Zdd„ Zedkr>eƒ  dS )	é    Nc              C   s~   t  d¡} | stdƒ‚dd| f}tdd |¡ ƒ tj|tjdd}|jrdt	j
 |j
¡ t	 |j¡ |j
 ¡ }|sztd	ƒ‚|S )
NÚLIBRARYzfailed to get LIBRARYÚnmz-pz+ %sú T)ÚstdoutÚuniversal_newlineszcommand output is empty)Ú	sysconfigÚget_config_varÚ	ExceptionÚprintÚjoinÚ
subprocessÚrunÚPIPEÚ
returncodeÚsysr   ÚwriteÚexitÚrstrip)r   ÚargsÚprocr   © r   úT/oak/stanford/groups/akundaje/marinovg/programs/Python-3.7.3/Tools/scripts/smelly.pyÚget_exported_symbols	   s    


r   c             C   s²   g }t ƒ }x‚|  ¡ D ]v}|sq|jdd}t|ƒdk r8q|d  ¡ }| ¡ r`|dkr`| |¡ q|d }| d¡rtqd||f }| |¡ qW |r®t	d	d
 
t|ƒ¡ ƒ t	ƒ  |S )Né   )Úmaxsplité   é   Zuvwéÿÿÿÿ)ZPyZ_Pyz%s (type: %s)zIgnored symbol types: %sz, )ÚsetÚ
splitlinesÚsplitÚlenÚstripÚislowerÚaddÚ
startswithÚappendr
   r   Úsorted)r   ÚsymbolsZignored_symtypesÚlineÚpartsZsymtypeÚsymbolr   r   r   Úget_smelly_symbols   s*    

r,   c              C   sj   t ƒ } t| ƒ}|s$tdƒ t d¡ | ¡  x|D ]}td| ƒ q2W tƒ  tdt|ƒ ƒ t d¡ d S )NzOK: no smelly symbol foundr   zSmelly symbol: %szERROR: Found %s smelly symbols!r   )r   r,   r
   r   r   Úsortr!   )Z	nm_outputr(   r+   r   r   r   Úmain=   s    

r.   Ú__main__)r   r   r   r   r,   r.   Ú__name__r   r   r   r   Ú<module>   s   "