Подсказка типа Worksheet.row_dimensions не работает должным образом?

Рабочий лист row_dimensions выдает предупреждение, когда я помещаю в него целое число (чтобы индекс строки изменил высоту), хотя он работает (высота изменяется, и скрипт работает правильно).

МРЭ:

import openpyxl
from openpyxl.worksheet.worksheet import Worksheet

# Load an existing workbook or create a new one
wb = openpyxl.load_workbook('your_workbook.xlsx')
ws: Worksheet = wb.active

# Set the height of row 1 to 25
ws.row_dimensions[1].height = 25  <-- problem

# Save the changes back to the workbook
wb.save('your_workbook.xlsx')

Мне не разрешены такие предупреждения, и мне не разрешено добавлять #noqa.

Я использую Python 3.11.1 и последнюю версию openpyxl (3.1.2).

Я не уверен, почему вообще существуют эти предупреждения: openpyxl не набирается. Если вы используете заглушки, они выглядят не очень хорошо: row_dimensions там набирается как DimensionHolder, этот символ не импортируется, а реализация использует dict). Добавьте комментарий игнорирования и продолжайте, возможно, также сообщите об ошибке в openpyxl-stubs (ссылка на репозиторий выше)

STerliakov 20.04.2024 16:56

Последний раз файл реализации редактировался 9 лет назад, еще до того, как было создано репозиторий заглушек (и типизация стала общепринятой), так что это не конфликт версий, а просто ошибка.

STerliakov 20.04.2024 16:59

@STerliakov Я думаю, что речь идет о заглушках , напечатанных .

InSync 20.04.2024 23:53

@InSync, хах. Должно быть, я это проверил. Они в гораздо лучшей форме, но тип row_dimensions по-прежнему неправильный, DimensionHolder предназначен только для column_dimensions в реализации. Теперь определенно стоит тикет, потому что все остальное выглядит нормально, и поэтому это небольшая ошибка, а не «похоже, что это не должно работать в большинстве случаев», и ее можно тривиально исправить. Рассматриваемый код правильный и соответствует ожидаемому использованию.

STerliakov 20.04.2024 23:59

@STerliakov Билет на веб-сайте openpyxl/на их github?

FluidMechanics Potential Flows 29.04.2024 14:00

Как пояснил InSync выше, ни то, ни другое: этот пакет заглушек мертв и устарел, билет должен быть отправлен в раздел о проблемах typeshed на github - последние заглушки для openpyxl являются частью typeshed. row_dimensions var там аннотирован неправильно - должен быть какой-то словарь, а не DimensionHolder.

STerliakov 29.04.2024 14:18
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
6
82
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это была typeshed ошибка. Проблема была создана, исправлена ​​(не мной) и закрыта. https://github.com/python/typeshed/issues/11845.

Другие вопросы по теме