;ς V';Bc@sˆdklZdZdZd„ZdkZeZ[deifd„ƒYZeƒiZ dd„Z d Z d ei fd „ƒYZ dS( (sCyclopss#228822s#882222cCsd|iddƒdSdS(Ns#s(sstrsreplace(sstr((sQ/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/HTMLCyclops.pys replaceLTsNs_CyclopsHTMLReprcBs2tZd„Zd„Zd„Zd„ZeZRS(NcCs$tii|ƒd|_|_dS(Ni((s_reprsReprs__init__sselfs maxstringsmaxother(sself((sQ/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/HTMLCyclops.pys__init__scCsπt|ƒ}|djotdƒSn|djotdƒSnd}xw|iƒt||i ƒ D]Y\}}|o|d}n||i ||dƒ}|d|i ||dƒ}qeW||i jo|d}nd |d SdS( Nis{}s{...}ss, is: s, ...s{s}( slensxsns replaceLTslevelsssitemssminsselfsmaxdictsksvsrepr1(sselfsxslevelsnsssvsk((sQ/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/HTMLCyclops.pysrepr_dictionary(s    "cCsMyt| ƒSWn7td|iidtt|ƒƒddƒSnXdS(Ns(s replaceLTsxs __class__s__name__shexsid(sselfsxslevel((sQ/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/HTMLCyclops.pys repr_instance:scCst| ƒSdS(N(s replaceLTsx(sselfsxslevel((sQ/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/HTMLCyclops.pys repr_classCs(s__name__s __module__s__init__srepr_dictionarys repr_instances repr_classsrepr_instance_method(((sQ/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/HTMLCyclops.pys_CyclopsHTMLReprs   icCsp|o||fSnNxJ|iD]?}|ii|ƒod|fSqt||dƒ\}}qW||fSdS(Nii( sfoundsclss __bases__sbases__dict__shas_keysattrs find_declarersbasecls(sclssattrsfoundsbaseclssbase((sQ/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/HTMLCyclops.pys find_declarerOs s    sCycleFinderHTMLcBs­tZd„Zdd„Zd„Zd„Zd„Zd„Zd„Zd d d „Z d „Z e i d „Z e i d„Zed„Zd„Zddd„Zd„ZRS(NcCs)tii|ƒg|_dg|_dS(Ns

Cyclops report

