$mԦ d dl mZ d dlmZmZmZmZmZ d dlm Z d dl mZ ddlm Z edg d Z ed g d Z ed d d d d d d d ZdZ G d d Zd S ) ) namedtuple)TupleOptionalTypeListIterator)etree)ClPwd )get_xml_config_etreeLimitscpuncpuiovmempmemnprocepiopsInheritedLimitsNrootc e Zd ZdZddZd Zd Zeefd Z e d Zd Ze fd Zd Zd Zd Zd Zd Zd Zd ZdS )XmlConfigReadera5 This class parses our xml into user-friendly primitive structures (dicts, tuples, namedtuples) This class may do: - data conversion (cpu & ncpu in config -> speed) - validation This class should NOT: - take care of user/package/reseller existence - write anything to xml Nc t | _ |t | _ n|| _ t | | _ t | | _ t | | _ t | | _ d S N) r clpwdr _xml_configdict _users_limits _users_map_packages_limits _packages_map_resellers_limits_resellers_limits_map_resellers_defaults_resellers_defaults_map)self_xml_config_etrees !py/clveconfig/ve_config_reader.py__init__zXmlConfigReader.__init__* s WW $355D0Dt113344!$"7"7"9"9::%)$*@*@*B*B%C%C"'+D,D,D,F,F'G'G$$$ c Z t | j d j S )Nversion)intr findtextr( s r* r. zXmlConfigReader.version8 s$ 4#((338999r, c \ | | j d S )Ndefaults)_parse_limits_sectionr r0 r2 s r* r4 zXmlConfigReader.defaults<