jg tddlmZddlmZddlmZddlmZddlmZddl m Z Gddej Z d S) )print_function)division)absolute_import) configparser)StringIO) basestringc6eZdZdZdZdZdZdZdZdZ dS) SectionlessConfigParserz Extends ConfigParser to allow files without sections. This is done by wrapping read files and prepending them with a placeholder section, which defaults to '__config__' c|dd}tjj|g|Ri|d|_||pddS)Ndefault_section __config__)pop ConfigParserRawConfigParser__init___default_sectionset_default_section)selfargskwargsr s O/opt/cloudlinux/venv/lib64/python3.11/site-packages/lvemanager/config_parser.pyrz SectionlessConfigParser.__init__sa **%6==$-dDTDDDVDDD $   !@LAAAAAc|jSN)r)rs rget_default_sectionz+SectionlessConfigParser.get_default_sections $$rc|| ||j}||j|D]\}}||||n#t j$rYnwxYw||_dSr) add_sectionitemsrremove_sectionsetrNoSectionError)rsectiondefault_section_itemskeyvalues rrz+SectionlessConfigParser.set_default_section"s !!! .$(JJt/D$E$E !    5 6 6 6!6 . . e#u---- .*    D  !(s4A++A=<A=ct|tr|g}g}|D]d} t|5}||dddn #1swxYwY||U#t $rYawxYw|Sr) isinstanceropenreadfpappendIOError)r filenamesread_okfilenamefps rreadzSectionlessConfigParser.read1s i , , $" I! ) )H )(^^$rKKOOO$$$$$$$$$$$$$$$ x((((     s4A2A A2A A2A A22 A?>A?cJt} |j|_n#t$rYnwxYw|d|jzdz|||ddtjj ||g|Ri|S)N[z] r) rnameAttributeErrorwriterr0seekrrr))rr/rrstreams rr)zSectionlessConfigParser.readfpAs 'FKK    D   S40058999 RWWYY Aq+24=$===5;== =s  **c ||j}||j|D].\}}|d||/|dn#t j$rYnwxYwt j||||j|D]!\}}| |j||"dS)Nz{0}={1}  ) rrrr5formatrr!rrr )rr/r#r$r%s rr5zSectionlessConfigParser.writePs  $(JJt/D$E$E !    5 6 6 6 5 9 9 e++C778888 HHTNNNN*    D  $**4444 .///1 8 8LS% HHT*C 7 7 7 7 8 8sA:A==BBN) __name__ __module__ __qualname____doc__rrrr0r)r5rrr r s{BBB%%% ( ( ( = = =88888rr N) __future__rrr future.movesrrior past.builtinsrrr r?rrrDs&%%%%%&&&&&&555555$$$$$$R8R8R8R8R8l:R8R8R8R8R8r