a :i @sRddlZddlZddlmZddlmZddlmZddlmZGdddZ dS) N) ConfigParser)Path)user_config_dir)convertc@sNeZdZdZddddZdZddd Zd d Zd d ZddZ e ddZ dS) IniConfigZVIRTUALENV_CONFIG_FILEzfailed to parseZactivemissing)NTF virtualenvNc Cs |durtjn|}||jd}|du|_|durHttdddd}nt|}||_i|_d}d|_ z|j |_ Wn(t y}z|}WYd}~nnd}~00|j r|j |_t |_z||j|j|_Wn*ty}z|}WYd}~n d}~00|durtd||dS)Nr Zpypa)ZappnameZ appauthorzvirtualenv.iniz(failed to read config file %s because %r)osenvirongetVIRTUALENV_CONFIG_FILE_ENV_VAR is_env_varrr config_file_cachehas_config_fileexistsOSErrorresolver config_parser_loadZ has_sectionsectionhas_virtualenv_section Exceptionloggingerror)selfenvr exceptionexcr 9/usr/lib/python3.9/site-packages/virtualenv/config/ini.py__init__s0   zIniConfig.__init__cCs@|jjddd}|j|WdS1s20YdS)NZrtzutf-8)encoding)ropenrZ read_file)rZ file_handlerr r r!r.szIniConfig._loadcCsr||f}||jvr|j|Sz0d}|j|j|}t|||}||f}Wntybd}Yn0||j|<|S)Nfile)rrr rlowerrr)rkeyZas_typeZ cache_keysourceZ raw_valuevalueresultr r r!r 2s       z IniConfig.getcCst|jot|jS)N)boolrrrr r r!__bool__@szIniConfig.__bool__c Cs4d|jd|j|jd|jr"dndd|jd S)Nz config file  z (changedz via env var ))rSTATErrr r,r r r!epilogCs  zIniConfig.epilog)N) __name__ __module__ __qualname__r r2rr"rr r-propertyr3r r r r!r s  r) rr Z configparserrpathlibrZ platformdirsrrrr r r r!s