Неожиданная ошибка mypy: почему мой тип неприемлем?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Неожиданная ошибка mypy: почему мой тип неприемлем?

Сообщение Anonymous »

Я получаю сообщение об ошибке от mypy, которую не могу объяснить (и, следовательно, не могу исправить):

Код: Выделить всё

build_rag.py:116: error:
Argument "metadatas" to "add" of "AsyncCollection"
has incompatible type "list[dict[str, str]]";
expected "Mapping[str, str | int | float | bool] |
list[Mapping[str, str | int | float | bool]] |
None"  [arg-type]
Я передаю список[dict[str,str]], который правильно обнаружен mypy. Я ожидал, что это будет соответствовать второму из трех ожидаемых типов: list[Mapping[str, str|int|float|bool]]. Я не являюсь автором вызываемой функции add(). (Это метод chromadb.AsyncCollection.add().)
Я глуп/слеп, или mypy должен был принять мой ввод?
Код, вызывающий функцию, имеет идентификаторы и фрагменты, определенные ранее. Переменная code уже является строкой; вызов str() был просто актом отчаяния с моей стороны. Переменная path является объектом pathlib.Path. chunks — это список[str].

Код: Выделить всё

            metadata = {
"dc.identifier": str(path),
"code": str(code),
}
metadatas = [metadata for chunk in chunks]
await collection.add(
ids=ids,
documents=chunks,
metadatas=metadatas,
)
Это единственная ошибка mypy, отмеченная в моем файле, поэтому, скрестив пальцы, остальные типы соответствуют рекламе.

Подробнее здесь: https://stackoverflow.com/questions/790 ... acceptable
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»