//usr/lib64/lib64//lib64/lib64/python2.7/ó
ÙœSec @ s} d Z d d l Z d d l m Z d d d „ ƒ YZ e e ƒ ƒ Z d „ Z d e f d „ ƒ YZ d e f d
„ ƒ YZ
d S( s3 Abstract Base Classes (ABCs) according to PEP 3119.iÿÿÿÿN( t WeakSett _Cc B s e Z RS( ( t __name__t
__module__( ( ( s /usr/lib64/python2.7/abc.pyR s c C s
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, ...):
...
( t Truet __isabstractmethod__( t funcobj( ( s /usr/lib64/python2.7/abc.pyt abstractmethod s t abstractpropertyc B s e Z d Z e Z RS( 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)
( R R t __doc__R R ( ( ( s /usr/lib64/python2.7/abc.pyR $ s t ABCMetac B sD e Z d Z d Z d „ Z d „ Z d d „ Z d „ Z d „ Z RS( si Metaclass 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()).
i c C så t t | ƒ j | | | | ƒ } t d „ | j ƒ Dƒ ƒ } xb | D]Z } xQ t | d t ƒ ƒ D]: } t | | d ƒ } t | d t ƒ r` | j | ƒ q` q` WqD Wt | ƒ | _
t ƒ | _ t ƒ | _
t ƒ | _ t j | _ | S( Nc s s- | ]# \ } } t | d t ƒ r | Vq d S( R N( t getattrt False( t .0t namet value( ( s /usr/lib64/python2.7/abc.pys Y s t __abstractmethods__R ( t superR
t __new__t sett itemsR t NoneR t addt frozensetR R t
_abc_registryt
_abc_cachet _abc_negative_cachet _abc_invalidation_countert _abc_negative_cache_version( t mclsR t basest namespacet clst abstractst baseR ( ( s /usr/lib64/python2.7/abc.pyR V s !
c C s{ t | t t j f ƒ s' t d ƒ ‚ n t | | ƒ r: d St | | ƒ rX t d ƒ ‚ n | j j | ƒ t j
d 7_
d S( s&