I had tried the abc.ABCMeta with sip wrapper type, and it works well when subclass with abc.ABC.
class QABCMeta(wrappertype, ABCMeta):
    pass
class WidgetBase(QWidget, metaclass=QABCMeta):
    ...
class InterfaceWidget(WidgetBase, ABC):
    ...
class MainWidget(InterfaceWidget):
    ...
But it is not works on typing.Generic.
class QGenericMeta(wrappertype, GenericMeta):
    pass
class WidgetBase(QWidget, Generic[T], metaclass=QGenericMeta):
    ...
class GenericWidget(WidgetBase[float]):
    ...
It raised:
line 980, in __new__
    self if not origin else origin._gorg)
TypeError: can't apply this __setattr__ to sip.wrappertype object
I expected it to use generic subclass as usual:
class TableBase(QTableWidget, Generic[T]):
    @abstractmethod
    def raw_item(self, row: int) -> T:
        ...
    def data(self) -> Iterator[T]:
        yield from (self.raw_item(row) for row in range(self.rowCount()))
class MainTable(TableBase[float]):
    def raw_item(self, row: int) -> float:
        return float(self.item(row, 1).text())  # implementation
table = MainTable()
for data in table.data():
    data: float
But the data is still Any when without inherit Generic[T].
Can it solved with PEP 560 to do type checking?
