Ñò úõIc@sÁddkZddklZddklZddkTddgZdefd„ƒYZd„Z d „Z d efd „ƒYZ de fd „ƒYZ ed joddkZeiƒndS(iÿÿÿÿN(titer_entry_points(tpre_post_hooks(t*t WidgetTypet WidgetsListcBs eZd„Zed„ƒZRS(c CsÜ|idt|ƒƒ|d>> from tw.api import Widget >>> len(list(Widget.iter_classes())) > 0 True stoscawidgets.widgetsN( tsetRtloadtFalset ImportErrortdirtgetattrRtadd(RtseenteptmodteRtobj((s0/usr/lib/python2.6/site-packages/tw/core/meta.pyt iter_classess    (t__name__t __module__Rt classmethodR)(((s0/usr/lib/python2.6/site-packages/tw/core/meta.pyR s cCs-x&|D]}t|dƒo|iSqWgS(NR(thasattrR(Rtbase((s0/usr/lib/python2.6/site-packages/tw/core/meta.pyR .s  cCsut|i|gƒƒ}g}|D]3}t||ƒo||it||ƒƒq#q#~t|ƒ}||<|S(N(RR R-tupdateR"t frozenset(tclsdctRRt_sett_[1]tbtfs((s0/usr/lib/python2.6/site-packages/tw/core/meta.pyR4sEtWidgetsListTypecBs#eZd„Zd„Zd„ZRS(cCs·g}xg|iƒD]Y\}}t|dƒo=t|dƒo-|i|ƒ|i|i||ifƒqqW|iƒ|d„}|ihgd6|d6ƒti ||||ƒS(Nt_serialtclonecSsCg}|D]}||dd|dƒq ~}|i|ƒdS(Nitidi(textend(tselftclonesR3twtwidgets((s0/usr/lib/python2.6/site-packages/tw/core/meta.pyR Ds2t __slots__R ( titemsR-R tappendR7R8tsortR/RR(RRRRR<R9R=R ((s0/usr/lib/python2.6/site-packages/tw/core/meta.pyR=s   $  cCsÔt|tƒo!t|tƒoti||ƒSt|tƒo$ti|ƒoti||ƒƒSti|ƒo$t|tƒoti|ƒ|ƒSti|ƒo'ti|ƒoti|ƒ|ƒƒSdS(N(Rtlistt__add__tinspecttisclass(R;tother((s0/usr/lib/python2.6/site-packages/tw/core/meta.pyRDKs    cCsÔt|tƒo!t|tƒoti||ƒSt|tƒo$ti|ƒoti|ƒ|ƒSti|ƒo$t|tƒoti||ƒƒSti|ƒo'ti|ƒoti|ƒ|ƒƒSdS(N(RRCRDRERF(R;RG((s0/usr/lib/python2.6/site-packages/tw/core/meta.pyt__radd__Ys    (R*R+RRDRH(((s0/usr/lib/python2.6/site-packages/tw/core/meta.pyR6<s  cBseZdZeZRS(s Syntactic sugar for declaring a list of widgets. >>> from tw.api import Widget >>> class Widgets(WidgetsList): ... a = Widget() ... b = Widget() ... c = Widget() ... >>> widgets = Widgets() >>> [w.id for w in widgets] ['a', 'b', 'c'] WidgetsLists can be passed to another widget as children by the instance or the class. >>> w = Widget('foo', children=widgets) >>> [c.id for c in w.children] ['foo_a', 'foo_b', 'foo_c'] >>> w = Widget('foo', children=Widgets) >>> [c.id for c in w.children] ['foo_a', 'foo_b', 'foo_c'] WidgetsLists subclasses can also be added to reuse common widgets >>> class Widgets2(WidgetsList): ... d = Widget() ... >>> widgets = Widgets + Widgets2 >>> [w.id for w in widgets] ['a', 'b', 'c', 'd'] >>> widgets = Widgets2 + Widgets >>> [w.id for w in widgets] ['d', 'a', 'b', 'c'] (R*R+t__doc__R6t __metaclass__(((s0/usr/lib/python2.6/site-packages/tw/core/meta.pyRfs%t__main__(REt pkg_resourcesRt tw.core.utilRttw.core.exceptionst__all__RRR RR6RCRR*tdoctestttestmod(((s0/usr/lib/python2.6/site-packages/tw/core/meta.pyts   #  *)