Ñò §ÚêLc@sadZdd d„ƒYZeeƒƒZd„Zdefd„ƒYZdefd„ƒYZdS( s3Abstract Base Classes (ABCs) according to PEP 3119.t_CcBseZRS((t__name__t __module__(((s/usr/lib64/python2.6/abc.pyRscCs t|_|S(sïA decorator indicating abstract methods. Requires that the metaclass is ABCMeta or derived from it. A class that has a metaclass derived from ABCMeta cannot be instantiated unless all of its abstract methods are overridden. The abstract methods can be called using any of the normal 'super' call mechanisms. Usage: class C: __metaclass__ = ABCMeta @abstractmethod def my_abstract_method(self, ...): ... (tTruet__isabstractmethod__(tfuncobj((s/usr/lib64/python2.6/abc.pytabstractmethod s tabstractpropertycBseZdZeZRS(s/A decorator indicating abstract properties. Requires that the metaclass is ABCMeta or derived from it. A class that has a metaclass derived from ABCMeta cannot be instantiated unless all of its abstract properties are overridden. The abstract properties can be called using any of the normal 'super' call mechanisms. Usage: class C: __metaclass__ = ABCMeta @abstractproperty def my_abstract_property(self): ... This defines a read-only property; you can also define a read-write abstract property using the 'long' form of property declaration: class C: __metaclass__ = ABCMeta def getx(self): ... def setx(self, value): ... x = abstractproperty(getx, setx) (RRt__doc__RR(((s/usr/lib64/python2.6/abc.pyR!stABCMetacBsDeZdZdZd„Zd„Zdd„Zd„Zd„Z RS(siMetaclass for defining Abstract Base Classes (ABCs). Use this metaclass to create an ABC. An ABC can be subclassed directly, and then acts as a mix-in class. You can also register unrelated concrete classes (even built-in classes) and unrelated ABCs as 'virtual subclasses' -- these and their descendants will be considered subclasses of the registering ABC by the built-in issubclass() function, but the registering ABC won't show up in their MRO (Method Resolution Order) nor will method implementations defined by the registering ABC be callable (not even via super()). icCsçtt|ƒi||||ƒ}td„|iƒDƒƒ}xd|D]\}xSt|dtƒƒD]<}t||dƒ}t|dtƒo|i|ƒq`q`WqDWt |ƒ|_ tƒ|_ tƒ|_ tƒ|_ ti|_|S(Ncss6x/|](\}}t|dtƒo |VqqWdS(RN(tgetattrtFalse(t.0tnametvalue((s/usr/lib64/python2.6/abc.pys Vs  t__abstractmethods__R(tsuperR t__new__tsettitemsR tNoneR taddt frozensetRt _abc_registryt _abc_cachet_abc_negative_cachet_abc_invalidation_countert_abc_negative_cache_version(tmclsR tbasest namespacetclst abstractstbaseR((s/usr/lib64/python2.6/abc.pyRSs !     cCsxt|tƒptdƒ‚nt||ƒodSt||ƒotdƒ‚n|ii|ƒtid7_dS(s&Register a virtual subclass of an ABC.sCan only register classesNs'Refusing to create an inheritance cyclei( t isinstancettypet TypeErrort issubclasst RuntimeErrorRRR R(Rtsubclass((s/usr/lib64/python2.6/abc.pytregisterfscCs†|d|i|ifIJ|dtiIJxTt|iiƒƒD]=}|idƒo't||ƒ}|d||fIJqAqAWdS(s'Debug helper to print the ABC registry.s Class: %s.%ssInv.counter: %st_abc_s%s: %rN( RRR Rtsortedt__dict__tkeyst startswithR (RtfileR R((s/usr/lib64/python2.6/abc.pyt_dump_registrytscCs·t|ddƒ}||ijotSt|ƒ}|tjo |}n||jp |djo6|itijo||i jot S|i |ƒS|i |ƒp |i |ƒS(s'Override for isinstance(instance, cls).t __class__N( R RRRR#t _InstanceTypeRR RRR t__subclasscheck__(RtinstanceR'tsubtype((s/usr/lib64/python2.6/abc.pyt__instancecheck__}s    cCss||ijotS|itijotƒ|_ti|_n||ijotS|i|ƒ}|t j oGt |t ƒpt ‚|o|ii |ƒn|ii |ƒ|S|t|ddƒjo|ii |ƒtSx6|iD]+}t||ƒo|ii |ƒtSqôWx9|iƒD]+}t||ƒo|ii |ƒtSq0W|ii |ƒtS(s'Override for issubclass(subclass, cls).t__mro__((RRRR RRRR t__subclasshook__tNotImplementedR"tbooltAssertionErrorRR RR%t__subclasses__(RR'toktrclstscls((s/usr/lib64/python2.6/abc.pyR2‘s:      N( RRRRRR(RR/R5R2(((s/usr/lib64/python2.6/abc.pyR >s   N((RRR#R1RtpropertyRR (((s/usr/lib64/python2.6/abc.pyts