Ѡg dZddlZddlZddlmZddlmZddlmZdZ da da Gdded gd Z d Z d Zd ZdS)z8 Wrapper over integration config which provides typing. N) ConfigParser) namedtuple)NotImplementedByVendorz!/opt/cpvendor/etc/integration.inic"eZdZdZfdZxZS) ScriptsCMDzg Wrapper over namedtuple that raises exception when we access property that has None value clt|}|t||S)za Raise error if command is not implemented, but we try to get it in code )super__getattribute__r)selfitemobj __class__s /builddir/build/BUILDROOT/alt-python27-cllib-3.4.22-1.el8.cloudlinux.x86_64/opt/cloudlinux/venv/lib/python3.11/site-packages/vendors_api/config.pyr zScriptsCMD.__getattribute__(s4 gg&&t,, ;(.. . )__name__ __module__ __qualname____doc__r __classcell__)rs@rrrsB rrVendorScriptsPath panel_infodb_infopackagesusersdomains resellersadminsphpcL|dSttj|S)zm Taking command line as input, convert it into subprocess args If cmd is None -> return None N)tupleshlexsplit)cmds r_split_path_or_noner%3s&  {t S!! " ""rctjt}t t |kr/t }|d}tt| dt| dt| dt| dt| dt| dt| dt| d  a|atS) Nintegration_scriptsrrrrrrrrr) ospathgetmtime CONFIG_PATHintegration_scripts_cacheconfig_last_modify_time_read_config_filerr%get) modify_timeconfigscriptss rr'r'>s'"";//K ( #{ 2 2"$$./$.*7;;|+D+DEE' I(>(>??(Z)@)@AA%gkk'&:&:;;' I(>(>??)'++k*B*BCC&w{{8'<'<==#GKK$6$677 % % % !#. $$rctddtfdDS)z< Parse config file and return result as dictionary. NF) interpolationstrictcVi|]%}|t|&S)dictitems).0sparsers r z%_read_config_file..^s- @ @ @AtFLLOO$$ @ @ @r)rreadr+sections)r<s@rr.r.WsMU ; ; ;F KK  @ @ @ @foo.?.? @ @ @@r)rr(r" configparserr collectionsrvendors_api.exceptionsrr+r,r-rr%r'r.r7rrrCs  %%%%%%""""""9999991  / 2 2 2  4###%%%2AAAAAr