a '¡Dg¤ ã@s*ddlmZddlmZGdd„dƒZdS)é)ÚStringIO)Ú chop_commentc@sDeZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dS)Ú HostsConfcCs||_d|_dS©N)Ú_textÚ _contents)ÚselfÚtext©r úC/usr/lib/python3.9/site-packages/cloudinit/distros/parsers/hosts.pyÚ__init__szHostsConf.__init__cCs|jdur| |j¡|_dSr)rÚ_parser)rr r r Úparses zHostsConf.parsecCsV| ¡g}|jD]>\}}|dkr|\}}t|ƒr|d|kr| |dd…¡q|S)NÚoptionré)rrÚlenÚappend)rÚipÚoptionsÚ line_typeÚ componentsÚpiecesÚ_tailr r r Ú get_entryszHostsConf.get_entrycCsx| ¡g}|jD]Z\}}|dkr4| ||f¡qq|\}}t|ƒrR|d|krRqt|ƒr| |t|ƒf¡q||_dS)Nrr)rrrrÚlist)rrZ n_entriesrrrrr r r Ú del_entries"szHostsConf.del_entriescGs,| ¡|j d||gt|ƒdff¡dS)NrÚ)rrrr)rrZcanonical_hostnameÚaliasesr r r Ú add_entry1sÿzHostsConf.add_entrycCsxg}| ¡D]f}t| ¡ƒs.| d|gf¡q t| ¡dƒ\}}t|ƒsZ| d|gf¡q | d| d¡|gf¡q |S)NÚblankú#Ú all_commentr)Ú splitlinesrÚstriprrÚsplit)rÚcontentsÚentriesÚlineÚheadÚtailr r r r 7s  zHostsConf._parsecCs˜| ¡tƒ}|jD]z\}}|dkr8| d|d¡q|dkrT| d|d¡q|dkr|\}}dd„|Dƒ}d |¡}| d ||f¡q| ¡S) Nrz%s rr!rcSsg|] }t|ƒ‘qSr )Ústr)Ú.0Úpr r r Ú Nóz%HostsConf.__str__..ú z%s%s )rrrÚwriteÚjoinÚgetvalue)rr%rrrr)r r r Ú__str__Ds zHostsConf.__str__N) Ú__name__Ú __module__Ú __qualname__r rrrrr r3r r r r rs  rN)ÚiorZcloudinit.distros.parsersrrr r r r Ús