o
    th                  	   @   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                    sv   | d u rt } t  fdd| D }|rtd| g }| D ]} | }| r8||jf}|r3|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firstunknownfoundname
render_modcurr   r   r   search)   s$   


r$   c                 C   s0   t | dd}|s| d u rt} td|  |d S )NT)r   z?No available network renderers found. Searched through list: %sr   )r$   r   r   )r   r    r   r   r   selectC   s   r%   )NF)N)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
"