Код: Выделить всё
from collections import namedtuple
from collections.abc import MutableSequence
class Record(MutableSequence):
def __init__(self, recordname: str, fields: list, records=None):
if records is None:
records = []
self.fields = fields
defaults = [""] * len(fields)
self.Data = namedtuple(recordname, self.fields, defaults=defaults)
self._records = [self.Data(**record) for record in records]
self.valid_fieldnames = set(self.fields)
self.lookup_tables: dict = {}
def __getitem__(self, idx):
return self._records[idx]
def __setitem__(self, idx, val):
self._records[idx] = self.Data(**val)
def __delitem__(self, idx):
del self._records[idx]
def __len__(self):
return len(self._records)
def insert(self, idx, val):
a = self._records[:idx]
b = self._records[idx:]
if isinstance(val, self.Data):
self._records = a + [val] + b
else:
self._records = a + [self.Data(**val)] + b
Некоторая дополнительная информация: я использую Python-3.12 в VS Code с официальным расширением MyPy Type Checker. , что и сообщает о проблеме.
Я попробовал несколько способов, чтобы проверить, исчезнет ли ошибка, но ни один из них не помог. Например, я удалил MutableSequence в качестве родительского класса, удалил значения по умолчанию из конструктора Nametuple и удалил все методы dunder, но ошибка не исчезла.
Подробнее здесь: https://stackoverflow.com/questions/790 ... -supported