Your IP : 172.28.240.42


Current Path : /usr/share/python/debpython/
Upload File :
Current File : //usr/share/python/debpython/namespace.pyc


JQc@sddlmZddlZddlmZmZmZmZddlm	Z	m
Z
mZmZm
Z
ddlmZmZddlmZddlmZmZejeZddZedd	Zddd
ZdZdS(i(twith_statementN(tenvirontlistdirtremovetrmdir(tdirnametexiststjointgetsizetsplit(tPopentPIPE(t
PUBLIC_DIR_RE(tmemoizetsitedirc	Cslt|pg}xS|D]K}t|d4}x*|D]"}|r8|j|jq8q8WWdQXqW|S(s#Parse namespace_packages.txt files.trN(tsettopentaddtstrip(tfpathstothertresulttfpathtfptline((s(/usr/share/python/debpython/namespace.pytparse"s

$cCsd}dtjdd}|rLt||}t|r|g}qn7t|rgt|D]}t||^qe}n|rtdt|D}n	t}|S(s~Return a set of namespaces to regenerate/clean.

    :param package: limit namespaces to the ones needed by given package
    s%s/usr/share/python/ns/tDESTDIRtcss!|]}|jddVqdS(t.t/N(treplace(t.0ti((s(/usr/share/python/debpython/namespace.pys	<genexpr>AsN(tNoneRtgetRRRRR(tpackageRtnsdirRR!R((s(/usr/share/python/debpython/namespace.pytload-s+	ccsU|dk	r-t|}t}t}nx/|D]'}|V|dkrQq4nt|}||kr4|j|tj|}|r[|j}	x||	krT|t|	d}
|
|kr4t	|d}|t
kr$yt|djWn!t
k
rtjd|q1X|Vq4|j|n|j|t|d}qWq[q4q4W|tkrQ|rQtddj	|dt
d	t}|j\}
}xF|
jD]8}|jd
dd}||kr|j|qqWx]|D]R}yt|Wn6ttfk
rD}tjd|tj|qX|VqWndS(
s)Add __init__.py files to given generator.is__init__.pytascannot create %sis/usr/bin/dpkg -S %s 2>/dev/nullt tshelltstdouts: scannot remove %sN(R"R&RRRRtmatchtgrouptlenRtTrueRtcloset	ExceptiontlogterrorR	tFalseR
Rtcommunicatet
splitlinesRtIOErrortOSErrortdebug(tfilesR$tactiont
namespacestalready_processedtremoval_candidatestfntdpathtmt
public_dirtns_dirRtprocessR*tstderrRtnste((s(/usr/share/python/debpython/namespace.pytadd_namespace_filesGsT	




c	Cst|tst|}nt}x|D]}x|D]{}tt|||jd}t|d}t|sq;nt|dkr;tjd||j	|Pq;q;Wq.W||}x|D]}xp|D]h}tt|||jd}t|d}t|rt
|t|sDt|qDqqWtd|d|jd}t|d}t|rt
|t|st|qqqW|S(s8Remove empty __init__.py files for requested namespaces.Rs__init__.pyis)file not empty, cannot share %s namespacetdebiansusr/share/pyshared(
t
isinstanceRRRR	RRR1twarningRRRR(	R$R;tversionstkeepREtversionRRR?((s(/usr/share/python/debpython/namespace.pytremove_from_packages:	

!



!

(t
__future__RtloggingtosRRRRtos.pathRRRRR	t
subprocessR
Rtdebpython.pydistRtdebpython.toolsR
Rt	getLoggert__name__R1R"RR&RGRN(((s(/usr/share/python/debpython/namespace.pyt<module>s"(8