Possible bug: classes using meta classes not being detected as issubclass(class, metaclass)
So I have the following code:
class TableMeta(type):
...
def __init__(cls, name, bases, clsdict):
"""
:type cls: Table
:type name: str
:type bases: tuple(type)
:type clsdict: dict
"""
super(TableMeta, cls).__init__(name, bases, clsdict) # !!! Error here
class Table(object):
__metaclass__ = TableMeta
...
As indicated by "!!! error here", the inspection code will fail to detect that Table is actually subclass of TableMeta.
Note that I'd like to refer to "Table" type because it is a superset and contains more methods than TableMeta itself.
I can fix this by specifying
:type cls: Table, TableMeta
Is this the intended behaviour?
If so, what am I doing wrong?
If not, what is?
class TableMeta(type):
...
def __init__(cls, name, bases, clsdict):
"""
:type cls: Table
:type name: str
:type bases: tuple(type)
:type clsdict: dict
"""
super(TableMeta, cls).__init__(name, bases, clsdict) # !!! Error here
class Table(object):
__metaclass__ = TableMeta
...
As indicated by "!!! error here", the inspection code will fail to detect that Table is actually subclass of TableMeta.
Note that I'd like to refer to "Table" type because it is a superset and contains more methods than TableMeta itself.
I can fix this by specifying
:type cls: Table, TableMeta
Is this the intended behaviour?
If so, what am I doing wrong?
If not, what is?
Please sign in to leave a comment.