ok

Mini Shell

Direktori : /proc/self/root/lib/python2.7/site-packages/yum/
Upload File :
Current File : //proc/self/root/lib/python2.7/site-packages/yum/parser.pyc

�
8M�bc@skddlZddlZddlZddlZddlZejd�Zd�Zddd��YZ	dS(i����Ns\$(\w+)cCs�|s
|Sg}x�|r�tj|�}|s?|j|�Pn|jd�j�}|j||j��}|j�\}}|j|| �|j|�||}qWdj|�S(sPerform variable replacement

    @param raw: String to perform substitution on.  
    @param vars: Dictionary of variables to replace. Key is variable name
        (without $ prefix). Value is replacement string.
    @return: Input raw string with substituted values.
    it(t_KEYCREtsearchtappendtgrouptlowertgettspantjoin(trawtvarstdonetmtvarnametreplacementtstarttend((s./usr/lib/python2.7/site-packages/yum/parser.pyt
varReplaces		

tConfigPreProcessorcBsSeZdZd	d�Zdd�Zd�Zd�Zd�Zd�Z	d�Z
RS(
s�
    ConfigParser Include Pre-Processor

    File-like Object capable of pre-processing include= lines for
    a ConfigParser. 

    The readline function expands lines matching include=(url)
    into lines from the url specified. Includes may occur in
    included files as well. 

    Suggested Usage::
        cfg = ConfigParser.ConfigParser()
        fileobj = confpp( fileorurl )
        cfg.readfp(fileobj)
    cCs�||_d|_d|_tj|�d}|dkr�|ddkr{ytj�d}Wn
d}nX||}nd|}n|}g|_g|_|j	|�}|dkr�t
jd|�ndS(NtriRt/sfile://sError accessing file: %s(t_varstNonet_sectiontmodeturlparsetostgetcwdt	_incstackt_alreadyincludedt	_pushfiletErrorstConfigError(tselft
configfileR
tschemetrootdirturltfo((s./usr/lib/python2.7/site-packages/yum/parser.pyt__init__=s$			


		icCs2d}x�t|j�dkr�|jd}|j�}t|�dkr�tjd|�}|r�|jd�}t|�dkr�tjd|j�q�t	||j
�}|j|�}q�tjd|�}|r�|jd�|_nPq	|j
�q	Wtjd	|�}|r"|j�}nt	||j
�S(
s�
        Implementation of File-Like Object readline function. This should be
        the only function called by ConfigParser according to the python docs.
        We maintain a stack of real FLOs and delegate readline calls to the 
        FLO on top of the stack. When EOF occurs on the topmost FLO, it is 
        popped off the stack and the next FLO takes over. include= lines 
        found anywhere cause a new FLO to be opened and pushed onto the top 
        of the stack. Finally, we return EOF when the bottom-most (configfile
        arg to __init__) FLO returns EOF.
        
        Very Technical Pseudo Code::
        
            def confpp.readline() [this is called by ConfigParser]
                open configfile, push on stack
                while stack has some stuff on it
                    line = readline from file on top of stack
                    pop and continue if line is EOF
                    if line starts with 'include=' then
                        error if file is recursive or duplicate
                        otherwise open file, push on stack
                        continue
                    else
                        return line
                
                return EOF
        Rii����s\s*include\s*=\s*(?P<url>.*)R%s>Error parsing config %s: include must specify file to include.s\s*\[(?P<section>.*)\]tsections\s+\[(?P<section>.*)\](tlenRtreadlinetretmatchRRR tnameRRRRt_popfiletlstrip(R!tsizetlineR&RR%tsecmatchtbroken_sec_match((s./usr/lib/python2.7/site-packages/yum/parser.pyR*as,
cCs3t|j�dkr|Stj|j�|�SdS(s�
        Returns an absolute url for the (possibly) relative
        url specified. The base url used to resolve the
        missing bits of url is the url of the file currently
        being included (i.e. the top of the stack).
        iN(R)RRturljointgeturl(R!R%((s./usr/lib/python2.7/site-packages/yum/parser.pyt_absurl�scCs�|j|�}||jf}|j|�r1dSytjj|�}Wntjjk
rh}d}nX|dk	r�||_|j	j
|�|jj
|�ntj
d|�|S(s�
        Opens the url specified, pushes it on the stack, and 
        returns a file like object. Returns None if the url 
        has previously been included.
        If the file can not be opened this function exits.
        s"Error accessing file for config %sN(R6Rt_isalreadyincludedRt
urlgrabbertgrabberturlopentURLGrabErrorR-RRRRR (R!R%tabsurltincludetupleR&te((s./usr/lib/python2.7/site-packages/yum/parser.pyR�s

	
cCsT|jj�}|j�t|j�dkrG|jdj�|_n	d|_dS(sW
        Pop a file off the stack signaling completion of including that file.
        ii����N(RtpoptcloseR)R5R-R(R!R&((s./usr/lib/python2.7/site-packages/yum/parser.pyR.�s

cCs(x!|jD]}||kr
dSq
WdS(s�
        Checks if the tuple describes an include that was already done.
        This does not necessarily have to be recursive
        ii(R(R!ttupletetuple((s./usr/lib/python2.7/site-packages/yum/parser.pyR7�scCs|jS(N(R-(R!((s./usr/lib/python2.7/site-packages/yum/parser.pyR5�sN(t__name__t
__module__t__doc__RR'R*R6RR.R7R5(((s./usr/lib/python2.7/site-packages/yum/parser.pyR+s$C		!		
((
R+RR8tos.pathRRtcompileRRR(((s./usr/lib/python2.7/site-packages/yum/parser.pyt<module>s	

Zerion Mini Shell 1.0