Viewing File: /opt/alt/python35/lib/python3.5/site-packages/pip/_internal/configuration.pyc

ó
“tÆ_c@szdZddlZddlZddlZddlZddlmZddlmZm	Z	ddl
mZddlm
Z
mZddlmZmZddlmZerýdd	lmZmZmZmZmZmZmZejZed
eƒZneje ƒZ!d„Z"d„Z#ed
dddddddddƒZ$e
rQdndZ%d„Z&de'fd„ƒYZ(dS(sConfiguration management setup

Some terminology:
- name
  As written in config files.
- value
  Value associated with a name
- key
  Name combined with it's section (section.name)
- variant
  A single word describing where the configuration key-value pair came from
iÿÿÿÿN(tconfigparser(tConfigurationErrort!ConfigurationFileCouldNotBeLoaded(tappdirs(tWINDOWSt
expanduser(t
ensure_dirtenum(tMYPY_CHECK_RUNNING(tAnytDicttIterabletListtNewTypetOptionaltTupletKindcCs8|jƒjddƒ}|jdƒr4|d}n|S(sFMake a name consistent regardless of source (environment or file)
    t_t-s--i(tlowertreplacet
startswith(tname((sL/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/configuration.pyt_normalize_name*s
cCs:d|kr*dj|ƒ}t|ƒ‚n|jddƒS(Nt.sbKey does not contain dot separated section and key. Perhaps you wanted to use 'global.{}' instead?i(tformatRtsplit(Rt
error_message((sL/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/configuration.pyt_disassemble_key4s
	tUSERtusertGLOBALtglobaltSITEtsitetENVtenvtENV_VARsenv-varspip.inispip.confcCs¼gtjdƒD]}tjj|tƒ^q}tjjtjtƒ}tjjtdƒt	rgdndtƒ}tjjtj
dƒtƒ}i|tj6|gtj
6||gtj6S(Ntpipt~s.pip(Rtsite_config_dirstostpathtjointCONFIG_BASENAMEtsystprefixRRtuser_config_dirtkindsRR!R(R*tglobal_config_filestsite_config_filetlegacy_config_filetnew_config_file((sL/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/configuration.pytget_configuration_filesLs.				

t
ConfigurationcBsÔeZdZdd„Zd„Zd„Zd„Zd„Zd„Z	d„Z
d„Zd	„Ze
d
„ƒZd„Zd„Zd
„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„ZRS(sâHandles management of configuration.

    Provides an interface to accessing and managing configuration files.

    This class converts provides an API that takes "section.key-name" style
    keys and stores the value associated with it as "key-name" under the
    section "section".

    This allows for a clean interface wherein the both the section and the
    key-name are preserved in an easy to manage form in the configuration files
    and the data stored is also nice.
    cCsétt|ƒjƒtjtjtjdg}||krhtdj	dj
tt|d ƒƒƒƒ‚n||_
||_tjtjtjtjtjg|_ddg|_d„|jDƒ|_d„|jDƒ|_g|_dS(Ns5Got invalid value for load_only - should be one of {}s, iÿÿÿÿtversionthelpcSsi|]}g|“qS(((t.0tvariant((sL/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/configuration.pys
<dictcomp>ˆs	cSsi|]}i|“qS(((R9R:((sL/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/configuration.pys
<dictcomp>‹s	(tsuperR6t__init__R0RRR!tNoneRRR+tmaptreprtisolatedt	load_onlyR#R%t_override_ordert_ignore_env_namest_parserst_configt_modified_parsers(tselfR@RAt_valid_load_only((sL/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/configuration.pyR<qs%		'cCs$|jƒ|js |jƒndS(sELoads configuration from configuration files and environment
        N(t_load_config_filesR@t_load_environment_vars(RG((sL/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/configuration.pytloads
	cCsF|jdk	stdƒ‚y|jƒdSWntk
rAdSXdS(s@Returns the file with highest priority in configuration
        s)Need to be specified a file to be editingiN(RAR=tAssertionErrort_get_parser_to_modifyt
IndexError(RG((sL/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/configuration.pytget_file_to_edit—s	
cCs
|jjƒS(s`Returns key-value pairs like dict.items() representing the loaded
        configuration
        (t_dictionarytitems(RG((sL/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/configuration.pyRQ£scCs<y|j|SWn&tk
r7tdj|ƒƒ‚nXdS(s,Get a value from the configuration.
        sNo such key - {}N(RPtKeyErrorRR(RGtkey((sL/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/configuration.pyt	get_valueªs
cCs¦|jƒ|jst‚|jƒ\}}|dk	r~t|ƒ\}}|j|ƒsh|j|ƒn|j|||ƒn||j	|j|<|j
||ƒdS(s-Modify a value in the configuration.
        N(t_ensure_have_load_onlyRARLRMR=Rthas_sectiontadd_sectiontsetREt_mark_as_modified(RGRStvaluetfnametparsertsectionR((sL/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/configuration.pyt	set_value³s
cCsî|jƒ|jst‚||j|jkrGtdj|ƒƒ‚n|jƒ\}}|dk	rÙt|ƒ\}}|j	|ƒo•|j
||ƒs§tdƒ‚n|j|ƒsÆ|j|ƒn|j
||ƒn|j|j|=dS(s#Unset a value in the configuration.sNo such key - {}s4Fatal Internal error [id=1]. Please report as a bug.N(RURARLRERRRMR=RRVt
remove_optionRQtremove_sectionRY(RGRSR[R\R]R((sL/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/configuration.pytunset_valueÇs
cCss|jƒxb|jD]W\}}tjd|ƒttjj|ƒƒt|dƒ}|j	|ƒWdQXqWdS(s*Save the current in-memory state.
        s
Writing to %stwN(
RURFtloggertinfoRR)R*tdirnametopentwrite(RGR[R\tf((sL/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/configuration.pytsaveâs
cCs5|jdkrtdƒ‚ntjd|jƒdS(Ns'Needed a specific file to be modifying.s$Will be working with %s variant only(RAR=RRctdebug(RG((sL/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/configuration.pyRUõscCs2i}x%|jD]}|j|j|ƒqW|S(s<A dictionary representing the loaded configuration.
        (RBtupdateRE(RGtretvalR:((sL/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/configuration.pyRPûscCsØt|jƒƒ}|tjdd!tjgkrCtjdƒdSxŽ|jƒD]€\}}xq|D]i}|j	dk	r ||j	kr tjd||ƒqcn|j||ƒ}|j|j
||fƒqcWqPWdS(s5Loads configuration from configuration files
        iisZSkipping loading configuration files due to environment's PIP_CONFIG_FILE being os.devnullNs Skipping file '%s' (variant: %s)(tdicttiter_config_filesR0R#R)tdevnullRcRjRQRAR=t
_load_fileRDtappend(RGtconfig_filesR:tfilesR[R\((sL/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/configuration.pyRI	s 

cCsltjd||ƒ|j|ƒ}xC|jƒD]5}|j|ƒ}|j|j|j||ƒƒq/W|S(Ns'For variant '%s', will try loading '%s'(RcRjt_construct_parsertsectionsRQRERkt_normalized_keys(RGR:R[R\R]RQ((sL/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/configuration.pyRp$s$cCs•tjƒ}tjj|ƒr‘y|j|ƒWq‘tk
ritddjt	j
tƒƒd|ƒ‚q‘tjk
r}td|ƒ‚q‘Xn|S(Ntreasonscontains invalid {} charactersR[terror(
RtRawConfigParserR)R*texiststreadtUnicodeDecodeErrorRRtlocaletgetpreferredencodingtFalsetError(RGR[R\Rx((sL/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/configuration.pyRt/s
cCs-|jtjj|jd|jƒƒƒdS(s7Loads configuration from environment variables
        s:env:N(RER0R%RkRvtget_environ_vars(RG((sL/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/configuration.pyRJFscCs?i}x2|D]*\}}|dt|ƒ}|||<q
W|S(s×Normalizes items to construct a dictionary with normalized keys.

        This routine is where the names become keys and are made the same
        regardless of source - configuration files or environment.
        R(R(RGR]RQt
normalizedRtvalRS((sL/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/configuration.pyRvNs
ccsjxctjjƒD]R\}}|jdƒoA|djƒ|jk}|r|djƒ|fVqqWdS(s@Returns a generator with all environmental vars with prefix PIP_tPIP_iN(R)tenvironRQRRRC(RGRSRƒtshould_be_yielded((sL/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/configuration.pyR[s
ccs»tjjddƒ}|dk	r5tj|gfVntjgfVtƒ}tj|tjfV|jo|o€tj	j
|ƒ}|r¢tj|tjfVntj|tjfVdS(sYields variant and configuration files associated with it.

        This should be treated like items of a dictionary.
        tPIP_CONFIG_FILEN(
R)R…tgetR=R0R#R5RR@R*RzRR!(RGtconfig_fileRrtshould_load_user_config((sL/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/configuration.pyRngs		
cCs|j|S(s#Get values present in a config file(RE(RGR:((sL/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/configuration.pytget_values_in_config†scCs<|jst‚|j|j}|s4tdƒ‚n|dS(Ns4Fatal Internal error [id=2]. Please report as a bug.iÿÿÿÿ(RARLRDR(RGtparsers((sL/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/configuration.pyRM‹scCs2||f}||jkr.|jj|ƒndS(N(RFRq(RGR[R\tfile_parser_tuple((sL/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/configuration.pyRYšscCsdj|jj|jƒS(Ns{}({!r})(Rt	__class__t__name__RP(RG((sL/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/configuration.pyt__repr__ sN(Rt
__module__t__doc__R=R<RKRORQRTR^RaRiRUtpropertyRPRIRpRtRJRvRRnR‹RMRYR(((sL/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/configuration.pyR6cs,														
					()R’R}tloggingR)R-tpip._vendor.six.movesRtpip._internal.exceptionsRRtpip._internal.utilsRtpip._internal.utils.compatRRtpip._internal.utils.miscRRtpip._internal.utils.typingRttypingR	R
RRR
RRRytstrRt	getLoggerRRcRRR0R,R5tobjectR6(((sL/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/configuration.pyt<module>s44		
			
Back to Directory File Manager