Skip to content

Commit 2e61e28

Browse files
object.meta.__getitem__: fixed derived class name creation
1 parent 414dd70 commit 2e61e28

1 file changed

Lines changed: 6 additions & 3 deletions

File tree

modeled/object.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -116,16 +116,19 @@ class Derived(modeled.object[ModeledBaseOne, ModeledBaseTwo]):
116116
mcs = type(cls)
117117
if not isinstance(bases, tuple):
118118
bases = bases,
119-
clsname = '%s[%s]' % (
120-
qualname(cls), ', '.join(map(qualname, bases)))
119+
basenames = ', '.join(map(qualname, bases))
120+
clsname = '%s[%s]' % (cls.__name__, basenames)
121121
metabases = tuple(type(b) for b in bases) # if type(b) is not mcs)
122122
if not any(issubclass(mb, mcs) for mb in metabases):
123123
metabases = (mcs, ) + metabases
124124
if not any(issubclass(b, cls) for b in bases):
125125
bases = (cls, ) + bases
126126
clsattrs = {'__module__': cls.__module__}
127127
meta = type(clsname + '.meta', metabases, clsattrs)
128-
return meta(clsname, bases, clsattrs)
128+
cls = meta(clsname, bases, clsattrs)
129+
cls.__qualname__ = '%s[%s]' % (qualname(cls), basenames)
130+
meta.__qualname__ = cls.__qualname__ + '.meta'
131+
return cls
129132

130133
@property
131134
@cached

0 commit comments

Comments
 (0)