From fc1e51f76b201cd88cc4717f8719e58a3f0b3c6d Mon Sep 17 00:00:00 2001 From: Avasam Date: Thu, 24 Oct 2024 05:40:24 -0400 Subject: [PATCH] Allow pywin32 to use `pywin.mfc.DocTemplate` in lieu of `PyCDocTemplate` (#12888) --- stubs/pywin32/_win32typing.pyi | 6 ++++-- stubs/pywin32/pythonwin/win32uiole.pyi | 4 +++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/stubs/pywin32/_win32typing.pyi b/stubs/pywin32/_win32typing.pyi index 3903be7e3..a7bdc25f2 100644 --- a/stubs/pywin32/_win32typing.pyi +++ b/stubs/pywin32/_win32typing.pyi @@ -8,6 +8,8 @@ from win32.lib.pywintypes import TimeType _TwoIntSequence: TypeAlias = Sequence[int] _FourIntSequence: TypeAlias = Sequence[int] +# Is actually pywin.mfc.DocTemplate +DocTemplate: TypeAlias = Incomplete class ArgNotFound: ... class PyOleEmpty: ... @@ -5842,7 +5844,7 @@ class PyCView: def OnEndPrinting(self) -> None: ... class PyCWinApp: - def AddDocTemplate(self, template: PyCDocTemplate, /) -> None: ... + def AddDocTemplate(self, template: PyCDocTemplate | DocTemplate, /) -> None: ... def FindOpenDocument(self, fileName: str, /) -> PyCDocument: ... def GetDocTemplatelist(self) -> list[Incomplete]: ... def InitDlgInstance(self, dialog: PyCDialog, /) -> None: ... @@ -5854,7 +5856,7 @@ class PyCWinApp: def OpenDocumentFile(self, fileName: str, /) -> None: ... def OnFileNew(self) -> None: ... def OnFileOpen(self) -> None: ... - def RemoveDocTemplate(self, template: PyCDocTemplate, /) -> None: ... + def RemoveDocTemplate(self, template: PyCDocTemplate | DocTemplate, /) -> None: ... def Run(self): ... def IsInproc(self) -> bool: ... diff --git a/stubs/pywin32/pythonwin/win32uiole.pyi b/stubs/pywin32/pythonwin/win32uiole.pyi index dd9ad968e..7d3e524c0 100644 --- a/stubs/pywin32/pythonwin/win32uiole.pyi +++ b/stubs/pywin32/pythonwin/win32uiole.pyi @@ -3,7 +3,9 @@ import _win32typing def AfxOleInit(enabled, /) -> None: ... def CreateInsertDialog() -> _win32typing.PyCOleInsertDialog: ... def CreateOleClientItem() -> _win32typing.PyCOleClientItem: ... -def CreateOleDocument(template: _win32typing.PyCDocTemplate, fileName: str | None = ..., /) -> _win32typing.PyCOleDocument: ... +def CreateOleDocument( + template: _win32typing.PyCDocTemplate | _win32typing.DocTemplate, fileName: str | None = ..., / +) -> _win32typing.PyCOleDocument: ... def DaoGetEngine() -> _win32typing.PyIDispatch: ... def GetIDispatchForWindow(Wnd, /) -> _win32typing.PyIDispatch: ... def OleGetUserCtrl(): ...