
    x[h
                     0    S SK Jr  S SKJr   " S S5      rg)    )StringIO)chop_commentc                   >    \ rS rSrS rS rS rS rS rS r	S r
S	rg
)	HostsConf   c                     Xl         S U l        g N)_text	_contents)selftexts     A/usr/lib/python3/dist-packages/cloudinit/distros/parsers/hosts.py__init__HostsConf.__init__   s    
    c                 `    U R                   c!  U R                  U R                  5      U l         g g r	   )r   _parser
   )r   s    r   parseHostsConf.parse   s%    >>!![[4DN "r   c                     U R                  5         / nU R                   HB  u  p4US:X  d  M  Uu  pV[        U5      (       d  M#  US   U:X  d  M.  UR                  USS  5        MD     U$ )Noptionr      )r   r   lenappend)r   ipoptions	line_type
componentspieces_tails          r   	get_entryHostsConf.get_entry   s\    

%)^^!IH$",v;;6!9?NN6!":.	 &4
 r   c                 ,   U R                  5         / nU R                   Hl  u  p4US:w  a  UR                  X445        M  Uu  pV[        U5      (       a  US   U:X  a  M>  [        U5      (       d  MP  UR                  U[	        U5      45        Mn     X l        g )Nr   r   )r   r   r   r   list)r   r   	n_entriesr   r   r   r    s          r   del_entriesHostsConf.del_entries"   s    

	%)^^!IH$  )!89",v;;6!9?[[$$ij1A%BC &4 #r   c                 |    U R                  5         U R                  R                  SX/[        U5      -   S445        g )Nr    )r   r   r   r$   )r   r   canonical_hostnamealiasess       r   	add_entryHostsConf.add_entry1   s6    

04=@"EF	
r   c                 l   / nUR                  5        H  n[        UR                  5       5      (       d  UR                  SU/45        M7  [	        UR                  5       S5      u  pE[        U5      (       d  UR                  SU/45        My  UR                  SUR                  S 5      U/45        M     U$ )Nblank#all_commentr   )
splitlinesr   stripr   r   split)r   contentsentrieslineheadtails         r   r   HostsConf._parse7   s    '')Dtzz|$$$01'

c:LTt99v67NNHtzz$'7&>?@ * r   c                    U R                  5         [        5       nU R                   H  u  p#US:X  a  UR                  SUS   -  5        M$  US:X  a  UR                  SUS   -  5        MC  US:X  d  MK  Uu  pEU Vs/ s H  n[	        U5      PM     nnSR                  U5      nUR                  U< U< S35        M     UR                  5       $ s  snf )Nr/   z%s
r   r1   r   	
)r   r   r   writestrjoingetvalue)r   r5   r   r   r   r9   ps          r   __str__HostsConf.__str__D   s    

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