
    x[h
                     0    d dl mZ d dlmZ  G d d      Zy)    )StringIO)chop_commentc                   6    e Zd Zd Zd Zd Zd Zd Zd Zd Z	y)		HostsConfc                      || _         d | _        y N)_text	_contents)selftexts     A/usr/lib/python3/dist-packages/cloudinit/distros/parsers/hosts.py__init__zHostsConf.__init__   s    
    c                 ^    | j                   !| j                  | j                        | _         y y r   )r
   _parser	   )r   s    r   parsezHostsConf.parse   s%    >>!![[4DN "r   c                     | j                          g }| j                  D ]9  \  }}|dk(  s|\  }}t        |      s|d   |k(  s&|j                  |dd         ; |S )Noptionr      )r   r
   lenappend)r   ipoptions	line_type
componentspieces_tails          r   	get_entryzHostsConf.get_entry   sc    

%)^^ 	/!IzH$",v;6!9?NN6!":.		/
 r   c                    | j                          g }| j                  D ]_  \  }}|dk7  r|j                  ||f       |\  }}t        |      r	|d   |k(  r8t        |      sD|j                  |t	        |      f       a || _        y )Nr   r   )r   r
   r   r   list)r   r   	n_entriesr   r   r   r   s          r   del_entrieszHostsConf.del_entries"   s    

	%)^^ 		D!IzH$  )Z!89",v;6!9?[$$ij1A%BC		D #r   c                 ~    | j                          | j                  j                  d||gt        |      z   dff       y )Nr    )r   r
   r   r    )r   r   canonical_hostnamealiasess       r   	add_entryzHostsConf.add_entry1   s9    

/04=@"EF	
r   c                 R   g }|j                         D ]  }t        |j                               s|j                  d|gf       1t	        |j                         d      \  }}t        |      s|j                  d|gf       n|j                  d|j                  d       |gf        |S )Nblank#all_commentr   )
splitlinesr   stripr   r   split)r   contentsentrieslineheadtails         r   r   zHostsConf._parse7   s    '') 	ADtzz|$$01'

c:LT4t9v67NNHtzz$'7&>?@	A r   c                    | j                          t               }| j                  D ]  \  }}|dk(  r|j                  d|d   z         #|dk(  r|j                  d|d   z         @|dk(  sF|\  }}|D cg c]  }t	        |       }}dj                  |      }|j                  ||d        |j                         S c c}w )Nr)   z%s
r   r+   r   	
)r   r   r
   writestrjoingetvalue)r   r/   r   r   r   r3   ps          r   __str__zHostsConf.__str__D   s    

:%)^^ 		:!IzG#vA78m+vA78h&!+*01Q#a&116*6489		:   "" 2s   6CN)
__name__
__module____qualname__r   r   r   r"   r'   r   r<    r   r   r   r      s%    5#
#r   r   N)ior   cloudinit.distros.parsersr   r   r@   r   r   <module>rC      s     2B# B#r   