Ë
    š”eÇ  ã            
       óÚ   — d Z  G d„ de«      Z G d„ d«      Z edej                  ej
                  j                  «       D � �ci c]  \  } }| dvr| |“Œ c}} «      Z G d„ d«      Zyc c}} w )	a¬  Odd meta class that doesn't subclass type.

This is used for testing support for ExtensionClass in new interfaces.

  >>> class A(object):
  ...     __metaclass__ = MetaClass
  ...     a = 1
  ...
  >>> A.__name__
  'A'
  >>> A.__bases__ == (object,)
  True
  >>> class B(object):
  ...     __metaclass__ = MetaClass
  ...     b = 1
  ...
  >>> class C(A, B): pass
  ...
  >>> C.__name__
  'C'
  >>> int(C.__bases__ == (A, B))
  1
  >>> a = A()
  >>> aa = A()
  >>> a.a
  1
  >>> aa.a
  1
  >>> aa.a = 2
  >>> a.a
  1
  >>> aa.a
  2
  >>> c = C()
  >>> c.a
  1
  >>> c.b
  1
  >>> c.b = 2
  >>> c.b
  2
  >>> C.c = 1
  >>> c.c
  1

  >>> int(C.__class__.__class__ is C.__class__)
  1
c                   ó   — e Zd Zd„ Zy)ÚMetaMetaClassc                 ó<   — |dk(  r| S t         j                  | |«      S ©NÚ	__class__)ÚtypeÚ__getattribute__)ÚclsÚnames     ú:/usr/lib/python3/dist-packages/zope/interface/tests/odd.pyr   zMetaMetaClass.__getattribute__C   s"   € Ø�;ÒØˆJä×$Ñ$ S¨$Ó/Ð/ó    N)Ú__name__Ú
__module__Ú__qualname__r   © r   r   r   r   A   s   „ ó0r   r   c                   ó(   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zy)Ú	MetaClasszOdd classes
    c                 óV   — || _         || _        | j                  j                  |«       y ©N)r   Ú	__bases__Ú__dict__Úupdate)Úselfr
   ÚbasesÚdicts       r   Ú__init__zMetaClass.__init__N   s"   € ØˆŒØˆŒØ�‰×Ñ˜TÕ"r   c                 ó   — t        | «      S r   )ÚOddInstance©r   s    r   Ú__call__zMetaClass.__call__S   s   € Ü˜4Ó Ð r   c                 ód   — | j                   D ]  }t        ||| «      }|| usŒ|c S  t        |«      ‚r   )r   ÚgetattrÚAttributeError)r   r
   ÚbÚvs       r   Ú__getattr__zMetaClass.__getattr__V   s<   € Ø—‘ò 	ˆAÜ˜˜4 Ó&ˆAØ˜Š}Ø’ð	ô ˜TÓ"Ð"r   c                 ó^   — dj                  | j                  t        t        | «      «      «      S )Nz<odd class {} at {}>)Úformatr   ÚhexÚidr   s    r   Ú__repr__zMetaClass.__repr__]   s!   € Ø%×,Ñ,¨T¯]©]¼CÄÀ4Ã»MÓJÐJr   N)r   r   r   Ú__doc__r   r   r%   r*   r   r   r   r   r   J   s   „ ñò#ò
!ò#óKr   r   ©r   c                   ó*   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zy)r   c                 ó"   — || j                   d<   y r   r,   )r   r	   s     r   r   zOddInstance.__init__h   s   € Ø%(ˆ�‰�kÒ"r   c                 óŠ   — t         j                  | d«      }|dk(  r|S |j                  || «      }|| ur|S t        |d   |«      S )Nr   r   )Úobjectr   Úgetr!   )r   r
   r   r$   s       r   r   zOddInstance.__getattribute__k   sO   € Ü×&Ñ& t¨ZÓ8ˆØ�:ÒØˆKØ�H‰H�T˜4Ó ˆØ�D‰=ØˆHÜ�t˜KÑ(¨$Ó/Ð/r   c                 ó"   — || j                   |<   y r   r,   )r   r
   r$   s      r   Ú__setattr__zOddInstance.__setattr__t   s   € Øˆ�‰�dÒr   c                 ó   — t        «       ‚r   )ÚNotImplementedError)r   r
   s     r   Ú__delattr__zOddInstance.__delattr__w   s   € Ü!Ó#Ð#r   c                 ór   — dj                  | j                  j                  t        t	        | «      «      «      S )Nz<odd {} instance at {}>)r'   r   r   r(   r)   r   s    r   r*   zOddInstance.__repr__z   s,   € Ø(×/Ñ/Ø�N‰N×#Ñ#¤S¬¨D«£]ó4ð 	4r   N)r   r   r   r   r   r3   r6   r*   r   r   r   r   r   f   s   „ ò)ò0ò ò$ó4r   r   N)r+   r   r   r   r   r   Úitemsr   )Úkr$   s   00r   ú<module>r:      s}   ðñ/ôf0�Dô 0÷Kñ Kñ. ˜+Ø#×-Ñ-Ø,5×,>Ñ,>×,DÑ,DÓ,F÷ 5¡D A qØ mÑ3ð ˜a™4ó 5ó6€	÷
4ò 4ùó5s   ÁA'