^c@sHddlZddlZejddkZer@eZeZn eZeZdddYZ dZ e dZ dZ d Zd dd YZejdkrdZnddlmZdZedkrDddlZddlZe ejddZejdx.edD]Zejejdq WndS(iNiitConsoleProgressBarcBs/eZdddZddZddZRS(idt#cCs:d|_d|_||_||_||_t|_dS(Ni(tblockstcurrenttstepst indicatortouttFalsetdone(tselfRRR((s3/usr/lib64/python2.7/site-packages/sepolgen/util.pyt__init__"s      cCs:t|_|r&|jjd|n|jjddS(Ns %s: s3%--10---20---30---40---50---60---70---80---90--100 (RRRtwrite(R tmessage((s3/usr/lib64/python2.7/site-packages/sepolgen/util.pytstart*s icCs|j|7_|j}tt|jt|jdd|_|jdkr`d|_n|j|}|jj|j||jj |jdkr|j rt |_ |jjdndS(Nidii2s ( RRtinttroundtfloatRRR RtflushRtTrue(R tntoldtnew((s3/usr/lib64/python2.7/site-packages/sepolgen/util.pytstep0s -    N(t__name__t __module__R tNoneR R(((s3/usr/lib64/python2.7/site-packages/sepolgen/util.pyR!s cCsg}|j||S(N(textend(tstl((s3/usr/lib64/python2.7/site-packages/sepolgen/util.pyt set_to_listBs cCsUt|stdn|r?t|}|j|dSx|D]}|SWdS(s Return the first element of a set. It sometimes useful to return the first element from a set but, because sets are not indexable, this is rather hard. This function will return the first element from a set. If sorted is True, then the set will first be sorted (making this an expensive operation). Otherwise a random element will be returned (as sets are not ordered). sempty containteriN(tlent IndexErrorRtsort(RtsortedRtx((s3/usr/lib64/python2.7/site-packages/sepolgen/util.pytfirstGs    cCsRddl}|j}y|j|}Wn tk rM|jd}nX|S(Nisutf-8(tlocaletgetpreferredencodingtencodet UnicodeError(ttextR$tencodingt encoded_text((s3/usr/lib64/python2.7/site-packages/sepolgen/util.pyt encode_input\s   cCsRddl}|j}y|j|}Wn tk rM|jd}nX|S(Nisutf-8(R$R%tdecodeR'(R(R$R)t decoded_text((s3/usr/lib64/python2.7/site-packages/sepolgen/util.pyt decode_inputjs   t ComparisoncBsMeZdZdZdZdZdZdZdZdZ RS(sClass used when implementing rich comparison. Inherit from this class if you want to have a rich comparison withing the class, afterwards implement _compare function within your class.cCs tdS(N(tNotImplemented(R tothertmethod((s3/usr/lib64/python2.7/site-packages/sepolgen/util.pyt_comparescCs|j|dS(NcSs ||kS(N((tatb((s3/usr/lib64/python2.7/site-packages/sepolgen/util.pyts(R3(R R1((s3/usr/lib64/python2.7/site-packages/sepolgen/util.pyt__eq__scCs|j|dS(NcSs ||kS(N((R4R5((s3/usr/lib64/python2.7/site-packages/sepolgen/util.pyR6s(R3(R R1((s3/usr/lib64/python2.7/site-packages/sepolgen/util.pyt__lt__scCs|j|dS(NcSs ||kS(N((R4R5((s3/usr/lib64/python2.7/site-packages/sepolgen/util.pyR6s(R3(R R1((s3/usr/lib64/python2.7/site-packages/sepolgen/util.pyt__le__scCs|j|dS(NcSs ||kS(N((R4R5((s3/usr/lib64/python2.7/site-packages/sepolgen/util.pyR6s(R3(R R1((s3/usr/lib64/python2.7/site-packages/sepolgen/util.pyt__ge__scCs|j|dS(NcSs ||kS(N((R4R5((s3/usr/lib64/python2.7/site-packages/sepolgen/util.pyR6s(R3(R R1((s3/usr/lib64/python2.7/site-packages/sepolgen/util.pyt__gt__scCs|j|dS(NcSs ||kS(N((R4R5((s3/usr/lib64/python2.7/site-packages/sepolgen/util.pyR6s(R3(R R1((s3/usr/lib64/python2.7/site-packages/sepolgen/util.pyt__ne__s( RRt__doc__R3R7R8R9R:R;R<(((s3/usr/lib64/python2.7/site-packages/sepolgen/util.pyR/xs      iicsddfdY}|S(s,Convert a cmp= function into a key= functiontKcskeZdZfdZfdZfdZfdZfdZfdZRS(cWs ||_dS(N(tobj(R R?targs((s3/usr/lib64/python2.7/site-packages/sepolgen/util.pyR scs|j|jdkS(Ni(R?(R R1(tmycmp(s3/usr/lib64/python2.7/site-packages/sepolgen/util.pyR8scs|j|jdkS(Ni(R?(R R1(RA(s3/usr/lib64/python2.7/site-packages/sepolgen/util.pyR;scs|j|jdkS(Ni(R?(R R1(RA(s3/usr/lib64/python2.7/site-packages/sepolgen/util.pyR7scs|j|jdkS(Ni(R?(R R1(RA(s3/usr/lib64/python2.7/site-packages/sepolgen/util.pyR9scs|j|jdkS(Ni(R?(R R1(RA(s3/usr/lib64/python2.7/site-packages/sepolgen/util.pyR:scs|j|jdkS(Ni(R?(R R1(RA(s3/usr/lib64/python2.7/site-packages/sepolgen/util.pyR<s( RRR R8R;R7R9R:R<((RA(s3/usr/lib64/python2.7/site-packages/sepolgen/util.pyR>s (((RAR>((RAs3/usr/lib64/python2.7/site-packages/sepolgen/util.pyt cmp_to_keys(RBcCs||k||kS(N((R#tsecond((s3/usr/lib64/python2.7/site-packages/sepolgen/util.pytcmpst__main__Ris computing pigMbP?(((ii(R$tsyst version_infotPY3tbytest bytes_typetstrt string_typetunicodeRRRR#R+R.R/RBt functoolsRDRttimetstdouttpR trangetiRtsleep(((s3/usr/lib64/python2.7/site-packages/sepolgen/util.pyts2   !