;ς = ΔDc@s dkZdkZdkZdkZdkZdkZdkZdkZdkZdk l Z z"ei Z e ƒe_ dk Z Wde e_ XdkiZdkTdkiZdkiZeigZeedƒoeieiƒneeiieƒZdeifd„ƒYZeZdS(N(sStringIO(s*s__file__sPythoncBsŒtZdgZdgZeieidZd„Ze edgƒZgi Z e i idƒiƒD]!Z e oe ee ƒƒqgqg[ Zeidƒd„Ze eƒZeid eiƒZeid eiƒZeid eiƒZeid eiƒZeid eieiBƒZeideieiBƒZeeeeeefZd„Zd„Z e!e ƒZ d„Z"e e"ƒZ"RS(NsWebs aspnRecipess_.c CsΙd„}td„} |itii|i ƒdjo|i dƒdSnd|jotii |ddƒ\}} |tjot|}t|| ƒoSt|| ƒ}t|dƒo|i||iƒƒq|itd |ƒƒqδtd || ƒ} |i| ƒqΕ|oΙ| |ƒ} | tjo|i td |ƒƒqδt| | ƒoct| | ƒ}t|dƒo|io ||iƒ} |i| ƒqΰ|i td |ƒƒqδtd || ƒ} |i | ƒqΕnή|tijo[ti|} t| dƒo| io|i|| iƒƒqΕ|itd |ƒƒns|tjoOt|}t|dƒo|io|i||iƒƒqΕ|i dƒn|i td|ƒƒdS(s[ Returns the __doc__ string for a given Python function. cCs tii|iddƒƒSdS(Ns s. (sutilssstrsnormalizeWhitespacesssreplace(ss((s./Python/plugin.pys normalizeFscCsβ|tijoti|Snΐ|idƒ}x©|D]‘}ycti||ƒ}ti ||Œ}t ii |i ƒg}|dtj o|diƒnWq5tj o)|ddgjo t iSqΦtSq5Xq5W|SdS(Ns.isosspath(snamessyssmodulesssplitspartssimps find_modulespathsinfos load_modules newmodulesossdirnames__file__sNonescloses ImportError(snamespathsinfospartss newmodule((s./Python/plugin.pys getModuleHs   ss+That's not a valid module or function name.Ns.is__doc__s%s has no documentation.s%s has no method %s.sNo module %s exists.s%s has no function %s.sModule %s has no documentation.s#That function has no documentation.s No function or module %s exists.(s normalizes pythonPaths getModulesnames translatesutilssstrscharssselfs modulecharssircserrorsrsplits moduleNamesfuncNames __builtins__sobjshasattrsgetattrsreplys__doc__sformatsss newmodulesNonesfssyssmodules( sselfsircsmsgsargssnames normalizes moduleNamesobjsfsssfuncNames getModules newmodule((s./Python/plugin.pyspydocAsR  "          ssomethingWithoutSpacessrot13icCs |itii|iƒƒdS(sQtakes no arguments Returns one of the zen of Python statements. N(sircsreplysutilssiterschoicesselfs_these(sselfsircsmsgsargs((s./Python/plugin.pyszenss(Title): (.*)s(Submitter): (.*)s Last (Updated): (.*)s(Version) no: (.*)s+(Category):.*?]+>(.*?)s+

(Description):

.+?

(.+?)

cCsti|dƒf|dS(Nii(sircutilssboldsg(sselfsg((s./Python/plugin.pysžsc Csέ|id|idƒ odSn|idƒ}tii |ƒ}g}xP|i D]E}|i|ƒ}|o)|itd|i|iƒƒŒƒqTqTW|o5ttii|ƒ}|idi|ƒdtƒndS(s;http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/\d+s aspnSnarferiNs%s: %ss; s prefixNick(sselfs registryValuesmsgsargssmatchsgroupsurlsutilsswebsgetUrlsssresps _searchessrssearchsmsappendsformats_boldsgroupssmaps htmlToTextsircsreplysjoinsFalse( sselfsircsmsgsmatchsrespsurlsmsssr((s./Python/plugin.pys aspnRecipesŸs -c Cspd} d}d}d}d} d} d}d}ti ƒ}xσ|D]λ} t | t ƒo|d7}nt | tƒo|d7}n—ti| ƒo|d7}nyt | tƒo| d7} n[t | tƒo| d7} n=ti| ƒo| d7} nti| ƒo|d7}n|ti| ƒ7}qCWtdt|ƒ|| || | |||ƒ } |i| ƒdS(s^takes no arguments Returns the number and types of Python objects in memory. iis«I have %i objects: %s modules, %s classes, %s functions, %s dictionaries, %s lists, %s tuples, %s strings, and a few other odds and ends. I have a total of %s references.N(sclassess functionssmodulessstringssdictsslistsstupless refcountssgcs get_objectssobjssobjs isinstancesstrstuplesinspects isroutinesdictslistsisclasssismodulessyss getrefcountsformatslensresponsesircsreply(sselfsircsmsgsargssobjssmoduless functionsstupless refcountsslistssresponsesobjsdictssclassessstrings((s./Python/plugin.pysobjects―s> (#s__name__s __module__s callBeforesregexpssstrings ascii_letterssdigitss modulecharsspydocswrapsappends_[1]sthissssdecodes splitlinessstrs_thesespopszensrescompilesIs_titles_submits_updates_versionsSs _categorys _descriptions _searchess_bolds aspnRecipess urlSnarfersobjects(((s./Python/plugin.pysPython=s.   HJ         %( sgcsossresimpssyssmathsinspectsrandomsstrings cStringIOsStringIOsstdoutsoriginalsthiss supybot.utilssutilsssupybot.commandsssupybot.ircutilssircutilsssupybot.callbackss callbackss__file__sLshasattrsappendsmapspathsdirnames pythonPaths PluginRegexpsPythonsClass(srandomsstringsresthiss pythonPathsutilssinspectsPythonsLsClassssyssimpsgcs callbackssircutilssossoriginalsmathsStringIO((s./Python/plugin.pys?s2                  š