3 @qhc@sUddlZddlZddlZddlZddlmZmZddlmZm Z m Z ddl m Z ee dddZedejjd gZee d Zd d d dgZGdddeZGdddeZGdddeZGdddeZGdddeZGdddeZdS)N) expanduser expandvars)ListOptionalUnion) USER_AGENT)returncCsdtjkrtjdgSgS)NZPYTHON_GITLAB_CFG)osenvironr r L/home/ec2-user/environment/venv/lib/python3.6/dist-packages/gitlab/config.py _env_configs  r z/etc/python-gitlab.cfgz~/.python-gitlab.cfgzhelper: job_token http_password private_token oauth_tokenc@s eZdZdS) ConfigErrorN)__name__ __module__ __qualname__r r r r r,src@s eZdZdS) GitlabIDErrorN)rrrr r r r r0src@s eZdZdS)GitlabDataErrorN)rrrr r r r r4src@s eZdZdS)GitlabConfigMissingErrorN)rrrr r r r r8src@s eZdZdS)GitlabConfigHelperErrorN)rrrr r r r r<src@s:eZdZdeeeeeddddZddddZdS) GitlabConfigParserN) gitlab_id config_filesrcCs||_|p t}d}x|D]}tjj|rd}qW|sHtdjdjttj |_ |j j ||jdkry|j j dd|_Wn,t k r}ztd|WYdd}~XnXy|j j |jd|_Wn2t k r}ztd |j|WYdd}~XnXd|_y|j jdd |_WnVtk rPy|j j dd |_Wnt k rJYnXYnt k rdYnXy|j j|jd |_WnXtk ry|j j |jd |_Wnt k rYnXYnt k rYnXd |_y|j jdd |_Wnt k rYnXy|j j|jd |_Wnt k r4YnXd|_y|j j |jd |_Wnt k rhYnXd|_y|j j |jd|_Wnt k rYnXd|_y|j j |jd|_Wnt k rYnXd|_d|_y(|j j |jd|_|j j |jd|_Wnt k rYnX|jd|_y|j j dd|_Wnt k rVYnXy|j j |jd|_Wnt k rYnX|jdkrtd|jd|_x@d|jgD]2}y|j j|d|_Wnt k rYnXqW|jdk r"d|jko dkn r"td|jd|_y|j j |jd|_Wnt k rTYnXd|_y|j j |jd|_Wnt k rYnXt |_!y|j j dd|_!Wnt k rYnXy|j j |jd|_!Wnt k rYnXdS)NFTzConfig file not found. Please create one in one of the following locations: {} or specify a config file using the '-c' parameter.z, globaldefaultz>Impossible to get the gitlab id (not specified in config file)urlz=Impossible to get gitlab informations from configuration (%s) ssl_verify<timeoutrrr http_usernamer4 api_versionzUnsupported API version: %sper_pagerdzUnsupported per_page number: %s paginationorder_by user_agent)r$)"r_DEFAULT_FILESr pathexistsrformatjoin configparser ConfigParser_configreadget Exceptionrrrr getboolean ValueErrorr"getintrrrr#r_get_values_from_helperr%r&r(r)rr*)selfrr_filesZ file_existfileesectionr r r __init__As         ,zGitlabConfigParser.__init__)rcCsxtD]}t||}t|ts q|jjjts4q|ttdj}ddt j |D}yt j |t j djdj}WnPt jk r}z2|jjj}td|d|jd||WYdd}~XnXt|||qWdS) zEUpdate attributes that may get values from an external helper programNcSsg|]}tt|qSr )rr).0tokenr r r sz>GitlabConfigParser._get_values_from_helper..)stderrzutf-8zFailed to read z value from helper for z: )HELPER_ATTRIBUTESgetattr isinstancestrlowerstrip startswith HELPER_PREFIXlenshlexsplit subprocess check_outputPIPEdecodeCalledProcessErrorrCrrsetattr)r:attrvaluehelperZcommmandr=rCr r r r9s"   z*GitlabConfigParser._get_values_from_helper)NN)rrrrrGrr?r9r r r r r@sr)r0r rMrOos.pathrrtypingrrrZ gitlab.constrrGr r,r+rKrDr5rrrrrobjectrr r r r s&