Skip to content

Commit eea402c

Browse files
authored
Migrate from winsdk to PyWinRT and bump tomli-w (#300)
This reduced the build size by 10MB or ~7%. Nice
1 parent d74bd20 commit eea402c

File tree

6 files changed

+23
-16
lines changed

6 files changed

+23
-16
lines changed

Diff for: README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ Not a developer? You can still help through the following methods:
100100
- <https://github.com/opencv/opencv/issues?q=is%3Aissue+is%3Aopen+involves%3AAvasam+sort%3Areactions-%2B1-asc+>
101101
- <https://github.com/opencv/opencv/issues/18305>
102102
- <https://github.com/opencv/opencv/issues/23906>
103-
- <https://github.com/pywinrt/python-winsdk/issues/11>
103+
- <https://github.com/pywinrt/pywinrt/issues/78>
104104
- <https://github.com/pyinstaller/pyinstaller-hooks-contrib/issues/807>
105105
- <https://github.com/hukkin/tomli-w/pull/46>
106106
- <https://github.com/uiri/toml/issues/270>

Diff for: scripts/requirements.txt

+10-2
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ PyWinCtl>=0.0.42 # py.typed
1515
# When needed, dev builds can be found at https://download.qt.io/snapshots/ci/pyside/dev?C=M;O=D
1616
PySide6-Essentials>=6.6.0 # Python 3.12 support
1717
scipy>=1.11.2 # Python 3.12 support
18-
tomli-w
18+
tomli-w>=1.1.0 # Typing fixes
1919
typing-extensions>=4.4.0 # @override decorator support
2020
#
2121
# Build and compile resources
@@ -27,7 +27,15 @@ pyinstaller>=5.13 # Python 3.12 support
2727
comtypes<1.4.5 ; sys_platform == 'win32' # https://github.com/pyinstaller/pyinstaller-hooks-contrib/issues/807
2828
pygrabber>=0.2 ; sys_platform == 'win32' # Completed types
2929
pywin32>=301 ; sys_platform == 'win32'
30-
winsdk>=1.0.0b10 ; sys_platform == 'win32' # Python 3.12 support
30+
winrt-Windows.AI.MachineLearning>=2.2.0 ; sys_platform == 'win32' # Python 3.13 support
31+
winrt-Windows.Foundation>=2.2.0 ; sys_platform == 'win32' # Python 3.13 support
32+
winrt-Windows.Graphics.Capture>=2.2.0 ; sys_platform == 'win32' # Python 3.13 support
33+
winrt-Windows.Graphics.Capture.Interop>=2.2.0 ; sys_platform == 'win32' # Python 3.13 support
34+
winrt-Windows.Graphics.DirectX>=2.2.0 ; sys_platform == 'win32' # Python 3.13 support
35+
winrt-Windows.Graphics.DirectX.Direct3D11>=2.2.0 ; sys_platform == 'win32' # Python 3.13 support
36+
winrt-Windows.Graphics.Imaging>=2.2.0 ; sys_platform == 'win32' # Python 3.13 support
37+
winrt-Windows.Graphics>=2.2.0 ; sys_platform == 'win32' # Python 3.13 support
38+
winrt-Windows.Media.Capture>=2.2.0 ; sys_platform == 'win32' # Python 3.13 support
3139
# D3DShot # See install.ps1
3240
#
3341
# Linux-only dependencies

Diff for: src/capture_method/WindowsGraphicsCaptureMethod.py

+6-6
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,12 @@
99
import win32gui
1010
from cv2.typing import MatLike
1111
from typing_extensions import override
12-
from winsdk.windows.graphics import SizeInt32
13-
from winsdk.windows.graphics.capture import Direct3D11CaptureFramePool, GraphicsCaptureSession
14-
from winsdk.windows.graphics.capture.interop import create_for_window
15-
from winsdk.windows.graphics.directx import DirectXPixelFormat
16-
from winsdk.windows.graphics.directx.direct3d11 import IDirect3DSurface
17-
from winsdk.windows.graphics.imaging import BitmapBufferAccessMode, SoftwareBitmap
12+
from winrt.windows.graphics import SizeInt32
13+
from winrt.windows.graphics.capture import Direct3D11CaptureFramePool, GraphicsCaptureSession
14+
from winrt.windows.graphics.capture.interop import create_for_window
15+
from winrt.windows.graphics.directx import DirectXPixelFormat
16+
from winrt.windows.graphics.directx.direct3d11 import IDirect3DSurface
17+
from winrt.windows.graphics.imaging import BitmapBufferAccessMode, SoftwareBitmap
1818

1919
from capture_method.CaptureMethodBase import CaptureMethodBase
2020
from utils import (

Diff for: src/region_selection.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,9 @@
3232
SM_XVIRTUALSCREEN,
3333
SM_YVIRTUALSCREEN,
3434
)
35-
from winsdk._winrt import initialize_with_window # noqa: PLC2701
36-
from winsdk.windows.foundation import AsyncStatus, IAsyncOperation
37-
from winsdk.windows.graphics.capture import GraphicsCaptureItem, GraphicsCapturePicker
35+
from winrt._winrt import initialize_with_window # noqa: PLC2701
36+
from winrt.windows.foundation import AsyncStatus, IAsyncOperation
37+
from winrt.windows.graphics.capture import GraphicsCaptureItem, GraphicsCapturePicker
3838

3939
if sys.platform == "linux":
4040
from Xlib.display import Display

Diff for: src/user_profile.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -114,8 +114,7 @@ def save_settings_as(autosplit: "AutoSplit"):
114114
def __save_settings_to_file(autosplit: "AutoSplit", save_settings_file_path: str):
115115
# Save settings to a .toml file
116116
with open(save_settings_file_path, "wb") as file:
117-
# https://github.com/hukkin/tomli-w/pull/46
118-
tomli_w.dump(autosplit.settings_dict, file) # pyright: ignore[reportArgumentType]
117+
tomli_w.dump(autosplit.settings_dict, file)
119118
autosplit.last_saved_settings = deepcopy(autosplit.settings_dict)
120119
autosplit.last_successfully_loaded_settings_file_path = save_settings_file_path
121120
return save_settings_file_path

Diff for: src/utils.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@
2525
import win32gui
2626
import win32ui
2727
from pygrabber.dshow_graph import FilterGraph
28-
from winsdk.windows.ai.machinelearning import LearningModelDevice, LearningModelDeviceKind
29-
from winsdk.windows.media.capture import MediaCapture
28+
from winrt.windows.ai.machinelearning import LearningModelDevice, LearningModelDeviceKind
29+
from winrt.windows.media.capture import MediaCapture
3030

3131
STARTUPINFO: TypeAlias = subprocess.STARTUPINFO
3232
else:

0 commit comments

Comments
 (0)