
    }f                         d  Z d Zd ZddZy)c                 <    | | j                         k(  sJ | d|dS )z6Return a udev comparison clause, like `ACTION=="add"`.z==""upperkeyvalues     4/usr/lib/python3/dist-packages/cloudinit/net/udev.pycompose_udev_equalityr
      s!    #))+e$$    c                 >    | | j                         k(  sJ d| d|dS )zBReturn a udev attribute comparison clause, like `ATTR{type}=="1"`.zATTR{z}=="r   )lower)	attributer   s     r	   compose_udev_attr_equalityr      s"    	))))(%00r   c                 <    | | j                         k(  sJ | d|dS )z4Return a udev assignment clause, like `NAME="eth0"`.z="r   r   r   s     r	   compose_udev_settingr      s!    #))+U##r   Nc           
          |sd}dj                  t        dd      t        dd      t        d|      t        d|      t        d	|       g      }d
|z  S )zReturn a udev rule to set the name of network interface with `mac`.

    The rule ends up as a single line looking something like:

    SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*",
    ATTR{address}="ff:ee:dd:cc:bb:aa", NAME="eth0"
    z?*z, 	SUBSYSTEMnetACTIONaddDRIVERSaddressNAMEz%s
)joinr
   r   r   )	interfacemacdriverrules       r	   generate_udev_ruler      s]     99!+u5!(E2!)V4&y#6 3	
D D=r   )N)r
   r   r   r    r   r	   <module>r!      s   %1$r   