Class name and bases included in the class dictionary for a class creator

when I create a class creator,

class X(type):
    def __new__(cls, clsname, bases, clsdict):
        print(clsname, bases, clsdict)
        for i, j in clsdict.items():
            if callable(j):
                if j.__name__ != j.__name__.lower():
                    raise TypeError('all function names must be lowercase')
        return type.__new__(cls, clsname, bases, clsdict)

class B:
  pass

class A(B, metaclass=X):
    def FUNC(self):
        pass

A (<class '__main__.B'>,) {'__module__': '__main__', '__qualname__': 'A', \
'FUNC': <function A.FUNC at 0x7f4a81c7c680>}

TypeError: all function names must be lowercase

the __new__ method has clsname, bases as two of its arguments.
but could these two also not be included in clsdict itself?
that is something like,

{'__module__': '__main__', '__qualname__': 'A', \
'FUNC': <function A.FUNC at 0x7f4a81c9fb00>, 'clsname': 'A', \
'bases' : "(<class '__main__.B'>,)"}

and it already has a __qualname__ attribute.
so then one could have something like,

class X(type):
    def __new__(cls, clsdict):
        ...
        return type.__new__(cls, clsdict['clsname'], clsdict['bases'], clsdict)