U
    ¯Adý  ã                   @   sv   d dl Z d dlmZ d dlmZmZ eedœdd„Zdeeee  edœdd	„Z	deee eee  e
d
œdd„ZdS )é    N)Ú
ModuleType)ÚOptionalÚSequence)Úmodule_nameÚreturnc                 C   s
   t  | ¡S )N)Ú	importlibÚimport_module)r   © r	   ú4/usr/lib/python3/dist-packages/cloudinit/importer.pyr      s    r   )r   Úattrsr   c                 C   s6   d}|s|S t  | ¡}|D ]}t||ƒr|d7 }q|S )Nr   é   )r   r   Úhasattr)r   r   Zfound_attrsÚmodÚattrr	   r	   r
   Ú_count_attrs   s    


r   )Ú	base_nameÚsearch_pathsÚrequired_attrsr   c                 C   sŒ   |sg }g }|D ]:}g }|r,|  | d¡¡ | | ¡ d |¡}| |¡ qg }|D ].}tj |¡sfqTt||ƒt|ƒkrT| |¡ qT||fS )zFinds specified modulesÚ.)	ÚextendÚsplitÚappendÚjoinr   ÚutilÚ	find_specr   Úlen)r   r   r   Zlookup_pathsÚpathZ	real_pathÚ	full_pathZfound_pathsr	   r	   r
   Úfind_module!   s"    

r   )N)N)r   Útypesr   Útypingr   r   Ústrr   Úintr   Útupler   r	   r	   r	   r
   Ú<module>   s     ÿ 
þ ý
ü