f 0ddlmZddlmZGddZy))StringIO) chop_commentc6eZdZdZdZdZdZdZdZdZ y) HostsConfc ||_d|_yN)_text _contents)selftexts A/usr/lib/python3/dist-packages/cloudinit/distros/parsers/hosts.py__init__zHostsConf.__init__s c^|j!|j|j|_yyr)r _parser )r s r parsezHostsConf.parses% >> !![[4DN "rc|jg}|jD]9\}}|dk(s |\}}t|s|d|k(s&|j|dd;|S)Noptionr)rr lenappend)r ipoptions line_type componentspieces_tails r get_entryzHostsConf.get_entrysc '+~~ / #Y H$",v;6!9?NN6!":.  / rc|jg}|jD]_\}}|dk7r|j||f|\}}t|r |d|k(r8t|sD|j|t |fa||_y)Nrr)rr rrlist)r r n_entriesrrrrs r del_entrieszHostsConf.del_entries"s  '+~~ D #Y H$  )Z!89",v;6!9?[$$ij1A%BC D#rc~|j|jjd||gt|zdffy)Nr)rr rr )r rcanonical_hostnamealiasess r add_entryzHostsConf.add_entry1s9   /04=@"E F rcRg}|jD]}t|js|jd|gf1t |jd\}}t|s|jd|gfn|jd|j d|gf|S)Nblank# all_commentr) splitlinesrstriprrsplit)r contentsentrieslineheadtails r rzHostsConf._parse7s'') ADtzz|$$01' c:LT4t9 v67 NNHtzz$'7&>? @ Arc|jt}|jD]\}}|dk(r|jd|dz#|dk(r|jd|dz@|dk(sF|\}}|Dcgc] }t |}}dj |}|j||d|j Scc}w)Nr)z%s rr+r  )rrr writestrjoingetvalue)r r/rrrr3ps r __str__zHostsConf.__str__Ds :'+~~ : #Y G#vA78m+vA78h&!+*01Q#a&116*6489 :  ""2s6CN) __name__ __module__ __qualname__rrrr"r'rr<rr rrs%5 #  #rrN)iorcloudinit.distros.parsersrrr@rr rCs2 B#B#r