PyCharm 2025.3.1 показывает неправильное прекращение поддержки «ctypes.POINTER with string» в Python 3.14 для структурPython

Программы на Python
Ответить
Anonymous
 PyCharm 2025.3.1 показывает неправильное прекращение поддержки «ctypes.POINTER with string» в Python 3.14 для структур

Сообщение Anonymous »

В настоящее время я тестирую свои оболочки Windows API на Python 3.14 с использованием PyCharm 2025.3.1. Я обнаружил постоянное предупреждение проверки в IDE, которое, по-видимому, ошибочно идентифицирует использование мной ctypes как устаревшую строковую операцию.
IDE помечает любую из следующих строк:

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

_BeginPaint.argtypes = [wintypes.HWND, ctypes.POINTER(PAINTSTRUCT)]
_RegisterClass.argtypes = [ctypes.POINTER(WNDCLASS)]
_RegisterClassEx.argtypes = [ctypes.POINTER(WNDCLASSEX)]
с предупреждающим сообщением ctypes.POINTER со строкой.
Однако PAINTSTRUCT, WNDCLASS и WNDCLASSEX являются стандартными типами ctypes.Structure, а не строковым типом:

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

_BeginPaint = user32.BeginPaint
_BeginPaint.argtypes = [wintypes.HWND, ctypes.POINTER(PAINTSTRUCT)]
_BeginPaint.restype = wintypes.HDC

_RegisterClass = user32.RegisterClassW
_RegisterClass .argtypes = [ctypes.POINTER(WNDCLASS)]
_RegisterClass .restype = wintypes.ATOM

_RegisterClassEx = user32.RegisterClassExW
_RegisterClassEx .argtypes = [ctypes.POINTER(WNDCLASSEX)]
_RegisterClassEx .restype = wintypes.ATOM
Во всплывающем окне Quick Doc, которое появляется при наведении курсора на элемент в PyCharm, отображается новый декоратор @deprecated("ctypes.POINTER with string") с предупреждающим сообщением.

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

@overload
@deprecated("ctypes.POINTER with string")
def POINTER(cls: str) -> type
Из краткого руководства по использованию Python 3.13:

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

@overload
def POINTER(type: None, /) -> type[c_void_p]
Я подозреваю, что логика проверки PyCharm реагирует исключительно на устаревший декоратор.
Это известная ошибка в логике проверки PyCharm 2025.3.1 для Python 3.14 или существует новый способ определения указателей на пользовательские структуры, совместимый с версией 3.14, который мне не хватает?>

Подробнее здесь: https://stackoverflow.com/questions/798 ... ation-in-p
Ответить

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

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

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

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

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