File: //proc/1233/cwd/usr/lib/python3/dist-packages/zope/interface/tests/__pycache__/odd.cpython-310.pyc
o
$
x`� � @ sV d Z G dd� de�ZG dd� de�Zedejdd� ej�� D ��ZG dd� de�Zd S )
ag 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
>>> import sys
>>> if sys.version[0] == '2': # This test only makes sense under Python 2.x
... from types import ClassType
... assert not isinstance(C, (type, ClassType))
>>> int(C.__class__.__class__ is C.__class__)
1
c @ s e Zd Zdd� ZdS )�
MetaMetaClassc C s |dkr| S t �| |�S �N� __class__)�type�__getattribute__)�cls�name� r �:/usr/lib/python3/dist-packages/zope/interface/tests/odd.pyr G s zMetaMetaClass.__getattribute__N)�__name__�
__module__�__qualname__r r r r r r E s r c @ s0 e Zd ZdZdd� Zdd� Zdd� Zdd � Zd
S )� MetaClasszOdd classes
c C s || _ || _| j�|� d S �N)r
� __bases__�__dict__�update)�selfr �bases�dictr r r �__init__R s zMetaClass.__init__c C s t | �S r )�OddInstance�r r r r �__call__W s zMetaClass.__call__c C s0 | j D ]}t||| �}|| ur| S qt|��r )r �getattr�AttributeError)r r �b�vr r r �__getattr__Z s
�zMetaClass.__getattr__c C s d| j tt| ��f S )Nz<odd class %s at %s>)r
�hex�idr r r r �__repr__a s zMetaClass.__repr__N)r
r r �__doc__r r r r r r r r r
N s r
c C s i | ]\}}|d vr||�qS )�r r )�.0�kr r r r �
<dictcomp>g s �r% c @ s4 e Zd Zdd� Zdd� Zdd� Zdd� Zd d
� ZdS )r c C s || j d<