Current File : //usr/lib/python3.6/site-packages/cloudinit/__pycache__/importer.cpython-36.pyc
3

\�me�	�@s�ddlZddlmZddlmZmZddlmZeed�dd�Z	deeeee
d�d	d
�Zeeed�dd
�Zdeeeeeee
d�dd�ZdS)�N)�
ModuleType)�Optional�Sequence)�util)�module_name�returncCs
tj|�S)N)�	importlib�
import_module)r�r
�/usr/lib/python3.6/importer.pyr	sr	)r�attrsrcCs:d}|s|Stj|�}x|D]}t||�r|d7}qW|S)Nr�)rr	�hasattr)rrZfound_attrs�mod�attrr
r
r�_count_attrss


r)�mod_namercCs�d|j�kr|dd�}|jd�s,d|��}i}tjjd�}|r�|jr�x|jD]}|jtj|��qNWx$|j�D]}|j�|j�krp|SqpW|S)zECheck the importable datasource modules for a case-insensitive match.znocloud-netN�Z
DataSourcezcloudinit.sources���)	�lower�
startswithrr�	find_spec�submodule_search_locations�updateZget_modules_from_dir�values)r�modules�spec�dir�moduler
r
r�"match_case_insensitive_module_name#s


r)�	base_name�search_paths�required_attrsrcCsn|sg}g}g}xT|D]L}djtd||g��}|j|�tjj|�sFqt||�t|�kr|j|�qW||fS)zFinds specified modules�.N)�join�filter�appendrrrr�len)r r!r"Zlookup_pathsZfound_paths�path�	full_pathr
r
r�find_module7s

r*)N)N)r�typesrZtypingrrZ	cloudinitr�strr	�intrr�tupler*r
r
r
r�<module>s