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
Learning made Easy | Anyleson - Learning Platform
INR (₹)
India Rupee
$
United States Dollar

Joy of learning & teaching...

Rocket LMS is a fully-featured educational platform that helps instructors to create and publish video courses, live classes, and text courses and earn money, and helps students to learn in the easiest way.

6

Skillful Instructors

Start learning from experienced instructors.

11

Happy Students

Enrolled in our courses and improved their skills.

8

Live Classes

Improve your skills using live knowledge flow.

10

Video Courses

Learn without any geographical & time limitations.

Featured Courses

#Browse featured courses and become skillful

New Learning Page

Learn step-by-step tips that help you get things done with your virtual team by increasing trust and accountability.If you manage a virtual team today, then you'll probably continue to do so for the rest of your career.

5.00
20% Offer

Excel from Beginner to Advanced

Microsoft Excel is a spreadsheet developed by Microsoft for Windows, macOS, Android and iOS. It features calculation, graphing tools, pivot tables, and a macro programming language called Visual Basic for Applications (VBA).

4.75

Newest Courses

#Recently published courses

View All
Course
Full Stack Web Development

Full Stack Web Development

in Web Development
83:20 Hours
10 Oct 2024
₹28,318.82
Course
Installment and Secure Host

Installment and Secure Host

in Business Strategy
5.00
1:30 Hours
16 Mar 2023
₹118
Not conducted
Bestseller
New In-App Live System

New In-App Live System

in Communications
5.00
2:30 Hours
1 Mar 2026
₹11.80
Featured
New Learning Page

New Learning Page

in Lifestyle
5.00
3:30 Hours
1 Mar 2022
Free
Finished
Effective Time Management

Effective Time Management

in Management
5.00
1:30 Hours
1 Aug 2023
₹35.40
20% Offer
Excel from Beginner to Advanced

Excel from Beginner to Advanced

in Management
4.75
1:40 Hours
20 Mar 2026
₹94.40 ₹118

Latest bundles

Latest bundles subtitle

View All
Bestseller
Microsoft Office Beginner to Expert Bundle

Microsoft Office Beginner to Expert Bundle

in Management
5.00
15:10 Hours
24 Jun 2022
₹59

A-Z Web Programming

in Web Development
4.75
2:20 Hours
25 Jun 2022
₹9.44

Upcoming Courses

Courses that will be published soon

View All

Best Rated Courses

#Enjoy high quality and best rated content

View All
Finished
Effective Time Management

Effective Time Management

in Management
5.00
1:30 Hours
1 Aug 2023
₹35.40
20% Offer
Health And Fitness Masterclass

Health And Fitness Masterclass

in Health & Fitness
5.00
1:00 Hours
1 Jul 2021
₹18.88 ₹23.60
Finished
Learn Linux in 5 Days

Learn Linux in 5 Days

in Web Development
4.69
7:30 Hours
10 Jul 2021
Free
Text course
Learn Python Programming

Learn Python Programming

in Web Development
4.63
0:35 Hours
29 Jun 2021
Free
Course
Become a Product Manager

Become a Product Manager

in Business Strategy
4.58
2:30 Hours
28 Jun 2021
Free
20% Offer
Learn and Understand AngularJS

Learn and Understand AngularJS

in Web Development
3.88
1:00 Hours
10 Dec 2023
₹18.88 ₹23.60

Trending Categories

#Browse trending & popular learning topics

Bestselling Courses

#Learn from bestselling courses

View All
Finished
Learn Linux in 5 Days

Learn Linux in 5 Days

in Web Development
4.00
7:30 Hours
10 Jul 2021
Free
20% Offer
Excel from Beginner to Advanced

Excel from Beginner to Advanced

in Management
4.75
1:40 Hours
20 Mar 2026
₹94.40 ₹118
Finished
Effective Time Management

Effective Time Management

in Management
5.00
1:30 Hours
1 Aug 2023
₹35.40
40% Offer
The Future of Energy

The Future of Energy

in Science
2.50
1:10 Hours
8 Jul 2021
₹42.48 ₹70.80
Featured
New Learning Page

New Learning Page

in Lifestyle
5.00
3:30 Hours
1 Mar 2022
Free
Not conducted
Bestseller
New In-App Live System

