m๒ %UฒIc@s<dZdklZlZdkZdkZdkZdkZd„Zdk Z e edƒZ e i eƒe i ƒeideƒZeededgZd„ZeiƒZy d d WneiZnXee id ƒee id ƒee id ƒee idƒee idƒee idƒee idƒee idƒee idƒee idƒdkZee idƒee idƒee i ei!ƒdƒee i gi"ƒdƒe i#ee iƒZ$ee$dei%fdei&fdei'fdeifgjdƒe i(e)d„e$ƒd ƒZ*ee*ei'ffeiffei&eiffei%ei&ei'ffgggjdƒe i#ee iƒZ+ee+d ei,fd!ei!fgjd"ƒee i-eƒd#jd$ƒee i.eƒd%jd&ƒee i/eiƒejd'ƒee i0eiƒejd(ƒee i1ei!ƒejd)ƒee i1ei2ƒejd*ƒd+„Z3ee i4ei2ƒe3d,d-ƒjd.ƒee i4eiƒe3d/d0ƒjd1ƒee i-eiƒd2jd3ƒee i-ei2ƒd4jd5ƒee i.eiƒd6jd7ƒei2d8d9d:ƒee id;ƒee id<ƒee5ei6ƒd=jd>ƒeei6d d ed?d@dAgd fjdBƒeei6d d ed:d!dCgd fjdBƒeei6dDd edEd dFgd fjdGƒee5ei7ƒdHjdIƒeei7d d edJd dKgd fjdLƒeei7d d ed:d!dCgd fjdMƒeei7dDd ed?d@dAgd fjdNƒeei7d=d ed-dOdPgd fjdQƒe i8ei9ƒ\Z:Z;Z<Z=ee:dRdSgjdTƒee;djdUƒee<djdVƒee=hdRdW<dXdW<dSdYxss class treeteggstspams function listsA module docstring.s getdoc(mod)s # line 1 sgetcomments(mod)sgetmodule(mod.StupidGit)sgetfile(mod.StupidGit)sgetsourcefile(mod.spam)sgetsourcefile(git.abuse)cCs1titdƒ}ti||d|!dƒdS(Ns i(tstringtsplittsourcetlinestjointtoptbottom(R)R*R'((Rt sourcerangeŒsii'sgetsource(git.abuse)ii.sgetsource(mod.StupidGit)sA longer, indented docstring.sgetdoc(mod.StupidGit)s$Another docstring containing tabssgetdoc(git.abuse)s # line 20 sgetcomments(mod.StupidGit)iii s git.ex[2]smod.fristrace() lengthi+targues spam(a, b, c) s trace() row 2s eggs(b + d, c + f) iis q = y / 0 s trace() row 3isstack() lengthis st = inspect.stack() s stack() row 1s stack() row 2s stack() row 3tabuses self.argue(a, b, c) s stack() row 4R tys mod.fr argssmod.fr varargss mod.fr varkwi tpis mod.fr localss (x=11, y=14)smod.fr formatted argvaluestatbtdtetfsmod.fr.f_back argstgsmod.fr.f_back varargsthsmod.fr.f_back varkws2(a=7, b=8, c=9, d=3, (e=4, (f=5,)), *g=(), **h={})s!mod.fr.f_back formatted argvaluess def wrap(foo=None): def wrapper(func): return func return wrapper def replace(func): def insteadfunc(): print 'hello' return insteadfunc # two decorators, one with argument @wrap() @wrap(wrap) def wrapped(): pass @replace def gone(): passt2t2ct2ottestmod3i sinspect.getsource(mod.wrapped)sinspect.getsource(mod.gone)tAcBstZRS(N(Rt __module__(((RR;๗stBcBstZRS(N(RR<(((RR=๘stCcBstZRS(N(RR<(((RR>๙stDcBstZRS(N(RR<(((RR?๚ssexpected %r mro, got %rcBstZRS(N(RR<(((RR;scBstZRS(N(RR<(((RR=scBstZRS(N(RR<(((RR>scBstZRS(N(RR<(((RR?scCs,g}ti|ƒD]}||d q~S(Ni(t_[1]Rtclassify_class_attrstclstt(RBR@RC((Rt attrs_wo_objs scBs_tZd„ZeeƒZd„ZeeƒZd„ZeeƒZd„Z d„Z dZ RS(NcCsdS(N((((RtsscCsdS(N((RB((RRscCsdS(N((tself((RtgetpscCsdS(N((RF((RtmscCsdS(N((RF((Rtm1st1( RR<REt staticmethodRt classmethodRGtpropertyR/RHRItdatablob(((RR;s        REs static methodsmissing static methods class methodsmissing class methodRMsmissing propertyRHtmethodsmissing plain methodRIRNtdatas missing datacBstZd„ZRS(NcCsdS(N((RF((RRH's(RR<RH(((RR=&scBstZd„Zd„ZRS(NcCsdS(N((RF((RRH3scCsdS(N((RF((RR4s(RR<RHR(((RR>2s cBstZd„ZRS(NcCsdS(N((RF((RRI?s(RR<RI(((RR?>scBs_tZd„ZeeƒZd„ZeeƒZd„ZeeƒZd„Z d„Z dZ RS(NcCsdS(N((((RREMscCsdS(N((RB((RRPscCsdS(N((RF((RRGSscCsdS(N((RF((RRHVscCsdS(N((RF((RRIXsRJ( RR<RERKRRLRGRMR/RHRIRN(((RR;Ks        cBstZd„ZRS(NcCsdS(N((RF((RRHfs(RR<RH(((RR=dscBstZd„Zd„ZRS(NcCsdS(N((RF((RRHsscCsdS(N((RF((RRts(RR<RHR(((RR>qs cBstZd„ZRS(NcCsdS(N((RF((RRI€s(RR<RI(((RR?~ss mod.eggs argssmod.eggs varargssmod.eggs varkwsmod.eggs defaultss(x, y)smod.eggs formatted argspecs mod.spam argssmod.spam varargssmod.spam varkwismod.spam defaultss,(a, b, c, d=3, (e, (f,))=(4, (5,)), *g, **h)smod.spam formatted argspecRFsA.m argss A.m varargss A.m varkws A.m defaultscCs |idƒS(Ntis(R t startswith(R ((RR! ss#There are %d (not 11) is* functionscCs |}dS(Ni(tfoo(t.0RS((Rt sublistOfOneฃsRSssublistOfOne argsssublistOfOne varargsssublistOfOne varkwssublistOfOn defaults(i(WR&ttest.test_supportRtTESTFNtsystimptosR$RRtopentfiletwritetcloset load_sourceRtfiles_to_clean_upRRtgitt exc_tracebackRRRRRRRRRt __builtin__tisdatadescriptort isroutineR#tcountt getmemberstclassesRRRt getclasstreetmapttreet functionsR"tgetdoct getcommentst getmoduletgetfilet getsourcefileR-R+t getsourcetlenttrtstt getargvaluestfrRtvarargstvarkwtlocalstNonetformatargvaluestf_backtfnametunlinktmod2twrappedtgoneR;R=R>R?texpectedtgetmrotgottobjectRDtattrst getargspectdefaultst formatargspecRHtfiltertdirRU(%RRDR>RcR=R‡R\RURzR?RlRaR&RYR~RRRR;RR$R…RR+R`RXRƒR€RxRWRRfRyRkRhR‰RZ((Rt?sฎA$        <T+ !!))))))).!+  !!         +