shell bypass 403

UnknownSec Shell

: /lib64/python2.7/ [ drwxr-xr-x ]

name : mhlib.pyo
�
zfc@s|dZddlmZeddd�[dZdZdZd	Zdd
lZdd
lZdd
l	Z	dd
l
Z
dd
lZdd
lZddl
m
Z
dd
ddgZd
efd��YZdfd��YZe	jd�Zd�Zdfd��YZde
jfd��YZdefd��YZdfd��YZdd�Zdd�Zd�Zedkrxe�nd
S(s�	MH interface -- purely object-oriented (well, almost)

Executive summary:

import mhlib

mh = mhlib.MH()         # use default mailbox directory and profile
mh = mhlib.MH(mailbox)  # override mailbox location (default from profile)
mh = mhlib.MH(mailbox, profile) # override mailbox and profile

mh.error(format, ...)   # print error message -- can be overridden
s = mh.getprofile(key)  # profile entry (None if not set)
path = mh.getpath()     # mailbox pathname
name = mh.getcontext()  # name of current folder
mh.setcontext(name)     # set name of current folder

list = mh.listfolders() # names of top-level folders
list = mh.listallfolders() # names of all folders, including subfolders
list = mh.listsubfolders(name) # direct subfolders of given folder
list = mh.listallsubfolders(name) # all subfolders of given folder

mh.makefolder(name)     # create new folder
mh.deletefolder(name)   # delete folder -- must have no subfolders

f = mh.openfolder(name) # new open folder object

f.error(format, ...)    # same as mh.error(format, ...)
path = f.getfullname()  # folder's full pathname
path = f.getsequencesfilename() # full pathname of folder's sequences file
path = f.getmessagefilename(n)  # full pathname of message n in folder

list = f.listmessages() # list of messages in folder (as numbers)
n = f.getcurrent()      # get current message
f.setcurrent(n)         # set current message
list = f.parsesequence(seq)     # parse msgs syntax into list of messages
n = f.getlast()         # get last message (0 if no messagse)
f.setlast(n)            # set last message (internal use only)

dict = f.getsequences() # dictionary of sequences in folder {name: list}
f.putsequences(dict)    # write sequences back to folder

f.createmessage(n, fp)  # add message from file f as number n
f.removemessages(list)  # remove messages in list from folder
f.refilemessages(list, tofolder) # move messages in list to other folder
f.movemessage(n, tofolder, ton)  # move one message to a given destination
f.copymessage(n, tofolder, ton)  # copy one message to a given destination

m = f.openmessage(n)    # new open message object (costs a file descriptor)
m is a derived class of mimetools.Message(rfc822.Message), with:
s = m.getheadertext()   # text of message's headers
s = m.getheadertext(pred) # text of message's headers, filtered by pred
s = m.getbodytext()     # text of message's body, decoded
s = m.getbodytext(0)    # text of message's body, not decoded
i����(twarnpy3ksOthe mhlib module has been removed in Python 3.0; use the mailbox module insteadt
stacklevelis
~/.mh_profiles~/Mails
.mh_sequencesi�N(tbisecttMHtErrortFoldertMessagecBseZRS((t__name__t
__module__(((s/usr/lib64/python2.7/mhlib.pyR[scBs�eZdZddd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd	�Zd
�Z
d�Zd�Zd
�Zd�ZRS(s<Class representing a particular collection of folders.
    Optional constructor arguments are the pathname for the directory
    containing the collection, and the MH profile to use.
    If either is omitted or empty a default is used; the default
    directory is taken from the MH profile if it is specified there.cCs�|dkrt}ntjj|�|_|dkrH|jd�}n|sWt}ntjj|�r�|ddkr�tjj	d|�}ntjj|�}tjj
|�s�td�n||_dS(sConstructor.tPathit~sMH() path not foundN(tNonet
MH_PROFILEtostpatht
expandusertprofilet
getprofiletPATHtisabstjointisdirR(tselfRR((s/usr/lib64/python2.7/mhlib.pyt__init__fs		#cCsd|j|jfS(sString representation.s
MH(%r, %r)(RR(R((s/usr/lib64/python2.7/mhlib.pyt__repr__rscGstjjd||�dS(sARoutine to print an error.  May be overridden by a derived class.s
MH error: %s
N(tsyststderrtwrite(Rtmsgtargs((s/usr/lib64/python2.7/mhlib.pyterrorvscCst|j|�S(s*Return a profile entry, None if not found.(tpicklineR(Rtkey((s/usr/lib64/python2.7/mhlib.pyRzscCs|jS(s9Return the path (the name of the collection's directory).(R(R((s/usr/lib64/python2.7/mhlib.pytgetpath~scCs7ttjj|j�d�d�}|s3d}n|S(s&Return the name of the current folder.tcontextsCurrent-Foldertinbox(RR
RRR!(RR"((s/usr/lib64/python2.7/mhlib.pyt
getcontext�s
		cCsItjj|j�d�}t|d�}|jd|�|j�dS(s#Set the name of the current folder.R"twsCurrent-Folder: %s
N(R
RRR!topenRtclose(RR"tfntf((s/usr/lib64/python2.7/mhlib.pyt
setcontext�scCsqg}|j�}xNtj|�D]=}tjj||�}tjj|�r"|j|�q"q"W|j�|S(s*Return the names of the top-level folders.(R!R
tlistdirRRRtappendtsort(RtfoldersRtnametfullname((s/usr/lib64/python2.7/mhlib.pytlistfolders�s
c	Cs�tjj|j|�}tj|�j}|dkr:gSg}tj|�}xt|D]l}tjj||�}tjj|�rVtjj||�}|j|�|d}|dkr�Pq�qVqVW|j�|S(scReturn the names of the subfolders in a given folder
        (prefixed with the given folder name).ii(	R
RRtstattst_nlinkR+RR,R-(	RR/R0tnlinkst
subfolderstsubnamestsubnametfullsubnametname_subname((s/usr/lib64/python2.7/mhlib.pytlistsubfolders�s 



cCs
|jd�S(s<Return the names of all folders and subfolders, recursively.t(tlistallsubfolders(R((s/usr/lib64/python2.7/mhlib.pytlistallfolders�sc
Cs$tjj|j|�}tj|�j}|dkr:gSg}tj|�}x�|D]�}|ddksVt|�r~qVntjj||�}tjj|�rVtjj||�}|j|�tjj	|�s�|j
|�}	||	}n|d}|dkrPqqVqVW|j�|S(s>Return the names of subfolders in a given folder, recursively.iit,i(R
RRR2R3R+t	isnumericRR,tislinkR<R-(
RR/R0R4R5R6R7R8R9t
subsubfolders((s/usr/lib64/python2.7/mhlib.pyR<�s,

	


cCs
t||�S(s0Return a new Folder object for the named folder.(R(RR/((s/usr/lib64/python2.7/mhlib.pyt
openfolder�scCset|jd�}|r6t|�r6t|d�}nt}tjtjj|j	�|�|�dS(s@Create a new folder (or raise os.error if it cannot be created).sFolder-ProtectiN(
RRR?tinttFOLDER_PROTECTR
tmkdirRRR!(RR/tprotecttmode((s/usr/lib64/python2.7/mhlib.pyt
makefolder�s
cCs�tjj|j�|�}xetj|�D]T}tjj||�}ytj|�Wq+tjk
r~|jd|�q+Xq+Wtj|�dS(s�Delete a folder.  This removes files in the folder but not
        subdirectories.  Raise os.error if deleting the folder itself fails.s%s not deleted, continuing...N(R
RRR!R+tunlinkRtrmdir(RR/R0R7R8((s/usr/lib64/python2.7/mhlib.pytdeletefolder�s	N(RRt__doc__RRRRRR!R$R*R1R:R=R<RBRHRK(((s/usr/lib64/python2.7/mhlib.pyR_s													s
^[1-9][0-9]*$cCstj|�dk	S(N(tnumericprogtmatchR(tstr((s/usr/lib64/python2.7/mhlib.pyR?�scBs�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zdd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�ZRS(s'Class representing a particular folder.cCs>||_||_tjj|j��s:td|�ndS(sConstructor.sno folder %sN(tmhR/R
RRtgetfullnameR(RRPR/((s/usr/lib64/python2.7/mhlib.pyR�s		cCsd|j|jfS(sString representation.sFolder(%r, %r)(RPR/(R((s/usr/lib64/python2.7/mhlib.pyR�scGs|jj|�dS(sError message handler.N(RPR(RR((s/usr/lib64/python2.7/mhlib.pyRscCstjj|jj|j�S(s'Return the full pathname of the folder.(R
RRRPR/(R((s/usr/lib64/python2.7/mhlib.pyRQscCstjj|j�t�S(s8Return the full pathname of the folder's sequences file.(R
RRRQtMH_SEQUENCES(R((s/usr/lib64/python2.7/mhlib.pytgetsequencesfilenamescCstjj|j�t|��S(s4Return the full pathname of a message in the folder.(R
RRRQRO(Rtn((s/usr/lib64/python2.7/mhlib.pytgetmessagefilenamescCs|jj|j�S(s!Return list of direct subfolders.(RPR:R/(R((s/usr/lib64/python2.7/mhlib.pyR:scCs|jj|j�S(sReturn list of all subfolders.(RPR<R/(R((s/usr/lib64/python2.7/mhlib.pyR<scCs�g}tj}|j}x6tj|j��D]}||�r.||�q.q.Wtt|�}|j�|r�|d|_	n	d|_	|S(s�Return the list of messages currently present in the folder.
        As a side effect, set self.last to the last message (or 0).i����i(
RMRNR,R
R+RQtmapRCR-tlast(RtmessagesRNR,R/((s/usr/lib64/python2.7/mhlib.pytlistmessagess		
	cCs�i}|j�}yt|d�}Wntk
r9|SXx�|j�}|sSPn|jd�}t|�dkr�|jd||j�f�n|dj�}t|dj�d�j	�}|||<q=W|S(s+Return the set of sequences for the folder.trt:isbad sequence in %s: %siit (
RSR&tIOErrortreadlinetsplittlenRtstriptIntSetttolist(Rt	sequencesR0R)tlinetfieldsR tvalue((s/usr/lib64/python2.7/mhlib.pytgetsequences)s$
	cCs�|j�}d}xk|j�D]]\}}tdd�}|j|�|s_t|d�}n|jd||j�f�qW|s�ytj	|�Wq�tj
k
r�q�Xn
|j�dS(s.Write the set of sequences back to the folder.R;R\R%s%s: %s
N(RSRt	iteritemsRbtfromlistR&RttostringR
RIRR'(RRdR0R)R tseqts((s/usr/lib64/python2.7/mhlib.pytputsequences=s
!cCsE|j�}yt|d�SWn ttfk
r@td�nXdS(s<Return the current message.  Raise Error when there is none.tcursno cur messageN(Rhtmaxt
ValueErrortKeyErrorR(Rtseqs((s/usr/lib64/python2.7/mhlib.pyt
getcurrentNs
cCs#t|j�dt|�d�dS(sSet the current message.RoiN(t
updatelineRSRO(RRT((s/usr/lib64/python2.7/mhlib.pyt
setcurrentVscCsL|j�}|s%td|j�n|dkr5|S|jd�}|dkr
|| d||d}}}|d dkr�|d |d}}nt|�s�td|�nyt|�}Wn#ttfk
r�t|�}nXy|j	||�}Wn�tk
r�}	|j
�}
||
krV|	s=d|}	nt|	tj�d	�n|
|}|svtd
|�n|dkr�||S|| Sq
X|s�|dkr�d}q�n|dkr�t
||�}|td||�|!St
||d�}||||!Sn|jd�}|dkr�|j	|| |�}|j	||d|�}
t
||d�}t
||
�}|||!}|s�td|�n|Sy|j	||�}WnOtk
r}	|j
�}
||
kr|	s�d|}	nt|	�n|
|SX||krAt|�r1td|�qHtd|�n|gSdS(s�Parse an MH sequence specification into a message list.
        Attempt to mimic mh-sequence(5) as close as possible.
        Also attempt to mimic observed behavior regarding which
        conditions cause which error messages.sno messages in %stallR[iR;is-+sbad message list %sissequence %s emptyt-tprevRWsmessage %d doesn't exists
no %s messageN(RyRW(RYRR/tfindR?RCRqt
OverflowErrorR`t_parseindexRhRtexc_infoRRp(RRlRwtitheadtdirttailtcounttanchorRRstmsgstbegintendtjRZRT((s/usr/lib64/python2.7/mhlib.pyt
parsesequenceZs|	 

	

	cCsLt|�r;yt|�SWq;ttfk
r7tjSXn|d
krQ|j�S|dkre|dS|dkry|dS|dkr�|j�}t||�}y||SWq�tk
r�t	d�q�Xn|d	kr?|j�}t||d
�}|dkrt	d�ny||d
SWq?tk
r;t	d�q?Xnt	d�dS(s7Internal: parse a message number (or cur, first, etc.).Rot.tfirstiRWi����tnextsno next messageRyisno prev messageN(RoR�(R?RCR{RqRtmaxintRtRt
IndexErrorRR(RRlRwRTR~((s/usr/lib64/python2.7/mhlib.pyR|�s8


cCs
t||�S(s+Open a message -- returns a Message object.(R(RRT((s/usr/lib64/python2.7/mhlib.pytopenmessage�scCsg}g}x�|D]�}|j|�}|jdt|��}ytj|�Wntjk
rhnXytj||�Wn#tjk
r�}|j|�qX|j|�qW|r�|j|�n|r
t|�dkr�tj|d�q
tjd|f�ndS(s2Remove one or more messages -- may raise os.error.R>iismultiple errors:N(	RUROR
RIRtrenameR,tremovefromallsequencesR`(RtlistterrorstdeletedRTRt	commapathR((s/usr/lib64/python2.7/mhlib.pytremovemessages�s(
icCs�g}i}x�|D]�}|j�d}|j|�}|j|�}	ytj||	�Wn�tjk
r�y!tj||	�tj|�Wq�ttjfk
r�}
|j	|
�ytj|	�Wqtjk
r�qXqq�XnX|j
|�|||<qW|r@|r*|j||j��n|j
|j��n|r�t|�dkrktj|d�q�tjd|f�ndS(s_Refile one or more messages -- may raise os.error.
        'tofolder' is an open folder object.iismultiple errors:N(tgetlastRUR
R�Rtshutiltcopy2RIR]R,tsetlastt_copysequencestitemsR�tkeysR`(RR�ttofoldert
keepsequencesR�trefiledRTttonRttopathR((s/usr/lib64/python2.7/mhlib.pytrefilemessages�s:


cCs�|j�}|j�}d}x�|j�D]�\}}y||}d}	Wntk
rjg}d}	nXx6|D].\}
}|
|krr|j|�d}qrqrW|	r+|r+|||<q+q+W|r�|j|�ndS(s.Helper for refilemessages() to copy sequences.iiN(RhR�RrR,Rn(Rt
fromfoldertrefileditemst
fromsequencesttosequencestchangedR/RlttoseqtnewtfromnR�((s/usr/lib64/python2.7/mhlib.pyR�
s$





c	Cs#|j|�}t|�}|j�~|j|�}|jd|�}ytj||�Wntjk
rtnXytj||�Wn�tjk
rd}z'|jd�tj	||�d}Wd|s�ytj
|�Wq�tjk
r�q�XnXtj
|�nX|j|g�dS(saMove one message over a specific destination message,
        which may or may not already exist.s,%diiN(RUR&R'R
R�RR�RR�R�RIR�(	RRTR�R�RR)R�tbackuptopathtok((s/usr/lib64/python2.7/mhlib.pytmovemessage"s2


c	Cs�|j|�}t|�}|j�~|j|�}|jd|�}ytj||�Wntjk
rtnXd}z'|jd�tj	||�d}Wd|s�ytj
|�Wq�tjk
r�q�XnXdS(saCopy one message over a specific destination message,
        which may or may not already exist.s,%diiN(RUR&R'R
R�RR�RR�R�RI(	RRTR�R�RR)R�R�R�((s/usr/lib64/python2.7/mhlib.pytcopymessageBs(


c	Cs�|j|�}|jd|�}ytj||�Wntjk
rLnXd}d}zPt|d�}x*|j|�}|s�Pn|j|�qnW|j�d}Wd|s�ytj|�Wq�tjk
r�q�XnXdS(	s3Create a message, with text from the open file txt.s,%diiiR%iNi@(	RUR
R�RR&treadRR'RI(	RRTttxtRt
backuppathR�tBUFSIZER)tbuf((s/usr/lib64/python2.7/mhlib.pyt
createmessage\s,

cCs�t|d�r'|j|kr'|`n|j�}d}xo|j�D]a\}}|dkrdqFnx@|D]8}||krk|j|�d}|s�||=q�qkqkWqFW|r�|j|�ndS(s`Remove one or more messages from all sequences (including last)
        -- but not from 'cur'!!!RWiRoiN(thasattrRWRhR�tremoveRn(RR�RdR�R/RlRT((s/usr/lib64/python2.7/mhlib.pyR�vs	

cCs#t|d�s|j�n|jS(sReturn the last message number.RW(R�RYRW(R((s/usr/lib64/python2.7/mhlib.pyR��s
cCs4|dkr't|d�r0|`q0n	||_dS(sSet the last message number.RWN(RR�RW(RRW((s/usr/lib64/python2.7/mhlib.pyR��s(RRRLRRRRQRSRUR:R<RYRhRnRtRvR�R|R�R�R�R�R�R�R�R�R�R�(((s/usr/lib64/python2.7/mhlib.pyR�s4														T			#		 				cBsGeZdd�Zd�Zdd�Zdd�Zd�Zd�ZRS(cCsV||_||_|dkr?|j|�}t|d�}ntjj||�dS(sConstructor.RZN(tfoldertnumberRRUR&t	mimetoolsRR(RR)RTtfpR((s/usr/lib64/python2.7/mhlib.pyR�s		cCsdt|j�|jfS(sString representation.sMessage(%s, %s)(treprR�R�(R((s/usr/lib64/python2.7/mhlib.pyR�scCs�|dkrdj|j�Sg}d}xn|jD]c}|dj�s|jd�}|dkr||| j��}qn|r2|j|�q2q2Wdj|�S(s�Return the message's header text as a string.  If an
        argument is specified, it is used as a filter predicate to
        decide which headers to return (its argument is the header
        name converted to lower case).R;iR[N(RRtheaderstisspaceRztlowerR,(RtpredR�thitReR~((s/usr/lib64/python2.7/mhlib.pyt
getheadertext�sicCs�|jj|j�|j�}|s2|dkr?|jj�Syddlm}Wn!tk
rvddlm}nX|�}tj	|j||�|j
�S(s�Return the message's body text as string.  This undoes a
        Content-Transfer-Encoding, but does not interpret other MIME
        features (e.g. multipart messages).  To suppress decoding,
        pass 0 as an argument.R;t7bitt8bittbinaryi����(tStringIO(R;R�R�R�(R�tseektstartofbodytgetencodingR�t	cStringIOR�tImportErrorR�tdecodetgetvalue(RR�tencodingR�toutput((s/usr/lib64/python2.7/mhlib.pytgetbodytext�s

	cCs�|j�dkrtd�n|jd�}|s?td�n|jj|j�tj|j�}|j|�g}xO|j	�r�d|j
dt|�f}t|j
||�}|j|�qzW|j�|S(s�Only for multipart messages: return the message's body as a
        list of SubMessage objects.  Each submessage object behaves
        (almost) as a Message object.t	multipartsContent-Type is not multipart/*tboundarys"multipart/* without boundary params%s.%ri(tgetmaintypeRtgetparamR�R�R�t	multifilet	MultiFiletpushR�R�R`t
SubMessageR�R,tpop(RtbdrytmftpartsRTtpart((s/usr/lib64/python2.7/mhlib.pytgetbodyparts�s

cCs*|j�dkr|j�S|j�SdS(s3Return body, either a string or a list of messages.R�N(R�R�R�(R((s/usr/lib64/python2.7/mhlib.pytgetbody�s
N(	RRRRRR�R�R�R�(((s/usr/lib64/python2.7/mhlib.pyR�s			R�cBs8eZd�Zd�Zdd�Zd�Zd�ZRS(cCsktj||||�|j�dkr=tj|�|_ntj|�|_tj|dd�|_dS(sConstructor.R�R�iN(RRR�R�tbodyR�tbodyencoded(RR)RTR�((s/usr/lib64/python2.7/mhlib.pyR�s
cCs.|j|j|j}}}d|||fS(sString representation.sSubMessage(%s, %s, %s)(R�R�R�(RR)RTR�((s/usr/lib64/python2.7/mhlib.pyR�sicCs3|s
|jSt|j�td�kr/|jSdS(NR;(R�ttypeR�(RR�((s/usr/lib64/python2.7/mhlib.pyR��scCs&t|j�tg�kr"|jSdS(N(R�R�(R((s/usr/lib64/python2.7/mhlib.pyR��scCs|jS(N(R�(R((s/usr/lib64/python2.7/mhlib.pyR��s(RRRRR�R�R�(((s/usr/lib64/python2.7/mhlib.pyR��s
	
		RbcBs�eZdZdddd�Zd�Zd�Zd�Zd�Zd�Z	d	�Z
d
�Zd�Zd�Z
d
�Zd�Zd�Zd�Zd�Zd�ZRS(s�Class implementing sets of integers.

    This is an efficient representation for sets consisting of several
    continuous ranges, e.g. 1-100,200-400,402-1000 is represented
    internally as a list of three pairs: [(1,100), (200,400),
    (402,1000)].  The internal representation is always kept normalized.

    The constructor has up to three arguments:
    - the string used to initialize the set (default ''),
    - the separator between ranges (default ',')
    - the separator between begin and end of a range (default '-')
    The separators must be strings (not regexprs) and should be different.

    The tostring() function yields a string that can be passed to another
    IntSet constructor; __repr__() is a valid IntSet constructor itself.
    R>RxcCs5g|_||_||_|r1|j|�ndS(N(tpairstseptrngt
fromstring(RtdataR�R�((s/usr/lib64/python2.7/mhlib.pyRs
			cCs
g|_dS(N(R�(R((s/usr/lib64/python2.7/mhlib.pytreset scCst|j|j�S(N(tcmpR�(Rtother((s/usr/lib64/python2.7/mhlib.pyt__cmp__#scCs
t|j�S(N(thashR�(R((s/usr/lib64/python2.7/mhlib.pyt__hash__&scCsd|j�|j|jfS(NsIntSet(%r, %r, %r)(RkR�R�(R((s/usr/lib64/python2.7/mhlib.pyR)scCs�|jj�d}x�|t|j�kr�|j|d\}}|j|\}}||dkr�|t||�fg|j|d|d+q|d}qWdS(Ni(R�R-R`Rp(RR~talotahitblotbhi((s/usr/lib64/python2.7/mhlib.pyt	normalize,s
-cCs|d}xo|jD]d\}}||kr7t|�}nt|�|jt|�}|rn||j|}q|}qW|S(NR;(R�R�R�R�(RRmtlothitt((s/usr/lib64/python2.7/mhlib.pyRk7s
cCsAg}x4|jD])\}}t||d�}||}qW|S(Ni(R�trange(RtlR�R�tm((s/usr/lib64/python2.7/mhlib.pyRc@s
cCs"x|D]}|j|�qWdS(N(R,(RR�R~((s/usr/lib64/python2.7/mhlib.pyRjGs
cCst�}|j|_|S(N(RbR�(RR�((s/usr/lib64/python2.7/mhlib.pytcloneKs	
cCs|jddS(Ni(R�(R((s/usr/lib64/python2.7/mhlib.pytminPscCs|jddS(Ni����(R�(R((s/usr/lib64/python2.7/mhlib.pyRpSscCs>x7|jD],\}}||ko-|knr
tSq
WtS(N(R�tTruetFalse(RtxR�R�((s/usr/lib64/python2.7/mhlib.pytcontainsVscCsqx�tt|j��D]�}|j|\}}||kr�|d|kra||f|j|<n|jj|||f�|dkr�|d|j|ddkr�|j|dd|j|dfg|j|d|d+ndS||krdSqWt|j�d}|dkrW|j|\}}|d|krW||f|j|<dSn|jj||f�dS(Nii(R�R`R�tinsertR,(RR�R~R�R�((s/usr/lib64/python2.7/mhlib.pyR,[s&+,cCs4||krdS|jj||f�|j�dS(N(R�R,R�(Rtxlotxhi((s/usr/lib64/python2.7/mhlib.pytaddpairtscCsg}x�|j|j�D]�}g}x9|j|j�D]%}|j�}|jt|��q8Wt|�dkr�|j|d|df�qt|�dkr�|d|dkr�|j|d|df�qtd�qW|j||_|j	�dS(Niiisbad data passed to IntSet(
R_R�R�RaR,RCR`RqR�R�(RR�R�R�R�tsubpRm((s/usr/lib64/python2.7/mhlib.pyR�ys&
N(RRRLRRR�R�R�RR�RkRcRjR�R�RpR�R,RR�(((s/usr/lib64/python2.7/mhlib.pyRbs"															icCs�yt|d�}Wntk
r'dSXtj|�d}tj||oPtj�}x�|j�}|soPn|j|�rY|t	|�d}x6|j�}|s�|dj
�r�Pn||}q�W|j�SqYWdS(NRZR[ii(R&R]Rtretescapetcompilet
IGNORECASER^RNR`R�Ra(tfileR tcasefoldR)tpattprogRettext((s/usr/lib64/python2.7/mhlib.pyR�s&
cCsay)t|d�}|j�}|j�Wntk
rBg}nXtj|�d}tj||oktj�}|dkr�d}nd||f}xst	t
|��D]C}	||	}
|j|
�r�|dkr�||	=n
|||	<Pq�q�W|dk	r|j|�n|d}t|d�}x|D]}
|j
|
�q,W|j�tj||�dS(NRZs:(.*)
s%s: %s
R
R%(R&t	readlinesR'R]RRRRRR�R`RNR,RR
R�(RR RgRR)tlinesR	R
tnewlineR~Rettempfile((s/usr/lib64/python2.7/mhlib.pyRu�s4

	





c	Cs�tjd�t�ad�}|d�|d�ddddd	d
g}x|D]}|d|f�qRW|d�|d
�tjd�a|d�|d�|d�tj�}tdd�j�|d<|GHtj	|�|d�x%t
|�D]}|d|f�q�W|d�tj�}tj|�a|d�x|d/D]t}y|d*|f�Wntk
r�}d+G|GHnXtj
d,|f�j�}tt|j��}|Gd-GHqMW|d.�dS(0Nsrm -rf $HOME/Mail/@testcSs|GHt|�GHdS(N(teval(Rm((s/usr/lib64/python2.7/mhlib.pytdo�ssmh.listfolders()smh.listallfolders()s@tests@test/test1s@test/test2s@test/test1/test11s@test/test1/test12s@test/test1/test11/test111smh.makefolder(%r)smh.listsubfolders('@test')smh.listallsubfolders('@test')sf.listsubfolders()sf.listallsubfolders()sf.getsequences()s
1-10 12-20R\tfoosmh.deletefolder(%r)smh.getcontext()sf.getcurrent()R�RWRoR�RyR�sfirst:3slast:3scur:3scur:-3sprev:3snext:3s1:3s1:-3s100:3s100:-3s10000:3s10000:-3Rwsf.parsesequence(%r)sError:spick %r 2>/dev/nulls<-- picksf.listmessages()(R�RWRoR�RyR�sfirst:3slast:3scur:3scur:-3sprev:3snext:3s1:3s1:-3s100:3s100:-3s10000:3s10000:-3Rw(R
tsystemRRPRBR)RhRbRcRntreversedR$RtpopenR�RVRCR_(	RttestfoldersR�RsR"RlRtstuffR�((s/usr/lib64/python2.7/mhlib.pyttest�sP
		

		












t__main__(RLtwarningsRRRRRRDR
RRR�R�R�Rt__all__t	ExceptionRRRRMR?RRR�RbRRuRR(((s/usr/lib64/python2.7/mhlib.pyt<module>6s<	
�	��M�"	*

© 2025 UnknownSec
The Future of Energy | Anyleson - Learning Platform
INR (₹)
India Rupee
$
United States Dollar
The Future of Energy
Special Offer Limited Offer
Day
Hr
Min
Sec
40% Off

The Future of Energy

in Science
2.50
(1 Ratings)
Created by Kate Williams

Report course

Please describe about the report short and clearly.

Share

Share course with your friends

Buy with points