New In-App Live System

in Communications
5.00
2:30 Hours
1 Mar 2026
₹11.80

Free Courses

#Never miss free learning opportunities

View All
Featured
New Learning Page

New Learning Page

in Lifestyle
5.00
3:30 Hours
1 Mar 2022
Free
Course
New Update Features

New Update Features

in Language
4.00
1:30 Hours
21 Jun 2022
Free
Text course
Learn Python Programming

Learn Python Programming

in Web Development
5.00
0:35 Hours
29 Jun 2021
Free
Finished
Learn Linux in 5 Days

Learn Linux in 5 Days

in Web Development
4.00
7:30 Hours
10 Jul 2021
Free
Course
Become a Product Manager

Become a Product Manager

in Business Strategy
4.58
2:30 Hours
28 Jun 2021
Free

Discounted Courses

#Get courses at the latest price

View All
20% Offer
Excel from Beginner to Advanced

Excel from Beginner to Advanced

in Management
4.75
1:40 Hours
20 Mar 2026
₹94.40 ₹118
20% Offer
Learn and Understand AngularJS

Learn and Understand AngularJS

in Web Development
2.75
1:00 Hours
10 Dec 2023
₹18.88 ₹23.60
20% Offer
Health And Fitness Masterclass

Health And Fitness Masterclass

in Health & Fitness
5.00
1:00 Hours
1 Jul 2021
₹18.88 ₹23.60
40% Offer
The Future of Energy

The Future of Energy

in Science
2.50
1:10 Hours
8 Jul 2021
₹42.48 ₹70.80

Store Products

Explore physical & virtual products

All Products

Subscribe Now!

#Choose a subscription plan and save money!

Become an instructor

Are you interested to be a part of our community? You can be a part of our community by signing up as an instructor or organization.

Become an instructor circle dots
user name
Become an instructor start earning right now...
Have a Question? Ask it in forum and get answer circle dots

Have a Question? Ask it in forum and get answer

Our forums helps you to create your questions on different subjects and communicate with other forum users. Our users will help you to get the best answer!

Find the best instructor

Looking for an instructor? Find the best instructors according to different parameters like gender, skill level, price, meeting type, rating, etc. Find instructors on the map.

Find the best instructor circle dots
user name
Tutor Finder Find the best instructor now...

Start learning anywhere, anytime...

Use Rocket LMS to access high-quality education materials without any limitations in the easiest way.

Win Club Points
medal
You earned 50 points! for completing the course...

Win Club Points

Use Rocket LMS and win club points according to different activities. You will be able to use your club points to get free prizes and courses. Start using the system now and collect points!

Instructors

#Learn from the experienced & skillful instructors

All Instructors

Testimonials

#What our customers say about us

Ryan Newman

Ryan Newman

Data Analyst at Microsoft

"We've used Rocket LMS for the last 2  years. Thanks for the great service."

Megan Hayward

Megan Hayward

System Administrator at Amazon

"We're loving it. Rocket LMS is both perfect    and highly adaptable."

Natasha Hope

Natasha Hope

IT Technician at IBM

"I am really satisfied with my Rocket LMS. It's the perfect solution for our business."

Charles Dale

Charles Dale

Computer Engineer at Oracle

"I am so pleased with this product. I couldn't have asked for more than this."

David Patterson

David Patterson

Network Technician at Cisco

"Rocket LMS impressed me on multiple           levels."

Organizations

#Greatest education organizations are here to help you

All Organizations

Blog

#Explore latest news and articles

Blog Posts
Become a Straight-A Student 1 Jul 2021

Become a Straight-A Student

In this article, I’ll explain the two rules I followed to become a straight-A student. If you take my advice, you’ll get better grades and lead a more ...
How To Teach Your Kid Easily 1 Jul 2021

How To Teach Your Kid Easily

The primary reason kids struggle with school is fear. And in most cases, it’s their parent's fault. I started tutoring math out of financial desperation. ...
Better Relationship Between Friends 1 Jul 2021

Better Relationship Between Friends

The tutor-parent relationship is an important relationship and unfortunately greatly overlooked. Why is it important? Well, a good relationship between you and ...