ž §ÿfyc@s~dZddlmZdd„ZGdd„deƒZGdd„deƒZGd d „d eƒZ Gd d „d e ƒZ d S(u3Abstract Base Classes (ABCs) according to PEP 3119.i(uWeakSetcCs d|_|S(uÞ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, ...): ... T(uTrueu__isabstractmethod__(ufuncobj((u(/opt/alt/python33/lib64/python3.3/abc.pyuabstractmethods uabstractmethodcs2|EeZdZdZdZ‡fdd†Z‡S(uabstractclassmethoduO A decorator indicating abstract classmethods. Similar to abstractmethod. Usage: class C(metaclass=ABCMeta): @abstractclassmethod def my_abstract_classmethod(cls, ...): ... 'abstractclassmethod' is deprecated. Use 'classmethod' with 'abstractmethod' instead. csd|_tƒj|ƒdS(NT(uTrueu__isabstractmethod__usuperu__init__(uselfucallable(u __class__(u(/opt/alt/python33/lib64/python3.3/abc.pyu__init__/s uabstractclassmethod.__init__T(u__name__u __module__u __qualname__u__doc__uTrueu__isabstractmethod__u__init__(u __locals__((u __class__u(/opt/alt/python33/lib64/python3.3/abc.pyuabstractclassmethodsuabstractclassmethodcs2|EeZdZdZdZ‡fdd†Z‡S(uabstractstaticmethoduO A decorator indicating abstract staticmethods. Similar to abstractmethod. Usage: class C(metaclass=ABCMeta): @abstractstaticmethod def my_abstract_staticmethod(...): ... 'abstractstaticmethod' is deprecated. Use 'staticmethod' with 'abstractmethod' instead. csd|_tƒj|ƒdS(NT(uTrueu__isabstractmethod__usuperu__init__(uselfucallable(u __class__(u(/opt/alt/python33/lib64/python3.3/abc.pyu__init__Gs uabstractstaticmethod.__init__T(u__name__u __module__u __qualname__u__doc__uTrueu__isabstractmethod__u__init__(u __locals__((u __class__u(/opt/alt/python33/lib64/python3.3/abc.pyuabstractstaticmethod4suabstractstaticmethodcBs |EeZdZdZdZdS(uabstractpropertyuk 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) 'abstractproperty' is deprecated. Use 'property' with 'abstractmethod' instead. NT(u__name__u __module__u __qualname__u__doc__uTrueu__isabstractmethod__(u __locals__((u(/opt/alt/python33/lib64/python3.3/abc.pyuabstractpropertyLsuabstractpropertycse|EeZdZdZdZ‡fdd†Zdd„Zd dd„Zd d „Z d d „Z ‡S(uABCMetauiMetaclass 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()). icsÜtƒj||||ƒ}dd„|jƒDƒ}xb|D]Z}xQt|dtƒƒD]:}t||dƒ}t|ddƒrW|j|ƒqWqWWq;Wt|ƒ|_ t ƒ|_ t ƒ|_ t ƒ|_ tj|_|S(NcSs.h|]$\}}t|ddƒr|’qS(u__isabstractmethod__F(ugetattruFalse(u.0unameuvalue((u(/opt/alt/python33/lib64/python3.3/abc.pyu „s  u"ABCMeta.__new__..u__abstractmethods__u__isabstractmethod__F(usuperu__new__uitemsugetattrusetuNoneuFalseuaddu frozensetu__abstractmethods__uWeakSetu _abc_registryu _abc_cacheu_abc_negative_cacheuABCMetau_abc_invalidation_counteru_abc_negative_cache_version(umclsunameubasesu namespaceuclsu abstractsubaseuvalue(u __class__(u(/opt/alt/python33/lib64/python3.3/abc.pyu__new__s      uABCMeta.__new__cCsrt|tƒstdƒ‚nt||ƒr1|St||ƒrOtdƒ‚n|jj|ƒtjd7_|S(usRegister a virtual subclass of an ABC. Returns the subclass, to allow usage as a class decorator. uCan only register classesu'Refusing to create an inheritance cyclei( u isinstanceutypeu TypeErroru issubclassu RuntimeErroru _abc_registryuadduABCMetau_abc_invalidation_counter(uclsusubclass((u(/opt/alt/python33/lib64/python3.3/abc.pyuregister”suABCMeta.registercCs–td|j|jfd|ƒtdtjd|ƒxXt|jjƒƒD]A}|jdƒrMt ||ƒ}td||fd|ƒqMqMWdS(u'Debug helper to print the ABC registry.u Class: %s.%sufileuInv.counter: %su_abc_u%s: %rN( uprintu __module__u__name__uABCMetau_abc_invalidation_counterusortedu__dict__ukeysu startswithugetattr(uclsufileunameuvalue((u(/opt/alt/python33/lib64/python3.3/abc.pyu_dump_registry¦s  uABCMeta._dump_registrycs‰|j}|ˆjkrdSt|ƒ}||krfˆjtjkrY|ˆjkrYdSˆj |ƒSt ‡fdd†||hDƒƒS(u'Override for isinstance(instance, cls).c3s|]}ˆj|ƒVqdS(N(u__subclasscheck__(u.0uc(ucls(u(/opt/alt/python33/lib64/python3.3/abc.pyu ½su,ABCMeta.__instancecheck__..TF( u __class__u _abc_cacheuTrueutypeu_abc_negative_cache_versionuABCMetau_abc_invalidation_counteru_abc_negative_cacheuFalseu__subclasscheck__uany(uclsuinstanceusubclassusubtype((uclsu(/opt/alt/python33/lib64/python3.3/abc.pyu__instancecheck__¯s     uABCMeta.__instancecheck__cCsa||jkrdS|jtjkr@tƒ|_tj|_n||jkrSdS|j|ƒ}|t k r°t |t ƒsƒt ‚|rœ|jj |ƒn|jj |ƒ|S|t|dfƒkrÜ|jj |ƒdSx4|jD])}t||ƒræ|jj |ƒdSqæWx7|jƒD])}t||ƒr |jj |ƒdSq W|jj |ƒdS(u'Override for issubclass(subclass, cls).u__mro__TF(u _abc_cacheuTrueu_abc_negative_cache_versionuABCMetau_abc_invalidation_counteruWeakSetu_abc_negative_cacheuFalseu__subclasshook__uNotImplementedu isinstanceubooluAssertionErroruaddugetattru _abc_registryu issubclassu__subclasses__(uclsusubclassuokurclsuscls((u(/opt/alt/python33/lib64/python3.3/abc.pyu__subclasscheck__¿s6  uABCMeta.__subclasscheck__N( u__name__u __module__u __qualname__u__doc__u_abc_invalidation_counteru__new__uregisteruNoneu_dump_registryu__instancecheck__u__subclasscheck__(u __locals__((u __class__u(/opt/alt/python33/lib64/python3.3/abc.pyuABCMetals  uABCMetaN( u__doc__u _weakrefsetuWeakSetuabstractmethodu classmethoduabstractclassmethodu staticmethoduabstractstaticmethodupropertyuabstractpropertyutypeuABCMeta(((u(/opt/alt/python33/lib64/python3.3/abc.pyus