3 \¼meª ã@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 ú/usr/lib/python3.6/hosts.pyÚ__init__szHostsConf.__init__cCs|jdkr|j|jƒ|_dS)N)rÚ_parser)rr r r Úparses zHostsConf.parsecCsZ|jƒg}xH|jD]>\}}|dkr|\}}t|ƒr|d|kr|j|dd…ƒqW|S)NÚoptionré)r rÚlenÚappend)rÚipZoptionsÚ line_typeÚ componentsÚpiecesÚ_tailr r r Ú get_entryszHostsConf.get_entrycCs||jƒg}xd|jD]Z\}}|dkr6|j||fƒqq|\}}t|ƒrT|d|krTqt|ƒr|j|t|ƒfƒqW||_dS)Nrr)r rrrÚlist)rrZ n_entriesrrrrr r r Ú del_entries"szHostsConf.del_entriescGs,|jƒ|jjd||gt|ƒdffƒdS)NrÚ)r rrr)rrZcanonical_hostnameÚaliasesr r r Ú add_entry1szHostsConf.add_entrycCs|g}xr|jƒD]f}t|jƒƒs0|jd|gfƒqt|jƒdƒ\}}t|ƒs\|jd|gfƒq|jd|jdƒ|gfƒqW|S)NÚblankú#Ú all_commentr)Ú splitlinesrÚstriprrÚsplit)rÚcontentsZentriesÚlineÚheadÚtailr r r r 7s zHostsConf._parsecCsœ|jƒtƒ}x„|jD]z\}}|dkr:|jd|dƒq|dkrV|jd|dƒq|dkr|\}}dd„|Dƒ}dj|ƒ}|jd ||fƒqW|jƒS) Nrz%s rrrcSsg|] }t|ƒ‘qSr )Ústr)Ú.0Úpr r r ú Nsz%HostsConf.__str__..ú z%s%s )r rrÚwriteÚjoinÚgetvalue)rr#rrrr&r r r Ú__str__Ds zHostsConf.__str__N) Ú__name__Ú __module__Ú __qualname__r r rrrr r/r r r r rs  rN)ÚiorZcloudinit.distros.parsersrrr r r r Ús