l
ÐijLc               @   so   d  Z  d d l m Z d „  Z Gd „  d e ƒ Z Gd „  d e ƒ Z Gd „  d	 e ƒ Z	 Gd
 „  d e
 ƒ Z d S(   u3   Abstract Base Classes (ABCs) according to PEP 3119.i    (   u   WeakSetc             C   s   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(   u   Trueu   __isabstractmethod__(   u   funcobj(    (    uS   I:\Didattica\Lezioni\Software\blender-2.61-release-windows32\2.61\python\lib\abc.pyu   abstractmethod   s    	c                s)   |  Ee  Z d  Z d Z ‡  f d †  Z ‡  S(   uë   A decorator indicating abstract classmethods.

    Similar to abstractmethod.

    Usage:

        class C(metaclass=ABCMeta):
            @abstractclassmethod
            def my_abstract_classmethod(cls, ...):
                ...
    c                s   d | _ t ƒ  j | ƒ d  S(   NT(   u   Trueu   __isabstractmethod__u   superu   __init__(   u   selfu   callable(   u	   __class__(    uS   I:\Didattica\Lezioni\Software\blender-2.61-release-windows32\2.61\python\lib\abc.pyu   __init__+   s    	T(   u   __name__u
   __module__u   __doc__u   Trueu   __isabstractmethod__u   __init__(   u
   __locals__(    (   u	   __class__uS   I:\Didattica\Lezioni\Software\blender-2.61-release-windows32\2.61\python\lib\abc.pyu   abstractclassmethod   s   
u   abstractclassmethodc                s)   |  Ee  Z d  Z d Z ‡  f d †  Z ‡  S(   ué   A decorator indicating abstract staticmethods.

    Similar to abstractmethod.

    Usage:

        class C(metaclass=ABCMeta):
            @abstractstaticmethod
            def my_abstract_staticmethod(...):
                ...
    c                s   d | _ t ƒ  j | ƒ d  S(   NT(   u   Trueu   __isabstractmethod__u   superu   __init__(   u   selfu   callable(   u	   __class__(    uS   I:\Didattica\Lezioni\Software\blender-2.61-release-windows32\2.61\python\lib\abc.pyu   __init__?   s    	T(   u   __name__u
   __module__u   __doc__u   Trueu   __isabstractmethod__u   __init__(   u
   __locals__(    (   u	   __class__uS   I:\Didattica\Lezioni\Software\blender-2.61-release-windows32\2.61\python\lib\abc.pyu   abstractstaticmethod0   s   
u   abstractstaticmethodc             B   s   |  Ee  Z d  Z d Z d S(   u  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)
    NT(   u   __name__u
   __module__u   __doc__u   Trueu   __isabstractmethod__(   u
   __locals__(    (    uS   I:\Didattica\Lezioni\Software\blender-2.61-release-windows32\2.61\python\lib\abc.pyu   abstractpropertyD   s   
u   abstractpropertyc                sP   |  Ee  Z d  Z d Z ‡  f d †  Z d „  Z d d „ Z d „  Z d „  Z	 ‡  S(   ui  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                sÙ   t  ƒ  j |  | | | ƒ } d „  | j ƒ  Dƒ } xb | D]Z } xQ t | d t ƒ  ƒ D]: } t | | d  ƒ } t | d d ƒ rT | j | ƒ qT qT Wq8 Wt | ƒ | _	 t
 ƒ  | _ t
 ƒ  | _ t
 ƒ  | _ t j | _ | S(   Nc             S   s.   h  |  ]$ \ } } t  | d  d ƒ r | ’ q S(   u   __isabstractmethod__F(   u   getattru   False(   u   .0u   nameu   value(    (    uS   I:\Didattica\Lezioni\Software\blender-2.61-release-windows32\2.61\python\lib\abc.pyu	   <setcomp>w   s   		u   __abstractmethods__u   __isabstractmethod__F(   u   superu   __new__u   itemsu   getattru   setu   Noneu   Falseu   addu	   frozensetu   __abstractmethods__u   WeakSetu   _abc_registryu
   _abc_cacheu   _abc_negative_cacheu   ABCMetau   _abc_invalidation_counteru   _abc_negative_cache_version(   u   mclsu   nameu   basesu	   namespaceu   clsu	   abstractsu   baseu   value(   u	   __class__(    uS   I:\Didattica\Lezioni\Software\blender-2.61-release-windows32\2.61\python\lib\abc.pyu   __new__t   s    c             C   sr   t  | t ƒ s t d ƒ ‚ n  t | |  ƒ r1 d St |  | ƒ rO t d ƒ ‚ n  |  j j | ƒ t j d 7_ d S(   u&   Register a virtual subclass of an ABC.u   Can only register classesNu'   Refusing to create an inheritance cyclei   (	   u
   isinstanceu   typeu	   TypeErroru
   issubclassu   RuntimeErroru   _abc_registryu   addu   ABCMetau   _abc_invalidation_counter(   u   clsu   subclass(    (    uS   I:\Didattica\Lezioni\Software\blender-2.61-release-windows32\2.61\python\lib\abc.pyu   register‡   s    c             C   s–   t  d |  j |  j f d | ƒt  d t j d | ƒxX t |  j j ƒ  ƒ D]A } | j d ƒ rM t	 |  | ƒ } t  d | | f d | ƒqM qM Wd S(   u'   Debug helper to print the ABC registry.u   Class: %s.%su   fileu   Inv.counter: %su   _abc_u   %s: %rN(
   u   printu
   __module__u   __name__u   ABCMetau   _abc_invalidation_counteru   sortedu   __dict__u   keysu
   startswithu   getattr(   u   clsu   fileu   nameu   value(    (    uS   I:\Didattica\Lezioni\Software\blender-2.61-release-windows32\2.61\python\lib\abc.pyu   _dump_registry•   s     c                s†   | j  } | ˆ  j k r d St | ƒ } | | k rf ˆ  j t j k rY | ˆ  j k rY d Sˆ  j	 | ƒ St
 ‡  f d †  | | h Dƒ ƒ S(   u'   Override for isinstance(instance, cls).c             3   s   |  ] } ˆ  j  | ƒ Vq d  S(   N(   u   __subclasscheck__(   u   .0u   c(   u   cls(    uS   I:\Didattica\Lezioni\Software\blender-2.61-release-windows32\2.61\python\lib\abc.pyu	   <genexpr>¬   s    TF(   u	   __class__u
   _abc_cacheu   Trueu   typeu   _abc_negative_cache_versionu   ABCMetau   _abc_invalidation_counteru   _abc_negative_cacheu   Falseu   __subclasscheck__u   any(   u   clsu   instanceu   subclassu   subtype(    (   u   clsuS   I:\Didattica\Lezioni\Software\blender-2.61-release-windows32\2.61\python\lib\abc.pyu   __instancecheck__ž   s    	c             C   sa  | |  j  k r d S|  j t j k  r@ t ƒ  |  _ t j |  _ n | |  j k rS d S|  j | ƒ } | t	 k	 r° t
 | t ƒ sƒ t ‚ | rœ |  j  j | ƒ n |  j j | ƒ | S|  t | d d ƒ k rÜ |  j  j | ƒ d Sx4 |  j D]) } t | | ƒ ræ |  j  j | ƒ d Sqæ Wx7 |  j ƒ  D]) } t | | ƒ r |  j  j | ƒ d Sq W|  j j | ƒ d S(   u'   Override for issubclass(subclass, cls).u   __mro__TF(    (   u
   _abc_cacheu   Trueu   _abc_negative_cache_versionu   ABCMetau   _abc_invalidation_counteru   WeakSetu   _abc_negative_cacheu   Falseu   __subclasshook__u   NotImplementedu
   isinstanceu   boolu   AssertionErroru   addu   getattru   _abc_registryu
   issubclassu   __subclasses__(   u   clsu   subclassu   oku   rclsu   scls(    (    uS   I:\Didattica\Lezioni\Software\blender-2.61-release-windows32\2.61\python\lib\abc.pyu   __subclasscheck__®   s6    N(
   u   __name__u
   __module__u   __doc__u   _abc_invalidation_counteru   __new__u   registeru   Noneu   _dump_registryu   __instancecheck__u   __subclasscheck__(   u
   __locals__(    (   u	   __class__uS   I:\Didattica\Lezioni\Software\blender-2.61-release-windows32\2.61\python\lib\abc.pyu   ABCMeta_   s   
			u   ABCMetaN(   u   __doc__u   _weakrefsetu   WeakSetu   abstractmethodu   classmethodu   abstractclassmethodu   staticmethodu   abstractstaticmethodu   propertyu   abstractpropertyu   typeu   ABCMeta(    (    (    uS   I:\Didattica\Lezioni\Software\blender-2.61-release-windows32\2.61\python\lib\abc.pyu   <module>   s   	