o
    f!                  	   @   s   d dl mZmZmZ d dlmZmZmZmZm	Z	m
Z
mZmZmZmZ eeee	e
eeedZg dZ	ddeeeeej f  fdd	Zddeeeej f fd
dZdS )    )ListTupleType)
RendererNotFoundErrorenifreebsdnetbsdnetplannetwork_managernetworkdopenbsdrenderer	sysconfig)r   r   r   r	   network-managerr   r   r   )r   r   r	   r   r   r   r   r   NFreturnc                    sx   | d u rt } t  fdd| D }|rtd| g }| D ]} | }||r9||jf}|r4|g  S || q|S )Nc                    s   g | ]}| vr|qS  r   ).0i	availabler   9/usr/lib/python3/dist-packages/cloudinit/net/renderers.py
<listcomp>1   s    zsearch.<locals>.<listcomp>z/Unknown renderers provided in priority list: %s)DEFAULT_PRIORITYNAME_TO_RENDERER
ValueErrorr   Rendererappend)prioritytargetfirstunknownfoundname
render_modcurr   r   r   search)   s$   



r%   c                 C   sN   t | |dd}|s#| d u rt} d}|r|dkrd| }td|| f |d S )NT)r   r    /z in target=%szANo available network renderers found%s. Searched through list: %sr   )r%   r   r   )r   r   r!   tmsgr   r   r   selectC   s   r)   )NNF)NN)typingr   r   r   cloudinit.netr   r   r   r   r	   r
   r   r   r   r   r   r   strr   r%   r)   r   r   r   r   <module>   s"   0
"