(sCyclopss CycleFinders__init__sselfsreportsheader(sself((sQ/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/HTMLCyclops.pys__init__js scCst|tjo d}n|o|d}n|iid||fƒ|iid||fƒ|ii|ƒdS(Nss

s%s
s

%s:

(sdocssNonesselfsheadersappendsnamestextsreport(sselfsnamestextsdocs((sQ/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/HTMLCyclops.pys _add_sectionos  cCs|iidƒdS(Ns
(sselfsreportsappend(sself((sQ/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/HTMLCyclops.pys_print_separatorxsc Cs„t|ƒ}|iid|dƒxYt|ƒD]K}||d}|i |ƒ||djot |ƒi djoN|i i }t|i|ƒ\}}|iidtt|ƒ||fƒq|||dd}|it |ƒ||ƒ}|ddjo t|dƒoFt|i|dƒ\}}|iidtt|ƒ||fƒq||iitd |d ƒq1q1WdS( Ns%d-element cycle
iisinstance methods-%sthis%s->
s.s __class__s,%sthis%s->
sthiss->
(slensslicesnsselfsreportsappendsxrangesisobjsshow_objstypes__name__sim_funcs func_namesattribs find_declarersim_classsfounds attrib_declsindentsstrsindexstag_dispatchershasattrs __class__( sselfsslicesindexsobjsisns attrib_declsfoundsattrib((sQ/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/HTMLCyclops.pys _print_cycle{s$    *!*cCs»t|ƒ}|ii|dƒ}|iidt |ƒ|t |ƒi fƒt |dƒo0|iidt |iƒt |iƒfƒn|iidƒ|iidt|ƒƒdS(sqobj -> print short description of obj to sdtout. This is of the form
rc: repr: where
hex address of obj If find_cycles() has been run and obj is in the root set or was found in a cycle, this is the number of references outstanding less the number held internally by CycleFinder. In most cases, this is what the true refcount would be had you not used CycleFinder at all. You can screw that up, e.g. by installing a cycle filter that holds on to references to one or more cycle elements. If find_cycles() has not been run, or has but obj wasn't found in a cycle and isn't in the root set, is "?". type(obj), as a string. If obj.__class__ exists, also prints the class name. repr(obj), but using a variant of the std module repr.py that limits the number of characters displayed. s?s:%s rc: %d %ss __class__s%ss
s    %s
N(sidsobjsobjidsselfsid2rcsgetsrcsreportsappendshexstypes__name__shasattrsstrs __class__s _quickrepr(sselfsobjsobjidsrc((sQ/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/HTMLCyclops.pysshow_obj–s ,0cCs’t|ƒtgƒjoUg}x%|D]}|idt|ƒƒq&W|iid|di |ƒfƒn!|iid|t|ƒfƒdS(Ns%ss%s%ss s&%s%s( stypesvalueslnssitmsappendsstrsselfsreportsdescsjoin(sselfsdescsvaluesitmslns((sQ/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/HTMLCyclops.pys add_stat_line½s'cCs«t|iƒodt|iƒ}ndt|iƒ}dt|iƒfdt|iƒfdt|iƒfd|fd|ifdt|iƒfd |i fgSdS( Ns)%ds)%dsObjects in root sets%Distinct structured objects reachables%Distinct structured objects in cycless Cycles foundsCycles filtered outsStrongly connected componentss Arcs examined( slensselfscyclesscfsrootssseenidss cycleobjssncyclesignoreds sccno2objssnarcs(sselfscf((sQ/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/HTMLCyclops.pys stats_listΖssStatss StatisticscCse|iƒ|i||ƒ|iidƒx$|D]\}}|i ||ƒq1W|iidƒdS(s1Print statistics for the last run of find_cycles.ss
N( sselfs_print_separators _add_sectionsnamestitlesreportsappends stats_listsdescsvalues add_stat_line(sselfs stats_listsnamestitlesvaluesdesc((sQ/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/HTMLCyclops.pys show_statsΣs  cCs˜|iƒ|iddƒt|iƒ}|iidƒxHt|ƒD]:}|iidƒ|i |i|ƒ|iidƒqFW|iidƒdS(Ns AllCycless All cycless
    s
  • s
  • s
( sselfs_print_separators _add_sectionslenscyclessnsreportsappendsxrangesis _print_cycle(sselfsisn((sQ/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/HTMLCyclops.pys show_cyclesίs  cCsa|iƒ|idd|iiƒ|iiƒ}|i|ƒx|D]}|i |ƒqFWdS(sΝEach distinct object find_cycles found in a cycle is displayed. The set of objects found in cycles is first sorted by the optional "compare" function. By default, objects are sorted using their type name as the primary key and their storage address (id) as the secondary key; among objects of instance type, sorts by the instances' class names; among objects of class type, sorts by the classes' names. s CycleObjssObjects involved in cyclesN( sselfs_print_separators _add_sectionsshow_cycleobjss__doc__s cycleobjssvaluessobjsssortscomparesobjsshow_obj(sselfscomparesobjsobjs((sQ/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/HTMLCyclops.pysshow_cycleobjsμs  cCsά|iƒ|idd|iiƒ|iiƒ}t|ƒ}|i i dƒxwt |ƒD]i}|i i d|d|fƒ||}|i|ƒx|D]}|i|ƒqW|i i dƒq[W|i i dƒdS( s+Shows the objects in cycles partitioned into strongly connected components (that is, the largest groupings possible such that each object in an SCC is reachable from every other object in that SCC). Within each SCC, objects are sorted as for show_cycleobjs. sSCCs+Cycle objects partitioned into maximal SCCss
    s
  • SCC %d of %d
    is
  • s
N(sselfs_print_separators _add_sections show_sccss__doc__s sccno2objssvaluesssccsslensnsreportsappendsxrangesisobjsssortscomparesobjsshow_obj(sselfscomparesobjsisobjssnssccs((sQ/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/HTMLCyclops.pys show_sccsύs      cCsŠ|iƒ|idd|iiƒ|iiƒ}|o|i|ƒn |iƒx/|D]'\}}|i i d|f|ƒq[WdS(s³Briefly, each arc in a cycle is categorized by the type of the source node, the kind of arc (how we got from the source to the destination), and the type of the destination node. Each line of output consists of those three pieces of info preceded by the count of arcs of that kind. By default, the rows are sorted first by column 2 (source node type), then by columns 3 and 4. sArcTypessArc types involved in cycless%6d %-20s %-20s -> %-20s
N( sselfs_print_separators _add_sections show_arcss__doc__sarctypessitemsscomparessortstriplescountsreportsappend(sselfscomparescountsitemsstriple((sQ/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/HTMLCyclops.pys show_arcss   cCs‰|iƒ}|iidƒ|iidƒt|ƒo,x9|D]}|iid|iƒq@Wn|iidƒ|iidƒdS(Ns

Installed chasers

s
    s
  • %s
  • s
  • None
  • s
(sselfsget_chased_typessctsheadersappendslenschs__name__(sselfschsct((sQ/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/HTMLCyclops.pysshow_chased_types's  iicCs||iƒ|iddƒ|iidƒd}|iidƒg}|iidƒzλxδnoάh} d} } h}d|}d|} |iid || fƒ|iid || fƒx|iƒD]\} }}| it|ƒƒ oκd| t|ƒ<| djo:| d} |o%|iid tƒ|i|ƒqΪqή| o‡| d} |o|i|ƒnt|d ƒoQ|ii}|i|ƒod||t|ƒisNon-cyclic root set objects:is DeadRootSet%ds Iteration %ds%s
s'
  • %s

  • sDEAD s __class__s\
    %d dead; %d non-cycle & alive
    s)
    Summary of instance count:
    s %s: %d
    sDeadsNon-cycle & alivessStatsFinsPurge root set statistics((sselfs_print_separators _add_sectionsheadersappendsccsreportsstatss sawitalreadys numsurvivorssnumdeads class_countsnamesdescs get_rootsetsrcscyclicsxshas_keysids show_objssclGreensshow_objshasattrs __class__s__name__scnsNonesclRedskeyssclssssortsclsslens stats_listsstssrangesidxs find_cycless show_stats(sselfs show_objsssummaryscnsccsstatss class_countsclssclsss numsurvivorssrcs sawitalreadysnumdeadsdescsnamesidxscyclicsstssx((sQ/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/HTMLCyclops.pysiterate_til_steady_state2sx         )  "*!  cCs.|iƒdi|iƒdi|iƒSdS(Ns (sselfsshow_chased_typessjoinsheadersreport(sself((sQ/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/HTMLCyclops.pysget_pageus (s__name__s __module__s__init__s _add_sections_print_separators _print_cyclesshow_objs add_stat_lines stats_lists show_statss show_cyclessCyclopsstypename_address_cmpsshow_cycleobjss show_sccssNones show_arcssshow_chased_typessiterate_til_steady_statesget_page(((sQ/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/HTMLCyclops.pysCycleFinderHTMLis    '    C(s ExternalLibsCyclopssclGreensclReds replaceLTsreprs_reprsReprs_CyclopsHTMLReprs _quickreprs find_declarersindents CycleFindersCycleFinderHTML( s replaceLTsindentsCycleFinderHTMLs _quickreprsreprs_reprsCyclopssclGreensclReds_CyclopsHTMLReprs find_declarer((sQ/mnt/gmirror/ports/devel/boaconstructor/work/boa-constructor-0.4.4/HTMLCyclops.pys?s   .