From 937a5823ab62e28a4a2bcb9bff1c6d350d54f38f Mon Sep 17 00:00:00 2001 From: Avasam Date: Tue, 27 Jan 2026 01:04:18 -0500 Subject: [PATCH 01/31] Don't choke on directshow missing --- src/capture_method/__init__.py | 51 ++++++++++++++++++++++++++-------- 1 file changed, 40 insertions(+), 11 deletions(-) diff --git a/src/capture_method/__init__.py b/src/capture_method/__init__.py index 7400d86d..16231f70 100644 --- a/src/capture_method/__init__.py +++ b/src/capture_method/__init__.py @@ -9,16 +9,23 @@ from typing import TYPE_CHECKING, Never, TypedDict, cast, override from capture_method.CaptureMethodBase import CaptureMethodBase -from capture_method.VideoCaptureDeviceCaptureMethod import VideoCaptureDeviceCaptureMethod -from utils import WGC_MIN_BUILD, WINDOWS_BUILD_NUMBER, first, get_input_device_resolution +from capture_method.VideoCaptureDeviceCaptureMethod import ( + VideoCaptureDeviceCaptureMethod, +) +from utils import ( + WGC_MIN_BUILD, + WINDOWS_BUILD_NUMBER, + first, + get_input_device_resolution, +) if sys.platform == "win32": from _ctypes import COMError # noqa: PLC2701 # comtypes is untyped - from pygrabber.dshow_graph import FilterGraph - from capture_method.BitBltCaptureMethod import BitBltCaptureMethod - from capture_method.DesktopDuplicationCaptureMethod import DesktopDuplicationCaptureMethod + from capture_method.DesktopDuplicationCaptureMethod import ( + DesktopDuplicationCaptureMethod, + ) from capture_method.ForceFullContentRenderingCaptureMethod import ( ForceFullContentRenderingCaptureMethod, ) @@ -121,7 +128,9 @@ def get(self, key: CaptureMethodEnum, default: object = None, /): if sys.platform == "win32": # Windows Graphics Capture requires a minimum Windows Build if WINDOWS_BUILD_NUMBER >= WGC_MIN_BUILD: - CAPTURE_METHODS[CaptureMethodEnum.WINDOWS_GRAPHICS_CAPTURE] = WindowsGraphicsCaptureMethod + CAPTURE_METHODS[CaptureMethodEnum.WINDOWS_GRAPHICS_CAPTURE] = ( + WindowsGraphicsCaptureMethod + ) CAPTURE_METHODS[CaptureMethodEnum.BITBLT] = BitBltCaptureMethod try: # Test for laptop cross-GPU Desktop Duplication issue import d3dshot @@ -130,7 +139,9 @@ def get(self, key: CaptureMethodEnum, default: object = None, /): except (ModuleNotFoundError, COMError): pass else: - CAPTURE_METHODS[CaptureMethodEnum.DESKTOP_DUPLICATION] = DesktopDuplicationCaptureMethod + CAPTURE_METHODS[CaptureMethodEnum.DESKTOP_DUPLICATION] = ( + DesktopDuplicationCaptureMethod + ) CAPTURE_METHODS[CaptureMethodEnum.PRINTWINDOW_RENDERFULLCONTENT] = ( ForceFullContentRenderingCaptureMethod ) @@ -147,10 +158,14 @@ def get(self, key: CaptureMethodEnum, default: object = None, /): # TODO: Investigate solution for Slow Scrot: # https://github.com/asweigart/pyscreeze/issues/68 CAPTURE_METHODS[CaptureMethodEnum.SCROT] = ScrotCaptureMethod -CAPTURE_METHODS[CaptureMethodEnum.VIDEO_CAPTURE_DEVICE] = VideoCaptureDeviceCaptureMethod +CAPTURE_METHODS[CaptureMethodEnum.VIDEO_CAPTURE_DEVICE] = ( + VideoCaptureDeviceCaptureMethod +) -def change_capture_method(selected_capture_method: CaptureMethodEnum, autosplit: AutoSplit): +def change_capture_method( + selected_capture_method: CaptureMethodEnum, autosplit: AutoSplit +): """ Seamlessly change the current capture method, initialize the new one with transferred subscriptions @@ -159,7 +174,9 @@ def change_capture_method(selected_capture_method: CaptureMethodEnum, autosplit: autosplit.capture_method.close() autosplit.capture_method = CAPTURE_METHODS.get(selected_capture_method)(autosplit) - disable_selection_buttons = selected_capture_method == CaptureMethodEnum.VIDEO_CAPTURE_DEVICE + disable_selection_buttons = ( + selected_capture_method == CaptureMethodEnum.VIDEO_CAPTURE_DEVICE + ) autosplit.select_region_button.setDisabled(disable_selection_buttons) autosplit.select_window_button.setDisabled(disable_selection_buttons) @@ -175,13 +192,25 @@ class CameraInfo: def get_input_devices(): if sys.platform == "win32": + try: + from pygrabber.dshow_graph import FilterGraph + except OSError as exception: + # wine can choke on D3D Device Enumeration if missing directshow + # OSError: [WinError -2147312566] Windows Error 0x80029c4a + # TODO: Check the OS error number and only silence that one + print(exception) + print(getattr(exception, "errno")) + print(getattr(exception, "winerror")) + return [] return FilterGraph().get_input_devices() cameras: list[str] = [] if sys.platform == "linux": try: for index in range(len(os.listdir("/sys/class/video4linux"))): - with open(f"/sys/class/video4linux/video{index}/name", encoding="utf-8") as file: + with open( + f"/sys/class/video4linux/video{index}/name", encoding="utf-8" + ) as file: cameras.append(file.readline()[:-2]) except FileNotFoundError: pass From 75590ee96e26ad5d0f75e0a04687f5fbe4c0cb19 Mon Sep 17 00:00:00 2001 From: Avasam Date: Tue, 27 Jan 2026 01:21:02 -0500 Subject: [PATCH 02/31] Reintroduce 3.12 as the minimum version on Windows --- .github/workflows/lint-and-build.yml | 13 +++- pyproject.toml | 5 +- uv.lock | 106 +++++++++++++++++++++++---- 3 files changed, 108 insertions(+), 16 deletions(-) diff --git a/.github/workflows/lint-and-build.yml b/.github/workflows/lint-and-build.yml index a37f03e0..4ed16853 100644 --- a/.github/workflows/lint-and-build.yml +++ b/.github/workflows/lint-and-build.yml @@ -48,7 +48,10 @@ jobs: # Pyright is version and platform sensible matrix: os: [windows-latest, ubuntu-22.04] - python-version: ["3.13", "3.14"] + python-version: ["3.14"] + include: + - os: windows-latest + python-version: "3.12" steps: - uses: actions/checkout@v4 - name: Set up uv for Python ${{ matrix.python-version }} @@ -79,7 +82,13 @@ jobs: # Only the Python version we plan on shipping matters. matrix: os: [windows-latest, windows-11-arm, ubuntu-22.04, ubuntu-22.04-arm] - python-version: ["3.13", "3.14"] + python-version: ["3.14"] + include: + - os: windows-latest + python-version: "3.12" + - os: windows-11-arm + python-version: "3.12" + steps: - uses: actions/checkout@v4 # https://github.com/astral-sh/uv/issues/12906#issuecomment-3587439179 diff --git a/pyproject.toml b/pyproject.toml index 7b213b21..bfb8acc5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,7 @@ [project] name = "AutoSplit" version = "2.3.2" -requires-python = ">=3.13" +requires-python = ">=3.12" dependencies = [ "Levenshtein >=0.25", "PyAutoGUI >=0.9.52", @@ -91,6 +91,9 @@ explicit = true [tool.uv-secure.maintainability_criteria] forbid_yanked = true +forbid_archived = true +forbid_deprecated = true +forbid_quarantined = true # https://github.com/microsoft/pyright/blob/main/docs/configuration.md#sample-pyprojecttoml-file [tool.pyright] diff --git a/uv.lock b/uv.lock index 4f0fd7b9..132937c5 100644 --- a/uv.lock +++ b/uv.lock @@ -1,12 +1,10 @@ version = 1 revision = 3 -requires-python = ">=3.13" +requires-python = ">=3.12" resolution-markers = [ - "platform_machine == 'ARM64' and sys_platform == 'linux'", "platform_machine == 'aarch64' and sys_platform == 'linux'", - "platform_machine != 'ARM64' and platform_machine != 'aarch64' and sys_platform == 'linux'", - "platform_machine == 'aarch64' and sys_platform == 'win32'", - "platform_machine != 'aarch64' and sys_platform == 'win32'", + "platform_machine != 'aarch64' and sys_platform == 'linux'", + "sys_platform == 'win32'", ] supported-markers = [ "sys_platform == 'linux'", @@ -184,6 +182,19 @@ dependencies = [ ] sdist = { url = "https://files.pythonhosted.org/packages/7e/b3/b5f8011483ba9083a0bc74c4d58705e9cf465fbe55c948a1b1357d0a2aa8/levenshtein-0.27.1.tar.gz", hash = "sha256:3e18b73564cfc846eec94dd13fab6cb006b5d2e0cc56bad1fd7d5585881302e3", size = 382571, upload-time = "2025-03-02T19:44:56.148Z" } wheels = [ + { url = "https://files.pythonhosted.org/packages/c7/4a/c1d3f27ec8b3fff5a96617251bf3f61c67972869ac0a0419558fc3e2cbe6/levenshtein-0.27.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dafa29c0e616f322b574e0b2aeb5b1ff2f8d9a1a6550f22321f3bd9bb81036e3", size = 151061, upload-time = "2025-03-02T19:43:18.414Z" }, + { url = "https://files.pythonhosted.org/packages/4d/8f/2521081e9a265891edf46aa30e1b59c1f347a452aed4c33baafbec5216fa/levenshtein-0.27.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:be7a7642ea64392fa1e6ef7968c2e50ef2152c60948f95d0793361ed97cf8a6f", size = 183119, upload-time = "2025-03-02T19:43:19.975Z" }, + { url = "https://files.pythonhosted.org/packages/1f/a0/a63e3bce6376127596d04be7f57e672d2f3d5f540265b1e30b9dd9b3c5a9/levenshtein-0.27.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:060b48c45ed54bcea9582ce79c6365b20a1a7473767e0b3d6be712fa3a22929c", size = 185352, upload-time = "2025-03-02T19:43:21.424Z" }, + { url = "https://files.pythonhosted.org/packages/17/8c/8352e992063952b38fb61d49bad8d193a4a713e7eeceb3ae74b719d7863d/levenshtein-0.27.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:712f562c5e64dd0398d3570fe99f8fbb88acec7cc431f101cb66c9d22d74c542", size = 159879, upload-time = "2025-03-02T19:43:22.792Z" }, + { url = "https://files.pythonhosted.org/packages/69/b4/564866e2038acf47c3de3e9292fc7fc7cc18d2593fedb04f001c22ac6e15/levenshtein-0.27.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a6141ad65cab49aa4527a3342d76c30c48adb2393b6cdfeca65caae8d25cb4b8", size = 245005, upload-time = "2025-03-02T19:43:24.069Z" }, + { url = "https://files.pythonhosted.org/packages/ba/f9/7367f87e3a6eed282f3654ec61a174b4d1b78a7a73f2cecb91f0ab675153/levenshtein-0.27.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:799b8d73cda3265331116f62932f553804eae16c706ceb35aaf16fc2a704791b", size = 1116865, upload-time = "2025-03-02T19:43:25.4Z" }, + { url = "https://files.pythonhosted.org/packages/f5/02/b5b3bfb4b4cd430e9d110bad2466200d51c6061dae7c5a64e36047c8c831/levenshtein-0.27.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:ec99871d98e517e1cc4a15659c62d6ea63ee5a2d72c5ddbebd7bae8b9e2670c8", size = 1401723, upload-time = "2025-03-02T19:43:28.099Z" }, + { url = "https://files.pythonhosted.org/packages/ef/69/b93bccd093b3f06a99e67e11ebd6e100324735dc2834958ba5852a1b9fed/levenshtein-0.27.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:8799164e1f83588dbdde07f728ea80796ea72196ea23484d78d891470241b222", size = 1226276, upload-time = "2025-03-02T19:43:30.192Z" }, + { url = "https://files.pythonhosted.org/packages/ab/32/37dd1bc5ce866c136716619e6f7081d7078d7dd1c1da7025603dcfd9cf5f/levenshtein-0.27.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:583943813898326516ab451a83f734c6f07488cda5c361676150d3e3e8b47927", size = 1420132, upload-time = "2025-03-02T19:43:33.322Z" }, + { url = "https://files.pythonhosted.org/packages/4b/08/f3bc828dd9f0f8433b26f37c4fceab303186ad7b9b70819f2ccb493d99fc/levenshtein-0.27.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:5bb22956af44bb4eade93546bf95be610c8939b9a9d4d28b2dfa94abf454fed7", size = 1189144, upload-time = "2025-03-02T19:43:34.814Z" }, + { url = "https://files.pythonhosted.org/packages/2d/54/5ecd89066cf579223d504abe3ac37ba11f63b01a19fd12591083acc00eb6/levenshtein-0.27.1-cp312-cp312-win32.whl", hash = "sha256:d9099ed1bcfa7ccc5540e8ad27b5dc6f23d16addcbe21fdd82af6440f4ed2b6d", size = 88279, upload-time = "2025-03-02T19:43:38.86Z" }, + { url = "https://files.pythonhosted.org/packages/53/79/4f8fabcc5aca9305b494d1d6c7a98482e90a855e0050ae9ff5d7bf4ab2c6/levenshtein-0.27.1-cp312-cp312-win_amd64.whl", hash = "sha256:7f071ecdb50aa6c15fd8ae5bcb67e9da46ba1df7bba7c6bf6803a54c7a41fd96", size = 100659, upload-time = "2025-03-02T19:43:40.082Z" }, + { url = "https://files.pythonhosted.org/packages/cb/81/f8e4c0f571c2aac2e0c56a6e0e41b679937a2b7013e79415e4aef555cff0/levenshtein-0.27.1-cp312-cp312-win_arm64.whl", hash = "sha256:83b9033a984ccace7703f35b688f3907d55490182fd39b33a8e434d7b2e249e6", size = 88168, upload-time = "2025-03-02T19:43:41.42Z" }, { url = "https://files.pythonhosted.org/packages/df/98/915f4e24e21982b6eca2c0203546c160f4a83853fa6a2ac6e2b208a54afc/levenshtein-0.27.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5b07de42bfc051136cc8e7f1e7ba2cb73666aa0429930f4218efabfdc5837ad", size = 150013, upload-time = "2025-03-02T19:43:45.134Z" }, { url = "https://files.pythonhosted.org/packages/80/93/9b0773107580416b9de14bf6a12bd1dd2b2964f7a9f6fb0e40723e1f0572/levenshtein-0.27.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fb11ad3c9dae3063405aa50d9c96923722ab17bb606c776b6817d70b51fd7e07", size = 181234, upload-time = "2025-03-02T19:43:47.125Z" }, { url = "https://files.pythonhosted.org/packages/91/b1/3cd4f69af32d40de14808142cc743af3a1b737b25571bd5e8d2f46b885e0/levenshtein-0.27.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5c5986fb46cb0c063305fd45b0a79924abf2959a6d984bbac2b511d3ab259f3f", size = 183697, upload-time = "2025-03-02T19:43:48.412Z" }, @@ -210,6 +221,10 @@ dependencies = [ ] sdist = { url = "https://files.pythonhosted.org/packages/14/a3/931e09fc02d7ba96da65266884da4e4a8806adcdb8a57faaacc6edf1d538/mypy-1.18.1.tar.gz", hash = "sha256:9e988c64ad3ac5987f43f5154f884747faf62141b7f842e87465b45299eea5a9", size = 3448447, upload-time = "2025-09-11T23:00:47.067Z" } wheels = [ + { url = "https://files.pythonhosted.org/packages/ca/25/4e2ce00f8d15b99d0c68a2536ad63e9eac033f723439ef80290ec32c1ff5/mypy-1.18.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5956ecaabb3a245e3f34100172abca1507be687377fe20e24d6a7557e07080e2", size = 12472551, upload-time = "2025-09-11T22:58:37.272Z" }, + { url = "https://files.pythonhosted.org/packages/32/bb/92642a9350fc339dd9dcefcf6862d171b52294af107d521dce075f32f298/mypy-1.18.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8750ceb014a96c9890421c83f0db53b0f3b8633e2864c6f9bc0a8e93951ed18d", size = 13340554, upload-time = "2025-09-11T22:59:38.756Z" }, + { url = "https://files.pythonhosted.org/packages/cd/ee/38d01db91c198fb6350025d28f9719ecf3c8f2c55a0094bfbf3ef478cc9a/mypy-1.18.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fb89ea08ff41adf59476b235293679a6eb53a7b9400f6256272fb6029bec3ce5", size = 13530933, upload-time = "2025-09-11T22:59:20.228Z" }, + { url = "https://files.pythonhosted.org/packages/da/8d/6d991ae631f80d58edbf9d7066e3f2a96e479dca955d9a968cd6e90850a3/mypy-1.18.1-cp312-cp312-win_amd64.whl", hash = "sha256:2657654d82fcd2a87e02a33e0d23001789a554059bbf34702d623dafe353eabf", size = 9828426, upload-time = "2025-09-11T23:00:21.007Z" }, { url = "https://files.pythonhosted.org/packages/ae/ef/5e2057e692c2690fc27b3ed0a4dbde4388330c32e2576a23f0302bc8358d/mypy-1.18.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:913f668ec50c3337b89df22f973c1c8f0b29ee9e290a8b7fe01cc1ef7446d42e", size = 12473355, upload-time = "2025-09-11T23:00:04.544Z" }, { url = "https://files.pythonhosted.org/packages/98/43/b7e429fc4be10e390a167b0cd1810d41cb4e4add4ae50bab96faff695a3b/mypy-1.18.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1a0e70b87eb27b33209fa4792b051c6947976f6ab829daa83819df5f58330c71", size = 13346944, upload-time = "2025-09-11T22:58:23.024Z" }, { url = "https://files.pythonhosted.org/packages/89/4e/899dba0bfe36bbd5b7c52e597de4cf47b5053d337b6d201a30e3798e77a6/mypy-1.18.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:c378d946e8a60be6b6ede48c878d145546fb42aad61df998c056ec151bf6c746", size = 13512574, upload-time = "2025-09-11T22:59:52.152Z" }, @@ -264,6 +279,13 @@ version = "2.3.2" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/37/7d/3fec4199c5ffb892bed55cff901e4f39a58c81df9c44c280499e92cad264/numpy-2.3.2.tar.gz", hash = "sha256:e0486a11ec30cdecb53f184d496d1c6a20786c81e55e41640270130056f8ee48", size = 20489306, upload-time = "2025-07-24T21:32:07.553Z" } wheels = [ + { url = "https://files.pythonhosted.org/packages/91/ba/f4ebf257f08affa464fe6036e13f2bf9d4642a40228781dc1235da81be9f/numpy-2.3.2-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:572d5512df5470f50ada8d1972c5f1082d9a0b7aa5944db8084077570cf98370", size = 14281409, upload-time = "2025-07-24T20:40:30.298Z" }, + { url = "https://files.pythonhosted.org/packages/59/ef/f96536f1df42c668cbacb727a8c6da7afc9c05ece6d558927fb1722693e1/numpy-2.3.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8145dd6d10df13c559d1e4314df29695613575183fa2e2d11fac4c208c8a1f73", size = 16641317, upload-time = "2025-07-24T20:40:56.625Z" }, + { url = "https://files.pythonhosted.org/packages/f6/a7/af813a7b4f9a42f498dde8a4c6fcbff8100eed00182cc91dbaf095645f38/numpy-2.3.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:103ea7063fa624af04a791c39f97070bf93b96d7af7eb23530cd087dc8dbe9dc", size = 16056262, upload-time = "2025-07-24T20:41:20.797Z" }, + { url = "https://files.pythonhosted.org/packages/8b/5d/41c4ef8404caaa7f05ed1cfb06afe16a25895260eacbd29b4d84dff2920b/numpy-2.3.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fc927d7f289d14f5e037be917539620603294454130b6de200091e23d27dc9be", size = 18579342, upload-time = "2025-07-24T20:41:50.753Z" }, + { url = "https://files.pythonhosted.org/packages/a1/4f/9950e44c5a11636f4a3af6e825ec23003475cc9a466edb7a759ed3ea63bd/numpy-2.3.2-cp312-cp312-win32.whl", hash = "sha256:d95f59afe7f808c103be692175008bab926b59309ade3e6d25009e9a171f7036", size = 6320610, upload-time = "2025-07-24T20:42:01.551Z" }, + { url = "https://files.pythonhosted.org/packages/7c/2f/244643a5ce54a94f0a9a2ab578189c061e4a87c002e037b0829dd77293b6/numpy-2.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:9e196ade2400c0c737d93465327d1ae7c06c7cb8a1756121ebf54b06ca183c7f", size = 12786292, upload-time = "2025-07-24T20:42:20.738Z" }, + { url = "https://files.pythonhosted.org/packages/54/cd/7b5f49d5d78db7badab22d8323c1b6ae458fbf86c4fdfa194ab3cd4eb39b/numpy-2.3.2-cp312-cp312-win_arm64.whl", hash = "sha256:ee807923782faaf60d0d7331f5e86da7d5e3079e28b291973c545476c2b00d07", size = 10194071, upload-time = "2025-07-24T20:42:36.657Z" }, { url = "https://files.pythonhosted.org/packages/34/fa/87ff7f25b3c4ce9085a62554460b7db686fef1e0207e8977795c7b7d7ba1/numpy-2.3.2-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5ad4ebcb683a1f99f4f392cc522ee20a18b2bb12a2c1c42c3d48d5a1adc9d3d2", size = 14278147, upload-time = "2025-07-24T20:44:10.328Z" }, { url = "https://files.pythonhosted.org/packages/1d/0f/571b2c7a3833ae419fe69ff7b479a78d313581785203cc70a8db90121b9a/numpy-2.3.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:938065908d1d869c7d75d8ec45f735a034771c6ea07088867f713d1cd3bbbe4f", size = 16635989, upload-time = "2025-07-24T20:44:34.88Z" }, { url = "https://files.pythonhosted.org/packages/24/5a/84ae8dca9c9a4c592fe11340b36a86ffa9fd3e40513198daf8a97839345c/numpy-2.3.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:66459dccc65d8ec98cc7df61307b64bf9e08101f9598755d42d8ae65d9a7a6ee", size = 16053052, upload-time = "2025-07-24T20:44:58.872Z" }, @@ -315,6 +337,19 @@ version = "3.11.4" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/c6/fe/ed708782d6709cc60eb4c2d8a361a440661f74134675c72990f2c48c785f/orjson-3.11.4.tar.gz", hash = "sha256:39485f4ab4c9b30a3943cfe99e1a213c4776fb69e8abd68f66b83d5a0b0fdc6d", size = 5945188, upload-time = "2025-10-24T15:50:38.027Z" } wheels = [ + { url = "https://files.pythonhosted.org/packages/4e/47/bf85dcf95f7a3a12bf223394a4f849430acd82633848d52def09fa3f46ad/orjson-3.11.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:600e0e9ca042878c7fdf189cf1b028fe2c1418cc9195f6cb9824eb6ed99cb938", size = 130137, upload-time = "2025-10-24T15:49:12.544Z" }, + { url = "https://files.pythonhosted.org/packages/b4/4d/a0cb31007f3ab6f1fd2a1b17057c7c349bc2baf8921a85c0180cc7be8011/orjson-3.11.4-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7bbf9b333f1568ef5da42bc96e18bf30fd7f8d54e9ae066d711056add508e415", size = 129152, upload-time = "2025-10-24T15:49:13.754Z" }, + { url = "https://files.pythonhosted.org/packages/f7/ef/2811def7ce3d8576b19e3929fff8f8f0d44bc5eb2e0fdecb2e6e6cc6c720/orjson-3.11.4-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4806363144bb6e7297b8e95870e78d30a649fdc4e23fc84daa80c8ebd366ce44", size = 136834, upload-time = "2025-10-24T15:49:15.307Z" }, + { url = "https://files.pythonhosted.org/packages/00/d4/9aee9e54f1809cec8ed5abd9bc31e8a9631d19460e3b8470145d25140106/orjson-3.11.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ad355e8308493f527d41154e9053b86a5be892b3b359a5c6d5d95cda23601cb2", size = 137519, upload-time = "2025-10-24T15:49:16.557Z" }, + { url = "https://files.pythonhosted.org/packages/db/ea/67bfdb5465d5679e8ae8d68c11753aaf4f47e3e7264bad66dc2f2249e643/orjson-3.11.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c8a7517482667fb9f0ff1b2f16fe5829296ed7a655d04d68cd9711a4d8a4e708", size = 136749, upload-time = "2025-10-24T15:49:17.796Z" }, + { url = "https://files.pythonhosted.org/packages/01/7e/62517dddcfce6d53a39543cd74d0dccfcbdf53967017c58af68822100272/orjson-3.11.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:97eb5942c7395a171cbfecc4ef6701fc3c403e762194683772df4c54cfbb2210", size = 136325, upload-time = "2025-10-24T15:49:19.347Z" }, + { url = "https://files.pythonhosted.org/packages/18/ae/40516739f99ab4c7ec3aaa5cc242d341fcb03a45d89edeeaabc5f69cb2cf/orjson-3.11.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:149d95d5e018bdd822e3f38c103b1a7c91f88d38a88aada5c4e9b3a73a244241", size = 140204, upload-time = "2025-10-24T15:49:20.545Z" }, + { url = "https://files.pythonhosted.org/packages/82/18/ff5734365623a8916e3a4037fcef1cd1782bfc14cf0992afe7940c5320bf/orjson-3.11.4-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:624f3951181eb46fc47dea3d221554e98784c823e7069edb5dbd0dc826ac909b", size = 406242, upload-time = "2025-10-24T15:49:21.884Z" }, + { url = "https://files.pythonhosted.org/packages/e1/43/96436041f0a0c8c8deca6a05ebeaf529bf1de04839f93ac5e7c479807aec/orjson-3.11.4-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:03bfa548cf35e3f8b3a96c4e8e41f753c686ff3d8e182ce275b1751deddab58c", size = 150013, upload-time = "2025-10-24T15:49:23.185Z" }, + { url = "https://files.pythonhosted.org/packages/1b/48/78302d98423ed8780479a1e682b9aecb869e8404545d999d34fa486e573e/orjson-3.11.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:525021896afef44a68148f6ed8a8bf8375553d6066c7f48537657f64823565b9", size = 139951, upload-time = "2025-10-24T15:49:24.428Z" }, + { url = "https://files.pythonhosted.org/packages/4a/7b/ad613fdcdaa812f075ec0875143c3d37f8654457d2af17703905425981bf/orjson-3.11.4-cp312-cp312-win32.whl", hash = "sha256:b58430396687ce0f7d9eeb3dd47761ca7d8fda8e9eb92b3077a7a353a75efefa", size = 136049, upload-time = "2025-10-24T15:49:25.973Z" }, + { url = "https://files.pythonhosted.org/packages/b9/3c/9cf47c3ff5f39b8350fb21ba65d789b6a1129d4cbb3033ba36c8a9023520/orjson-3.11.4-cp312-cp312-win_amd64.whl", hash = "sha256:c6dbf422894e1e3c80a177133c0dda260f81428f9de16d61041949f6a2e5c140", size = 131461, upload-time = "2025-10-24T15:49:27.259Z" }, + { url = "https://files.pythonhosted.org/packages/c6/3b/e2425f61e5825dc5b08c2a5a2b3af387eaaca22a12b9c8c01504f8614c36/orjson-3.11.4-cp312-cp312-win_arm64.whl", hash = "sha256:d38d2bc06d6415852224fcc9c0bfa834c25431e466dc319f0edd56cca81aa96e", size = 126167, upload-time = "2025-10-24T15:49:28.511Z" }, { url = "https://files.pythonhosted.org/packages/55/b9/ae8d34899ff0c012039b5a7cb96a389b2476e917733294e498586b45472d/orjson-3.11.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:38aa9e65c591febb1b0aed8da4d469eba239d434c218562df179885c94e1a3ad", size = 130055, upload-time = "2025-10-24T15:49:33.382Z" }, { url = "https://files.pythonhosted.org/packages/33/aa/6346dd5073730451bee3681d901e3c337e7ec17342fb79659ec9794fc023/orjson-3.11.4-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f2cf4dfaf9163b0728d061bebc1e08631875c51cd30bf47cb9e3293bfbd7dcd5", size = 129061, upload-time = "2025-10-24T15:49:34.935Z" }, { url = "https://files.pythonhosted.org/packages/39/e4/8eea51598f66a6c853c380979912d17ec510e8e66b280d968602e680b942/orjson-3.11.4-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:89216ff3dfdde0e4070932e126320a1752c9d9a758d6a32ec54b3b9334991a6a", size = 136541, upload-time = "2025-10-24T15:49:36.923Z" }, @@ -376,6 +411,12 @@ version = "11.3.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/f3/0d/d0d6dea55cd152ce3d6767bb38a8fc10e33796ba4ba210cbab9354b6d238/pillow-11.3.0.tar.gz", hash = "sha256:3828ee7586cd0b2091b6209e5ad53e20d0649bbe87164a459d0676e035e8f523", size = 47113069, upload-time = "2025-07-01T09:16:30.666Z" } wheels = [ + { url = "https://files.pythonhosted.org/packages/8e/1e/b9e12bbe6e4c2220effebc09ea0923a07a6da1e1f1bfbc8d7d29a01ce32b/pillow-11.3.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:eb76541cba2f958032d79d143b98a3a6b3ea87f0959bbe256c0b5e416599fd5d", size = 5871726, upload-time = "2025-07-03T13:10:04.448Z" }, + { url = "https://files.pythonhosted.org/packages/8d/33/e9200d2bd7ba00dc3ddb78df1198a6e80d7669cce6c2bdbeb2530a74ec58/pillow-11.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:67172f2944ebba3d4a7b54f2e95c786a3a50c21b88456329314caaa28cda70f6", size = 7644652, upload-time = "2025-07-03T13:10:10.391Z" }, + { url = "https://files.pythonhosted.org/packages/41/f1/6f2427a26fc683e00d985bc391bdd76d8dd4e92fac33d841127eb8fb2313/pillow-11.3.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:97f07ed9f56a3b9b5f49d3661dc9607484e85c67e27f3e8be2c7d28ca032fec7", size = 5977787, upload-time = "2025-07-01T09:14:21.63Z" }, + { url = "https://files.pythonhosted.org/packages/e4/c9/06dd4a38974e24f932ff5f98ea3c546ce3f8c995d3f0985f8e5ba48bba19/pillow-11.3.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:676b2815362456b5b3216b4fd5bd89d362100dc6f4945154ff172e206a22c024", size = 6645236, upload-time = "2025-07-01T09:14:23.321Z" }, + { url = "https://files.pythonhosted.org/packages/40/e7/848f69fb79843b3d91241bad658e9c14f39a32f71a301bcd1d139416d1be/pillow-11.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3e184b2f26ff146363dd07bde8b711833d7b0202e27d13540bfe2e35a323a809", size = 6086950, upload-time = "2025-07-01T09:14:25.237Z" }, + { url = "https://files.pythonhosted.org/packages/0b/1a/7cff92e695a2a29ac1958c2a0fe4c0b2393b60aac13b04a4fe2735cad52d/pillow-11.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:6be31e3fc9a621e071bc17bb7de63b85cbe0bfae91bb0363c893cbe67247780d", size = 6723358, upload-time = "2025-07-01T09:14:27.053Z" }, { url = "https://files.pythonhosted.org/packages/1e/93/0952f2ed8db3a5a4c7a11f91965d6184ebc8cd7cbb7941a260d5f018cd2d/pillow-11.3.0-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:1c627742b539bba4309df89171356fcb3cc5a9178355b2727d1b74a6cf155fbd", size = 2128328, upload-time = "2025-07-01T09:14:35.276Z" }, { url = "https://files.pythonhosted.org/packages/4b/e8/100c3d114b1a0bf4042f27e0f87d2f25e857e838034e98ca98fe7b8c0a9c/pillow-11.3.0-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:30b7c02f3899d10f13d7a48163c8969e4e653f8b43416d23d13d1bbfdc93b9f8", size = 2170652, upload-time = "2025-07-01T09:14:37.203Z" }, { url = "https://files.pythonhosted.org/packages/aa/86/3f758a28a6e381758545f7cdb4942e1cb79abd271bea932998fc0db93cb6/pillow-11.3.0-cp313-cp313-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:7859a4cc7c9295f5838015d8cc0a9c215b77e43d07a25e460f35cf516df8626f", size = 2227443, upload-time = "2025-07-01T09:14:39.344Z" }, @@ -520,10 +561,8 @@ name = "pyside6-essentials" version = "6.9.1" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "platform_machine == 'ARM64' and sys_platform == 'linux'", - "platform_machine != 'ARM64' and platform_machine != 'aarch64' and sys_platform == 'linux'", - "platform_machine == 'aarch64' and sys_platform == 'win32'", - "platform_machine != 'aarch64' and sys_platform == 'win32'", + "platform_machine != 'aarch64' and sys_platform == 'linux'", + "sys_platform == 'win32'", ] dependencies = [ { name = "shiboken6", version = "6.9.1", source = { registry = "https://pypi.org/simple" }, marker = "(platform_machine != 'aarch64' and sys_platform == 'linux') or sys_platform == 'win32'" }, @@ -552,6 +591,9 @@ name = "pywin32" version = "311" source = { registry = "https://pypi.org/simple" } wheels = [ + { url = "https://files.pythonhosted.org/packages/e7/ab/01ea1943d4eba0f850c3c61e78e8dd59757ff815ff3ccd0a84de5f541f42/pywin32-311-cp312-cp312-win32.whl", hash = "sha256:750ec6e621af2b948540032557b10a2d43b0cee2ae9758c54154d711cc852d31", size = 8706543, upload-time = "2025-07-14T20:13:20.765Z" }, + { url = "https://files.pythonhosted.org/packages/d1/a8/a0e8d07d4d051ec7502cd58b291ec98dcc0c3fff027caad0470b72cfcc2f/pywin32-311-cp312-cp312-win_amd64.whl", hash = "sha256:b8c095edad5c211ff31c05223658e71bf7116daa0ecf3ad85f3201ea3190d067", size = 9495040, upload-time = "2025-07-14T20:13:22.543Z" }, + { url = "https://files.pythonhosted.org/packages/ba/3a/2ae996277b4b50f17d61f0603efd8253cb2d79cc7ae159468007b586396d/pywin32-311-cp312-cp312-win_arm64.whl", hash = "sha256:e286f46a9a39c4a18b319c28f59b61de793654af2f395c102b4f819e584b5852", size = 8710102, upload-time = "2025-07-14T20:13:24.682Z" }, { url = "https://files.pythonhosted.org/packages/a5/be/3fd5de0979fcb3994bfee0d65ed8ca9506a8a1260651b86174f6a86f52b3/pywin32-311-cp313-cp313-win32.whl", hash = "sha256:f95ba5a847cba10dd8c4d8fefa9f2a6cf283b8b88ed6178fa8a6c1ab16054d0d", size = 8705700, upload-time = "2025-07-14T20:13:26.471Z" }, { url = "https://files.pythonhosted.org/packages/e3/28/e0a1909523c6890208295a29e05c2adb2126364e289826c0a8bc7297bd5c/pywin32-311-cp313-cp313-win_amd64.whl", hash = "sha256:718a38f7e5b058e76aee1c56ddd06908116d35147e133427e59a3983f703a20d", size = 9494700, upload-time = "2025-07-14T20:13:28.243Z" }, { url = "https://files.pythonhosted.org/packages/04/bf/90339ac0f55726dce7d794e6d79a18a91265bdf3aa70b6b9ca52f35e022a/pywin32-311-cp313-cp313-win_arm64.whl", hash = "sha256:7b4075d959648406202d92a2310cb990fea19b535c7f4a78d3f5e10b926eeb8a", size = 8709318, upload-time = "2025-07-14T20:13:30.348Z" }, @@ -614,6 +656,19 @@ version = "3.13.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/ed/f6/6895abc3a3d056b9698da3199b04c0e56226d530ae44a470edabf8b664f0/rapidfuzz-3.13.0.tar.gz", hash = "sha256:d2eaf3839e52cbcc0accbe9817a67b4b0fcf70aaeb229cfddc1c28061f9ce5d8", size = 57904226, upload-time = "2025-04-03T20:38:51.226Z" } wheels = [ + { url = "https://files.pythonhosted.org/packages/07/09/de8069a4599cc8e6d194e5fa1782c561151dea7d5e2741767137e2a8c1f0/rapidfuzz-3.13.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d4e13593d298c50c4f94ce453f757b4b398af3fa0fd2fde693c3e51195b7f69", size = 1405986, upload-time = "2025-04-03T20:36:18.447Z" }, + { url = "https://files.pythonhosted.org/packages/5d/77/d9a90b39c16eca20d70fec4ca377fbe9ea4c0d358c6e4736ab0e0e78aaf6/rapidfuzz-3.13.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ed6f416bda1c9133000009d84d9409823eb2358df0950231cc936e4bf784eb97", size = 5310809, upload-time = "2025-04-03T20:36:20.324Z" }, + { url = "https://files.pythonhosted.org/packages/1e/7d/14da291b0d0f22262d19522afaf63bccf39fc027c981233fb2137a57b71f/rapidfuzz-3.13.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1dc82b6ed01acb536b94a43996a94471a218f4d89f3fdd9185ab496de4b2a981", size = 1629394, upload-time = "2025-04-03T20:36:22.256Z" }, + { url = "https://files.pythonhosted.org/packages/b7/e4/79ed7e4fa58f37c0f8b7c0a62361f7089b221fe85738ae2dbcfb815e985a/rapidfuzz-3.13.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e9d824de871daa6e443b39ff495a884931970d567eb0dfa213d234337343835f", size = 1600544, upload-time = "2025-04-03T20:36:24.207Z" }, + { url = "https://files.pythonhosted.org/packages/4e/20/e62b4d13ba851b0f36370060025de50a264d625f6b4c32899085ed51f980/rapidfuzz-3.13.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2d18228a2390375cf45726ce1af9d36ff3dc1f11dce9775eae1f1b13ac6ec50f", size = 3052796, upload-time = "2025-04-03T20:36:26.279Z" }, + { url = "https://files.pythonhosted.org/packages/cd/8d/55fdf4387dec10aa177fe3df8dbb0d5022224d95f48664a21d6b62a5299d/rapidfuzz-3.13.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:9f5fe634c9482ec5d4a6692afb8c45d370ae86755e5f57aa6c50bfe4ca2bdd87", size = 2464016, upload-time = "2025-04-03T20:36:28.525Z" }, + { url = "https://files.pythonhosted.org/packages/9b/be/0872f6a56c0f473165d3b47d4170fa75263dc5f46985755aa9bf2bbcdea1/rapidfuzz-3.13.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:694eb531889f71022b2be86f625a4209c4049e74be9ca836919b9e395d5e33b3", size = 7556725, upload-time = "2025-04-03T20:36:30.629Z" }, + { url = "https://files.pythonhosted.org/packages/5d/f3/6c0750e484d885a14840c7a150926f425d524982aca989cdda0bb3bdfa57/rapidfuzz-3.13.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:11b47b40650e06147dee5e51a9c9ad73bb7b86968b6f7d30e503b9f8dd1292db", size = 2859052, upload-time = "2025-04-03T20:36:32.836Z" }, + { url = "https://files.pythonhosted.org/packages/6f/98/5a3a14701b5eb330f444f7883c9840b43fb29c575e292e09c90a270a6e07/rapidfuzz-3.13.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:98b8107ff14f5af0243f27d236bcc6e1ef8e7e3b3c25df114e91e3a99572da73", size = 3390219, upload-time = "2025-04-03T20:36:35.062Z" }, + { url = "https://files.pythonhosted.org/packages/e9/7d/f4642eaaeb474b19974332f2a58471803448be843033e5740965775760a5/rapidfuzz-3.13.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b836f486dba0aceb2551e838ff3f514a38ee72b015364f739e526d720fdb823a", size = 4377924, upload-time = "2025-04-03T20:36:37.363Z" }, + { url = "https://files.pythonhosted.org/packages/8e/83/fa33f61796731891c3e045d0cbca4436a5c436a170e7f04d42c2423652c3/rapidfuzz-3.13.0-cp312-cp312-win32.whl", hash = "sha256:4671ee300d1818d7bdfd8fa0608580d7778ba701817216f0c17fb29e6b972514", size = 1823915, upload-time = "2025-04-03T20:36:39.451Z" }, + { url = "https://files.pythonhosted.org/packages/03/25/5ee7ab6841ca668567d0897905eebc79c76f6297b73bf05957be887e9c74/rapidfuzz-3.13.0-cp312-cp312-win_amd64.whl", hash = "sha256:6e2065f68fb1d0bf65adc289c1bdc45ba7e464e406b319d67bb54441a1b9da9e", size = 1616985, upload-time = "2025-04-03T20:36:41.631Z" }, + { url = "https://files.pythonhosted.org/packages/76/5e/3f0fb88db396cb692aefd631e4805854e02120a2382723b90dcae720bcc6/rapidfuzz-3.13.0-cp312-cp312-win_arm64.whl", hash = "sha256:65cc97c2fc2c2fe23586599686f3b1ceeedeca8e598cfcc1b7e56dc8ca7e2aa7", size = 860116, upload-time = "2025-04-03T20:36:43.915Z" }, { url = "https://files.pythonhosted.org/packages/59/cf/c3ac8c80d8ced6c1f99b5d9674d397ce5d0e9d0939d788d67c010e19c65f/rapidfuzz-3.13.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0da54aa8547b3c2c188db3d1c7eb4d1bb6dd80baa8cdaeaec3d1da3346ec9caa", size = 1399854, upload-time = "2025-04-03T20:36:50.294Z" }, { url = "https://files.pythonhosted.org/packages/09/5d/ca8698e452b349c8313faf07bfa84e7d1c2d2edf7ccc67bcfc49bee1259a/rapidfuzz-3.13.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:df8e8c21e67afb9d7fbe18f42c6111fe155e801ab103c81109a61312927cc611", size = 5308962, upload-time = "2025-04-03T20:36:52.421Z" }, { url = "https://files.pythonhosted.org/packages/66/0a/bebada332854e78e68f3d6c05226b23faca79d71362509dbcf7b002e33b7/rapidfuzz-3.13.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:461fd13250a2adf8e90ca9a0e1e166515cbcaa5e9c3b1f37545cbbeff9e77f6b", size = 1625016, upload-time = "2025-04-03T20:36:54.639Z" }, @@ -678,10 +733,8 @@ name = "shiboken6" version = "6.9.1" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "platform_machine == 'ARM64' and sys_platform == 'linux'", - "platform_machine != 'ARM64' and platform_machine != 'aarch64' and sys_platform == 'linux'", - "platform_machine == 'aarch64' and sys_platform == 'win32'", - "platform_machine != 'aarch64' and sys_platform == 'win32'", + "platform_machine != 'aarch64' and sys_platform == 'linux'", + "sys_platform == 'win32'", ] wheels = [ { url = "https://files.pythonhosted.org/packages/5a/07/53b2532ecd42ff925feb06b7bb16917f5f99f9c3470f0815c256789d818b/shiboken6-6.9.1-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:efcdfa8655d34aaf8d7a0c7724def3440bd46db02f5ad3b1785db5f6ccb0a8ff", size = 206756, upload-time = "2025-06-03T13:16:46.528Z" }, @@ -800,6 +853,9 @@ dependencies = [ ] sdist = { url = "https://files.pythonhosted.org/packages/16/dd/acdd527c1d890c8f852cc2af644aa6c160974e66631289420aa871b05e65/winrt_runtime-3.2.1.tar.gz", hash = "sha256:c8dca19e12b234ae6c3dadf1a4d0761b51e708457492c13beb666556958801ea", size = 21721, upload-time = "2025-06-06T14:40:27.593Z" } wheels = [ + { url = "https://files.pythonhosted.org/packages/d3/54/3dd06f2341fab6abb06588a16b30e0b213b0125be7b79dafc3bdba3b334a/winrt_runtime-3.2.1-cp312-cp312-win32.whl", hash = "sha256:762b3d972a2f7037f7db3acbaf379dd6d8f6cda505f71f66c6b425d1a1eae2f1", size = 210090, upload-time = "2025-06-06T06:44:08.151Z" }, + { url = "https://files.pythonhosted.org/packages/ca/a1/1d7248d5c62ccbea5f3e0da64ca4529ce99c639c3be2485b6ed709f5c740/winrt_runtime-3.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:06510db215d4f0dc45c00fbb1251c6544e91742a0ad928011db33b30677e1576", size = 241391, upload-time = "2025-06-06T06:44:09.442Z" }, + { url = "https://files.pythonhosted.org/packages/8a/ae/6a205d8dafc79f7c242be7f940b1e0c1971fd64ab3079bda4b514aa3d714/winrt_runtime-3.2.1-cp312-cp312-win_arm64.whl", hash = "sha256:14562c29a087ccad38e379e585fef333e5c94166c807bdde67b508a6261aa195", size = 415242, upload-time = "2025-06-06T06:44:10.407Z" }, { url = "https://files.pythonhosted.org/packages/79/d4/1a555d8bdcb8b920f8e896232c82901cc0cda6d3e4f92842199ae7dff70a/winrt_runtime-3.2.1-cp313-cp313-win32.whl", hash = "sha256:44e2733bc709b76c554aee6c7fe079443b8306b2e661e82eecfebe8b9d71e4d1", size = 210022, upload-time = "2025-06-06T06:44:11.767Z" }, { url = "https://files.pythonhosted.org/packages/aa/24/2b6e536ca7745d788dfd17a2ec376fa03a8c7116dc638bb39b035635484f/winrt_runtime-3.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:3c1fdcaeedeb2920dc3b9039db64089a6093cad2be56a3e64acc938849245a6d", size = 241349, upload-time = "2025-06-06T06:44:12.661Z" }, { url = "https://files.pythonhosted.org/packages/d4/7f/6d72973279e2929b2a71ed94198ad4a5d63ee2936e91a11860bf7b431410/winrt_runtime-3.2.1-cp313-cp313-win_arm64.whl", hash = "sha256:28f3dab083412625ff4d2b46e81246932e6bebddf67bea7f05e01712f54e6159", size = 415126, upload-time = "2025-06-06T06:44:13.702Z" }, @@ -817,6 +873,9 @@ dependencies = [ ] sdist = { url = "https://files.pythonhosted.org/packages/0c/55/098ce7ea0679efcc1298b269c48768f010b6c68f90c588f654ec874c8a74/winrt_windows_foundation-3.2.1.tar.gz", hash = "sha256:ad2f1fcaa6c34672df45527d7c533731fdf65b67c4638c2b4aca949f6eec0656", size = 30485, upload-time = "2025-06-06T14:41:53.344Z" } wheels = [ + { url = "https://files.pythonhosted.org/packages/f3/f8/495e304ddedd5ff2f196efbde906265cb75ade4d79e2937837f72ef654a0/winrt_windows_foundation-3.2.1-cp312-cp312-win32.whl", hash = "sha256:867642ccf629611733db482c4288e17b7919f743a5873450efb6d69ae09fdc2b", size = 112169, upload-time = "2025-06-06T07:11:01.438Z" }, + { url = "https://files.pythonhosted.org/packages/9b/5e/b5059e4ece095351c496c9499783130c302d25e353c18031d5231b1b3b3c/winrt_windows_foundation-3.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:45550c5b6c2125cde495c409633e6b1ea5aa1677724e3b95eb8140bfccbe30c9", size = 118668, upload-time = "2025-06-06T07:11:02.475Z" }, + { url = "https://files.pythonhosted.org/packages/a5/70/acbcb3ef07b1b67e2de4afab9176a5282cfd775afd073efe6828dfc65ace/winrt_windows_foundation-3.2.1-cp312-cp312-win_arm64.whl", hash = "sha256:94f4661d71cb35ebc52be7af112f2eeabdfa02cb05e0243bf9d6bd2cafaa6f37", size = 109671, upload-time = "2025-06-06T07:11:03.538Z" }, { url = "https://files.pythonhosted.org/packages/7b/71/5e87131e4aecc8546c76b9e190bfe4e1292d028bda3f9dd03b005d19c76c/winrt_windows_foundation-3.2.1-cp313-cp313-win32.whl", hash = "sha256:3998dc58ed50ecbdbabace1cdef3a12920b725e32a5806d648ad3f4829d5ba46", size = 112184, upload-time = "2025-06-06T07:11:04.459Z" }, { url = "https://files.pythonhosted.org/packages/ba/7f/8d5108461351d4f6017f550af8874e90c14007f9122fa2eab9f9e0e9b4e1/winrt_windows_foundation-3.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:6e98617c1e46665c7a56ce3f5d28e252798416d1ebfee3201267a644a4e3c479", size = 118672, upload-time = "2025-06-06T07:11:05.55Z" }, { url = "https://files.pythonhosted.org/packages/44/f5/2edf70922a3d03500dab17121b90d368979bd30016f6dbca0d043f0c71f1/winrt_windows_foundation-3.2.1-cp313-cp313-win_arm64.whl", hash = "sha256:2a8c1204db5c352f6a563130a5a41d25b887aff7897bb677d4ff0b660315aad4", size = 109673, upload-time = "2025-06-06T07:11:06.398Z" }, @@ -834,6 +893,9 @@ dependencies = [ ] sdist = { url = "https://files.pythonhosted.org/packages/30/e5/781e29e2c459280d600009c1a1f11f03e83896a515977ccf7ddc92f8b501/winrt_windows_graphics-3.2.1.tar.gz", hash = "sha256:7f40ce7770ebb45319f9bb3d9104e58b1f20cdf3c33d6d0540e59a2ae752b674", size = 7776, upload-time = "2025-06-06T14:42:05.859Z" } wheels = [ + { url = "https://files.pythonhosted.org/packages/10/4e/e74fc8b4ef39ed45eeaf99741c635ba874a42b54727cbd5676363e1e2c32/winrt_windows_graphics-3.2.1-cp312-cp312-win32.whl", hash = "sha256:e8fabdc3d24177f235d4533afac8ec28d1a107ce8035e4db6f0775ef8f24b23d", size = 21595, upload-time = "2025-06-06T07:14:56.73Z" }, + { url = "https://files.pythonhosted.org/packages/22/d9/fec112705242c8ca8a6a09bbed69098fbbae7486fca55ce0721b8b34ac67/winrt_windows_graphics-3.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:d1a414f29c87fba8036effedd9758d728ab2e899885ab629f07a88b43201f862", size = 22489, upload-time = "2025-06-06T07:14:57.446Z" }, + { url = "https://files.pythonhosted.org/packages/15/98/c1f2c6d82a3977308e6c425a51403b7e381c8f89341d2f85750f305ff170/winrt_windows_graphics-3.2.1-cp312-cp312-win_arm64.whl", hash = "sha256:ae928a4305be8f1b28ecf3498e51d60ec235839ac1263421e4a77daeefda9d27", size = 21111, upload-time = "2025-06-06T07:14:58.17Z" }, { url = "https://files.pythonhosted.org/packages/41/36/bb171de5f4ac04e6a056cb7ab6e52a62ae4a422f1b2ee0a52027c18bcd61/winrt_windows_graphics-3.2.1-cp313-cp313-win32.whl", hash = "sha256:624bc74a18f2b97ddbf37ff75bfc7f9e77fec3f7ad20ccf066a7ab740cadd9b7", size = 21600, upload-time = "2025-06-06T07:14:58.909Z" }, { url = "https://files.pythonhosted.org/packages/03/0f/fe7dbda5220fd4515057e999cb892d1416f543643feef6f15553a918c149/winrt_windows_graphics-3.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:12c5dec9d17d2b7605da0025112ef57d796606e8d01c3d1215d94a85c85f3c83", size = 22493, upload-time = "2025-06-06T07:14:59.657Z" }, { url = "https://files.pythonhosted.org/packages/1b/6a/a53faf64a6061e4fe89855fcc86104db004e490e0c78a0cfd7fd614b7339/winrt_windows_graphics-3.2.1-cp313-cp313-win_arm64.whl", hash = "sha256:191992bb509c2b1b0061e253390d430d05b8108a424d13d7333764d1ca92eae5", size = 21119, upload-time = "2025-06-06T07:15:00.387Z" }, @@ -851,6 +913,9 @@ dependencies = [ ] sdist = { url = "https://files.pythonhosted.org/packages/4f/32/751884ce5a857f363a6e854d56efd6d707e331585440d2db95ff88743f58/winrt_windows_graphics_capture-3.2.1.tar.gz", hash = "sha256:c4c3a4bc2c87062e4a09a42b7f6f1411f201ca04142954b1223dc46c72240efd", size = 10410, upload-time = "2025-06-06T14:42:06.623Z" } wheels = [ + { url = "https://files.pythonhosted.org/packages/b1/a1/51c270092dc3e6551e7c6fe64dcc2732d8b26ce3e51cf6fbdaba05a8493e/winrt_windows_graphics_capture-3.2.1-cp312-cp312-win32.whl", hash = "sha256:3b8db5b5e23520e40ea2d0368b039de371b43dbb842ac9cd2b7af7e5eb29aa69", size = 51771, upload-time = "2025-06-06T07:15:08.589Z" }, + { url = "https://files.pythonhosted.org/packages/90/65/d7f00411705ae2dad68c3187e94c508601e523dbba4ceb94f7d29f07a07a/winrt_windows_graphics_capture-3.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:122412adb1f2c025d38beeb1b8b15a3e81397d79cd72c5e97853c5437e26922f", size = 55218, upload-time = "2025-06-06T07:15:09.418Z" }, + { url = "https://files.pythonhosted.org/packages/f9/ad/4c6ec2dc926df7f6885fc31f0470a8899a6befc5acb30c1dbd640cb5189a/winrt_windows_graphics_capture-3.2.1-cp312-cp312-win_arm64.whl", hash = "sha256:7f1d7b298305d187b369aa9e2afd1ffa1c799fb31424a55a6a297a8ef5bb79a0", size = 50429, upload-time = "2025-06-06T07:15:10.242Z" }, { url = "https://files.pythonhosted.org/packages/63/67/eec7c4429422280d1b6ce61deb1cb059978b46a6bed08d81493c3c32ac4a/winrt_windows_graphics_capture-3.2.1-cp313-cp313-win32.whl", hash = "sha256:c16ad77cc667de2721c34ba00e4fb82427fdf960e87dd7c3958bb3789de0c412", size = 51782, upload-time = "2025-06-06T07:15:11.061Z" }, { url = "https://files.pythonhosted.org/packages/00/6d/5e335620fbabc6b634e56d31952477580e2e121cb7c3f3c98dff9c74bb3e/winrt_windows_graphics_capture-3.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:1e1f844966795b4fbae10ff15d1d860335d88ee8a5224a2d55cbbb32dfde8155", size = 55226, upload-time = "2025-06-06T07:15:11.863Z" }, { url = "https://files.pythonhosted.org/packages/02/84/18362c5cee5e3fceb6d7bfd2df31a9be3bc1cb7dda169951a5d59a65255a/winrt_windows_graphics_capture-3.2.1-cp313-cp313-win_arm64.whl", hash = "sha256:b0aff51d0ea9a670236b4051292a8057bdc52b00753b03771986a7555a104878", size = 50435, upload-time = "2025-06-06T07:15:12.678Z" }, @@ -865,6 +930,9 @@ version = "3.2.1" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/9a/d7/b686bf6aab3001d5a57864211556ca3a5f500c32f70b33c5baa22024985c/winrt_windows_graphics_capture_interop-3.2.1.tar.gz", hash = "sha256:4b7dba7348c5fc6f7cc691bc4ec987e7c234a0a63bc5f47285e947096518d6bc", size = 4223, upload-time = "2025-06-06T14:42:07.201Z" } wheels = [ + { url = "https://files.pythonhosted.org/packages/d3/e7/1ff94dd7e505fc3f0af03b1c4a39b512b172cc2af4e65285583f41f86803/winrt_windows_graphics_capture_interop-3.2.1-cp312-cp312-win32.whl", hash = "sha256:d7999fde98efffd7c2381735cf976b863ae8ade9ef7e9de8d83a0c3d2f9f1749", size = 16821, upload-time = "2025-06-06T07:15:20.795Z" }, + { url = "https://files.pythonhosted.org/packages/f7/dc/fc3141dcefb31fde6c111f790017dfa94dc13128ddda3fdb2257d460287a/winrt_windows_graphics_capture_interop-3.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:82e5a9266b8392c6bc5c04c022f9704233b7bcb74f3b54383fb2b9603d1101c6", size = 17651, upload-time = "2025-06-06T07:15:21.579Z" }, + { url = "https://files.pythonhosted.org/packages/c7/3b/28b1c9a37bde0af93d24450ef5f0b890b41daacd5116efe88f9aa8847b52/winrt_windows_graphics_capture_interop-3.2.1-cp312-cp312-win_arm64.whl", hash = "sha256:df49add88e670b2a8ed109000de152545e8712ca63e2a0f49f6673e1ceee828c", size = 13961, upload-time = "2025-06-06T07:15:22.333Z" }, { url = "https://files.pythonhosted.org/packages/e6/69/6e9cbf66bcba04b4ae788479fa2946ff319d3e95bebc585ae89807ac9715/winrt_windows_graphics_capture_interop-3.2.1-cp313-cp313-win32.whl", hash = "sha256:a04e8eebd9d60f8458448ca5e6a36d3a2dab04ab4234a497d630f50ee7b226c3", size = 16820, upload-time = "2025-06-06T07:15:23.036Z" }, { url = "https://files.pythonhosted.org/packages/d8/98/a21a36ee623aa55d4016f775a98e6576f1506b65187889252188c9da9df4/winrt_windows_graphics_capture_interop-3.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:7b554e3bf079aab01f4171923d43c86622202644c7d41c4da7577dd05cdcea4b", size = 17649, upload-time = "2025-06-06T07:15:23.754Z" }, { url = "https://files.pythonhosted.org/packages/6f/fd/6c73d5f9561d04f9fde90800ededd7f1849e1534285de087b0c12389e9f4/winrt_windows_graphics_capture_interop-3.2.1-cp313-cp313-win_arm64.whl", hash = "sha256:51a8a89b08a5a19305c39ee54d390db2965df41f63a31f182186cb1f2e3e4e75", size = 13962, upload-time = "2025-06-06T07:15:24.836Z" }, @@ -882,6 +950,9 @@ dependencies = [ ] sdist = { url = "https://files.pythonhosted.org/packages/dc/86/2f94a297db367b78c747b88da61551e59b1e62c553882018883110ec7bee/winrt_windows_graphics_directx-3.2.1.tar.gz", hash = "sha256:3e7e875055644151eedbc556806d90e8c53ef6375a6c98669a9ddacbe0953586", size = 4503, upload-time = "2025-06-06T14:42:07.786Z" } wheels = [ + { url = "https://files.pythonhosted.org/packages/94/02/9ae92800e52726be22f1e6de753e2f6870d5e25e6d0f60a01389c4362154/winrt_windows_graphics_directx-3.2.1-cp312-cp312-win32.whl", hash = "sha256:2bf1125298425a2db855738859d69a118de8686871102d0aec3757d6f26ae2f1", size = 9047, upload-time = "2025-06-06T07:15:33.287Z" }, + { url = "https://files.pythonhosted.org/packages/b5/34/8ceb75ff321d7426330284c1fe93698b86f96142dc77c5720ad06b62eca0/winrt_windows_graphics_directx-3.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:e8715444fac6db0fcf81941de362b83a9690ca6ea74d5c1d404e009b23500221", size = 9272, upload-time = "2025-06-06T07:15:33.947Z" }, + { url = "https://files.pythonhosted.org/packages/74/8e/5378c03d6f4305bc87e021e91db464093aa9cfa21fb90bfda5bf485eb7ed/winrt_windows_graphics_directx-3.2.1-cp312-cp312-win_arm64.whl", hash = "sha256:9dd9afc52455f74efed609cf569c1b9aa0ceeeb06148d3e8f6d8f770e2863d13", size = 8061, upload-time = "2025-06-06T07:15:34.937Z" }, { url = "https://files.pythonhosted.org/packages/5d/61/d861f4e9a19562090d3ecf5b049fbb2229e95cdf6fc9c35c1ce3288fcbf4/winrt_windows_graphics_directx-3.2.1-cp313-cp313-win32.whl", hash = "sha256:57226ba8b8cb00cc08487f041565f807a2ab5009bfbdc89709438ae78479cc84", size = 9049, upload-time = "2025-06-06T07:15:35.617Z" }, { url = "https://files.pythonhosted.org/packages/4b/cd/62a215a28f0307267cca0a82beca8d2d3f80827a68af1c8db795a7784511/winrt_windows_graphics_directx-3.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:0b08542e65ee15fce3fe2fe68056b73bdfc96299efa3e1ec97d4297fd5eb6374", size = 9272, upload-time = "2025-06-06T07:15:36.289Z" }, { url = "https://files.pythonhosted.org/packages/49/ce/1e2aefd598758b0e7da059235e227287ab5124f90c9328a28e1e16c961a6/winrt_windows_graphics_directx-3.2.1-cp313-cp313-win_arm64.whl", hash = "sha256:b2cd39a3a920cc4db89506a7f9eeb34ef01e55f05a76c3a217a5d94441728755", size = 8062, upload-time = "2025-06-06T07:15:36.945Z" }, @@ -899,6 +970,9 @@ dependencies = [ ] sdist = { url = "https://files.pythonhosted.org/packages/2d/d3/23933ea9f39952e4ae679eaa9eef34dec05dbdd35e2eb192dce5fc4fff8f/winrt_windows_graphics_directx_direct3d11-3.2.1.tar.gz", hash = "sha256:157618f9d5071ff422098472fa96524fe9385a39776ff4483d5a66a510a8114c", size = 8656, upload-time = "2025-06-06T14:42:08.388Z" } wheels = [ + { url = "https://files.pythonhosted.org/packages/cc/59/a95b0551edb2670cbf90a1c513fb6f73b87129c6982799603ff8a1811830/winrt_windows_graphics_directx_direct3d11-3.2.1-cp312-cp312-win32.whl", hash = "sha256:1970e3caeccab72e2d008442fe857bc246d9632327d0e124cd63d672d8ab9989", size = 28405, upload-time = "2025-06-06T07:15:45.316Z" }, + { url = "https://files.pythonhosted.org/packages/09/92/99dea8ccd2e5ec05da85804e21cbe826db0c9c7b1700fb835648a01f32bc/winrt_windows_graphics_directx_direct3d11-3.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:7f02c3b9d952afb283901177c9328b892320c6400760ea0219afa894be93cfd0", size = 29592, upload-time = "2025-06-06T07:15:46.5Z" }, + { url = "https://files.pythonhosted.org/packages/22/9a/a96e7b79d33395d2d805f673d2d81f3d127cf7c04a007b8556d9beb848aa/winrt_windows_graphics_directx_direct3d11-3.2.1-cp312-cp312-win_arm64.whl", hash = "sha256:16a4132bcd48e562f19273aac28d88034fa2b0a1e61b407566b83a1616d7e481", size = 25914, upload-time = "2025-06-06T07:15:47.208Z" }, { url = "https://files.pythonhosted.org/packages/7a/ab/4dd0b24e981730b6064566d93a2f288b992f7339c10a814d8eee0f809245/winrt_windows_graphics_directx_direct3d11-3.2.1-cp313-cp313-win32.whl", hash = "sha256:0227d16a5bdeb83f141f79b83777c8fe1b025a91ed3061fc24c7512697b4bc9f", size = 28412, upload-time = "2025-06-06T07:15:48.179Z" }, { url = "https://files.pythonhosted.org/packages/51/fc/5edbc732140add0b143351c655ca9d17ace0a4a6c7d6aa1e51703283c99c/winrt_windows_graphics_directx_direct3d11-3.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:0efe0b58fe81b0071b80aaeb1425f019dd67ca720db9b57d3bc1adb6411fc344", size = 29599, upload-time = "2025-06-06T07:15:48.893Z" }, { url = "https://files.pythonhosted.org/packages/bb/8e/f9d920ea791b5baa7f0852b065629a0d19c91798d536c334db52c112ec4f/winrt_windows_graphics_directx_direct3d11-3.2.1-cp313-cp313-win_arm64.whl", hash = "sha256:efb63b3fe889bf35f7b6cd9d9010ca65600430e40c651a0d6fad66e00eb82cf4", size = 25915, upload-time = "2025-06-06T07:15:50.477Z" }, @@ -913,6 +987,9 @@ version = "3.2.1" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/f7/8a/bb46332a21269ff8deadf01a9fd3c63832f8302d1530d63a3dd4eb4c5a54/winrt_windows_graphics_directx_direct3d11_interop-3.2.1.tar.gz", hash = "sha256:ed9eac3a2e87293bb6f64fddd248de074f8ba1b889f6458218671ae573f2dc45", size = 4651, upload-time = "2025-06-06T14:42:08.934Z" } wheels = [ + { url = "https://files.pythonhosted.org/packages/5d/5e/13dabc4f3eab7a3e362260a880c2dee2fe8d2ed64c69ae8c79d54dd602d5/winrt_windows_graphics_directx_direct3d11_interop-3.2.1-cp312-cp312-win32.whl", hash = "sha256:f6edb6cd0970c978c1917df81fbbb8f56b5980d7a27ca2c51cdc2232bff301f4", size = 13880, upload-time = "2025-06-06T07:15:57.712Z" }, + { url = "https://files.pythonhosted.org/packages/95/63/4ae8d627ddf19f13ddd6e3a7d7f90252c92e3c72fbe8789ea295ae3893a0/winrt_windows_graphics_directx_direct3d11_interop-3.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:a939a111ad8d7e79732ac9182b9a3df05ccace753e2d20f9f41f8ffd1cc39983", size = 13970, upload-time = "2025-06-06T07:15:58.426Z" }, + { url = "https://files.pythonhosted.org/packages/3d/44/0b48d43530938c155f5b61b5c73f5ef958cc21d458d009e61e5b2df5d78e/winrt_windows_graphics_directx_direct3d11_interop-3.2.1-cp312-cp312-win_arm64.whl", hash = "sha256:edf3e25ef0ccd0b3698ad635d8c183cb68ffb9c7a4e8890f355eef963f2c8e19", size = 12959, upload-time = "2025-06-06T07:15:59.114Z" }, { url = "https://files.pythonhosted.org/packages/3b/29/7158ef523310ba3afc90a4611b93e6fa0c9ceb9cb04f027a349aeee27d5e/winrt_windows_graphics_directx_direct3d11_interop-3.2.1-cp313-cp313-win32.whl", hash = "sha256:793bbd9cd968e4b43c6539fd8e9739111263294a732abf082435b0b9e480d9fa", size = 13884, upload-time = "2025-06-06T07:15:59.81Z" }, { url = "https://files.pythonhosted.org/packages/5f/6e/ccfa34abeeb17867a669206b3ed93816b595a75bae9f2caf7c13d5f5ba33/winrt_windows_graphics_directx_direct3d11_interop-3.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:164172b693085179ba40f208c4ced8a433ca46f8446919d8a39b69068590f262", size = 13974, upload-time = "2025-06-06T07:16:00.505Z" }, { url = "https://files.pythonhosted.org/packages/42/0f/3fe809f0b842c563c2fcc4d5d3197e1bfa35c16084606cdc359c1e891fd8/winrt_windows_graphics_directx_direct3d11_interop-3.2.1-cp313-cp313-win_arm64.whl", hash = "sha256:36fd4f7a1f598b05af444814b717cb81db4b193c3677f87d93076e380bf4dbdb", size = 12960, upload-time = "2025-06-06T07:16:01.194Z" }, @@ -930,6 +1007,9 @@ dependencies = [ ] sdist = { url = "https://files.pythonhosted.org/packages/3c/90/14655f93d5cc4224ae6c44866c36928926b54c8fe7ae4a465b10332bd935/winrt_windows_graphics_imaging-3.2.1.tar.gz", hash = "sha256:1e0bdb08625b0ce144a2e76dd5ed86605906e41196df92d660c8f87a993a1513", size = 26786, upload-time = "2025-06-06T14:42:11.95Z" } wheels = [ + { url = "https://files.pythonhosted.org/packages/54/00/a1f1e4af34305738290c46170a080f57340722d3a79321f6ec89ad564930/winrt_windows_graphics_imaging-3.2.1-cp312-cp312-win32.whl", hash = "sha256:9694d7753b88f8ea4ee85564208e534e5d15474e88709aba99d16d783b633de2", size = 133287, upload-time = "2025-06-06T07:17:08.58Z" }, + { url = "https://files.pythonhosted.org/packages/3a/10/8cce4bffff8cad606623ea27adf711a0662881f2bca6207f12fd391d5eb8/winrt_windows_graphics_imaging-3.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:066038a96df12c23d6da6a591472436ada50103f575d8a1f802778a044f668c8", size = 142457, upload-time = "2025-06-06T07:17:09.439Z" }, + { url = "https://files.pythonhosted.org/packages/68/ac/4cdf2a853258567ce851331a4c40aea960c315851de8cedd88380d8abf0c/winrt_windows_graphics_imaging-3.2.1-cp312-cp312-win_arm64.whl", hash = "sha256:5850bbfa0ad87dd138fbd2c3088d0641b34393c0d60d4679296596574199d210", size = 136036, upload-time = "2025-06-06T07:17:10.366Z" }, { url = "https://files.pythonhosted.org/packages/fa/7a/3e2b38e3d5526981918a64b8e8970c10a86ad2e3fe142f2c6313349b7318/winrt_windows_graphics_imaging-3.2.1-cp313-cp313-win32.whl", hash = "sha256:9bcff883e1bb9819a651ad1151779b30fd3c7ed838e1f59e894984b9df54e54b", size = 133272, upload-time = "2025-06-06T07:17:11.255Z" }, { url = "https://files.pythonhosted.org/packages/c4/f9/7bdb36146c7a28856d5a81f65289d5d74d7ba1f2192ef4b1414b24834425/winrt_windows_graphics_imaging-3.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:7026df3274e20f72678b5d1a1425358004d9fe4316b775e413123841936345a5", size = 142428, upload-time = "2025-06-06T07:17:12.212Z" }, { url = "https://files.pythonhosted.org/packages/4c/0c/5fac538512c42c9e3b7baa6b2f011d69eb56ec8a508020a8fa1e532f2f35/winrt_windows_graphics_imaging-3.2.1-cp313-cp313-win_arm64.whl", hash = "sha256:a8eb06ba156e65a42ef47bf18d2fc7cd3f558cc72af3b2743fb5f8ef92778117", size = 136049, upload-time = "2025-06-06T07:17:13.093Z" }, From 7f371ae65744728d51af9e97ead8492cf08f288b Mon Sep 17 00:00:00 2001 From: Avasam Date: Tue, 27 Jan 2026 01:26:14 -0500 Subject: [PATCH 03/31] flag wine support in artifact name --- .github/workflows/lint-and-build.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/lint-and-build.yml b/.github/workflows/lint-and-build.yml index 4ed16853..4cafc9ea 100644 --- a/.github/workflows/lint-and-build.yml +++ b/.github/workflows/lint-and-build.yml @@ -120,13 +120,16 @@ jobs: $Env:AUTOSPLIT_VERSION=uv run python -c "import utils; print(utils.AUTOSPLIT_VERSION)" echo "AUTOSPLIT_VERSION=$Env:AUTOSPLIT_VERSION" >> $Env:GITHUB_OUTPUT echo "OS=$([System.Runtime.InteropServices.RuntimeInformation]::RuntimeIdentifier)" >> $Env:GITHUB_OUTPUT + if "${{ matrix.python-version }}" -eq "3.12" { + echo "WINE_SUPPORT=, Wine support >> $Env:GITHUB_OUTPUT + } shell: pwsh - name: Upload Build Artifact uses: actions/upload-artifact@v4 with: name: > AutoSplit v${{ steps.artifact_vars.outputs.AUTOSPLIT_VERSION }} - for ${{ steps.artifact_vars.outputs.OS }} (Python ${{ matrix.python-version }}) + for ${{ steps.artifact_vars.outputs.OS }} (Python ${{ matrix.python-version }}${{ steps.artifact_vars.outputs.WINE_SUPPORT }}) path: | dist/AutoSplit* dist/settings.toml From db29dc527aa8448806c3f8cba5e222a493c80b59 Mon Sep 17 00:00:00 2001 From: Avasam Date: Tue, 27 Jan 2026 21:27:30 -0500 Subject: [PATCH 04/31] CI fixes --- .github/workflows/lint-and-build.yml | 2 +- src/capture_method/__init__.py | 48 +++++----------- uv.lock | 86 ++++++++++++++-------------- 3 files changed, 58 insertions(+), 78 deletions(-) diff --git a/.github/workflows/lint-and-build.yml b/.github/workflows/lint-and-build.yml index 4cafc9ea..7748b0db 100644 --- a/.github/workflows/lint-and-build.yml +++ b/.github/workflows/lint-and-build.yml @@ -120,7 +120,7 @@ jobs: $Env:AUTOSPLIT_VERSION=uv run python -c "import utils; print(utils.AUTOSPLIT_VERSION)" echo "AUTOSPLIT_VERSION=$Env:AUTOSPLIT_VERSION" >> $Env:GITHUB_OUTPUT echo "OS=$([System.Runtime.InteropServices.RuntimeInformation]::RuntimeIdentifier)" >> $Env:GITHUB_OUTPUT - if "${{ matrix.python-version }}" -eq "3.12" { + if ()"${{ matrix.python-version }}" -eq "3.12") { echo "WINE_SUPPORT=, Wine support >> $Env:GITHUB_OUTPUT } shell: pwsh diff --git a/src/capture_method/__init__.py b/src/capture_method/__init__.py index 16231f70..c4cc5530 100644 --- a/src/capture_method/__init__.py +++ b/src/capture_method/__init__.py @@ -1,3 +1,4 @@ +# ruff: noqa: RUF067 from __future__ import annotations import os @@ -9,23 +10,14 @@ from typing import TYPE_CHECKING, Never, TypedDict, cast, override from capture_method.CaptureMethodBase import CaptureMethodBase -from capture_method.VideoCaptureDeviceCaptureMethod import ( - VideoCaptureDeviceCaptureMethod, -) -from utils import ( - WGC_MIN_BUILD, - WINDOWS_BUILD_NUMBER, - first, - get_input_device_resolution, -) +from capture_method.VideoCaptureDeviceCaptureMethod import VideoCaptureDeviceCaptureMethod +from utils import WGC_MIN_BUILD, WINDOWS_BUILD_NUMBER, first, get_input_device_resolution if sys.platform == "win32": from _ctypes import COMError # noqa: PLC2701 # comtypes is untyped from capture_method.BitBltCaptureMethod import BitBltCaptureMethod - from capture_method.DesktopDuplicationCaptureMethod import ( - DesktopDuplicationCaptureMethod, - ) + from capture_method.DesktopDuplicationCaptureMethod import DesktopDuplicationCaptureMethod from capture_method.ForceFullContentRenderingCaptureMethod import ( ForceFullContentRenderingCaptureMethod, ) @@ -128,9 +120,7 @@ def get(self, key: CaptureMethodEnum, default: object = None, /): if sys.platform == "win32": # Windows Graphics Capture requires a minimum Windows Build if WINDOWS_BUILD_NUMBER >= WGC_MIN_BUILD: - CAPTURE_METHODS[CaptureMethodEnum.WINDOWS_GRAPHICS_CAPTURE] = ( - WindowsGraphicsCaptureMethod - ) + CAPTURE_METHODS[CaptureMethodEnum.WINDOWS_GRAPHICS_CAPTURE] = WindowsGraphicsCaptureMethod CAPTURE_METHODS[CaptureMethodEnum.BITBLT] = BitBltCaptureMethod try: # Test for laptop cross-GPU Desktop Duplication issue import d3dshot @@ -139,9 +129,7 @@ def get(self, key: CaptureMethodEnum, default: object = None, /): except (ModuleNotFoundError, COMError): pass else: - CAPTURE_METHODS[CaptureMethodEnum.DESKTOP_DUPLICATION] = ( - DesktopDuplicationCaptureMethod - ) + CAPTURE_METHODS[CaptureMethodEnum.DESKTOP_DUPLICATION] = DesktopDuplicationCaptureMethod CAPTURE_METHODS[CaptureMethodEnum.PRINTWINDOW_RENDERFULLCONTENT] = ( ForceFullContentRenderingCaptureMethod ) @@ -158,14 +146,10 @@ def get(self, key: CaptureMethodEnum, default: object = None, /): # TODO: Investigate solution for Slow Scrot: # https://github.com/asweigart/pyscreeze/issues/68 CAPTURE_METHODS[CaptureMethodEnum.SCROT] = ScrotCaptureMethod -CAPTURE_METHODS[CaptureMethodEnum.VIDEO_CAPTURE_DEVICE] = ( - VideoCaptureDeviceCaptureMethod -) +CAPTURE_METHODS[CaptureMethodEnum.VIDEO_CAPTURE_DEVICE] = VideoCaptureDeviceCaptureMethod -def change_capture_method( - selected_capture_method: CaptureMethodEnum, autosplit: AutoSplit -): +def change_capture_method(selected_capture_method: CaptureMethodEnum, autosplit: AutoSplit): """ Seamlessly change the current capture method, initialize the new one with transferred subscriptions @@ -174,9 +158,7 @@ def change_capture_method( autosplit.capture_method.close() autosplit.capture_method = CAPTURE_METHODS.get(selected_capture_method)(autosplit) - disable_selection_buttons = ( - selected_capture_method == CaptureMethodEnum.VIDEO_CAPTURE_DEVICE - ) + disable_selection_buttons = selected_capture_method == CaptureMethodEnum.VIDEO_CAPTURE_DEVICE autosplit.select_region_button.setDisabled(disable_selection_buttons) autosplit.select_window_button.setDisabled(disable_selection_buttons) @@ -193,24 +175,22 @@ class CameraInfo: def get_input_devices(): if sys.platform == "win32": try: - from pygrabber.dshow_graph import FilterGraph + from pygrabber.dshow_graph import FilterGraph # noqa: PLC0415 except OSError as exception: # wine can choke on D3D Device Enumeration if missing directshow # OSError: [WinError -2147312566] Windows Error 0x80029c4a # TODO: Check the OS error number and only silence that one print(exception) - print(getattr(exception, "errno")) - print(getattr(exception, "winerror")) - return [] + print(exception.errno) + print(exception.winerror) + return list[str]() return FilterGraph().get_input_devices() cameras: list[str] = [] if sys.platform == "linux": try: for index in range(len(os.listdir("/sys/class/video4linux"))): - with open( - f"/sys/class/video4linux/video{index}/name", encoding="utf-8" - ) as file: + with open(f"/sys/class/video4linux/video{index}/name", encoding="utf-8") as file: cameras.append(file.readline()[:-2]) except FileNotFoundError: pass diff --git a/uv.lock b/uv.lock index 132937c5..b7322ed6 100644 --- a/uv.lock +++ b/uv.lock @@ -333,49 +333,49 @@ wheels = [ [[package]] name = "orjson" -version = "3.11.4" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/c6/fe/ed708782d6709cc60eb4c2d8a361a440661f74134675c72990f2c48c785f/orjson-3.11.4.tar.gz", hash = "sha256:39485f4ab4c9b30a3943cfe99e1a213c4776fb69e8abd68f66b83d5a0b0fdc6d", size = 5945188, upload-time = "2025-10-24T15:50:38.027Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/4e/47/bf85dcf95f7a3a12bf223394a4f849430acd82633848d52def09fa3f46ad/orjson-3.11.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:600e0e9ca042878c7fdf189cf1b028fe2c1418cc9195f6cb9824eb6ed99cb938", size = 130137, upload-time = "2025-10-24T15:49:12.544Z" }, - { url = "https://files.pythonhosted.org/packages/b4/4d/a0cb31007f3ab6f1fd2a1b17057c7c349bc2baf8921a85c0180cc7be8011/orjson-3.11.4-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7bbf9b333f1568ef5da42bc96e18bf30fd7f8d54e9ae066d711056add508e415", size = 129152, upload-time = "2025-10-24T15:49:13.754Z" }, - { url = "https://files.pythonhosted.org/packages/f7/ef/2811def7ce3d8576b19e3929fff8f8f0d44bc5eb2e0fdecb2e6e6cc6c720/orjson-3.11.4-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4806363144bb6e7297b8e95870e78d30a649fdc4e23fc84daa80c8ebd366ce44", size = 136834, upload-time = "2025-10-24T15:49:15.307Z" }, - { url = "https://files.pythonhosted.org/packages/00/d4/9aee9e54f1809cec8ed5abd9bc31e8a9631d19460e3b8470145d25140106/orjson-3.11.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ad355e8308493f527d41154e9053b86a5be892b3b359a5c6d5d95cda23601cb2", size = 137519, upload-time = "2025-10-24T15:49:16.557Z" }, - { url = "https://files.pythonhosted.org/packages/db/ea/67bfdb5465d5679e8ae8d68c11753aaf4f47e3e7264bad66dc2f2249e643/orjson-3.11.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c8a7517482667fb9f0ff1b2f16fe5829296ed7a655d04d68cd9711a4d8a4e708", size = 136749, upload-time = "2025-10-24T15:49:17.796Z" }, - { url = "https://files.pythonhosted.org/packages/01/7e/62517dddcfce6d53a39543cd74d0dccfcbdf53967017c58af68822100272/orjson-3.11.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:97eb5942c7395a171cbfecc4ef6701fc3c403e762194683772df4c54cfbb2210", size = 136325, upload-time = "2025-10-24T15:49:19.347Z" }, - { url = "https://files.pythonhosted.org/packages/18/ae/40516739f99ab4c7ec3aaa5cc242d341fcb03a45d89edeeaabc5f69cb2cf/orjson-3.11.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:149d95d5e018bdd822e3f38c103b1a7c91f88d38a88aada5c4e9b3a73a244241", size = 140204, upload-time = "2025-10-24T15:49:20.545Z" }, - { url = "https://files.pythonhosted.org/packages/82/18/ff5734365623a8916e3a4037fcef1cd1782bfc14cf0992afe7940c5320bf/orjson-3.11.4-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:624f3951181eb46fc47dea3d221554e98784c823e7069edb5dbd0dc826ac909b", size = 406242, upload-time = "2025-10-24T15:49:21.884Z" }, - { url = "https://files.pythonhosted.org/packages/e1/43/96436041f0a0c8c8deca6a05ebeaf529bf1de04839f93ac5e7c479807aec/orjson-3.11.4-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:03bfa548cf35e3f8b3a96c4e8e41f753c686ff3d8e182ce275b1751deddab58c", size = 150013, upload-time = "2025-10-24T15:49:23.185Z" }, - { url = "https://files.pythonhosted.org/packages/1b/48/78302d98423ed8780479a1e682b9aecb869e8404545d999d34fa486e573e/orjson-3.11.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:525021896afef44a68148f6ed8a8bf8375553d6066c7f48537657f64823565b9", size = 139951, upload-time = "2025-10-24T15:49:24.428Z" }, - { url = "https://files.pythonhosted.org/packages/4a/7b/ad613fdcdaa812f075ec0875143c3d37f8654457d2af17703905425981bf/orjson-3.11.4-cp312-cp312-win32.whl", hash = "sha256:b58430396687ce0f7d9eeb3dd47761ca7d8fda8e9eb92b3077a7a353a75efefa", size = 136049, upload-time = "2025-10-24T15:49:25.973Z" }, - { url = "https://files.pythonhosted.org/packages/b9/3c/9cf47c3ff5f39b8350fb21ba65d789b6a1129d4cbb3033ba36c8a9023520/orjson-3.11.4-cp312-cp312-win_amd64.whl", hash = "sha256:c6dbf422894e1e3c80a177133c0dda260f81428f9de16d61041949f6a2e5c140", size = 131461, upload-time = "2025-10-24T15:49:27.259Z" }, - { url = "https://files.pythonhosted.org/packages/c6/3b/e2425f61e5825dc5b08c2a5a2b3af387eaaca22a12b9c8c01504f8614c36/orjson-3.11.4-cp312-cp312-win_arm64.whl", hash = "sha256:d38d2bc06d6415852224fcc9c0bfa834c25431e466dc319f0edd56cca81aa96e", size = 126167, upload-time = "2025-10-24T15:49:28.511Z" }, - { url = "https://files.pythonhosted.org/packages/55/b9/ae8d34899ff0c012039b5a7cb96a389b2476e917733294e498586b45472d/orjson-3.11.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:38aa9e65c591febb1b0aed8da4d469eba239d434c218562df179885c94e1a3ad", size = 130055, upload-time = "2025-10-24T15:49:33.382Z" }, - { url = "https://files.pythonhosted.org/packages/33/aa/6346dd5073730451bee3681d901e3c337e7ec17342fb79659ec9794fc023/orjson-3.11.4-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f2cf4dfaf9163b0728d061bebc1e08631875c51cd30bf47cb9e3293bfbd7dcd5", size = 129061, upload-time = "2025-10-24T15:49:34.935Z" }, - { url = "https://files.pythonhosted.org/packages/39/e4/8eea51598f66a6c853c380979912d17ec510e8e66b280d968602e680b942/orjson-3.11.4-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:89216ff3dfdde0e4070932e126320a1752c9d9a758d6a32ec54b3b9334991a6a", size = 136541, upload-time = "2025-10-24T15:49:36.923Z" }, - { url = "https://files.pythonhosted.org/packages/9a/47/cb8c654fa9adcc60e99580e17c32b9e633290e6239a99efa6b885aba9dbc/orjson-3.11.4-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9daa26ca8e97fae0ce8aa5d80606ef8f7914e9b129b6b5df9104266f764ce436", size = 137535, upload-time = "2025-10-24T15:49:38.307Z" }, - { url = "https://files.pythonhosted.org/packages/43/92/04b8cc5c2b729f3437ee013ce14a60ab3d3001465d95c184758f19362f23/orjson-3.11.4-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5c8b2769dc31883c44a9cd126560327767f848eb95f99c36c9932f51090bfce9", size = 136703, upload-time = "2025-10-24T15:49:40.795Z" }, - { url = "https://files.pythonhosted.org/packages/aa/fd/d0733fcb9086b8be4ebcfcda2d0312865d17d0d9884378b7cffb29d0763f/orjson-3.11.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1469d254b9884f984026bd9b0fa5bbab477a4bfe558bba6848086f6d43eb5e73", size = 136293, upload-time = "2025-10-24T15:49:42.347Z" }, - { url = "https://files.pythonhosted.org/packages/c2/d7/3c5514e806837c210492d72ae30ccf050ce3f940f45bf085bab272699ef4/orjson-3.11.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:68e44722541983614e37117209a194e8c3ad07838ccb3127d96863c95ec7f1e0", size = 140131, upload-time = "2025-10-24T15:49:43.638Z" }, - { url = "https://files.pythonhosted.org/packages/9c/dd/ba9d32a53207babf65bd510ac4d0faaa818bd0df9a9c6f472fe7c254f2e3/orjson-3.11.4-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:8e7805fda9672c12be2f22ae124dcd7b03928d6c197544fe12174b86553f3196", size = 406164, upload-time = "2025-10-24T15:49:45.498Z" }, - { url = "https://files.pythonhosted.org/packages/8e/f9/f68ad68f4af7c7bde57cd514eaa2c785e500477a8bc8f834838eb696a685/orjson-3.11.4-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:04b69c14615fb4434ab867bf6f38b2d649f6f300af30a6705397e895f7aec67a", size = 149859, upload-time = "2025-10-24T15:49:46.981Z" }, - { url = "https://files.pythonhosted.org/packages/b6/d2/7f847761d0c26818395b3d6b21fb6bc2305d94612a35b0a30eae65a22728/orjson-3.11.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:639c3735b8ae7f970066930e58cf0ed39a852d417c24acd4a25fc0b3da3c39a6", size = 139926, upload-time = "2025-10-24T15:49:48.321Z" }, - { url = "https://files.pythonhosted.org/packages/9f/37/acd14b12dc62db9a0e1d12386271b8661faae270b22492580d5258808975/orjson-3.11.4-cp313-cp313-win32.whl", hash = "sha256:6c13879c0d2964335491463302a6ca5ad98105fc5db3565499dcb80b1b4bd839", size = 136007, upload-time = "2025-10-24T15:49:49.938Z" }, - { url = "https://files.pythonhosted.org/packages/c0/a9/967be009ddf0a1fffd7a67de9c36656b28c763659ef91352acc02cbe364c/orjson-3.11.4-cp313-cp313-win_amd64.whl", hash = "sha256:09bf242a4af98732db9f9a1ec57ca2604848e16f132e3f72edfd3c5c96de009a", size = 131314, upload-time = "2025-10-24T15:49:51.248Z" }, - { url = "https://files.pythonhosted.org/packages/cb/db/399abd6950fbd94ce125cb8cd1a968def95174792e127b0642781e040ed4/orjson-3.11.4-cp313-cp313-win_arm64.whl", hash = "sha256:a85f0adf63319d6c1ba06fb0dbf997fced64a01179cf17939a6caca662bf92de", size = 126152, upload-time = "2025-10-24T15:49:52.922Z" }, - { url = "https://files.pythonhosted.org/packages/9f/37/ca2eb40b90621faddfa9517dfe96e25f5ae4d8057a7c0cdd613c17e07b2c/orjson-3.11.4-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6e3f20be9048941c7ffa8fc523ccbd17f82e24df1549d1d1fe9317712d19938e", size = 130047, upload-time = "2025-10-24T15:49:57.406Z" }, - { url = "https://files.pythonhosted.org/packages/c7/62/1021ed35a1f2bad9040f05fa4cc4f9893410df0ba3eaa323ccf899b1c90a/orjson-3.11.4-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:aac364c758dc87a52e68e349924d7e4ded348dedff553889e4d9f22f74785316", size = 129073, upload-time = "2025-10-24T15:49:58.782Z" }, - { url = "https://files.pythonhosted.org/packages/e8/3f/f84d966ec2a6fd5f73b1a707e7cd876813422ae4bf9f0145c55c9c6a0f57/orjson-3.11.4-cp314-cp314-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d5c54a6d76e3d741dcc3f2707f8eeb9ba2a791d3adbf18f900219b62942803b1", size = 136597, upload-time = "2025-10-24T15:50:00.12Z" }, - { url = "https://files.pythonhosted.org/packages/32/78/4fa0aeca65ee82bbabb49e055bd03fa4edea33f7c080c5c7b9601661ef72/orjson-3.11.4-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f28485bdca8617b79d44627f5fb04336897041dfd9fa66d383a49d09d86798bc", size = 137515, upload-time = "2025-10-24T15:50:01.57Z" }, - { url = "https://files.pythonhosted.org/packages/c1/9d/0c102e26e7fde40c4c98470796d050a2ec1953897e2c8ab0cb95b0759fa2/orjson-3.11.4-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bfc2a484cad3585e4ba61985a6062a4c2ed5c7925db6d39f1fa267c9d166487f", size = 136703, upload-time = "2025-10-24T15:50:02.944Z" }, - { url = "https://files.pythonhosted.org/packages/df/ac/2de7188705b4cdfaf0b6c97d2f7849c17d2003232f6e70df98602173f788/orjson-3.11.4-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e34dbd508cb91c54f9c9788923daca129fe5b55c5b4eebe713bf5ed3791280cf", size = 136311, upload-time = "2025-10-24T15:50:04.441Z" }, - { url = "https://files.pythonhosted.org/packages/e0/52/847fcd1a98407154e944feeb12e3b4d487a0e264c40191fb44d1269cbaa1/orjson-3.11.4-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:b13c478fa413d4b4ee606ec8e11c3b2e52683a640b006bb586b3041c2ca5f606", size = 140127, upload-time = "2025-10-24T15:50:07.398Z" }, - { url = "https://files.pythonhosted.org/packages/c1/ae/21d208f58bdb847dd4d0d9407e2929862561841baa22bdab7aea10ca088e/orjson-3.11.4-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:724ca721ecc8a831b319dcd72cfa370cc380db0bf94537f08f7edd0a7d4e1780", size = 406201, upload-time = "2025-10-24T15:50:08.796Z" }, - { url = "https://files.pythonhosted.org/packages/8d/55/0789d6de386c8366059db098a628e2ad8798069e94409b0d8935934cbcb9/orjson-3.11.4-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:977c393f2e44845ce1b540e19a786e9643221b3323dae190668a98672d43fb23", size = 149872, upload-time = "2025-10-24T15:50:10.234Z" }, - { url = "https://files.pythonhosted.org/packages/cc/1d/7ff81ea23310e086c17b41d78a72270d9de04481e6113dbe2ac19118f7fb/orjson-3.11.4-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:1e539e382cf46edec157ad66b0b0872a90d829a6b71f17cb633d6c160a223155", size = 139931, upload-time = "2025-10-24T15:50:11.623Z" }, - { url = "https://files.pythonhosted.org/packages/77/92/25b886252c50ed64be68c937b562b2f2333b45afe72d53d719e46a565a50/orjson-3.11.4-cp314-cp314-win32.whl", hash = "sha256:d63076d625babab9db5e7836118bdfa086e60f37d8a174194ae720161eb12394", size = 136065, upload-time = "2025-10-24T15:50:13.025Z" }, - { url = "https://files.pythonhosted.org/packages/63/b8/718eecf0bb7e9d64e4956afaafd23db9f04c776d445f59fe94f54bdae8f0/orjson-3.11.4-cp314-cp314-win_amd64.whl", hash = "sha256:0a54d6635fa3aaa438ae32e8570b9f0de36f3f6562c308d2a2a452e8b0592db1", size = 131310, upload-time = "2025-10-24T15:50:14.46Z" }, - { url = "https://files.pythonhosted.org/packages/1a/bf/def5e25d4d8bfce296a9a7c8248109bf58622c21618b590678f945a2c59c/orjson-3.11.4-cp314-cp314-win_arm64.whl", hash = "sha256:78b999999039db3cf58f6d230f524f04f75f129ba3d1ca2ed121f8657e575d3d", size = 126151, upload-time = "2025-10-24T15:50:15.878Z" }, +version = "3.11.5" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/04/b8/333fdb27840f3bf04022d21b654a35f58e15407183aeb16f3b41aa053446/orjson-3.11.5.tar.gz", hash = "sha256:82393ab47b4fe44ffd0a7659fa9cfaacc717eb617c93cde83795f14af5c2e9d5", size = 5972347, upload-time = "2025-12-06T15:55:39.458Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/52/8d/544e77d7a29d90cf4d9eecd0ae801c688e7f3d1adfa2ebae5e1e94d38ab9/orjson-3.11.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ed24250e55efbcb0b35bed7caaec8cedf858ab2f9f2201f17b8938c618c8ca6f", size = 132074, upload-time = "2025-12-06T15:54:24.694Z" }, + { url = "https://files.pythonhosted.org/packages/6e/57/b9f5b5b6fbff9c26f77e785baf56ae8460ef74acdb3eae4931c25b8f5ba9/orjson-3.11.5-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a66d7769e98a08a12a139049aac2f0ca3adae989817f8c43337455fbc7669b85", size = 130520, upload-time = "2025-12-06T15:54:26.185Z" }, + { url = "https://files.pythonhosted.org/packages/f6/6d/d34970bf9eb33f9ec7c979a262cad86076814859e54eb9a059a52f6dc13d/orjson-3.11.5-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:86cfc555bfd5794d24c6a1903e558b50644e5e68e6471d66502ce5cb5fdef3f9", size = 136209, upload-time = "2025-12-06T15:54:27.264Z" }, + { url = "https://files.pythonhosted.org/packages/e7/39/bc373b63cc0e117a105ea12e57280f83ae52fdee426890d57412432d63b3/orjson-3.11.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a230065027bc2a025e944f9d4714976a81e7ecfa940923283bca7bbc1f10f626", size = 139837, upload-time = "2025-12-06T15:54:28.75Z" }, + { url = "https://files.pythonhosted.org/packages/cb/aa/7c4818c8d7d324da220f4f1af55c343956003aa4d1ce1857bdc1d396ba69/orjson-3.11.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b29d36b60e606df01959c4b982729c8845c69d1963f88686608be9ced96dbfaa", size = 137307, upload-time = "2025-12-06T15:54:29.856Z" }, + { url = "https://files.pythonhosted.org/packages/46/bf/0993b5a056759ba65145effe3a79dd5a939d4a070eaa5da2ee3180fbb13f/orjson-3.11.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c74099c6b230d4261fdc3169d50efc09abf38ace1a42ea2f9994b1d79153d477", size = 139020, upload-time = "2025-12-06T15:54:31.024Z" }, + { url = "https://files.pythonhosted.org/packages/65/e8/83a6c95db3039e504eda60fc388f9faedbb4f6472f5aba7084e06552d9aa/orjson-3.11.5-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e697d06ad57dd0c7a737771d470eedc18e68dfdefcdd3b7de7f33dfda5b6212e", size = 141099, upload-time = "2025-12-06T15:54:32.196Z" }, + { url = "https://files.pythonhosted.org/packages/b9/b4/24fdc024abfce31c2f6812973b0a693688037ece5dc64b7a60c1ce69e2f2/orjson-3.11.5-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:e08ca8a6c851e95aaecc32bc44a5aa75d0ad26af8cdac7c77e4ed93acf3d5b69", size = 413540, upload-time = "2025-12-06T15:54:33.361Z" }, + { url = "https://files.pythonhosted.org/packages/d9/37/01c0ec95d55ed0c11e4cae3e10427e479bba40c77312b63e1f9665e0737d/orjson-3.11.5-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:e8b5f96c05fce7d0218df3fdfeb962d6b8cfff7e3e20264306b46dd8b217c0f3", size = 151530, upload-time = "2025-12-06T15:54:34.6Z" }, + { url = "https://files.pythonhosted.org/packages/f9/d4/f9ebc57182705bb4bbe63f5bbe14af43722a2533135e1d2fb7affa0c355d/orjson-3.11.5-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ddbfdb5099b3e6ba6d6ea818f61997bb66de14b411357d24c4612cf1ebad08ca", size = 141863, upload-time = "2025-12-06T15:54:35.801Z" }, + { url = "https://files.pythonhosted.org/packages/0d/04/02102b8d19fdcb009d72d622bb5781e8f3fae1646bf3e18c53d1bc8115b5/orjson-3.11.5-cp312-cp312-win32.whl", hash = "sha256:9172578c4eb09dbfcf1657d43198de59b6cef4054de385365060ed50c458ac98", size = 135255, upload-time = "2025-12-06T15:54:37.209Z" }, + { url = "https://files.pythonhosted.org/packages/d4/fb/f05646c43d5450492cb387de5549f6de90a71001682c17882d9f66476af5/orjson-3.11.5-cp312-cp312-win_amd64.whl", hash = "sha256:2b91126e7b470ff2e75746f6f6ee32b9ab67b7a93c8ba1d15d3a0caaf16ec875", size = 133252, upload-time = "2025-12-06T15:54:38.401Z" }, + { url = "https://files.pythonhosted.org/packages/dc/a6/7b8c0b26ba18c793533ac1cd145e131e46fcf43952aa94c109b5b913c1f0/orjson-3.11.5-cp312-cp312-win_arm64.whl", hash = "sha256:acbc5fac7e06777555b0722b8ad5f574739e99ffe99467ed63da98f97f9ca0fe", size = 126777, upload-time = "2025-12-06T15:54:39.515Z" }, + { url = "https://files.pythonhosted.org/packages/77/42/f1bf1549b432d4a78bfa95735b79b5dac75b65b5bb815bba86ad406ead0a/orjson-3.11.5-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:894aea2e63d4f24a7f04a1908307c738d0dce992e9249e744b8f4e8dd9197f39", size = 132060, upload-time = "2025-12-06T15:54:43.531Z" }, + { url = "https://files.pythonhosted.org/packages/25/49/825aa6b929f1a6ed244c78acd7b22c1481fd7e5fda047dc8bf4c1a807eb6/orjson-3.11.5-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ddc21521598dbe369d83d4d40338e23d4101dad21dae0e79fa20465dbace019f", size = 130391, upload-time = "2025-12-06T15:54:45.059Z" }, + { url = "https://files.pythonhosted.org/packages/42/ec/de55391858b49e16e1aa8f0bbbb7e5997b7345d8e984a2dec3746d13065b/orjson-3.11.5-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7cce16ae2f5fb2c53c3eafdd1706cb7b6530a67cc1c17abe8ec747f5cd7c0c51", size = 135964, upload-time = "2025-12-06T15:54:46.576Z" }, + { url = "https://files.pythonhosted.org/packages/1c/40/820bc63121d2d28818556a2d0a09384a9f0262407cf9fa305e091a8048df/orjson-3.11.5-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e46c762d9f0e1cfb4ccc8515de7f349abbc95b59cb5a2bd68df5973fdef913f8", size = 139817, upload-time = "2025-12-06T15:54:48.084Z" }, + { url = "https://files.pythonhosted.org/packages/09/c7/3a445ca9a84a0d59d26365fd8898ff52bdfcdcb825bcc6519830371d2364/orjson-3.11.5-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d7345c759276b798ccd6d77a87136029e71e66a8bbf2d2755cbdde1d82e78706", size = 137336, upload-time = "2025-12-06T15:54:49.426Z" }, + { url = "https://files.pythonhosted.org/packages/9a/b3/dc0d3771f2e5d1f13368f56b339c6782f955c6a20b50465a91acb79fe961/orjson-3.11.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75bc2e59e6a2ac1dd28901d07115abdebc4563b5b07dd612bf64260a201b1c7f", size = 138993, upload-time = "2025-12-06T15:54:50.939Z" }, + { url = "https://files.pythonhosted.org/packages/d1/a2/65267e959de6abe23444659b6e19c888f242bf7725ff927e2292776f6b89/orjson-3.11.5-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:54aae9b654554c3b4edd61896b978568c6daa16af96fa4681c9b5babd469f863", size = 141070, upload-time = "2025-12-06T15:54:52.414Z" }, + { url = "https://files.pythonhosted.org/packages/63/c9/da44a321b288727a322c6ab17e1754195708786a04f4f9d2220a5076a649/orjson-3.11.5-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:4bdd8d164a871c4ec773f9de0f6fe8769c2d6727879c37a9666ba4183b7f8228", size = 413505, upload-time = "2025-12-06T15:54:53.67Z" }, + { url = "https://files.pythonhosted.org/packages/7f/17/68dc14fa7000eefb3d4d6d7326a190c99bb65e319f02747ef3ebf2452f12/orjson-3.11.5-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:a261fef929bcf98a60713bf5e95ad067cea16ae345d9a35034e73c3990e927d2", size = 151342, upload-time = "2025-12-06T15:54:55.113Z" }, + { url = "https://files.pythonhosted.org/packages/c4/c5/ccee774b67225bed630a57478529fc026eda33d94fe4c0eac8fe58d4aa52/orjson-3.11.5-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:c028a394c766693c5c9909dec76b24f37e6a1b91999e8d0c0d5feecbe93c3e05", size = 141823, upload-time = "2025-12-06T15:54:56.331Z" }, + { url = "https://files.pythonhosted.org/packages/67/80/5d00e4155d0cd7390ae2087130637671da713959bb558db9bac5e6f6b042/orjson-3.11.5-cp313-cp313-win32.whl", hash = "sha256:2cc79aaad1dfabe1bd2d50ee09814a1253164b3da4c00a78c458d82d04b3bdef", size = 135236, upload-time = "2025-12-06T15:54:57.507Z" }, + { url = "https://files.pythonhosted.org/packages/95/fe/792cc06a84808dbdc20ac6eab6811c53091b42f8e51ecebf14b540e9cfe4/orjson-3.11.5-cp313-cp313-win_amd64.whl", hash = "sha256:ff7877d376add4e16b274e35a3f58b7f37b362abf4aa31863dadacdd20e3a583", size = 133167, upload-time = "2025-12-06T15:54:58.71Z" }, + { url = "https://files.pythonhosted.org/packages/46/2c/d158bd8b50e3b1cfdcf406a7e463f6ffe3f0d167b99634717acdaf5e299f/orjson-3.11.5-cp313-cp313-win_arm64.whl", hash = "sha256:59ac72ea775c88b163ba8d21b0177628bd015c5dd060647bbab6e22da3aad287", size = 126712, upload-time = "2025-12-06T15:54:59.892Z" }, + { url = "https://files.pythonhosted.org/packages/30/94/9eabf94f2e11c671111139edf5ec410d2f21e6feee717804f7e8872d883f/orjson-3.11.5-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:82cd00d49d6063d2b8791da5d4f9d20539c5951f965e45ccf4e96d33505ce68f", size = 132050, upload-time = "2025-12-06T15:55:03.918Z" }, + { url = "https://files.pythonhosted.org/packages/3d/c8/ca10f5c5322f341ea9a9f1097e140be17a88f88d1cfdd29df522970d9744/orjson-3.11.5-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3fd15f9fc8c203aeceff4fda211157fad114dde66e92e24097b3647a08f4ee9e", size = 130370, upload-time = "2025-12-06T15:55:05.173Z" }, + { url = "https://files.pythonhosted.org/packages/25/d4/e96824476d361ee2edd5c6290ceb8d7edf88d81148a6ce172fc00278ca7f/orjson-3.11.5-cp314-cp314-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9df95000fbe6777bf9820ae82ab7578e8662051bb5f83d71a28992f539d2cda7", size = 136012, upload-time = "2025-12-06T15:55:06.402Z" }, + { url = "https://files.pythonhosted.org/packages/85/8e/9bc3423308c425c588903f2d103cfcfe2539e07a25d6522900645a6f257f/orjson-3.11.5-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:92a8d676748fca47ade5bc3da7430ed7767afe51b2f8100e3cd65e151c0eaceb", size = 139809, upload-time = "2025-12-06T15:55:07.656Z" }, + { url = "https://files.pythonhosted.org/packages/e9/3c/b404e94e0b02a232b957c54643ce68d0268dacb67ac33ffdee24008c8b27/orjson-3.11.5-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:aa0f513be38b40234c77975e68805506cad5d57b3dfd8fe3baa7f4f4051e15b4", size = 137332, upload-time = "2025-12-06T15:55:08.961Z" }, + { url = "https://files.pythonhosted.org/packages/51/30/cc2d69d5ce0ad9b84811cdf4a0cd5362ac27205a921da524ff42f26d65e0/orjson-3.11.5-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa1863e75b92891f553b7922ce4ee10ed06db061e104f2b7815de80cdcb135ad", size = 138983, upload-time = "2025-12-06T15:55:10.595Z" }, + { url = "https://files.pythonhosted.org/packages/0e/87/de3223944a3e297d4707d2fe3b1ffb71437550e165eaf0ca8bbe43ccbcb1/orjson-3.11.5-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:d4be86b58e9ea262617b8ca6251a2f0d63cc132a6da4b5fcc8e0a4128782c829", size = 141069, upload-time = "2025-12-06T15:55:11.832Z" }, + { url = "https://files.pythonhosted.org/packages/65/30/81d5087ae74be33bcae3ff2d80f5ccaa4a8fedc6d39bf65a427a95b8977f/orjson-3.11.5-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:b923c1c13fa02084eb38c9c065afd860a5cff58026813319a06949c3af5732ac", size = 413491, upload-time = "2025-12-06T15:55:13.314Z" }, + { url = "https://files.pythonhosted.org/packages/d0/6f/f6058c21e2fc1efaf918986dbc2da5cd38044f1a2d4b7b91ad17c4acf786/orjson-3.11.5-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:1b6bd351202b2cd987f35a13b5e16471cf4d952b42a73c391cc537974c43ef6d", size = 151375, upload-time = "2025-12-06T15:55:14.715Z" }, + { url = "https://files.pythonhosted.org/packages/54/92/c6921f17d45e110892899a7a563a925b2273d929959ce2ad89e2525b885b/orjson-3.11.5-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:bb150d529637d541e6af06bbe3d02f5498d628b7f98267ff87647584293ab439", size = 141850, upload-time = "2025-12-06T15:55:15.94Z" }, + { url = "https://files.pythonhosted.org/packages/88/86/cdecb0140a05e1a477b81f24739da93b25070ee01ce7f7242f44a6437594/orjson-3.11.5-cp314-cp314-win32.whl", hash = "sha256:9cc1e55c884921434a84a0c3dd2699eb9f92e7b441d7f53f3941079ec6ce7499", size = 135278, upload-time = "2025-12-06T15:55:17.202Z" }, + { url = "https://files.pythonhosted.org/packages/e4/97/b638d69b1e947d24f6109216997e38922d54dcdcdb1b11c18d7efd2d3c59/orjson-3.11.5-cp314-cp314-win_amd64.whl", hash = "sha256:a4f3cb2d874e03bc7767c8f88adaa1a9a05cecea3712649c3b58589ec7317310", size = 133170, upload-time = "2025-12-06T15:55:18.468Z" }, + { url = "https://files.pythonhosted.org/packages/8f/dd/f4fff4a6fe601b4f8f3ba3aa6da8ac33d17d124491a3b804c662a70e1636/orjson-3.11.5-cp314-cp314-win_arm64.whl", hash = "sha256:38b22f476c351f9a1c43e5b07d8b5a02eb24a6ab8e75f700f7d479d4568346a5", size = 126713, upload-time = "2025-12-06T15:55:19.738Z" }, ] [[package]] From 05861c9071a3a9724d1ddc395e75d039d09164aa Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Wed, 28 Jan 2026 02:28:03 +0000 Subject: [PATCH 05/31] [autofix.ci] apply automated fixes --- src/capture_method/__init__.py | 1 - 1 file changed, 1 deletion(-) diff --git a/src/capture_method/__init__.py b/src/capture_method/__init__.py index c4cc5530..80db3eba 100644 --- a/src/capture_method/__init__.py +++ b/src/capture_method/__init__.py @@ -1,4 +1,3 @@ -# ruff: noqa: RUF067 from __future__ import annotations import os From 4c289ae0152c59b8e95ed4a21df5a9d6ccc833b0 Mon Sep 17 00:00:00 2001 From: Avasam Date: Tue, 27 Jan 2026 22:59:16 -0500 Subject: [PATCH 06/31] script typo --- .github/workflows/lint-and-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/lint-and-build.yml b/.github/workflows/lint-and-build.yml index 7748b0db..98410eac 100644 --- a/.github/workflows/lint-and-build.yml +++ b/.github/workflows/lint-and-build.yml @@ -120,7 +120,7 @@ jobs: $Env:AUTOSPLIT_VERSION=uv run python -c "import utils; print(utils.AUTOSPLIT_VERSION)" echo "AUTOSPLIT_VERSION=$Env:AUTOSPLIT_VERSION" >> $Env:GITHUB_OUTPUT echo "OS=$([System.Runtime.InteropServices.RuntimeInformation]::RuntimeIdentifier)" >> $Env:GITHUB_OUTPUT - if ()"${{ matrix.python-version }}" -eq "3.12") { + if ("${{ matrix.python-version }}" -eq "3.12") { echo "WINE_SUPPORT=, Wine support >> $Env:GITHUB_OUTPUT } shell: pwsh From 483a256d7fe540ec67a271977e4e3e9f9dab0d3b Mon Sep 17 00:00:00 2001 From: Avasam Date: Wed, 28 Jan 2026 00:17:40 -0500 Subject: [PATCH 07/31] Another typo --- .github/workflows/lint-and-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/lint-and-build.yml b/.github/workflows/lint-and-build.yml index 98410eac..71fad985 100644 --- a/.github/workflows/lint-and-build.yml +++ b/.github/workflows/lint-and-build.yml @@ -121,7 +121,7 @@ jobs: echo "AUTOSPLIT_VERSION=$Env:AUTOSPLIT_VERSION" >> $Env:GITHUB_OUTPUT echo "OS=$([System.Runtime.InteropServices.RuntimeInformation]::RuntimeIdentifier)" >> $Env:GITHUB_OUTPUT if ("${{ matrix.python-version }}" -eq "3.12") { - echo "WINE_SUPPORT=, Wine support >> $Env:GITHUB_OUTPUT + echo "WINE_SUPPORT=, Wine support" >> $Env:GITHUB_OUTPUT } shell: pwsh - name: Upload Build Artifact From 74f3b4e0cc6313c5fc9fbe7003b9e71fcc5fda19 Mon Sep 17 00:00:00 2001 From: Avasam Date: Wed, 28 Jan 2026 00:24:00 -0500 Subject: [PATCH 08/31] deprecated decorator not available on 3.12 --- src/user_profile.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/user_profile.py b/src/user_profile.py index 14fa32d8..54efbe9b 100644 --- a/src/user_profile.py +++ b/src/user_profile.py @@ -4,7 +4,6 @@ import tomllib from copy import deepcopy from typing import TYPE_CHECKING, NoReturn, TypedDict, cast, override -from warnings import deprecated import tomli_w from gen import design @@ -17,7 +16,19 @@ from utils import auto_split_directory if TYPE_CHECKING: + from typing_extensions import deprecated + from AutoSplit import AutoSplit +else: + + def deprecated( + message: str, # noqa: ARG001 + /, + *, + category: type[Warning] | None = DeprecationWarning, # noqa: ARG001 + stacklevel: int = 1, # noqa: ARG001 + ): + return lambda x: x class UserProfileDict(TypedDict): From 7dc53a4f570711184c8ccd2f11bb838bb8c74efd Mon Sep 17 00:00:00 2001 From: Avasam Date: Wed, 28 Jan 2026 00:48:25 -0500 Subject: [PATCH 09/31] Avoid UPX on 3.12 --- scripts/install.ps1 | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/scripts/install.ps1 b/scripts/install.ps1 index b0f486de..11df098f 100644 --- a/scripts/install.ps1 +++ b/scripts/install.ps1 @@ -38,8 +38,14 @@ if ($IsLinux) { } } -# UPX is only used by PyInstaller on Windows -if ($IsWindows -and [System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture -eq 'X64') { +# UPX is only used by PyInstaller on Windows, +# Doesn't work on ARM64, +# and we avoid using it on the "wine-compatible build" (it fails on 3.12 anyway) +if (` + $IsWindows ` + -and [System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture -eq 'X64'` + -and (&uv run python -c 'import sys; print(sys.version_info[:2] > (3, 12))') -eq 'True' +) { $UPXVersion = '5.0.1' $UPXFolderName = "upx-$UPXVersion-win64" Write-Output "Installing $UPXFolderName" From 09de0fa401dd85f74616f6678fc4dbfe09223f67 Mon Sep 17 00:00:00 2001 From: Avasam Date: Wed, 28 Jan 2026 09:36:38 -0500 Subject: [PATCH 10/31] Fix splash screen support detection at build --- scripts/build.ps1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/build.ps1 b/scripts/build.ps1 index e0615c0f..ea7ed9d5 100644 --- a/scripts/build.ps1 +++ b/scripts/build.ps1 @@ -7,8 +7,8 @@ try { $SupportsSplashScreen = [System.Convert]::ToBoolean( $(uv run --active python -c ' - from PyInstaller.building.splash import Splash - Splash._check_tcl_tk_compatibility() +from PyInstaller.building.splash import Splash +Splash._check_tcl_tk_compatibility() ')) $arguments = @( From fc06d38dd303049a39b6c6405f70ae28edb32f05 Mon Sep 17 00:00:00 2001 From: Avasam Date: Wed, 28 Jan 2026 09:37:12 -0500 Subject: [PATCH 11/31] Prevent gnome-screenshot missing from crashing on boot --- src/capture_method/__init__.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/capture_method/__init__.py b/src/capture_method/__init__.py index 80db3eba..f60072c7 100644 --- a/src/capture_method/__init__.py +++ b/src/capture_method/__init__.py @@ -141,6 +141,11 @@ def get(self, key: CaptureMethodEnum, default: object = None, /): # TODO: Should we show a specific warning for, or document: # pyscreeze.PyScreezeException: Your computer uses the Wayland window system. Scrot works on the X11 window system but not Wayland. You must install gnome-screenshot by running `sudo apt install gnome-screenshot` # noqa: E501 pass + except Exception as exception: + # Ignore gnomes-screenshot not being available, + # as its screen-flashes make it unviable for screen-recording + if "gnome-screenshot" not in str(exception): + raise else: # TODO: Investigate solution for Slow Scrot: # https://github.com/asweigart/pyscreeze/issues/68 From cc35eac5d7116910fa118b0c468cca8161ded2e7 Mon Sep 17 00:00:00 2001 From: Avasam Date: Wed, 28 Jan 2026 11:24:22 -0500 Subject: [PATCH 12/31] Disable WGC on Wine --- scripts/install.ps1 | 11 +++-------- src/capture_method/__init__.py | 17 ++++++++++++++++- 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/scripts/install.ps1 b/scripts/install.ps1 index 11df098f..11a0ed46 100644 --- a/scripts/install.ps1 +++ b/scripts/install.ps1 @@ -38,14 +38,9 @@ if ($IsLinux) { } } -# UPX is only used by PyInstaller on Windows, -# Doesn't work on ARM64, -# and we avoid using it on the "wine-compatible build" (it fails on 3.12 anyway) -if (` - $IsWindows ` - -and [System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture -eq 'X64'` - -and (&uv run python -c 'import sys; print(sys.version_info[:2] > (3, 12))') -eq 'True' -) { +# UPX is only used by PyInstaller on Windows and doesn't work on ARM64 +# https://github.com/upx/upx/issues?q=sort%3Aupdated-desc%20is%3Aissue%20is%3Aopen%20arm64%20in%3Atitle +if ($IsWindows -and [System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture -eq 'X64') { $UPXVersion = '5.0.1' $UPXFolderName = "upx-$UPXVersion-win64" Write-Output "Installing $UPXFolderName" diff --git a/src/capture_method/__init__.py b/src/capture_method/__init__.py index f60072c7..218a12cf 100644 --- a/src/capture_method/__init__.py +++ b/src/capture_method/__init__.py @@ -15,6 +15,9 @@ if sys.platform == "win32": from _ctypes import COMError # noqa: PLC2701 # comtypes is untyped + import win32api + import winerror + from capture_method.BitBltCaptureMethod import BitBltCaptureMethod from capture_method.DesktopDuplicationCaptureMethod import DesktopDuplicationCaptureMethod from capture_method.ForceFullContentRenderingCaptureMethod import ( @@ -119,7 +122,19 @@ def get(self, key: CaptureMethodEnum, default: object = None, /): if sys.platform == "win32": # Windows Graphics Capture requires a minimum Windows Build if WINDOWS_BUILD_NUMBER >= WGC_MIN_BUILD: - CAPTURE_METHODS[CaptureMethodEnum.WINDOWS_GRAPHICS_CAPTURE] = WindowsGraphicsCaptureMethod + try: + # Wine hasn't implemented yet (https://bugs.winehq.org/show_bug.cgi?id=52487) + # Keep this check for a while even after it's implemented + win32api.GetProcAddress( + win32api.LoadLibrary("d3d11.dll"), "CreateDirect3D11DeviceFromDXGIDevice" + ) + except win32api.error as exception: + if exception.winerror != winerror.ERROR_PROC_NOT_FOUND: + raise + else: + CAPTURE_METHODS[CaptureMethodEnum.WINDOWS_GRAPHICS_CAPTURE] = ( + WindowsGraphicsCaptureMethod + ) CAPTURE_METHODS[CaptureMethodEnum.BITBLT] = BitBltCaptureMethod try: # Test for laptop cross-GPU Desktop Duplication issue import d3dshot From 23ec8e0a8c7f594857320c55ffaa9e6969f379b4 Mon Sep 17 00:00:00 2001 From: Avasam Date: Wed, 28 Jan 2026 12:03:52 -0500 Subject: [PATCH 13/31] no UPX confirmed, update readme --- README.md | 2 ++ scripts/install.ps1 | 11 ++++++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 676538b0..be7b823c 100644 --- a/README.md +++ b/README.md @@ -48,6 +48,7 @@ To understand how to use AutoSplit and how it works in-depth, please read the [t - Linux (still in early development) - Should work on Ubuntu 22.04+ - Wayland is not currently supported + - Running under Wine only supports the BitBlt Capture Method - WSL2/WSLg requires an additional Desktop Environment, external X11 server, and/or systemd - x64 and ARM64 architectures \* (see [Known Limitations](#known-limitations) for ARM64) - If you'd like to run the project directly in Python from the source code, refer to the [build instructions](/docs/build%20instructions.md). @@ -101,6 +102,7 @@ Not a developer? You can still help through the following methods: - Sharing AutoSplit with other speedrunners - Starring the repository Example - Upvoting 👍 the following upstream issues in libraries and tools we use: + - - - - diff --git a/scripts/install.ps1 b/scripts/install.ps1 index 11a0ed46..17fe3fd8 100644 --- a/scripts/install.ps1 +++ b/scripts/install.ps1 @@ -38,9 +38,14 @@ if ($IsLinux) { } } -# UPX is only used by PyInstaller on Windows and doesn't work on ARM64 -# https://github.com/upx/upx/issues?q=sort%3Aupdated-desc%20is%3Aissue%20is%3Aopen%20arm64%20in%3Atitle -if ($IsWindows -and [System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture -eq 'X64') { +# UPX is only used by PyInstaller on Windows, +# Doesn't work on ARM64, +# and we avoid using it on the "wine-compatible build" +if (` + $IsWindows ` + -and [System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture -eq 'X64' ` + -and (&uv run python -c 'import sys; print(sys.version_info[:2] > (3, 12))') -eq 'True' +) { $UPXVersion = '5.0.1' $UPXFolderName = "upx-$UPXVersion-win64" Write-Output "Installing $UPXFolderName" From 96a36a6c93ca60cc8be8e63b3cdf060cdb1571dc Mon Sep 17 00:00:00 2001 From: Avasam Date: Wed, 28 Jan 2026 21:48:55 -0500 Subject: [PATCH 14/31] try testing wine crash again --- scripts/install.ps1 | 2 +- src/capture_method/__init__.py | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/scripts/install.ps1 b/scripts/install.ps1 index 17fe3fd8..466602ee 100644 --- a/scripts/install.ps1 +++ b/scripts/install.ps1 @@ -44,7 +44,7 @@ if ($IsLinux) { if (` $IsWindows ` -and [System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture -eq 'X64' ` - -and (&uv run python -c 'import sys; print(sys.version_info[:2] > (3, 12))') -eq 'True' + -and (&uv run python -c 'import sys; print(sys.version_info > (3, 12))') -eq 'True' ) { $UPXVersion = '5.0.1' $UPXFolderName = "upx-$UPXVersion-win64" diff --git a/src/capture_method/__init__.py b/src/capture_method/__init__.py index 4fbf7623..224f7bc4 100644 --- a/src/capture_method/__init__.py +++ b/src/capture_method/__init__.py @@ -13,11 +13,8 @@ from utils import WGC_MIN_BUILD, WINDOWS_BUILD_NUMBER, first, get_input_device_resolution if sys.platform == "win32": - from _ctypes import COMError # noqa: PLC2701 # comtypes is untyped - import win32api import winerror - from pygrabber.dshow_graph import FilterGraph from capture_method.BitBltCaptureMethod import BitBltCaptureMethod from capture_method.DesktopDuplicationCaptureMethod import ( @@ -177,6 +174,8 @@ class CameraInfo: def get_input_devices(): if sys.platform == "win32": + from pygrabber.dshow_graph import FilterGraph # noqa: PLC0415 + try: from pygrabber.dshow_graph import FilterGraph # noqa: PLC0415 except OSError as exception: From 10052a78b1e9bff24e37af293499f6795dc19fa3 Mon Sep 17 00:00:00 2001 From: Avasam Date: Wed, 28 Jan 2026 21:50:22 -0500 Subject: [PATCH 15/31] temp comment out builds --- .github/workflows/lint-and-build.yml | 69 ++++++++++++++-------------- 1 file changed, 35 insertions(+), 34 deletions(-) diff --git a/.github/workflows/lint-and-build.yml b/.github/workflows/lint-and-build.yml index b64c9d29..3a41a76b 100644 --- a/.github/workflows/lint-and-build.yml +++ b/.github/workflows/lint-and-build.yml @@ -41,40 +41,40 @@ concurrency: cancel-in-progress: true jobs: - Pyright: - runs-on: ${{ matrix.os }} - strategy: - fail-fast: false - # Pyright is version and platform sensible - matrix: - # arm runner slower as long as opencv doesn't provide arm64 wheels - os: [windows-latest, ubuntu-latest] - python-version: ["3.14"] - include: - - os: windows-latest - python-version: "3.12" - steps: - - uses: actions/checkout@v6 - - name: Set up uv for Python ${{ matrix.python-version }} - uses: astral-sh/setup-uv@v7 - with: - python-version: ${{ matrix.python-version }} - activate-environment: true - - run: scripts/install.ps1 - shell: pwsh - - name: Analysing the code with Pyright - uses: jakebailey/pyright-action@v2 - with: - version: PATH - working-directory: src/ - python-version: ${{ matrix.python-version }} + # Pyright: + # runs-on: ${{ matrix.os }} + # strategy: + # fail-fast: false + # # Pyright is version and platform sensible + # matrix: + # # arm runner slower as long as opencv doesn't provide arm64 wheels + # os: [windows-latest, ubuntu-latest] + # python-version: ["3.14"] + # include: + # - os: windows-latest + # python-version: "3.12" + # steps: + # - uses: actions/checkout@v6 + # - name: Set up uv for Python ${{ matrix.python-version }} + # uses: astral-sh/setup-uv@v7 + # with: + # python-version: ${{ matrix.python-version }} + # activate-environment: true + # - run: scripts/install.ps1 + # shell: pwsh + # - name: Analysing the code with Pyright + # uses: jakebailey/pyright-action@v2 + # with: + # version: PATH + # working-directory: src/ + # python-version: ${{ matrix.python-version }} - PySentry: - runs-on: ubuntu-24.04-arm - steps: - - uses: actions/checkout@v6 - - uses: astral-sh/setup-uv@v7 - - run: uvx pysentry-rs --sources=pypa,pypi,osv --forbid-unmaintained + # PySentry: + # runs-on: ubuntu-24.04-arm + # steps: + # - uses: actions/checkout@v6 + # - uses: astral-sh/setup-uv@v7 + # - run: uvx pysentry-rs --sources=pypa,pypi,osv --forbid-unmaintained Build: runs-on: ${{ matrix.os }} @@ -82,7 +82,8 @@ jobs: fail-fast: false # Only the Python version we plan on shipping matters. matrix: - os: [windows-latest, windows-11-arm, ubuntu-22.04, ubuntu-22.04-arm] + # os: [windows-latest, windows-11-arm, ubuntu-22.04, ubuntu-22.04-arm] + os: [windows-latest] python-version: ["3.14"] include: - os: windows-latest From 9932f27229340f0bed04f16f34d85f8a0e587dc1 Mon Sep 17 00:00:00 2001 From: Avasam Date: Wed, 28 Jan 2026 21:55:07 -0500 Subject: [PATCH 16/31] try multiple versions at once --- .github/workflows/lint-and-build.yml | 12 +++++----- scripts/install.ps1 | 34 ++++++++++++++-------------- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/.github/workflows/lint-and-build.yml b/.github/workflows/lint-and-build.yml index 3a41a76b..e6e7d86c 100644 --- a/.github/workflows/lint-and-build.yml +++ b/.github/workflows/lint-and-build.yml @@ -84,12 +84,12 @@ jobs: matrix: # os: [windows-latest, windows-11-arm, ubuntu-22.04, ubuntu-22.04-arm] os: [windows-latest] - python-version: ["3.14"] - include: - - os: windows-latest - python-version: "3.12" - - os: windows-11-arm - python-version: "3.12" + python-version: ["3.12", "3.13", "3.14"] + # include: + # - os: windows-latest + # python-version: "3.12" + # - os: windows-11-arm + # python-version: "3.12" steps: - uses: actions/checkout@v6 # https://github.com/astral-sh/uv/issues/12906#issuecomment-3587439179 diff --git a/scripts/install.ps1 b/scripts/install.ps1 index 466602ee..24540d61 100644 --- a/scripts/install.ps1 +++ b/scripts/install.ps1 @@ -41,23 +41,23 @@ if ($IsLinux) { # UPX is only used by PyInstaller on Windows, # Doesn't work on ARM64, # and we avoid using it on the "wine-compatible build" -if (` - $IsWindows ` - -and [System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture -eq 'X64' ` - -and (&uv run python -c 'import sys; print(sys.version_info > (3, 12))') -eq 'True' -) { - $UPXVersion = '5.0.1' - $UPXFolderName = "upx-$UPXVersion-win64" - Write-Output "Installing $UPXFolderName" - if (Test-Path "$PSScriptRoot/.upx") { Remove-Item $PSScriptRoot/.upx -Recurse } - Invoke-WebRequest ` - -Uri https://github.com/upx/upx/releases/download/v$UPXVersion/$UPXFolderName.zip ` - -OutFile $Env:TEMP/$UPXFolderName.zip - # Automatically install in a local untracked folder. This makes it easy to version and replicate on CI - Expand-Archive $Env:TEMP/$UPXFolderName.zip $PSScriptRoot/.upx - Move-Item $PSScriptRoot/.upx/$UPXFolderName/* $PSScriptRoot/.upx - Remove-Item $PSScriptRoot/.upx/$UPXFolderName -} +# if (` +# $IsWindows ` +# -and [System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture -eq 'X64' ` +# -and (&uv run python -c 'import sys; print(sys.version_info > (3, 12))') -eq 'True' +# ) { +# $UPXVersion = '5.0.1' +# $UPXFolderName = "upx-$UPXVersion-win64" +# Write-Output "Installing $UPXFolderName" +# if (Test-Path "$PSScriptRoot/.upx") { Remove-Item $PSScriptRoot/.upx -Recurse } +# Invoke-WebRequest ` +# -Uri https://github.com/upx/upx/releases/download/v$UPXVersion/$UPXFolderName.zip ` +# -OutFile $Env:TEMP/$UPXFolderName.zip +# # Automatically install in a local untracked folder. This makes it easy to version and replicate on CI +# Expand-Archive $Env:TEMP/$UPXFolderName.zip $PSScriptRoot/.upx +# Move-Item $PSScriptRoot/.upx/$UPXFolderName/* $PSScriptRoot/.upx +# Remove-Item $PSScriptRoot/.upx/$UPXFolderName +# } $prod = if ($Env:GITHUB_JOB -eq 'Build') { '--no-dev' } else { } $lock = if ($Env:GITHUB_JOB) { '--locked' } else { } From 30bea70f909276b459d0b1585b936d677f3ac6b9 Mon Sep 17 00:00:00 2001 From: Avasam Date: Wed, 28 Jan 2026 22:18:13 -0500 Subject: [PATCH 17/31] Drop Python 3.13 support, Add -WineCompat build switch --- .github/workflows/lint-and-build.yml | 84 +++++++++++++--------------- pyproject.toml | 2 +- scripts/build.ps1 | 5 +- scripts/install.ps1 | 42 +++++++------- 4 files changed, 64 insertions(+), 69 deletions(-) diff --git a/.github/workflows/lint-and-build.yml b/.github/workflows/lint-and-build.yml index e6e7d86c..eb0fdc37 100644 --- a/.github/workflows/lint-and-build.yml +++ b/.github/workflows/lint-and-build.yml @@ -41,40 +41,37 @@ concurrency: cancel-in-progress: true jobs: - # Pyright: - # runs-on: ${{ matrix.os }} - # strategy: - # fail-fast: false - # # Pyright is version and platform sensible - # matrix: - # # arm runner slower as long as opencv doesn't provide arm64 wheels - # os: [windows-latest, ubuntu-latest] - # python-version: ["3.14"] - # include: - # - os: windows-latest - # python-version: "3.12" - # steps: - # - uses: actions/checkout@v6 - # - name: Set up uv for Python ${{ matrix.python-version }} - # uses: astral-sh/setup-uv@v7 - # with: - # python-version: ${{ matrix.python-version }} - # activate-environment: true - # - run: scripts/install.ps1 - # shell: pwsh - # - name: Analysing the code with Pyright - # uses: jakebailey/pyright-action@v2 - # with: - # version: PATH - # working-directory: src/ - # python-version: ${{ matrix.python-version }} + Pyright: + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + # Pyright is version and platform sensible + matrix: + # arm runner slower as long as opencv doesn't provide arm64 wheels + os: [windows-latest, ubuntu-latest] + python-version: ["3.14"] + steps: + - uses: actions/checkout@v6 + - name: Set up uv for Python ${{ matrix.python-version }} + uses: astral-sh/setup-uv@v7 + with: + python-version: ${{ matrix.python-version }} + activate-environment: true + - run: scripts/install.ps1 + shell: pwsh + - name: Analysing the code with Pyright + uses: jakebailey/pyright-action@v2 + with: + version: PATH + working-directory: src/ + python-version: ${{ matrix.python-version }} - # PySentry: - # runs-on: ubuntu-24.04-arm - # steps: - # - uses: actions/checkout@v6 - # - uses: astral-sh/setup-uv@v7 - # - run: uvx pysentry-rs --sources=pypa,pypi,osv --forbid-unmaintained + PySentry: + runs-on: ubuntu-24.04-arm + steps: + - uses: actions/checkout@v6 + - uses: astral-sh/setup-uv@v7 + - run: uvx pysentry-rs --sources=pypa,pypi,osv --forbid-unmaintained Build: runs-on: ${{ matrix.os }} @@ -82,14 +79,11 @@ jobs: fail-fast: false # Only the Python version we plan on shipping matters. matrix: - # os: [windows-latest, windows-11-arm, ubuntu-22.04, ubuntu-22.04-arm] - os: [windows-latest] - python-version: ["3.12", "3.13", "3.14"] - # include: - # - os: windows-latest - # python-version: "3.12" - # - os: windows-11-arm - # python-version: "3.12" + os: [windows-latest, windows-11-arm, ubuntu-22.04, ubuntu-22.04-arm] + python-version: ["3.14"] + include: + - os: windows-latest + wine-compat: true steps: - uses: actions/checkout@v6 # https://github.com/astral-sh/uv/issues/12906#issuecomment-3587439179 @@ -110,7 +104,7 @@ jobs: # endregion - run: scripts/install.ps1 shell: pwsh - - run: scripts/build.ps1 + - run: "scripts/build.ps1 ${{ matrix.wine-compat && '-WineCompat' || '' }}" shell: pwsh - name: Add empty profile run: echo "" > dist/settings.toml @@ -121,16 +115,14 @@ jobs: $Env:AUTOSPLIT_VERSION=uv run python -c "import utils; print(utils.AUTOSPLIT_VERSION)" echo "AUTOSPLIT_VERSION=$Env:AUTOSPLIT_VERSION" >> $Env:GITHUB_OUTPUT echo "OS=$([System.Runtime.InteropServices.RuntimeInformation]::RuntimeIdentifier)" >> $Env:GITHUB_OUTPUT - if ("${{ matrix.python-version }}" -eq "3.12") { - echo "WINE_SUPPORT=, Wine support" >> $Env:GITHUB_OUTPUT - } shell: pwsh - name: Upload Build Artifact uses: actions/upload-artifact@v6 with: name: > AutoSplit v${{ steps.artifact_vars.outputs.AUTOSPLIT_VERSION }} - for ${{ steps.artifact_vars.outputs.OS }} (Python ${{ matrix.python-version }}${{ steps.artifact_vars.outputs.WINE_SUPPORT }}) + for ${{ matrix.wine-compat && 'Wine' || steps.artifact_vars.outputs.OS }} + (Python ${{ matrix.python-version }}) path: | dist/AutoSplit* dist/settings.toml diff --git a/pyproject.toml b/pyproject.toml index 69831543..9356f4c7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,7 @@ [project] name = "AutoSplit" version = "2.3.2" -requires-python = ">=3.12" +requires-python = ">=3.14" dependencies = [ "Levenshtein >=0.25", "PyAutoGUI >=0.9.52", diff --git a/scripts/build.ps1 b/scripts/build.ps1 index ea7ed9d5..89947f30 100644 --- a/scripts/build.ps1 +++ b/scripts/build.ps1 @@ -1,4 +1,5 @@ #! /usr/bin/pwsh +param([switch]$WineCompat) Push-Location "$PSScriptRoot/.." # Avoid issues with space in path @@ -18,8 +19,10 @@ Splash._check_tcl_tk_compatibility() '--optimize=2', # Remove asserts and docstrings for smaller build '--additional-hooks-dir=Pyinstaller/hooks', "--add-data=pyproject.toml$([System.IO.Path]::PathSeparator).", - '--upx-dir=scripts/.upx' '--icon=res/icon.ico') + if (-not $WineCompat) { + $arguments += '--upx-dir=scripts/.upx' + } if ($SupportsSplashScreen) { # https://github.com/pyinstaller/pyinstaller/issues/9022 $arguments += @('--splash=res/splash.png') diff --git a/scripts/install.ps1 b/scripts/install.ps1 index 24540d61..4fa3139f 100644 --- a/scripts/install.ps1 +++ b/scripts/install.ps1 @@ -38,32 +38,32 @@ if ($IsLinux) { } } -# UPX is only used by PyInstaller on Windows, -# Doesn't work on ARM64, -# and we avoid using it on the "wine-compatible build" -# if (` -# $IsWindows ` -# -and [System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture -eq 'X64' ` -# -and (&uv run python -c 'import sys; print(sys.version_info > (3, 12))') -eq 'True' -# ) { -# $UPXVersion = '5.0.1' -# $UPXFolderName = "upx-$UPXVersion-win64" -# Write-Output "Installing $UPXFolderName" -# if (Test-Path "$PSScriptRoot/.upx") { Remove-Item $PSScriptRoot/.upx -Recurse } -# Invoke-WebRequest ` -# -Uri https://github.com/upx/upx/releases/download/v$UPXVersion/$UPXFolderName.zip ` -# -OutFile $Env:TEMP/$UPXFolderName.zip -# # Automatically install in a local untracked folder. This makes it easy to version and replicate on CI -# Expand-Archive $Env:TEMP/$UPXFolderName.zip $PSScriptRoot/.upx -# Move-Item $PSScriptRoot/.upx/$UPXFolderName/* $PSScriptRoot/.upx -# Remove-Item $PSScriptRoot/.upx/$UPXFolderName -# } - $prod = if ($Env:GITHUB_JOB -eq 'Build') { '--no-dev' } else { } $lock = if ($Env:GITHUB_JOB) { '--locked' } else { } Write-Output "Installing Python dependencies with: uv sync $prod $lock" uv sync --active $prod $lock +# UPX is only used by PyInstaller on Windows, +# Doesn't work on ARM64, +# and we avoid using it on the "wine-compatible build" +if (` + $IsWindows ` + -and [System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture -eq 'X64' ` + -and (&uv run --active python -c 'import sys; print(sys.version_info < (3, 14))') -eq 'True' +) { + $UPXVersion = '5.0.1' + $UPXFolderName = "upx-$UPXVersion-win64" + Write-Output "Installing $UPXFolderName" + if (Test-Path "$PSScriptRoot/.upx") { Remove-Item $PSScriptRoot/.upx -Recurse } + Invoke-WebRequest ` + -Uri https://github.com/upx/upx/releases/download/v$UPXVersion/$UPXFolderName.zip ` + -OutFile $Env:TEMP/$UPXFolderName.zip + # Automatically install in a local untracked folder. This makes it easy to version and replicate on CI + Expand-Archive $Env:TEMP/$UPXFolderName.zip $PSScriptRoot/.upx + Move-Item $PSScriptRoot/.upx/$UPXFolderName/* $PSScriptRoot/.upx + Remove-Item $PSScriptRoot/.upx/$UPXFolderName +} + # Don't compile resources on the Build CI job as it'll do so in build script if (-not $prod) { & "$PSScriptRoot/compile_resources.ps1" From 04565473b17e54896311754146ece240c57f6853 Mon Sep 17 00:00:00 2001 From: Avasam Date: Wed, 28 Jan 2026 22:20:15 -0500 Subject: [PATCH 18/31] regen lockfile --- uv.lock | 181 +------------------------------------------------------- 1 file changed, 1 insertion(+), 180 deletions(-) diff --git a/uv.lock b/uv.lock index a8dee3fa..25a8c8de 100644 --- a/uv.lock +++ b/uv.lock @@ -1,6 +1,6 @@ version = 1 revision = 3 -requires-python = ">=3.12" +requires-python = ">=3.14" resolution-markers = [ "platform_machine == 'aarch64' and sys_platform == 'linux'", "platform_machine != 'aarch64' and sys_platform == 'linux'", @@ -177,34 +177,6 @@ dependencies = [ { name = "rapidfuzz", marker = "sys_platform == 'linux' or sys_platform == 'win32'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/7e/b3/b5f8011483ba9083a0bc74c4d58705e9cf465fbe55c948a1b1357d0a2aa8/levenshtein-0.27.1.tar.gz", hash = "sha256:3e18b73564cfc846eec94dd13fab6cb006b5d2e0cc56bad1fd7d5585881302e3", size = 382571, upload-time = "2025-03-02T19:44:56.148Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/c7/4a/c1d3f27ec8b3fff5a96617251bf3f61c67972869ac0a0419558fc3e2cbe6/levenshtein-0.27.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dafa29c0e616f322b574e0b2aeb5b1ff2f8d9a1a6550f22321f3bd9bb81036e3", size = 151061, upload-time = "2025-03-02T19:43:18.414Z" }, - { url = "https://files.pythonhosted.org/packages/4d/8f/2521081e9a265891edf46aa30e1b59c1f347a452aed4c33baafbec5216fa/levenshtein-0.27.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:be7a7642ea64392fa1e6ef7968c2e50ef2152c60948f95d0793361ed97cf8a6f", size = 183119, upload-time = "2025-03-02T19:43:19.975Z" }, - { url = "https://files.pythonhosted.org/packages/1f/a0/a63e3bce6376127596d04be7f57e672d2f3d5f540265b1e30b9dd9b3c5a9/levenshtein-0.27.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:060b48c45ed54bcea9582ce79c6365b20a1a7473767e0b3d6be712fa3a22929c", size = 185352, upload-time = "2025-03-02T19:43:21.424Z" }, - { url = "https://files.pythonhosted.org/packages/17/8c/8352e992063952b38fb61d49bad8d193a4a713e7eeceb3ae74b719d7863d/levenshtein-0.27.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:712f562c5e64dd0398d3570fe99f8fbb88acec7cc431f101cb66c9d22d74c542", size = 159879, upload-time = "2025-03-02T19:43:22.792Z" }, - { url = "https://files.pythonhosted.org/packages/69/b4/564866e2038acf47c3de3e9292fc7fc7cc18d2593fedb04f001c22ac6e15/levenshtein-0.27.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a6141ad65cab49aa4527a3342d76c30c48adb2393b6cdfeca65caae8d25cb4b8", size = 245005, upload-time = "2025-03-02T19:43:24.069Z" }, - { url = "https://files.pythonhosted.org/packages/ba/f9/7367f87e3a6eed282f3654ec61a174b4d1b78a7a73f2cecb91f0ab675153/levenshtein-0.27.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:799b8d73cda3265331116f62932f553804eae16c706ceb35aaf16fc2a704791b", size = 1116865, upload-time = "2025-03-02T19:43:25.4Z" }, - { url = "https://files.pythonhosted.org/packages/f5/02/b5b3bfb4b4cd430e9d110bad2466200d51c6061dae7c5a64e36047c8c831/levenshtein-0.27.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:ec99871d98e517e1cc4a15659c62d6ea63ee5a2d72c5ddbebd7bae8b9e2670c8", size = 1401723, upload-time = "2025-03-02T19:43:28.099Z" }, - { url = "https://files.pythonhosted.org/packages/ef/69/b93bccd093b3f06a99e67e11ebd6e100324735dc2834958ba5852a1b9fed/levenshtein-0.27.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:8799164e1f83588dbdde07f728ea80796ea72196ea23484d78d891470241b222", size = 1226276, upload-time = "2025-03-02T19:43:30.192Z" }, - { url = "https://files.pythonhosted.org/packages/ab/32/37dd1bc5ce866c136716619e6f7081d7078d7dd1c1da7025603dcfd9cf5f/levenshtein-0.27.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:583943813898326516ab451a83f734c6f07488cda5c361676150d3e3e8b47927", size = 1420132, upload-time = "2025-03-02T19:43:33.322Z" }, - { url = "https://files.pythonhosted.org/packages/4b/08/f3bc828dd9f0f8433b26f37c4fceab303186ad7b9b70819f2ccb493d99fc/levenshtein-0.27.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:5bb22956af44bb4eade93546bf95be610c8939b9a9d4d28b2dfa94abf454fed7", size = 1189144, upload-time = "2025-03-02T19:43:34.814Z" }, - { url = "https://files.pythonhosted.org/packages/2d/54/5ecd89066cf579223d504abe3ac37ba11f63b01a19fd12591083acc00eb6/levenshtein-0.27.1-cp312-cp312-win32.whl", hash = "sha256:d9099ed1bcfa7ccc5540e8ad27b5dc6f23d16addcbe21fdd82af6440f4ed2b6d", size = 88279, upload-time = "2025-03-02T19:43:38.86Z" }, - { url = "https://files.pythonhosted.org/packages/53/79/4f8fabcc5aca9305b494d1d6c7a98482e90a855e0050ae9ff5d7bf4ab2c6/levenshtein-0.27.1-cp312-cp312-win_amd64.whl", hash = "sha256:7f071ecdb50aa6c15fd8ae5bcb67e9da46ba1df7bba7c6bf6803a54c7a41fd96", size = 100659, upload-time = "2025-03-02T19:43:40.082Z" }, - { url = "https://files.pythonhosted.org/packages/cb/81/f8e4c0f571c2aac2e0c56a6e0e41b679937a2b7013e79415e4aef555cff0/levenshtein-0.27.1-cp312-cp312-win_arm64.whl", hash = "sha256:83b9033a984ccace7703f35b688f3907d55490182fd39b33a8e434d7b2e249e6", size = 88168, upload-time = "2025-03-02T19:43:41.42Z" }, - { url = "https://files.pythonhosted.org/packages/df/98/915f4e24e21982b6eca2c0203546c160f4a83853fa6a2ac6e2b208a54afc/levenshtein-0.27.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5b07de42bfc051136cc8e7f1e7ba2cb73666aa0429930f4218efabfdc5837ad", size = 150013, upload-time = "2025-03-02T19:43:45.134Z" }, - { url = "https://files.pythonhosted.org/packages/80/93/9b0773107580416b9de14bf6a12bd1dd2b2964f7a9f6fb0e40723e1f0572/levenshtein-0.27.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fb11ad3c9dae3063405aa50d9c96923722ab17bb606c776b6817d70b51fd7e07", size = 181234, upload-time = "2025-03-02T19:43:47.125Z" }, - { url = "https://files.pythonhosted.org/packages/91/b1/3cd4f69af32d40de14808142cc743af3a1b737b25571bd5e8d2f46b885e0/levenshtein-0.27.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5c5986fb46cb0c063305fd45b0a79924abf2959a6d984bbac2b511d3ab259f3f", size = 183697, upload-time = "2025-03-02T19:43:48.412Z" }, - { url = "https://files.pythonhosted.org/packages/bb/65/b691e502c6463f6965b7e0d8d84224c188aa35b53fbc85853c72a0e436c9/levenshtein-0.27.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75191e469269ddef2859bc64c4a8cfd6c9e063302766b5cb7e1e67f38cc7051a", size = 159964, upload-time = "2025-03-02T19:43:49.704Z" }, - { url = "https://files.pythonhosted.org/packages/0f/c0/89a922a47306a475fb6d8f2ab08668f143d3dc7dea4c39d09e46746e031c/levenshtein-0.27.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:51b3a7b2266933babc04e4d9821a495142eebd6ef709f90e24bc532b52b81385", size = 244759, upload-time = "2025-03-02T19:43:51.733Z" }, - { url = "https://files.pythonhosted.org/packages/b4/93/30283c6e69a6556b02e0507c88535df9613179f7b44bc49cdb4bc5e889a3/levenshtein-0.27.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:bbac509794afc3e2a9e73284c9e3d0aab5b1d928643f42b172969c3eefa1f2a3", size = 1115955, upload-time = "2025-03-02T19:43:53.739Z" }, - { url = "https://files.pythonhosted.org/packages/0b/cf/7e19ea2c23671db02fbbe5a5a4aeafd1d471ee573a6251ae17008458c434/levenshtein-0.27.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:8d68714785178347ecb272b94e85cbf7e638165895c4dd17ab57e7742d8872ec", size = 1400921, upload-time = "2025-03-02T19:43:55.146Z" }, - { url = "https://files.pythonhosted.org/packages/e3/f7/fb42bfe2f3b46ef91f0fc6fa217b44dbeb4ef8c72a9c1917bbbe1cafc0f8/levenshtein-0.27.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:8ee74ee31a5ab8f61cd6c6c6e9ade4488dde1285f3c12207afc018393c9b8d14", size = 1225037, upload-time = "2025-03-02T19:43:56.7Z" }, - { url = "https://files.pythonhosted.org/packages/74/25/c86f8874ac7b0632b172d0d1622ed3ab9608a7f8fe85d41d632b16f5948e/levenshtein-0.27.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:f2441b6365453ec89640b85344afd3d602b0d9972840b693508074c613486ce7", size = 1420601, upload-time = "2025-03-02T19:43:58.383Z" }, - { url = "https://files.pythonhosted.org/packages/20/fe/ebfbaadcd90ea7dfde987ae95b5c11dc27c2c5d55a2c4ccbbe4e18a8af7b/levenshtein-0.27.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a9be39640a46d8a0f9be729e641651d16a62b2c07d3f4468c36e1cc66b0183b9", size = 1188241, upload-time = "2025-03-02T19:44:00.976Z" }, - { url = "https://files.pythonhosted.org/packages/2e/1a/aa6b07316e10781a6c5a5a8308f9bdc22213dc3911b959daa6d7ff654fc6/levenshtein-0.27.1-cp313-cp313-win32.whl", hash = "sha256:a520af67d976761eb6580e7c026a07eb8f74f910f17ce60e98d6e492a1f126c7", size = 88103, upload-time = "2025-03-02T19:44:02.42Z" }, - { url = "https://files.pythonhosted.org/packages/9d/7b/9bbfd417f80f1047a28d0ea56a9b38b9853ba913b84dd5998785c5f98541/levenshtein-0.27.1-cp313-cp313-win_amd64.whl", hash = "sha256:7dd60aa49c2d8d23e0ef6452c8329029f5d092f386a177e3385d315cabb78f2a", size = 100579, upload-time = "2025-03-02T19:44:04.142Z" }, - { url = "https://files.pythonhosted.org/packages/8b/01/5f3ff775db7340aa378b250e2a31e6b4b038809a24ff0a3636ef20c7ca31/levenshtein-0.27.1-cp313-cp313-win_arm64.whl", hash = "sha256:149cd4f0baf5884ac5df625b7b0d281721b15de00f447080e38f5188106e1167", size = 87933, upload-time = "2025-03-02T19:44:05.364Z" }, -] [[package]] name = "mypy" @@ -217,14 +189,6 @@ dependencies = [ ] sdist = { url = "https://files.pythonhosted.org/packages/14/a3/931e09fc02d7ba96da65266884da4e4a8806adcdb8a57faaacc6edf1d538/mypy-1.18.1.tar.gz", hash = "sha256:9e988c64ad3ac5987f43f5154f884747faf62141b7f842e87465b45299eea5a9", size = 3448447, upload-time = "2025-09-11T23:00:47.067Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ca/25/4e2ce00f8d15b99d0c68a2536ad63e9eac033f723439ef80290ec32c1ff5/mypy-1.18.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5956ecaabb3a245e3f34100172abca1507be687377fe20e24d6a7557e07080e2", size = 12472551, upload-time = "2025-09-11T22:58:37.272Z" }, - { url = "https://files.pythonhosted.org/packages/32/bb/92642a9350fc339dd9dcefcf6862d171b52294af107d521dce075f32f298/mypy-1.18.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8750ceb014a96c9890421c83f0db53b0f3b8633e2864c6f9bc0a8e93951ed18d", size = 13340554, upload-time = "2025-09-11T22:59:38.756Z" }, - { url = "https://files.pythonhosted.org/packages/cd/ee/38d01db91c198fb6350025d28f9719ecf3c8f2c55a0094bfbf3ef478cc9a/mypy-1.18.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fb89ea08ff41adf59476b235293679a6eb53a7b9400f6256272fb6029bec3ce5", size = 13530933, upload-time = "2025-09-11T22:59:20.228Z" }, - { url = "https://files.pythonhosted.org/packages/da/8d/6d991ae631f80d58edbf9d7066e3f2a96e479dca955d9a968cd6e90850a3/mypy-1.18.1-cp312-cp312-win_amd64.whl", hash = "sha256:2657654d82fcd2a87e02a33e0d23001789a554059bbf34702d623dafe353eabf", size = 9828426, upload-time = "2025-09-11T23:00:21.007Z" }, - { url = "https://files.pythonhosted.org/packages/ae/ef/5e2057e692c2690fc27b3ed0a4dbde4388330c32e2576a23f0302bc8358d/mypy-1.18.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:913f668ec50c3337b89df22f973c1c8f0b29ee9e290a8b7fe01cc1ef7446d42e", size = 12473355, upload-time = "2025-09-11T23:00:04.544Z" }, - { url = "https://files.pythonhosted.org/packages/98/43/b7e429fc4be10e390a167b0cd1810d41cb4e4add4ae50bab96faff695a3b/mypy-1.18.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1a0e70b87eb27b33209fa4792b051c6947976f6ab829daa83819df5f58330c71", size = 13346944, upload-time = "2025-09-11T22:58:23.024Z" }, - { url = "https://files.pythonhosted.org/packages/89/4e/899dba0bfe36bbd5b7c52e597de4cf47b5053d337b6d201a30e3798e77a6/mypy-1.18.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:c378d946e8a60be6b6ede48c878d145546fb42aad61df998c056ec151bf6c746", size = 13512574, upload-time = "2025-09-11T22:59:52.152Z" }, - { url = "https://files.pythonhosted.org/packages/f5/f8/7661021a5b0e501b76440454d786b0f01bb05d5c4b125fcbda02023d0250/mypy-1.18.1-cp313-cp313-win_amd64.whl", hash = "sha256:2cd2c1e0f3a7465f22731987fff6fc427e3dcbb4ca5f7db5bbeaff2ff9a31f6d", size = 9837684, upload-time = "2025-09-11T22:58:44.454Z" }, { url = "https://files.pythonhosted.org/packages/39/d4/aeefa07c44d09f4c2102e525e2031bc066d12e5351f66b8a83719671004d/mypy-1.18.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:040ecc95e026f71a9ad7956fea2724466602b561e6a25c2e5584160d3833aaa8", size = 12472291, upload-time = "2025-09-11T22:59:43.425Z" }, { url = "https://files.pythonhosted.org/packages/c6/07/711e78668ff8e365f8c19735594ea95938bff3639a4c46a905e3ed8ff2d6/mypy-1.18.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:937e3ed86cb731276706e46e03512547e43c391a13f363e08d0fee49a7c38a0d", size = 13318610, upload-time = "2025-09-11T23:00:17.604Z" }, { url = "https://files.pythonhosted.org/packages/ca/85/df3b2d39339c31d360ce299b418c55e8194ef3205284739b64962f6074e7/mypy-1.18.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:1f95cc4f01c0f1701ca3b0355792bccec13ecb2ec1c469e5b85a6ef398398b1d", size = 13513697, upload-time = "2025-09-11T22:58:59.534Z" }, @@ -275,27 +239,6 @@ version = "2.3.2" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/37/7d/3fec4199c5ffb892bed55cff901e4f39a58c81df9c44c280499e92cad264/numpy-2.3.2.tar.gz", hash = "sha256:e0486a11ec30cdecb53f184d496d1c6a20786c81e55e41640270130056f8ee48", size = 20489306, upload-time = "2025-07-24T21:32:07.553Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/91/ba/f4ebf257f08affa464fe6036e13f2bf9d4642a40228781dc1235da81be9f/numpy-2.3.2-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:572d5512df5470f50ada8d1972c5f1082d9a0b7aa5944db8084077570cf98370", size = 14281409, upload-time = "2025-07-24T20:40:30.298Z" }, - { url = "https://files.pythonhosted.org/packages/59/ef/f96536f1df42c668cbacb727a8c6da7afc9c05ece6d558927fb1722693e1/numpy-2.3.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8145dd6d10df13c559d1e4314df29695613575183fa2e2d11fac4c208c8a1f73", size = 16641317, upload-time = "2025-07-24T20:40:56.625Z" }, - { url = "https://files.pythonhosted.org/packages/f6/a7/af813a7b4f9a42f498dde8a4c6fcbff8100eed00182cc91dbaf095645f38/numpy-2.3.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:103ea7063fa624af04a791c39f97070bf93b96d7af7eb23530cd087dc8dbe9dc", size = 16056262, upload-time = "2025-07-24T20:41:20.797Z" }, - { url = "https://files.pythonhosted.org/packages/8b/5d/41c4ef8404caaa7f05ed1cfb06afe16a25895260eacbd29b4d84dff2920b/numpy-2.3.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fc927d7f289d14f5e037be917539620603294454130b6de200091e23d27dc9be", size = 18579342, upload-time = "2025-07-24T20:41:50.753Z" }, - { url = "https://files.pythonhosted.org/packages/a1/4f/9950e44c5a11636f4a3af6e825ec23003475cc9a466edb7a759ed3ea63bd/numpy-2.3.2-cp312-cp312-win32.whl", hash = "sha256:d95f59afe7f808c103be692175008bab926b59309ade3e6d25009e9a171f7036", size = 6320610, upload-time = "2025-07-24T20:42:01.551Z" }, - { url = "https://files.pythonhosted.org/packages/7c/2f/244643a5ce54a94f0a9a2ab578189c061e4a87c002e037b0829dd77293b6/numpy-2.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:9e196ade2400c0c737d93465327d1ae7c06c7cb8a1756121ebf54b06ca183c7f", size = 12786292, upload-time = "2025-07-24T20:42:20.738Z" }, - { url = "https://files.pythonhosted.org/packages/54/cd/7b5f49d5d78db7badab22d8323c1b6ae458fbf86c4fdfa194ab3cd4eb39b/numpy-2.3.2-cp312-cp312-win_arm64.whl", hash = "sha256:ee807923782faaf60d0d7331f5e86da7d5e3079e28b291973c545476c2b00d07", size = 10194071, upload-time = "2025-07-24T20:42:36.657Z" }, - { url = "https://files.pythonhosted.org/packages/34/fa/87ff7f25b3c4ce9085a62554460b7db686fef1e0207e8977795c7b7d7ba1/numpy-2.3.2-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5ad4ebcb683a1f99f4f392cc522ee20a18b2bb12a2c1c42c3d48d5a1adc9d3d2", size = 14278147, upload-time = "2025-07-24T20:44:10.328Z" }, - { url = "https://files.pythonhosted.org/packages/1d/0f/571b2c7a3833ae419fe69ff7b479a78d313581785203cc70a8db90121b9a/numpy-2.3.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:938065908d1d869c7d75d8ec45f735a034771c6ea07088867f713d1cd3bbbe4f", size = 16635989, upload-time = "2025-07-24T20:44:34.88Z" }, - { url = "https://files.pythonhosted.org/packages/24/5a/84ae8dca9c9a4c592fe11340b36a86ffa9fd3e40513198daf8a97839345c/numpy-2.3.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:66459dccc65d8ec98cc7df61307b64bf9e08101f9598755d42d8ae65d9a7a6ee", size = 16053052, upload-time = "2025-07-24T20:44:58.872Z" }, - { url = "https://files.pythonhosted.org/packages/57/7c/e5725d99a9133b9813fcf148d3f858df98511686e853169dbaf63aec6097/numpy-2.3.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a7af9ed2aa9ec5950daf05bb11abc4076a108bd3c7db9aa7251d5f107079b6a6", size = 18577955, upload-time = "2025-07-24T20:45:26.714Z" }, - { url = "https://files.pythonhosted.org/packages/ae/11/7c546fcf42145f29b71e4d6f429e96d8d68e5a7ba1830b2e68d7418f0bbd/numpy-2.3.2-cp313-cp313-win32.whl", hash = "sha256:906a30249315f9c8e17b085cc5f87d3f369b35fedd0051d4a84686967bdbbd0b", size = 6311843, upload-time = "2025-07-24T20:49:24.444Z" }, - { url = "https://files.pythonhosted.org/packages/aa/6f/a428fd1cb7ed39b4280d057720fed5121b0d7754fd2a9768640160f5517b/numpy-2.3.2-cp313-cp313-win_amd64.whl", hash = "sha256:c63d95dc9d67b676e9108fe0d2182987ccb0f11933c1e8959f42fa0da8d4fa56", size = 12782876, upload-time = "2025-07-24T20:49:43.227Z" }, - { url = "https://files.pythonhosted.org/packages/65/85/4ea455c9040a12595fb6c43f2c217257c7b52dd0ba332c6a6c1d28b289fe/numpy-2.3.2-cp313-cp313-win_arm64.whl", hash = "sha256:b05a89f2fb84d21235f93de47129dd4f11c16f64c87c33f5e284e6a3a54e43f2", size = 10192786, upload-time = "2025-07-24T20:49:59.443Z" }, - { url = "https://files.pythonhosted.org/packages/19/ea/0731efe2c9073ccca5698ef6a8c3667c4cf4eea53fcdcd0b50140aba03bc/numpy-2.3.2-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:de6ea4e5a65d5a90c7d286ddff2b87f3f4ad61faa3db8dabe936b34c2275b6f8", size = 14352007, upload-time = "2025-07-24T20:47:07.1Z" }, - { url = "https://files.pythonhosted.org/packages/cf/90/36be0865f16dfed20f4bc7f75235b963d5939707d4b591f086777412ff7b/numpy-2.3.2-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a3ef07ec8cbc8fc9e369c8dcd52019510c12da4de81367d8b20bc692aa07573a", size = 16701914, upload-time = "2025-07-24T20:47:32.459Z" }, - { url = "https://files.pythonhosted.org/packages/94/30/06cd055e24cb6c38e5989a9e747042b4e723535758e6153f11afea88c01b/numpy-2.3.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:27c9f90e7481275c7800dc9c24b7cc40ace3fdb970ae4d21eaff983a32f70c91", size = 16132708, upload-time = "2025-07-24T20:47:58.129Z" }, - { url = "https://files.pythonhosted.org/packages/9a/14/ecede608ea73e58267fd7cb78f42341b3b37ba576e778a1a06baffbe585c/numpy-2.3.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:07b62978075b67eee4065b166d000d457c82a1efe726cce608b9db9dd66a73a5", size = 18651678, upload-time = "2025-07-24T20:48:25.402Z" }, - { url = "https://files.pythonhosted.org/packages/40/f3/2fe6066b8d07c3685509bc24d56386534c008b462a488b7f503ba82b8923/numpy-2.3.2-cp313-cp313t-win32.whl", hash = "sha256:c771cfac34a4f2c0de8e8c97312d07d64fd8f8ed45bc9f5726a7e947270152b5", size = 6441832, upload-time = "2025-07-24T20:48:37.181Z" }, - { url = "https://files.pythonhosted.org/packages/0b/ba/0937d66d05204d8f28630c9c60bc3eda68824abde4cf756c4d6aad03b0c6/numpy-2.3.2-cp313-cp313t-win_amd64.whl", hash = "sha256:72dbebb2dcc8305c431b2836bcc66af967df91be793d63a24e3d9b741374c450", size = 12927049, upload-time = "2025-07-24T20:48:56.24Z" }, - { url = "https://files.pythonhosted.org/packages/e9/ed/13542dd59c104d5e654dfa2ac282c199ba64846a74c2c4bcdbc3a0f75df1/numpy-2.3.2-cp313-cp313t-win_arm64.whl", hash = "sha256:72c6df2267e926a6d5286b0a6d556ebe49eae261062059317837fda12ddf0c1a", size = 10262935, upload-time = "2025-07-24T20:49:13.136Z" }, { url = "https://files.pythonhosted.org/packages/c4/43/f12b2ade99199e39c73ad182f103f9d9791f48d885c600c8e05927865baf/numpy-2.3.2-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:af58de8745f7fa9ca1c0c7c943616c6fe28e75d0c81f5c295810e3c83b5be92f", size = 14296292, upload-time = "2025-07-24T20:51:33.488Z" }, { url = "https://files.pythonhosted.org/packages/5d/f9/77c07d94bf110a916b17210fac38680ed8734c236bfed9982fd8524a7b47/numpy-2.3.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fed5527c4cf10f16c6d0b6bee1f89958bccb0ad2522c8cadc2efd318bcd545f5", size = 16638913, upload-time = "2025-07-24T20:51:58.517Z" }, { url = "https://files.pythonhosted.org/packages/9b/d1/9d9f2c8ea399cc05cfff8a7437453bd4e7d894373a93cdc46361bbb49a7d/numpy-2.3.2-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:095737ed986e00393ec18ec0b21b47c22889ae4b0cd2d5e88342e08b01141f58", size = 16071180, upload-time = "2025-07-24T20:52:22.827Z" }, @@ -333,19 +276,6 @@ version = "3.11.5" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/04/b8/333fdb27840f3bf04022d21b654a35f58e15407183aeb16f3b41aa053446/orjson-3.11.5.tar.gz", hash = "sha256:82393ab47b4fe44ffd0a7659fa9cfaacc717eb617c93cde83795f14af5c2e9d5", size = 5972347, upload-time = "2025-12-06T15:55:39.458Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/77/42/f1bf1549b432d4a78bfa95735b79b5dac75b65b5bb815bba86ad406ead0a/orjson-3.11.5-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:894aea2e63d4f24a7f04a1908307c738d0dce992e9249e744b8f4e8dd9197f39", size = 132060, upload-time = "2025-12-06T15:54:43.531Z" }, - { url = "https://files.pythonhosted.org/packages/25/49/825aa6b929f1a6ed244c78acd7b22c1481fd7e5fda047dc8bf4c1a807eb6/orjson-3.11.5-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ddc21521598dbe369d83d4d40338e23d4101dad21dae0e79fa20465dbace019f", size = 130391, upload-time = "2025-12-06T15:54:45.059Z" }, - { url = "https://files.pythonhosted.org/packages/42/ec/de55391858b49e16e1aa8f0bbbb7e5997b7345d8e984a2dec3746d13065b/orjson-3.11.5-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7cce16ae2f5fb2c53c3eafdd1706cb7b6530a67cc1c17abe8ec747f5cd7c0c51", size = 135964, upload-time = "2025-12-06T15:54:46.576Z" }, - { url = "https://files.pythonhosted.org/packages/1c/40/820bc63121d2d28818556a2d0a09384a9f0262407cf9fa305e091a8048df/orjson-3.11.5-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e46c762d9f0e1cfb4ccc8515de7f349abbc95b59cb5a2bd68df5973fdef913f8", size = 139817, upload-time = "2025-12-06T15:54:48.084Z" }, - { url = "https://files.pythonhosted.org/packages/09/c7/3a445ca9a84a0d59d26365fd8898ff52bdfcdcb825bcc6519830371d2364/orjson-3.11.5-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d7345c759276b798ccd6d77a87136029e71e66a8bbf2d2755cbdde1d82e78706", size = 137336, upload-time = "2025-12-06T15:54:49.426Z" }, - { url = "https://files.pythonhosted.org/packages/9a/b3/dc0d3771f2e5d1f13368f56b339c6782f955c6a20b50465a91acb79fe961/orjson-3.11.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75bc2e59e6a2ac1dd28901d07115abdebc4563b5b07dd612bf64260a201b1c7f", size = 138993, upload-time = "2025-12-06T15:54:50.939Z" }, - { url = "https://files.pythonhosted.org/packages/d1/a2/65267e959de6abe23444659b6e19c888f242bf7725ff927e2292776f6b89/orjson-3.11.5-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:54aae9b654554c3b4edd61896b978568c6daa16af96fa4681c9b5babd469f863", size = 141070, upload-time = "2025-12-06T15:54:52.414Z" }, - { url = "https://files.pythonhosted.org/packages/63/c9/da44a321b288727a322c6ab17e1754195708786a04f4f9d2220a5076a649/orjson-3.11.5-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:4bdd8d164a871c4ec773f9de0f6fe8769c2d6727879c37a9666ba4183b7f8228", size = 413505, upload-time = "2025-12-06T15:54:53.67Z" }, - { url = "https://files.pythonhosted.org/packages/7f/17/68dc14fa7000eefb3d4d6d7326a190c99bb65e319f02747ef3ebf2452f12/orjson-3.11.5-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:a261fef929bcf98a60713bf5e95ad067cea16ae345d9a35034e73c3990e927d2", size = 151342, upload-time = "2025-12-06T15:54:55.113Z" }, - { url = "https://files.pythonhosted.org/packages/c4/c5/ccee774b67225bed630a57478529fc026eda33d94fe4c0eac8fe58d4aa52/orjson-3.11.5-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:c028a394c766693c5c9909dec76b24f37e6a1b91999e8d0c0d5feecbe93c3e05", size = 141823, upload-time = "2025-12-06T15:54:56.331Z" }, - { url = "https://files.pythonhosted.org/packages/67/80/5d00e4155d0cd7390ae2087130637671da713959bb558db9bac5e6f6b042/orjson-3.11.5-cp313-cp313-win32.whl", hash = "sha256:2cc79aaad1dfabe1bd2d50ee09814a1253164b3da4c00a78c458d82d04b3bdef", size = 135236, upload-time = "2025-12-06T15:54:57.507Z" }, - { url = "https://files.pythonhosted.org/packages/95/fe/792cc06a84808dbdc20ac6eab6811c53091b42f8e51ecebf14b540e9cfe4/orjson-3.11.5-cp313-cp313-win_amd64.whl", hash = "sha256:ff7877d376add4e16b274e35a3f58b7f37b362abf4aa31863dadacdd20e3a583", size = 133167, upload-time = "2025-12-06T15:54:58.71Z" }, - { url = "https://files.pythonhosted.org/packages/46/2c/d158bd8b50e3b1cfdcf406a7e463f6ffe3f0d167b99634717acdaf5e299f/orjson-3.11.5-cp313-cp313-win_arm64.whl", hash = "sha256:59ac72ea775c88b163ba8d21b0177628bd015c5dd060647bbab6e22da3aad287", size = 126712, upload-time = "2025-12-06T15:54:59.892Z" }, { url = "https://files.pythonhosted.org/packages/30/94/9eabf94f2e11c671111139edf5ec410d2f21e6feee717804f7e8872d883f/orjson-3.11.5-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:82cd00d49d6063d2b8791da5d4f9d20539c5951f965e45ccf4e96d33505ce68f", size = 132050, upload-time = "2025-12-06T15:55:03.918Z" }, { url = "https://files.pythonhosted.org/packages/3d/c8/ca10f5c5322f341ea9a9f1097e140be17a88f88d1cfdd29df522970d9744/orjson-3.11.5-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3fd15f9fc8c203aeceff4fda211157fad114dde66e92e24097b3647a08f4ee9e", size = 130370, upload-time = "2025-12-06T15:55:05.173Z" }, { url = "https://files.pythonhosted.org/packages/25/d4/e96824476d361ee2edd5c6290ceb8d7edf88d81148a6ce172fc00278ca7f/orjson-3.11.5-cp314-cp314-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9df95000fbe6777bf9820ae82ab7578e8662051bb5f83d71a28992f539d2cda7", size = 136012, upload-time = "2025-12-06T15:55:06.402Z" }, @@ -394,27 +324,6 @@ version = "11.3.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/f3/0d/d0d6dea55cd152ce3d6767bb38a8fc10e33796ba4ba210cbab9354b6d238/pillow-11.3.0.tar.gz", hash = "sha256:3828ee7586cd0b2091b6209e5ad53e20d0649bbe87164a459d0676e035e8f523", size = 47113069, upload-time = "2025-07-01T09:16:30.666Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/8e/1e/b9e12bbe6e4c2220effebc09ea0923a07a6da1e1f1bfbc8d7d29a01ce32b/pillow-11.3.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:eb76541cba2f958032d79d143b98a3a6b3ea87f0959bbe256c0b5e416599fd5d", size = 5871726, upload-time = "2025-07-03T13:10:04.448Z" }, - { url = "https://files.pythonhosted.org/packages/8d/33/e9200d2bd7ba00dc3ddb78df1198a6e80d7669cce6c2bdbeb2530a74ec58/pillow-11.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:67172f2944ebba3d4a7b54f2e95c786a3a50c21b88456329314caaa28cda70f6", size = 7644652, upload-time = "2025-07-03T13:10:10.391Z" }, - { url = "https://files.pythonhosted.org/packages/41/f1/6f2427a26fc683e00d985bc391bdd76d8dd4e92fac33d841127eb8fb2313/pillow-11.3.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:97f07ed9f56a3b9b5f49d3661dc9607484e85c67e27f3e8be2c7d28ca032fec7", size = 5977787, upload-time = "2025-07-01T09:14:21.63Z" }, - { url = "https://files.pythonhosted.org/packages/e4/c9/06dd4a38974e24f932ff5f98ea3c546ce3f8c995d3f0985f8e5ba48bba19/pillow-11.3.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:676b2815362456b5b3216b4fd5bd89d362100dc6f4945154ff172e206a22c024", size = 6645236, upload-time = "2025-07-01T09:14:23.321Z" }, - { url = "https://files.pythonhosted.org/packages/40/e7/848f69fb79843b3d91241bad658e9c14f39a32f71a301bcd1d139416d1be/pillow-11.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3e184b2f26ff146363dd07bde8b711833d7b0202e27d13540bfe2e35a323a809", size = 6086950, upload-time = "2025-07-01T09:14:25.237Z" }, - { url = "https://files.pythonhosted.org/packages/0b/1a/7cff92e695a2a29ac1958c2a0fe4c0b2393b60aac13b04a4fe2735cad52d/pillow-11.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:6be31e3fc9a621e071bc17bb7de63b85cbe0bfae91bb0363c893cbe67247780d", size = 6723358, upload-time = "2025-07-01T09:14:27.053Z" }, - { url = "https://files.pythonhosted.org/packages/1e/93/0952f2ed8db3a5a4c7a11f91965d6184ebc8cd7cbb7941a260d5f018cd2d/pillow-11.3.0-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:1c627742b539bba4309df89171356fcb3cc5a9178355b2727d1b74a6cf155fbd", size = 2128328, upload-time = "2025-07-01T09:14:35.276Z" }, - { url = "https://files.pythonhosted.org/packages/4b/e8/100c3d114b1a0bf4042f27e0f87d2f25e857e838034e98ca98fe7b8c0a9c/pillow-11.3.0-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:30b7c02f3899d10f13d7a48163c8969e4e653f8b43416d23d13d1bbfdc93b9f8", size = 2170652, upload-time = "2025-07-01T09:14:37.203Z" }, - { url = "https://files.pythonhosted.org/packages/aa/86/3f758a28a6e381758545f7cdb4942e1cb79abd271bea932998fc0db93cb6/pillow-11.3.0-cp313-cp313-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:7859a4cc7c9295f5838015d8cc0a9c215b77e43d07a25e460f35cf516df8626f", size = 2227443, upload-time = "2025-07-01T09:14:39.344Z" }, - { url = "https://files.pythonhosted.org/packages/ff/b0/3426e5c7f6565e752d81221af9d3676fdbb4f352317ceafd42899aaf5d8a/pillow-11.3.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:2d6fcc902a24ac74495df63faad1884282239265c6839a0a6416d33faedfae7e", size = 5864407, upload-time = "2025-07-03T13:10:15.628Z" }, - { url = "https://files.pythonhosted.org/packages/fc/c1/c6c423134229f2a221ee53f838d4be9d82bab86f7e2f8e75e47b6bf6cd77/pillow-11.3.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f0f5d8f4a08090c6d6d578351a2b91acf519a54986c055af27e7a93feae6d3f1", size = 7639094, upload-time = "2025-07-03T13:10:21.857Z" }, - { url = "https://files.pythonhosted.org/packages/ba/c9/09e6746630fe6372c67c648ff9deae52a2bc20897d51fa293571977ceb5d/pillow-11.3.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c37d8ba9411d6003bba9e518db0db0c58a680ab9fe5179f040b0463644bc9805", size = 5973503, upload-time = "2025-07-01T09:14:45.698Z" }, - { url = "https://files.pythonhosted.org/packages/d5/1c/a2a29649c0b1983d3ef57ee87a66487fdeb45132df66ab30dd37f7dbe162/pillow-11.3.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:13f87d581e71d9189ab21fe0efb5a23e9f28552d5be6979e84001d3b8505abe8", size = 6642574, upload-time = "2025-07-01T09:14:47.415Z" }, - { url = "https://files.pythonhosted.org/packages/36/de/d5cc31cc4b055b6c6fd990e3e7f0f8aaf36229a2698501bcb0cdf67c7146/pillow-11.3.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:023f6d2d11784a465f09fd09a34b150ea4672e85fb3d05931d89f373ab14abb2", size = 6084060, upload-time = "2025-07-01T09:14:49.636Z" }, - { url = "https://files.pythonhosted.org/packages/d5/ea/502d938cbaeec836ac28a9b730193716f0114c41325db428e6b280513f09/pillow-11.3.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:45dfc51ac5975b938e9809451c51734124e73b04d0f0ac621649821a63852e7b", size = 6721407, upload-time = "2025-07-01T09:14:51.962Z" }, - { url = "https://files.pythonhosted.org/packages/49/20/716b8717d331150cb00f7fdd78169c01e8e0c219732a78b0e59b6bdb2fd6/pillow-11.3.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:1019b04af07fc0163e2810167918cb5add8d74674b6267616021ab558dc98ced", size = 5901554, upload-time = "2025-07-03T13:10:27.018Z" }, - { url = "https://files.pythonhosted.org/packages/74/cf/a9f3a2514a65bb071075063a96f0a5cf949c2f2fce683c15ccc83b1c1cab/pillow-11.3.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f944255db153ebb2b19c51fe85dd99ef0ce494123f21b9db4877ffdfc5590c7c", size = 7669132, upload-time = "2025-07-03T13:10:33.01Z" }, - { url = "https://files.pythonhosted.org/packages/98/3c/da78805cbdbee9cb43efe8261dd7cc0b4b93f2ac79b676c03159e9db2187/pillow-11.3.0-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1f85acb69adf2aaee8b7da124efebbdb959a104db34d3a2cb0f3793dbae422a8", size = 6005001, upload-time = "2025-07-01T09:15:03.365Z" }, - { url = "https://files.pythonhosted.org/packages/6c/fa/ce044b91faecf30e635321351bba32bab5a7e034c60187fe9698191aef4f/pillow-11.3.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:05f6ecbeff5005399bb48d198f098a9b4b6bdf27b8487c7f38ca16eeb070cd59", size = 6668814, upload-time = "2025-07-01T09:15:05.655Z" }, - { url = "https://files.pythonhosted.org/packages/7b/51/90f9291406d09bf93686434f9183aba27b831c10c87746ff49f127ee80cb/pillow-11.3.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:a7bc6e6fd0395bc052f16b1a8670859964dbd7003bd0af2ff08342eb6e442cfe", size = 6113124, upload-time = "2025-07-01T09:15:07.358Z" }, - { url = "https://files.pythonhosted.org/packages/cd/5a/6fec59b1dfb619234f7636d4157d11fb4e196caeee220232a8d2ec48488d/pillow-11.3.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:83e1b0161c9d148125083a35c1c5a89db5b7054834fd4387499e06552035236c", size = 6747186, upload-time = "2025-07-01T09:15:09.317Z" }, { url = "https://files.pythonhosted.org/packages/49/2d/ed8bc0ab219ae8768f529597d9509d184fe8a6c4741a6864fea334d25f3f/pillow-11.3.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:0743841cabd3dba6a83f38a92672cccbd69af56e3e91777b0ee7f4dba4385632", size = 5864597, upload-time = "2025-07-03T13:10:38.404Z" }, { url = "https://files.pythonhosted.org/packages/b5/3d/b932bb4225c80b58dfadaca9d42d08d0b7064d2d1791b6a237f87f661834/pillow-11.3.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:2465a69cf967b8b49ee1b96d76718cd98c4e925414ead59fdf75cf0fd07df673", size = 7638246, upload-time = "2025-07-03T13:10:44.987Z" }, { url = "https://files.pythonhosted.org/packages/09/b5/0487044b7c096f1b48f0d7ad416472c02e0e4bf6919541b111efd3cae690/pillow-11.3.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:41742638139424703b4d01665b807c6468e23e699e8e90cffefe291c5832b027", size = 5973336, upload-time = "2025-07-01T09:15:21.237Z" }, @@ -568,12 +477,6 @@ name = "pywin32" version = "311" source = { registry = "https://pypi.org/simple" } wheels = [ - { url = "https://files.pythonhosted.org/packages/e7/ab/01ea1943d4eba0f850c3c61e78e8dd59757ff815ff3ccd0a84de5f541f42/pywin32-311-cp312-cp312-win32.whl", hash = "sha256:750ec6e621af2b948540032557b10a2d43b0cee2ae9758c54154d711cc852d31", size = 8706543, upload-time = "2025-07-14T20:13:20.765Z" }, - { url = "https://files.pythonhosted.org/packages/d1/a8/a0e8d07d4d051ec7502cd58b291ec98dcc0c3fff027caad0470b72cfcc2f/pywin32-311-cp312-cp312-win_amd64.whl", hash = "sha256:b8c095edad5c211ff31c05223658e71bf7116daa0ecf3ad85f3201ea3190d067", size = 9495040, upload-time = "2025-07-14T20:13:22.543Z" }, - { url = "https://files.pythonhosted.org/packages/ba/3a/2ae996277b4b50f17d61f0603efd8253cb2d79cc7ae159468007b586396d/pywin32-311-cp312-cp312-win_arm64.whl", hash = "sha256:e286f46a9a39c4a18b319c28f59b61de793654af2f395c102b4f819e584b5852", size = 8710102, upload-time = "2025-07-14T20:13:24.682Z" }, - { url = "https://files.pythonhosted.org/packages/a5/be/3fd5de0979fcb3994bfee0d65ed8ca9506a8a1260651b86174f6a86f52b3/pywin32-311-cp313-cp313-win32.whl", hash = "sha256:f95ba5a847cba10dd8c4d8fefa9f2a6cf283b8b88ed6178fa8a6c1ab16054d0d", size = 8705700, upload-time = "2025-07-14T20:13:26.471Z" }, - { url = "https://files.pythonhosted.org/packages/e3/28/e0a1909523c6890208295a29e05c2adb2126364e289826c0a8bc7297bd5c/pywin32-311-cp313-cp313-win_amd64.whl", hash = "sha256:718a38f7e5b058e76aee1c56ddd06908116d35147e133427e59a3983f703a20d", size = 9494700, upload-time = "2025-07-14T20:13:28.243Z" }, - { url = "https://files.pythonhosted.org/packages/04/bf/90339ac0f55726dce7d794e6d79a18a91265bdf3aa70b6b9ca52f35e022a/pywin32-311-cp313-cp313-win_arm64.whl", hash = "sha256:7b4075d959648406202d92a2310cb990fea19b535c7f4a78d3f5e10b926eeb8a", size = 8709318, upload-time = "2025-07-14T20:13:30.348Z" }, { url = "https://files.pythonhosted.org/packages/c9/31/097f2e132c4f16d99a22bfb777e0fd88bd8e1c634304e102f313af69ace5/pywin32-311-cp314-cp314-win32.whl", hash = "sha256:b7a2c10b93f8986666d0c803ee19b5990885872a7de910fc460f9b0c2fbf92ee", size = 8840714, upload-time = "2025-07-14T20:13:32.449Z" }, { url = "https://files.pythonhosted.org/packages/90/4b/07c77d8ba0e01349358082713400435347df8426208171ce297da32c313d/pywin32-311-cp314-cp314-win_amd64.whl", hash = "sha256:3aca44c046bd2ed8c90de9cb8427f581c479e594e99b5c0bb19b29c10fd6cb87", size = 9656800, upload-time = "2025-07-14T20:13:34.312Z" }, { url = "https://files.pythonhosted.org/packages/c0/d2/21af5c535501a7233e734b8af901574572da66fcc254cb35d0609c9080dd/pywin32-311-cp314-cp314-win_arm64.whl", hash = "sha256:a508e2d9025764a8270f93111a970e1d0fbfc33f4153b388bb649b7eec4f9b42", size = 8932540, upload-time = "2025-07-14T20:13:36.379Z" }, @@ -632,34 +535,6 @@ name = "rapidfuzz" version = "3.13.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/ed/f6/6895abc3a3d056b9698da3199b04c0e56226d530ae44a470edabf8b664f0/rapidfuzz-3.13.0.tar.gz", hash = "sha256:d2eaf3839e52cbcc0accbe9817a67b4b0fcf70aaeb229cfddc1c28061f9ce5d8", size = 57904226, upload-time = "2025-04-03T20:38:51.226Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/07/09/de8069a4599cc8e6d194e5fa1782c561151dea7d5e2741767137e2a8c1f0/rapidfuzz-3.13.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d4e13593d298c50c4f94ce453f757b4b398af3fa0fd2fde693c3e51195b7f69", size = 1405986, upload-time = "2025-04-03T20:36:18.447Z" }, - { url = "https://files.pythonhosted.org/packages/5d/77/d9a90b39c16eca20d70fec4ca377fbe9ea4c0d358c6e4736ab0e0e78aaf6/rapidfuzz-3.13.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ed6f416bda1c9133000009d84d9409823eb2358df0950231cc936e4bf784eb97", size = 5310809, upload-time = "2025-04-03T20:36:20.324Z" }, - { url = "https://files.pythonhosted.org/packages/1e/7d/14da291b0d0f22262d19522afaf63bccf39fc027c981233fb2137a57b71f/rapidfuzz-3.13.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1dc82b6ed01acb536b94a43996a94471a218f4d89f3fdd9185ab496de4b2a981", size = 1629394, upload-time = "2025-04-03T20:36:22.256Z" }, - { url = "https://files.pythonhosted.org/packages/b7/e4/79ed7e4fa58f37c0f8b7c0a62361f7089b221fe85738ae2dbcfb815e985a/rapidfuzz-3.13.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e9d824de871daa6e443b39ff495a884931970d567eb0dfa213d234337343835f", size = 1600544, upload-time = "2025-04-03T20:36:24.207Z" }, - { url = "https://files.pythonhosted.org/packages/4e/20/e62b4d13ba851b0f36370060025de50a264d625f6b4c32899085ed51f980/rapidfuzz-3.13.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2d18228a2390375cf45726ce1af9d36ff3dc1f11dce9775eae1f1b13ac6ec50f", size = 3052796, upload-time = "2025-04-03T20:36:26.279Z" }, - { url = "https://files.pythonhosted.org/packages/cd/8d/55fdf4387dec10aa177fe3df8dbb0d5022224d95f48664a21d6b62a5299d/rapidfuzz-3.13.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:9f5fe634c9482ec5d4a6692afb8c45d370ae86755e5f57aa6c50bfe4ca2bdd87", size = 2464016, upload-time = "2025-04-03T20:36:28.525Z" }, - { url = "https://files.pythonhosted.org/packages/9b/be/0872f6a56c0f473165d3b47d4170fa75263dc5f46985755aa9bf2bbcdea1/rapidfuzz-3.13.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:694eb531889f71022b2be86f625a4209c4049e74be9ca836919b9e395d5e33b3", size = 7556725, upload-time = "2025-04-03T20:36:30.629Z" }, - { url = "https://files.pythonhosted.org/packages/5d/f3/6c0750e484d885a14840c7a150926f425d524982aca989cdda0bb3bdfa57/rapidfuzz-3.13.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:11b47b40650e06147dee5e51a9c9ad73bb7b86968b6f7d30e503b9f8dd1292db", size = 2859052, upload-time = "2025-04-03T20:36:32.836Z" }, - { url = "https://files.pythonhosted.org/packages/6f/98/5a3a14701b5eb330f444f7883c9840b43fb29c575e292e09c90a270a6e07/rapidfuzz-3.13.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:98b8107ff14f5af0243f27d236bcc6e1ef8e7e3b3c25df114e91e3a99572da73", size = 3390219, upload-time = "2025-04-03T20:36:35.062Z" }, - { url = "https://files.pythonhosted.org/packages/e9/7d/f4642eaaeb474b19974332f2a58471803448be843033e5740965775760a5/rapidfuzz-3.13.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b836f486dba0aceb2551e838ff3f514a38ee72b015364f739e526d720fdb823a", size = 4377924, upload-time = "2025-04-03T20:36:37.363Z" }, - { url = "https://files.pythonhosted.org/packages/8e/83/fa33f61796731891c3e045d0cbca4436a5c436a170e7f04d42c2423652c3/rapidfuzz-3.13.0-cp312-cp312-win32.whl", hash = "sha256:4671ee300d1818d7bdfd8fa0608580d7778ba701817216f0c17fb29e6b972514", size = 1823915, upload-time = "2025-04-03T20:36:39.451Z" }, - { url = "https://files.pythonhosted.org/packages/03/25/5ee7ab6841ca668567d0897905eebc79c76f6297b73bf05957be887e9c74/rapidfuzz-3.13.0-cp312-cp312-win_amd64.whl", hash = "sha256:6e2065f68fb1d0bf65adc289c1bdc45ba7e464e406b319d67bb54441a1b9da9e", size = 1616985, upload-time = "2025-04-03T20:36:41.631Z" }, - { url = "https://files.pythonhosted.org/packages/76/5e/3f0fb88db396cb692aefd631e4805854e02120a2382723b90dcae720bcc6/rapidfuzz-3.13.0-cp312-cp312-win_arm64.whl", hash = "sha256:65cc97c2fc2c2fe23586599686f3b1ceeedeca8e598cfcc1b7e56dc8ca7e2aa7", size = 860116, upload-time = "2025-04-03T20:36:43.915Z" }, - { url = "https://files.pythonhosted.org/packages/59/cf/c3ac8c80d8ced6c1f99b5d9674d397ce5d0e9d0939d788d67c010e19c65f/rapidfuzz-3.13.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0da54aa8547b3c2c188db3d1c7eb4d1bb6dd80baa8cdaeaec3d1da3346ec9caa", size = 1399854, upload-time = "2025-04-03T20:36:50.294Z" }, - { url = "https://files.pythonhosted.org/packages/09/5d/ca8698e452b349c8313faf07bfa84e7d1c2d2edf7ccc67bcfc49bee1259a/rapidfuzz-3.13.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:df8e8c21e67afb9d7fbe18f42c6111fe155e801ab103c81109a61312927cc611", size = 5308962, upload-time = "2025-04-03T20:36:52.421Z" }, - { url = "https://files.pythonhosted.org/packages/66/0a/bebada332854e78e68f3d6c05226b23faca79d71362509dbcf7b002e33b7/rapidfuzz-3.13.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:461fd13250a2adf8e90ca9a0e1e166515cbcaa5e9c3b1f37545cbbeff9e77f6b", size = 1625016, upload-time = "2025-04-03T20:36:54.639Z" }, - { url = "https://files.pythonhosted.org/packages/de/0c/9e58d4887b86d7121d1c519f7050d1be5eb189d8a8075f5417df6492b4f5/rapidfuzz-3.13.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c2b3dd5d206a12deca16870acc0d6e5036abeb70e3cad6549c294eff15591527", size = 1600414, upload-time = "2025-04-03T20:36:56.669Z" }, - { url = "https://files.pythonhosted.org/packages/9b/df/6096bc669c1311568840bdcbb5a893edc972d1c8d2b4b4325c21d54da5b1/rapidfuzz-3.13.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1343d745fbf4688e412d8f398c6e6d6f269db99a54456873f232ba2e7aeb4939", size = 3053179, upload-time = "2025-04-03T20:36:59.366Z" }, - { url = "https://files.pythonhosted.org/packages/f9/46/5179c583b75fce3e65a5cd79a3561bd19abd54518cb7c483a89b284bf2b9/rapidfuzz-3.13.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:b1b065f370d54551dcc785c6f9eeb5bd517ae14c983d2784c064b3aa525896df", size = 2456856, upload-time = "2025-04-03T20:37:01.708Z" }, - { url = "https://files.pythonhosted.org/packages/6b/64/e9804212e3286d027ac35bbb66603c9456c2bce23f823b67d2f5cabc05c1/rapidfuzz-3.13.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:11b125d8edd67e767b2295eac6eb9afe0b1cdc82ea3d4b9257da4b8e06077798", size = 7567107, upload-time = "2025-04-03T20:37:04.521Z" }, - { url = "https://files.pythonhosted.org/packages/8a/f2/7d69e7bf4daec62769b11757ffc31f69afb3ce248947aadbb109fefd9f65/rapidfuzz-3.13.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:c33f9c841630b2bb7e69a3fb5c84a854075bb812c47620978bddc591f764da3d", size = 2854192, upload-time = "2025-04-03T20:37:06.905Z" }, - { url = "https://files.pythonhosted.org/packages/05/21/ab4ad7d7d0f653e6fe2e4ccf11d0245092bef94cdff587a21e534e57bda8/rapidfuzz-3.13.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:ae4574cb66cf1e85d32bb7e9ec45af5409c5b3970b7ceb8dea90168024127566", size = 3398876, upload-time = "2025-04-03T20:37:09.692Z" }, - { url = "https://files.pythonhosted.org/packages/0f/a8/45bba94c2489cb1ee0130dcb46e1df4fa2c2b25269e21ffd15240a80322b/rapidfuzz-3.13.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e05752418b24bbd411841b256344c26f57da1148c5509e34ea39c7eb5099ab72", size = 4377077, upload-time = "2025-04-03T20:37:11.929Z" }, - { url = "https://files.pythonhosted.org/packages/0c/f3/5e0c6ae452cbb74e5436d3445467447e8c32f3021f48f93f15934b8cffc2/rapidfuzz-3.13.0-cp313-cp313-win32.whl", hash = "sha256:0e1d08cb884805a543f2de1f6744069495ef527e279e05370dd7c83416af83f8", size = 1822066, upload-time = "2025-04-03T20:37:14.425Z" }, - { url = "https://files.pythonhosted.org/packages/96/e3/a98c25c4f74051df4dcf2f393176b8663bfd93c7afc6692c84e96de147a2/rapidfuzz-3.13.0-cp313-cp313-win_amd64.whl", hash = "sha256:9a7c6232be5f809cd39da30ee5d24e6cadd919831e6020ec6c2391f4c3bc9264", size = 1615100, upload-time = "2025-04-03T20:37:16.611Z" }, - { url = "https://files.pythonhosted.org/packages/60/b1/05cd5e697c00cd46d7791915f571b38c8531f714832eff2c5e34537c49ee/rapidfuzz-3.13.0-cp313-cp313-win_arm64.whl", hash = "sha256:3f32f15bacd1838c929b35c84b43618481e1b3d7a61b5ed2db0291b70ae88b53", size = 858976, upload-time = "2025-04-03T20:37:19.336Z" }, -] [[package]] name = "ruff" @@ -818,12 +693,6 @@ dependencies = [ ] sdist = { url = "https://files.pythonhosted.org/packages/16/dd/acdd527c1d890c8f852cc2af644aa6c160974e66631289420aa871b05e65/winrt_runtime-3.2.1.tar.gz", hash = "sha256:c8dca19e12b234ae6c3dadf1a4d0761b51e708457492c13beb666556958801ea", size = 21721, upload-time = "2025-06-06T14:40:27.593Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/d3/54/3dd06f2341fab6abb06588a16b30e0b213b0125be7b79dafc3bdba3b334a/winrt_runtime-3.2.1-cp312-cp312-win32.whl", hash = "sha256:762b3d972a2f7037f7db3acbaf379dd6d8f6cda505f71f66c6b425d1a1eae2f1", size = 210090, upload-time = "2025-06-06T06:44:08.151Z" }, - { url = "https://files.pythonhosted.org/packages/ca/a1/1d7248d5c62ccbea5f3e0da64ca4529ce99c639c3be2485b6ed709f5c740/winrt_runtime-3.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:06510db215d4f0dc45c00fbb1251c6544e91742a0ad928011db33b30677e1576", size = 241391, upload-time = "2025-06-06T06:44:09.442Z" }, - { url = "https://files.pythonhosted.org/packages/8a/ae/6a205d8dafc79f7c242be7f940b1e0c1971fd64ab3079bda4b514aa3d714/winrt_runtime-3.2.1-cp312-cp312-win_arm64.whl", hash = "sha256:14562c29a087ccad38e379e585fef333e5c94166c807bdde67b508a6261aa195", size = 415242, upload-time = "2025-06-06T06:44:10.407Z" }, - { url = "https://files.pythonhosted.org/packages/79/d4/1a555d8bdcb8b920f8e896232c82901cc0cda6d3e4f92842199ae7dff70a/winrt_runtime-3.2.1-cp313-cp313-win32.whl", hash = "sha256:44e2733bc709b76c554aee6c7fe079443b8306b2e661e82eecfebe8b9d71e4d1", size = 210022, upload-time = "2025-06-06T06:44:11.767Z" }, - { url = "https://files.pythonhosted.org/packages/aa/24/2b6e536ca7745d788dfd17a2ec376fa03a8c7116dc638bb39b035635484f/winrt_runtime-3.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:3c1fdcaeedeb2920dc3b9039db64089a6093cad2be56a3e64acc938849245a6d", size = 241349, upload-time = "2025-06-06T06:44:12.661Z" }, - { url = "https://files.pythonhosted.org/packages/d4/7f/6d72973279e2929b2a71ed94198ad4a5d63ee2936e91a11860bf7b431410/winrt_runtime-3.2.1-cp313-cp313-win_arm64.whl", hash = "sha256:28f3dab083412625ff4d2b46e81246932e6bebddf67bea7f05e01712f54e6159", size = 415126, upload-time = "2025-06-06T06:44:13.702Z" }, { url = "https://files.pythonhosted.org/packages/c8/87/88bd98419a9da77a68e030593fee41702925a7ad8a8aec366945258cbb31/winrt_runtime-3.2.1-cp314-cp314-win32.whl", hash = "sha256:9b6298375468ac2f6815d0c008a059fc16508c8f587e824c7936ed9216480dad", size = 210257, upload-time = "2025-09-20T07:06:41.054Z" }, { url = "https://files.pythonhosted.org/packages/87/85/e5c2a10d287edd9d3ee8dc24bf7d7f335636b92bf47119768b7dd2fd1669/winrt_runtime-3.2.1-cp314-cp314-win_amd64.whl", hash = "sha256:e36e587ab5fd681ee472cd9a5995743f75107a1a84d749c64f7e490bc86bc814", size = 241873, upload-time = "2025-09-20T07:06:42.059Z" }, { url = "https://files.pythonhosted.org/packages/52/2a/eb9e78397132175f70dd51dfa4f93e489c17d6b313ae9dce60369b8d84a7/winrt_runtime-3.2.1-cp314-cp314-win_arm64.whl", hash = "sha256:35d6241a2ebd5598e4788e69768b8890ee1eee401a819865767a1fbdd3e9a650", size = 416222, upload-time = "2025-09-20T07:06:43.376Z" }, @@ -838,12 +707,6 @@ dependencies = [ ] sdist = { url = "https://files.pythonhosted.org/packages/0c/55/098ce7ea0679efcc1298b269c48768f010b6c68f90c588f654ec874c8a74/winrt_windows_foundation-3.2.1.tar.gz", hash = "sha256:ad2f1fcaa6c34672df45527d7c533731fdf65b67c4638c2b4aca949f6eec0656", size = 30485, upload-time = "2025-06-06T14:41:53.344Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/f3/f8/495e304ddedd5ff2f196efbde906265cb75ade4d79e2937837f72ef654a0/winrt_windows_foundation-3.2.1-cp312-cp312-win32.whl", hash = "sha256:867642ccf629611733db482c4288e17b7919f743a5873450efb6d69ae09fdc2b", size = 112169, upload-time = "2025-06-06T07:11:01.438Z" }, - { url = "https://files.pythonhosted.org/packages/9b/5e/b5059e4ece095351c496c9499783130c302d25e353c18031d5231b1b3b3c/winrt_windows_foundation-3.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:45550c5b6c2125cde495c409633e6b1ea5aa1677724e3b95eb8140bfccbe30c9", size = 118668, upload-time = "2025-06-06T07:11:02.475Z" }, - { url = "https://files.pythonhosted.org/packages/a5/70/acbcb3ef07b1b67e2de4afab9176a5282cfd775afd073efe6828dfc65ace/winrt_windows_foundation-3.2.1-cp312-cp312-win_arm64.whl", hash = "sha256:94f4661d71cb35ebc52be7af112f2eeabdfa02cb05e0243bf9d6bd2cafaa6f37", size = 109671, upload-time = "2025-06-06T07:11:03.538Z" }, - { url = "https://files.pythonhosted.org/packages/7b/71/5e87131e4aecc8546c76b9e190bfe4e1292d028bda3f9dd03b005d19c76c/winrt_windows_foundation-3.2.1-cp313-cp313-win32.whl", hash = "sha256:3998dc58ed50ecbdbabace1cdef3a12920b725e32a5806d648ad3f4829d5ba46", size = 112184, upload-time = "2025-06-06T07:11:04.459Z" }, - { url = "https://files.pythonhosted.org/packages/ba/7f/8d5108461351d4f6017f550af8874e90c14007f9122fa2eab9f9e0e9b4e1/winrt_windows_foundation-3.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:6e98617c1e46665c7a56ce3f5d28e252798416d1ebfee3201267a644a4e3c479", size = 118672, upload-time = "2025-06-06T07:11:05.55Z" }, - { url = "https://files.pythonhosted.org/packages/44/f5/2edf70922a3d03500dab17121b90d368979bd30016f6dbca0d043f0c71f1/winrt_windows_foundation-3.2.1-cp313-cp313-win_arm64.whl", hash = "sha256:2a8c1204db5c352f6a563130a5a41d25b887aff7897bb677d4ff0b660315aad4", size = 109673, upload-time = "2025-06-06T07:11:06.398Z" }, { url = "https://files.pythonhosted.org/packages/e3/0a/d77346e39fe0c81f718cde49f83fe77c368c0e14c6418f72dfa1e7ef22d0/winrt_windows_foundation-3.2.1-cp314-cp314-win32.whl", hash = "sha256:35e973ab3c77c2a943e139302256c040e017fd6ff1a75911c102964603bba1da", size = 114590, upload-time = "2025-09-20T07:11:49.97Z" }, { url = "https://files.pythonhosted.org/packages/a1/56/4d2b545bea0f34f68df6d4d4ca22950ff8a935497811dccdc0ca58737a05/winrt_windows_foundation-3.2.1-cp314-cp314-win_amd64.whl", hash = "sha256:a22a7ebcec0d262e60119cff728f32962a02df60471ded8b2735a655eccc0ef5", size = 122148, upload-time = "2025-09-20T07:11:50.826Z" }, { url = "https://files.pythonhosted.org/packages/ed/ed/b9d3a11cac73444c0a3703200161cd7267dab5ab85fd00e1f965526e74a8/winrt_windows_foundation-3.2.1-cp314-cp314-win_arm64.whl", hash = "sha256:3be7fbae829b98a6a946db4fbaf356b11db1fbcbb5d4f37e7a73ac6b25de8b87", size = 114360, upload-time = "2025-09-20T07:11:51.626Z" }, @@ -858,12 +721,6 @@ dependencies = [ ] sdist = { url = "https://files.pythonhosted.org/packages/30/e5/781e29e2c459280d600009c1a1f11f03e83896a515977ccf7ddc92f8b501/winrt_windows_graphics-3.2.1.tar.gz", hash = "sha256:7f40ce7770ebb45319f9bb3d9104e58b1f20cdf3c33d6d0540e59a2ae752b674", size = 7776, upload-time = "2025-06-06T14:42:05.859Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/10/4e/e74fc8b4ef39ed45eeaf99741c635ba874a42b54727cbd5676363e1e2c32/winrt_windows_graphics-3.2.1-cp312-cp312-win32.whl", hash = "sha256:e8fabdc3d24177f235d4533afac8ec28d1a107ce8035e4db6f0775ef8f24b23d", size = 21595, upload-time = "2025-06-06T07:14:56.73Z" }, - { url = "https://files.pythonhosted.org/packages/22/d9/fec112705242c8ca8a6a09bbed69098fbbae7486fca55ce0721b8b34ac67/winrt_windows_graphics-3.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:d1a414f29c87fba8036effedd9758d728ab2e899885ab629f07a88b43201f862", size = 22489, upload-time = "2025-06-06T07:14:57.446Z" }, - { url = "https://files.pythonhosted.org/packages/15/98/c1f2c6d82a3977308e6c425a51403b7e381c8f89341d2f85750f305ff170/winrt_windows_graphics-3.2.1-cp312-cp312-win_arm64.whl", hash = "sha256:ae928a4305be8f1b28ecf3498e51d60ec235839ac1263421e4a77daeefda9d27", size = 21111, upload-time = "2025-06-06T07:14:58.17Z" }, - { url = "https://files.pythonhosted.org/packages/41/36/bb171de5f4ac04e6a056cb7ab6e52a62ae4a422f1b2ee0a52027c18bcd61/winrt_windows_graphics-3.2.1-cp313-cp313-win32.whl", hash = "sha256:624bc74a18f2b97ddbf37ff75bfc7f9e77fec3f7ad20ccf066a7ab740cadd9b7", size = 21600, upload-time = "2025-06-06T07:14:58.909Z" }, - { url = "https://files.pythonhosted.org/packages/03/0f/fe7dbda5220fd4515057e999cb892d1416f543643feef6f15553a918c149/winrt_windows_graphics-3.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:12c5dec9d17d2b7605da0025112ef57d796606e8d01c3d1215d94a85c85f3c83", size = 22493, upload-time = "2025-06-06T07:14:59.657Z" }, - { url = "https://files.pythonhosted.org/packages/1b/6a/a53faf64a6061e4fe89855fcc86104db004e490e0c78a0cfd7fd614b7339/winrt_windows_graphics-3.2.1-cp313-cp313-win_arm64.whl", hash = "sha256:191992bb509c2b1b0061e253390d430d05b8108a424d13d7333764d1ca92eae5", size = 21119, upload-time = "2025-06-06T07:15:00.387Z" }, { url = "https://files.pythonhosted.org/packages/47/40/5973a4386d8d8178aca76f408f8452d4f7f87a750596677a5ef656a5b134/winrt_windows_graphics-3.2.1-cp314-cp314-win32.whl", hash = "sha256:4e25d9bf0c17b20e155e3e24fdbda36577820406163c0e86b935a5208c641d76", size = 22246, upload-time = "2025-09-20T07:12:34.442Z" }, { url = "https://files.pythonhosted.org/packages/73/7a/9d3b8b9c24f730a46f9e7061d48f24b15fbb5cef667ca06f37e50c653463/winrt_windows_graphics-3.2.1-cp314-cp314-win_amd64.whl", hash = "sha256:e42102000cc86d96a65ca18f0b16f65f2f7337a651ac5abe17b55614ffe67045", size = 22305, upload-time = "2025-09-20T07:12:35.17Z" }, { url = "https://files.pythonhosted.org/packages/dc/4c/25da5812d1ee3dc00c7df8aabc2bcb114b5eae33a4b22a794c09275013e6/winrt_windows_graphics-3.2.1-cp314-cp314-win_arm64.whl", hash = "sha256:6bc9c1aa3c21fd6743783123d9556cefcb4892f80222be09b44628b5885a81d3", size = 21724, upload-time = "2025-09-20T07:12:35.898Z" }, @@ -878,12 +735,6 @@ dependencies = [ ] sdist = { url = "https://files.pythonhosted.org/packages/4f/32/751884ce5a857f363a6e854d56efd6d707e331585440d2db95ff88743f58/winrt_windows_graphics_capture-3.2.1.tar.gz", hash = "sha256:c4c3a4bc2c87062e4a09a42b7f6f1411f201ca04142954b1223dc46c72240efd", size = 10410, upload-time = "2025-06-06T14:42:06.623Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/b1/a1/51c270092dc3e6551e7c6fe64dcc2732d8b26ce3e51cf6fbdaba05a8493e/winrt_windows_graphics_capture-3.2.1-cp312-cp312-win32.whl", hash = "sha256:3b8db5b5e23520e40ea2d0368b039de371b43dbb842ac9cd2b7af7e5eb29aa69", size = 51771, upload-time = "2025-06-06T07:15:08.589Z" }, - { url = "https://files.pythonhosted.org/packages/90/65/d7f00411705ae2dad68c3187e94c508601e523dbba4ceb94f7d29f07a07a/winrt_windows_graphics_capture-3.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:122412adb1f2c025d38beeb1b8b15a3e81397d79cd72c5e97853c5437e26922f", size = 55218, upload-time = "2025-06-06T07:15:09.418Z" }, - { url = "https://files.pythonhosted.org/packages/f9/ad/4c6ec2dc926df7f6885fc31f0470a8899a6befc5acb30c1dbd640cb5189a/winrt_windows_graphics_capture-3.2.1-cp312-cp312-win_arm64.whl", hash = "sha256:7f1d7b298305d187b369aa9e2afd1ffa1c799fb31424a55a6a297a8ef5bb79a0", size = 50429, upload-time = "2025-06-06T07:15:10.242Z" }, - { url = "https://files.pythonhosted.org/packages/63/67/eec7c4429422280d1b6ce61deb1cb059978b46a6bed08d81493c3c32ac4a/winrt_windows_graphics_capture-3.2.1-cp313-cp313-win32.whl", hash = "sha256:c16ad77cc667de2721c34ba00e4fb82427fdf960e87dd7c3958bb3789de0c412", size = 51782, upload-time = "2025-06-06T07:15:11.061Z" }, - { url = "https://files.pythonhosted.org/packages/00/6d/5e335620fbabc6b634e56d31952477580e2e121cb7c3f3c98dff9c74bb3e/winrt_windows_graphics_capture-3.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:1e1f844966795b4fbae10ff15d1d860335d88ee8a5224a2d55cbbb32dfde8155", size = 55226, upload-time = "2025-06-06T07:15:11.863Z" }, - { url = "https://files.pythonhosted.org/packages/02/84/18362c5cee5e3fceb6d7bfd2df31a9be3bc1cb7dda169951a5d59a65255a/winrt_windows_graphics_capture-3.2.1-cp313-cp313-win_arm64.whl", hash = "sha256:b0aff51d0ea9a670236b4051292a8057bdc52b00753b03771986a7555a104878", size = 50435, upload-time = "2025-06-06T07:15:12.678Z" }, { url = "https://files.pythonhosted.org/packages/c1/58/26897b41fcae2a11fb8f6f084ef0157a620241385bfbd0c31fa943e5f035/winrt_windows_graphics_capture-3.2.1-cp314-cp314-win32.whl", hash = "sha256:98bf61e1a33a2057238b714947c227ac04c12b2eba570fde24f7f9be28cd18e2", size = 53146, upload-time = "2025-09-20T07:12:36.594Z" }, { url = "https://files.pythonhosted.org/packages/db/9f/25ad6cc9db910afcb2328857498ae8b2dd193770659d70243b7dfe13a3e3/winrt_windows_graphics_capture-3.2.1-cp314-cp314-win_amd64.whl", hash = "sha256:b916af8d8a4f9f14ecdef5e58b8f3700f37e060e0ca125958332e9601ac5cc58", size = 56258, upload-time = "2025-09-20T07:12:37.387Z" }, { url = "https://files.pythonhosted.org/packages/81/9f/86979748cb6339f8bcd65252c4ec5554401cad378a860f7803617d633d0a/winrt_windows_graphics_capture-3.2.1-cp314-cp314-win_arm64.whl", hash = "sha256:006eb14c561ee31cc1baa7fb4fab3adce15b885e5a30e1cb0c85285e8ec7c9a1", size = 52023, upload-time = "2025-09-20T07:12:38.461Z" }, @@ -895,12 +746,6 @@ version = "3.2.1" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/9a/d7/b686bf6aab3001d5a57864211556ca3a5f500c32f70b33c5baa22024985c/winrt_windows_graphics_capture_interop-3.2.1.tar.gz", hash = "sha256:4b7dba7348c5fc6f7cc691bc4ec987e7c234a0a63bc5f47285e947096518d6bc", size = 4223, upload-time = "2025-06-06T14:42:07.201Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/d3/e7/1ff94dd7e505fc3f0af03b1c4a39b512b172cc2af4e65285583f41f86803/winrt_windows_graphics_capture_interop-3.2.1-cp312-cp312-win32.whl", hash = "sha256:d7999fde98efffd7c2381735cf976b863ae8ade9ef7e9de8d83a0c3d2f9f1749", size = 16821, upload-time = "2025-06-06T07:15:20.795Z" }, - { url = "https://files.pythonhosted.org/packages/f7/dc/fc3141dcefb31fde6c111f790017dfa94dc13128ddda3fdb2257d460287a/winrt_windows_graphics_capture_interop-3.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:82e5a9266b8392c6bc5c04c022f9704233b7bcb74f3b54383fb2b9603d1101c6", size = 17651, upload-time = "2025-06-06T07:15:21.579Z" }, - { url = "https://files.pythonhosted.org/packages/c7/3b/28b1c9a37bde0af93d24450ef5f0b890b41daacd5116efe88f9aa8847b52/winrt_windows_graphics_capture_interop-3.2.1-cp312-cp312-win_arm64.whl", hash = "sha256:df49add88e670b2a8ed109000de152545e8712ca63e2a0f49f6673e1ceee828c", size = 13961, upload-time = "2025-06-06T07:15:22.333Z" }, - { url = "https://files.pythonhosted.org/packages/e6/69/6e9cbf66bcba04b4ae788479fa2946ff319d3e95bebc585ae89807ac9715/winrt_windows_graphics_capture_interop-3.2.1-cp313-cp313-win32.whl", hash = "sha256:a04e8eebd9d60f8458448ca5e6a36d3a2dab04ab4234a497d630f50ee7b226c3", size = 16820, upload-time = "2025-06-06T07:15:23.036Z" }, - { url = "https://files.pythonhosted.org/packages/d8/98/a21a36ee623aa55d4016f775a98e6576f1506b65187889252188c9da9df4/winrt_windows_graphics_capture_interop-3.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:7b554e3bf079aab01f4171923d43c86622202644c7d41c4da7577dd05cdcea4b", size = 17649, upload-time = "2025-06-06T07:15:23.754Z" }, - { url = "https://files.pythonhosted.org/packages/6f/fd/6c73d5f9561d04f9fde90800ededd7f1849e1534285de087b0c12389e9f4/winrt_windows_graphics_capture_interop-3.2.1-cp313-cp313-win_arm64.whl", hash = "sha256:51a8a89b08a5a19305c39ee54d390db2965df41f63a31f182186cb1f2e3e4e75", size = 13962, upload-time = "2025-06-06T07:15:24.836Z" }, { url = "https://files.pythonhosted.org/packages/4f/93/ff9da5cfc4365e74a2a882791ef541dc0f7279f73c3522d5df0c1210349c/winrt_windows_graphics_capture_interop-3.2.1-cp314-cp314-win32.whl", hash = "sha256:43da1bb0a2f44a08bfe772bedf9a96f0ecf79d0de24ef84e664f95073bbabe70", size = 17109, upload-time = "2025-09-20T07:12:39.512Z" }, { url = "https://files.pythonhosted.org/packages/9d/00/7ed860a4ea9ff26b951b940c04d2a82b2d492e814b02cf76e53c9847ecf5/winrt_windows_graphics_capture_interop-3.2.1-cp314-cp314-win_amd64.whl", hash = "sha256:f2dc50cc4b2d8a8b35a886b34e94d36586b7ca832ff338be35d5f95ec76b1fba", size = 17990, upload-time = "2025-09-20T07:12:40.211Z" }, { url = "https://files.pythonhosted.org/packages/b7/c7/9098987e851136aec6903a77bcf3c578e49219671f42940c3ca373a5082d/winrt_windows_graphics_capture_interop-3.2.1-cp314-cp314-win_arm64.whl", hash = "sha256:07e3d033c89b1fb3b55e32c23c0f2c17b4513e56d5fa28d335609fb031da2347", size = 14573, upload-time = "2025-09-20T07:12:41.015Z" }, @@ -915,12 +760,6 @@ dependencies = [ ] sdist = { url = "https://files.pythonhosted.org/packages/dc/86/2f94a297db367b78c747b88da61551e59b1e62c553882018883110ec7bee/winrt_windows_graphics_directx-3.2.1.tar.gz", hash = "sha256:3e7e875055644151eedbc556806d90e8c53ef6375a6c98669a9ddacbe0953586", size = 4503, upload-time = "2025-06-06T14:42:07.786Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/94/02/9ae92800e52726be22f1e6de753e2f6870d5e25e6d0f60a01389c4362154/winrt_windows_graphics_directx-3.2.1-cp312-cp312-win32.whl", hash = "sha256:2bf1125298425a2db855738859d69a118de8686871102d0aec3757d6f26ae2f1", size = 9047, upload-time = "2025-06-06T07:15:33.287Z" }, - { url = "https://files.pythonhosted.org/packages/b5/34/8ceb75ff321d7426330284c1fe93698b86f96142dc77c5720ad06b62eca0/winrt_windows_graphics_directx-3.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:e8715444fac6db0fcf81941de362b83a9690ca6ea74d5c1d404e009b23500221", size = 9272, upload-time = "2025-06-06T07:15:33.947Z" }, - { url = "https://files.pythonhosted.org/packages/74/8e/5378c03d6f4305bc87e021e91db464093aa9cfa21fb90bfda5bf485eb7ed/winrt_windows_graphics_directx-3.2.1-cp312-cp312-win_arm64.whl", hash = "sha256:9dd9afc52455f74efed609cf569c1b9aa0ceeeb06148d3e8f6d8f770e2863d13", size = 8061, upload-time = "2025-06-06T07:15:34.937Z" }, - { url = "https://files.pythonhosted.org/packages/5d/61/d861f4e9a19562090d3ecf5b049fbb2229e95cdf6fc9c35c1ce3288fcbf4/winrt_windows_graphics_directx-3.2.1-cp313-cp313-win32.whl", hash = "sha256:57226ba8b8cb00cc08487f041565f807a2ab5009bfbdc89709438ae78479cc84", size = 9049, upload-time = "2025-06-06T07:15:35.617Z" }, - { url = "https://files.pythonhosted.org/packages/4b/cd/62a215a28f0307267cca0a82beca8d2d3f80827a68af1c8db795a7784511/winrt_windows_graphics_directx-3.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:0b08542e65ee15fce3fe2fe68056b73bdfc96299efa3e1ec97d4297fd5eb6374", size = 9272, upload-time = "2025-06-06T07:15:36.289Z" }, - { url = "https://files.pythonhosted.org/packages/49/ce/1e2aefd598758b0e7da059235e227287ab5124f90c9328a28e1e16c961a6/winrt_windows_graphics_directx-3.2.1-cp313-cp313-win_arm64.whl", hash = "sha256:b2cd39a3a920cc4db89506a7f9eeb34ef01e55f05a76c3a217a5d94441728755", size = 8062, upload-time = "2025-06-06T07:15:36.945Z" }, { url = "https://files.pythonhosted.org/packages/34/ac/b4373e64ef52ec4d404bf9b6aa60883b7358080ee686aad3bee2e42a8c75/winrt_windows_graphics_directx-3.2.1-cp314-cp314-win32.whl", hash = "sha256:a8a375fd300987133b340f900d3bd16b255198590d202165002900b97e8bd211", size = 9219, upload-time = "2025-09-20T07:12:41.649Z" }, { url = "https://files.pythonhosted.org/packages/1a/87/65d7e502cfea09c4ad8622bea5bc298f2229b8e59abacd2a9dc26777383e/winrt_windows_graphics_directx-3.2.1-cp314-cp314-win_amd64.whl", hash = "sha256:be70b38eed306acdcf1952ce9072f7b70265b4392530c8d3613c333b90ae76fe", size = 9471, upload-time = "2025-09-20T07:12:42.29Z" }, { url = "https://files.pythonhosted.org/packages/35/ae/61d2823553f5cfcfce1cbaf712ee9167e7fcab5773e6186cdfa4e7d34871/winrt_windows_graphics_directx-3.2.1-cp314-cp314-win_arm64.whl", hash = "sha256:fac498898cfe6a8f23e9053f312877a36938baf2df50174159d0d3aa802dfa4a", size = 8432, upload-time = "2025-09-20T07:12:43.058Z" }, @@ -935,12 +774,6 @@ dependencies = [ ] sdist = { url = "https://files.pythonhosted.org/packages/2d/d3/23933ea9f39952e4ae679eaa9eef34dec05dbdd35e2eb192dce5fc4fff8f/winrt_windows_graphics_directx_direct3d11-3.2.1.tar.gz", hash = "sha256:157618f9d5071ff422098472fa96524fe9385a39776ff4483d5a66a510a8114c", size = 8656, upload-time = "2025-06-06T14:42:08.388Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/cc/59/a95b0551edb2670cbf90a1c513fb6f73b87129c6982799603ff8a1811830/winrt_windows_graphics_directx_direct3d11-3.2.1-cp312-cp312-win32.whl", hash = "sha256:1970e3caeccab72e2d008442fe857bc246d9632327d0e124cd63d672d8ab9989", size = 28405, upload-time = "2025-06-06T07:15:45.316Z" }, - { url = "https://files.pythonhosted.org/packages/09/92/99dea8ccd2e5ec05da85804e21cbe826db0c9c7b1700fb835648a01f32bc/winrt_windows_graphics_directx_direct3d11-3.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:7f02c3b9d952afb283901177c9328b892320c6400760ea0219afa894be93cfd0", size = 29592, upload-time = "2025-06-06T07:15:46.5Z" }, - { url = "https://files.pythonhosted.org/packages/22/9a/a96e7b79d33395d2d805f673d2d81f3d127cf7c04a007b8556d9beb848aa/winrt_windows_graphics_directx_direct3d11-3.2.1-cp312-cp312-win_arm64.whl", hash = "sha256:16a4132bcd48e562f19273aac28d88034fa2b0a1e61b407566b83a1616d7e481", size = 25914, upload-time = "2025-06-06T07:15:47.208Z" }, - { url = "https://files.pythonhosted.org/packages/7a/ab/4dd0b24e981730b6064566d93a2f288b992f7339c10a814d8eee0f809245/winrt_windows_graphics_directx_direct3d11-3.2.1-cp313-cp313-win32.whl", hash = "sha256:0227d16a5bdeb83f141f79b83777c8fe1b025a91ed3061fc24c7512697b4bc9f", size = 28412, upload-time = "2025-06-06T07:15:48.179Z" }, - { url = "https://files.pythonhosted.org/packages/51/fc/5edbc732140add0b143351c655ca9d17ace0a4a6c7d6aa1e51703283c99c/winrt_windows_graphics_directx_direct3d11-3.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:0efe0b58fe81b0071b80aaeb1425f019dd67ca720db9b57d3bc1adb6411fc344", size = 29599, upload-time = "2025-06-06T07:15:48.893Z" }, - { url = "https://files.pythonhosted.org/packages/bb/8e/f9d920ea791b5baa7f0852b065629a0d19c91798d536c334db52c112ec4f/winrt_windows_graphics_directx_direct3d11-3.2.1-cp313-cp313-win_arm64.whl", hash = "sha256:efb63b3fe889bf35f7b6cd9d9010ca65600430e40c651a0d6fad66e00eb82cf4", size = 25915, upload-time = "2025-06-06T07:15:50.477Z" }, { url = "https://files.pythonhosted.org/packages/69/83/8a5bb76eebba5ecf1280d248833978cdec0c6bfa6906e0259280f86018d2/winrt_windows_graphics_directx_direct3d11-3.2.1-cp314-cp314-win32.whl", hash = "sha256:baad0bb5804b402101b98ed45d4a17bf1c74f7997a9f41081484bf80c2d71f5b", size = 29046, upload-time = "2025-09-20T07:12:43.998Z" }, { url = "https://files.pythonhosted.org/packages/04/b3/d73c3e38b51575ae0b5e673e86cf9a6456279952015b5300f2c4918aee74/winrt_windows_graphics_directx_direct3d11-3.2.1-cp314-cp314-win_amd64.whl", hash = "sha256:bed68a6c69f39c325bed675e1be3668bd05005a671df34a603bb8973a0b7faf2", size = 30302, upload-time = "2025-09-20T07:12:45.023Z" }, { url = "https://files.pythonhosted.org/packages/38/62/1e0070b520c7310917ea6be09a710971887b0a6e53ac9c236433adccd62b/winrt_windows_graphics_directx_direct3d11-3.2.1-cp314-cp314-win_arm64.whl", hash = "sha256:2f2b4de7f7a4fbda4d18caacf569c9c4513d79768f88f160cbed3f1917e6dbc2", size = 26679, upload-time = "2025-09-20T07:12:46.109Z" }, @@ -952,12 +785,6 @@ version = "3.2.1" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/f7/8a/bb46332a21269ff8deadf01a9fd3c63832f8302d1530d63a3dd4eb4c5a54/winrt_windows_graphics_directx_direct3d11_interop-3.2.1.tar.gz", hash = "sha256:ed9eac3a2e87293bb6f64fddd248de074f8ba1b889f6458218671ae573f2dc45", size = 4651, upload-time = "2025-06-06T14:42:08.934Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/5d/5e/13dabc4f3eab7a3e362260a880c2dee2fe8d2ed64c69ae8c79d54dd602d5/winrt_windows_graphics_directx_direct3d11_interop-3.2.1-cp312-cp312-win32.whl", hash = "sha256:f6edb6cd0970c978c1917df81fbbb8f56b5980d7a27ca2c51cdc2232bff301f4", size = 13880, upload-time = "2025-06-06T07:15:57.712Z" }, - { url = "https://files.pythonhosted.org/packages/95/63/4ae8d627ddf19f13ddd6e3a7d7f90252c92e3c72fbe8789ea295ae3893a0/winrt_windows_graphics_directx_direct3d11_interop-3.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:a939a111ad8d7e79732ac9182b9a3df05ccace753e2d20f9f41f8ffd1cc39983", size = 13970, upload-time = "2025-06-06T07:15:58.426Z" }, - { url = "https://files.pythonhosted.org/packages/3d/44/0b48d43530938c155f5b61b5c73f5ef958cc21d458d009e61e5b2df5d78e/winrt_windows_graphics_directx_direct3d11_interop-3.2.1-cp312-cp312-win_arm64.whl", hash = "sha256:edf3e25ef0ccd0b3698ad635d8c183cb68ffb9c7a4e8890f355eef963f2c8e19", size = 12959, upload-time = "2025-06-06T07:15:59.114Z" }, - { url = "https://files.pythonhosted.org/packages/3b/29/7158ef523310ba3afc90a4611b93e6fa0c9ceb9cb04f027a349aeee27d5e/winrt_windows_graphics_directx_direct3d11_interop-3.2.1-cp313-cp313-win32.whl", hash = "sha256:793bbd9cd968e4b43c6539fd8e9739111263294a732abf082435b0b9e480d9fa", size = 13884, upload-time = "2025-06-06T07:15:59.81Z" }, - { url = "https://files.pythonhosted.org/packages/5f/6e/ccfa34abeeb17867a669206b3ed93816b595a75bae9f2caf7c13d5f5ba33/winrt_windows_graphics_directx_direct3d11_interop-3.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:164172b693085179ba40f208c4ced8a433ca46f8446919d8a39b69068590f262", size = 13974, upload-time = "2025-06-06T07:16:00.505Z" }, - { url = "https://files.pythonhosted.org/packages/42/0f/3fe809f0b842c563c2fcc4d5d3197e1bfa35c16084606cdc359c1e891fd8/winrt_windows_graphics_directx_direct3d11_interop-3.2.1-cp313-cp313-win_arm64.whl", hash = "sha256:36fd4f7a1f598b05af444814b717cb81db4b193c3677f87d93076e380bf4dbdb", size = 12960, upload-time = "2025-06-06T07:16:01.194Z" }, { url = "https://files.pythonhosted.org/packages/ff/3c/e06bb5bd52af009f11e777a8c7f337f025d68f92c79257b202aa0e344366/winrt_windows_graphics_directx_direct3d11_interop-3.2.1-cp314-cp314-win32.whl", hash = "sha256:e0d0010c5fb60f6f92e39620242a38c406661a231b5b4d67877574963b3336bc", size = 14237, upload-time = "2025-09-20T07:12:47.027Z" }, { url = "https://files.pythonhosted.org/packages/77/e3/e918c97a2dd8f45088afa6718ac97eeaf45bf12c0a5ac7135a6d246ad9a5/winrt_windows_graphics_directx_direct3d11_interop-3.2.1-cp314-cp314-win_amd64.whl", hash = "sha256:6476d55fcddd82ecf55cad9d1b485e6262ebd0c2757a85febde56dbd953513d7", size = 14277, upload-time = "2025-09-20T07:12:47.731Z" }, { url = "https://files.pythonhosted.org/packages/76/12/5940ef9c703ec3e6aacf7d225044defd0801a03c5638a9cebd763eaac696/winrt_windows_graphics_directx_direct3d11_interop-3.2.1-cp314-cp314-win_arm64.whl", hash = "sha256:9fe080c13aec6089e35d0411917d3310b32a6650ac5f413ab9c4ef750da52426", size = 13468, upload-time = "2025-09-20T07:12:48.422Z" }, @@ -972,12 +799,6 @@ dependencies = [ ] sdist = { url = "https://files.pythonhosted.org/packages/3c/90/14655f93d5cc4224ae6c44866c36928926b54c8fe7ae4a465b10332bd935/winrt_windows_graphics_imaging-3.2.1.tar.gz", hash = "sha256:1e0bdb08625b0ce144a2e76dd5ed86605906e41196df92d660c8f87a993a1513", size = 26786, upload-time = "2025-06-06T14:42:11.95Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/54/00/a1f1e4af34305738290c46170a080f57340722d3a79321f6ec89ad564930/winrt_windows_graphics_imaging-3.2.1-cp312-cp312-win32.whl", hash = "sha256:9694d7753b88f8ea4ee85564208e534e5d15474e88709aba99d16d783b633de2", size = 133287, upload-time = "2025-06-06T07:17:08.58Z" }, - { url = "https://files.pythonhosted.org/packages/3a/10/8cce4bffff8cad606623ea27adf711a0662881f2bca6207f12fd391d5eb8/winrt_windows_graphics_imaging-3.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:066038a96df12c23d6da6a591472436ada50103f575d8a1f802778a044f668c8", size = 142457, upload-time = "2025-06-06T07:17:09.439Z" }, - { url = "https://files.pythonhosted.org/packages/68/ac/4cdf2a853258567ce851331a4c40aea960c315851de8cedd88380d8abf0c/winrt_windows_graphics_imaging-3.2.1-cp312-cp312-win_arm64.whl", hash = "sha256:5850bbfa0ad87dd138fbd2c3088d0641b34393c0d60d4679296596574199d210", size = 136036, upload-time = "2025-06-06T07:17:10.366Z" }, - { url = "https://files.pythonhosted.org/packages/fa/7a/3e2b38e3d5526981918a64b8e8970c10a86ad2e3fe142f2c6313349b7318/winrt_windows_graphics_imaging-3.2.1-cp313-cp313-win32.whl", hash = "sha256:9bcff883e1bb9819a651ad1151779b30fd3c7ed838e1f59e894984b9df54e54b", size = 133272, upload-time = "2025-06-06T07:17:11.255Z" }, - { url = "https://files.pythonhosted.org/packages/c4/f9/7bdb36146c7a28856d5a81f65289d5d74d7ba1f2192ef4b1414b24834425/winrt_windows_graphics_imaging-3.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:7026df3274e20f72678b5d1a1425358004d9fe4316b775e413123841936345a5", size = 142428, upload-time = "2025-06-06T07:17:12.212Z" }, - { url = "https://files.pythonhosted.org/packages/4c/0c/5fac538512c42c9e3b7baa6b2f011d69eb56ec8a508020a8fa1e532f2f35/winrt_windows_graphics_imaging-3.2.1-cp313-cp313-win_arm64.whl", hash = "sha256:a8eb06ba156e65a42ef47bf18d2fc7cd3f558cc72af3b2743fb5f8ef92778117", size = 136049, upload-time = "2025-06-06T07:17:13.093Z" }, { url = "https://files.pythonhosted.org/packages/03/f0/04e7c69a3869c1d5ad8b99ca488a1d2a08485c5bc0cc5952fd096ddc035f/winrt_windows_graphics_imaging-3.2.1-cp314-cp314-win32.whl", hash = "sha256:7e4a41592dc0f7e0275fe46f86d916cc15aa85afde4f08110b6aa19cfbc9265e", size = 138059, upload-time = "2025-09-20T07:13:00.847Z" }, { url = "https://files.pythonhosted.org/packages/ab/1e/69b3d3b221545c0d47498d52e7080c1a791af80140f4fd622e673f5a5bc0/winrt_windows_graphics_imaging-3.2.1-cp314-cp314-win_amd64.whl", hash = "sha256:c9ed3f4805c205e15696993a4ee099ae36ccb4c4cbaa05415e8db1bf71d5ccc6", size = 146894, upload-time = "2025-09-20T07:13:01.764Z" }, { url = "https://files.pythonhosted.org/packages/c4/8c/b4916433e2f4aeb1b7b1850367494593f9c51c9c21c3edc033a8e817db69/winrt_windows_graphics_imaging-3.2.1-cp314-cp314-win_arm64.whl", hash = "sha256:3b7f81a839e4c6a68cddc1ec89b02aa7ed5a8cb8e6f8e669a13a5771439a7568", size = 142316, upload-time = "2025-09-20T07:13:03.415Z" }, From bb190d98dab925275dd6f63ff68c0c1b41a73514 Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Thu, 29 Jan 2026 03:20:48 +0000 Subject: [PATCH 19/31] [autofix.ci] apply automated fixes --- src/capture_method/BitBltCaptureMethod.py | 2 +- src/capture_method/DesktopDuplicationCaptureMethod.py | 2 +- src/hotkeys.py | 2 +- src/menu_bar.py | 2 +- src/split_parser.py | 2 +- src/user_profile.py | 4 ++-- src/utils.py | 2 +- 7 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/capture_method/BitBltCaptureMethod.py b/src/capture_method/BitBltCaptureMethod.py index 9d664602..76d5d23c 100644 --- a/src/capture_method/BitBltCaptureMethod.py +++ b/src/capture_method/BitBltCaptureMethod.py @@ -71,7 +71,7 @@ def get_frame(self) -> MatLike | None: win32con.SRCCOPY, ) image = np.frombuffer(bitmap.GetBitmapBits(True), dtype=np.uint8) - except (win32ui.error, pywintypes.error): + except win32ui.error, pywintypes.error: # Invalid handle or the window was closed while it was being manipulated return None diff --git a/src/capture_method/DesktopDuplicationCaptureMethod.py b/src/capture_method/DesktopDuplicationCaptureMethod.py index 2acfc76e..fc03206b 100644 --- a/src/capture_method/DesktopDuplicationCaptureMethod.py +++ b/src/capture_method/DesktopDuplicationCaptureMethod.py @@ -23,7 +23,7 @@ try: # Test for laptop cross-GPU Desktop Duplication issue d3dshot.create(capture_output="numpy") -except (ModuleNotFoundError, COMError): +except ModuleNotFoundError, COMError: IS_DESKTOP_DUPLICATION_SUPPORTED = False # pyright: ignore[reportConstantRedefinition] else: IS_DESKTOP_DUPLICATION_SUPPORTED = True diff --git a/src/hotkeys.py b/src/hotkeys.py index 84c27218..36d6870f 100644 --- a/src/hotkeys.py +++ b/src/hotkeys.py @@ -114,7 +114,7 @@ def _unhook(hotkey_callback: Callable[[], None] | None): try: if hotkey_callback: keyboard.unhook_key(hotkey_callback) - except (AttributeError, KeyError, ValueError): + except AttributeError, KeyError, ValueError: pass diff --git a/src/menu_bar.py b/src/menu_bar.py index cfd72835..4249e4d8 100644 --- a/src/menu_bar.py +++ b/src/menu_bar.py @@ -139,7 +139,7 @@ def run(self): latest_version, self.check_on_open, ) - except (URLError, KeyError): + except URLError, KeyError: if not self.check_on_open: self._autosplit_ref.show_error_signal.emit(error_messages.check_for_updates) diff --git a/src/split_parser.py b/src/split_parser.py index f69e3439..5a55a5be 100644 --- a/src/split_parser.py +++ b/src/split_parser.py @@ -43,7 +43,7 @@ def __value_from_filename( try: string_value = filename.split(delimiters[0], 1)[1].split(delimiters[1])[0] value = type(default_value)(string_value) - except (IndexError, ValueError): + except IndexError, ValueError: return default_value else: return value diff --git a/src/user_profile.py b/src/user_profile.py index 54efbe9b..ffba5891 100644 --- a/src/user_profile.py +++ b/src/user_profile.py @@ -16,7 +16,7 @@ from utils import auto_split_directory if TYPE_CHECKING: - from typing_extensions import deprecated + from warnings import deprecated from AutoSplit import AutoSplit else: @@ -162,7 +162,7 @@ def __load_settings_from_file(autosplit: AutoSplit, load_settings_file_path: str autosplit.width_spinbox.setValue(autosplit.settings_dict["capture_region"]["width"]) autosplit.height_spinbox.setValue(autosplit.settings_dict["capture_region"]["height"]) autosplit.split_image_folder_input.setText(autosplit.settings_dict["split_image_directory"]) - except (FileNotFoundError, MemoryError, TypeError, tomllib.TOMLDecodeError): + except FileNotFoundError, MemoryError, TypeError, tomllib.TOMLDecodeError: autosplit.show_error_signal.emit(error_messages.invalid_settings) return False diff --git a/src/utils.py b/src/utils.py index 5eea39dd..b04dcabf 100644 --- a/src/utils.py +++ b/src/utils.py @@ -116,7 +116,7 @@ def is_digit(value: str | int | None): return False try: return 0 <= int(value) <= 9 - except (ValueError, TypeError): + except ValueError, TypeError: return False From 7e4d43347a4321985b58584eafc5e09882ab7281 Mon Sep 17 00:00:00 2001 From: Avasam Date: Wed, 28 Jan 2026 22:35:17 -0500 Subject: [PATCH 20/31] small fixes --- .github/workflows/lint-and-build.yml | 7 ++++--- src/capture_method/__init__.py | 15 ++++++--------- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/.github/workflows/lint-and-build.yml b/.github/workflows/lint-and-build.yml index eb0fdc37..20d5a74b 100644 --- a/.github/workflows/lint-and-build.yml +++ b/.github/workflows/lint-and-build.yml @@ -81,9 +81,10 @@ jobs: matrix: os: [windows-latest, windows-11-arm, ubuntu-22.04, ubuntu-22.04-arm] python-version: ["3.14"] + wine-compat: [""] include: - os: windows-latest - wine-compat: true + wine-compat: "-WineCompat" steps: - uses: actions/checkout@v6 # https://github.com/astral-sh/uv/issues/12906#issuecomment-3587439179 @@ -104,7 +105,7 @@ jobs: # endregion - run: scripts/install.ps1 shell: pwsh - - run: "scripts/build.ps1 ${{ matrix.wine-compat && '-WineCompat' || '' }}" + - run: "scripts/build.ps1 ${{ matrix.wine-compat }}" shell: pwsh - name: Add empty profile run: echo "" > dist/settings.toml @@ -121,7 +122,7 @@ jobs: with: name: > AutoSplit v${{ steps.artifact_vars.outputs.AUTOSPLIT_VERSION }} - for ${{ matrix.wine-compat && 'Wine' || steps.artifact_vars.outputs.OS }} + for ${{ steps.artifact_vars.outputs.OS }}${{matrix.wine-compat}} (Python ${{ matrix.python-version }}) path: | dist/AutoSplit* diff --git a/src/capture_method/__init__.py b/src/capture_method/__init__.py index 224f7bc4..9de3f79a 100644 --- a/src/capture_method/__init__.py +++ b/src/capture_method/__init__.py @@ -125,8 +125,10 @@ def get(self, key: CaptureMethodEnum, default: object = None, /): try: # Wine hasn't implemented yet (https://bugs.winehq.org/show_bug.cgi?id=52487) # Keep this check for a while even after it's implemented - win32api.GetProcAddress( - win32api.LoadLibrary("d3d11.dll"), "CreateDirect3D11DeviceFromDXGIDevice" + # TODO: Fix these pywin32 types in typeshed + win32api.GetProcAddress( # pyright: ignore[reportUnknownMemberType] + win32api.LoadLibrary("d3d11.dll"), # pyright: ignore[reportUnknownMemberType, reportArgumentType] + "CreateDirect3D11DeviceFromDXGIDevice", # pyright: ignore[reportArgumentType] ) except win32api.error as exception: if exception.winerror != winerror.ERROR_PROC_NOT_FOUND: @@ -174,17 +176,12 @@ class CameraInfo: def get_input_devices(): if sys.platform == "win32": - from pygrabber.dshow_graph import FilterGraph # noqa: PLC0415 - try: from pygrabber.dshow_graph import FilterGraph # noqa: PLC0415 except OSError as exception: # wine can choke on D3D Device Enumeration if missing directshow - # OSError: [WinError -2147312566] Windows Error 0x80029c4a - # TODO: Check the OS error number and only silence that one - print(exception) - print(exception.errno) - print(exception.winerror) + if exception.winerror != winerror.TYPE_E_CANTLOADLIBRARY: + raise return list[str]() return FilterGraph().get_input_devices() From 5e4b20a1d88e9c2542862b848b5c1405a627a5ed Mon Sep 17 00:00:00 2001 From: Avasam Date: Wed, 28 Jan 2026 22:40:10 -0500 Subject: [PATCH 21/31] add back python-version --- .github/workflows/lint-and-build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/lint-and-build.yml b/.github/workflows/lint-and-build.yml index 20d5a74b..076ca0e5 100644 --- a/.github/workflows/lint-and-build.yml +++ b/.github/workflows/lint-and-build.yml @@ -84,6 +84,7 @@ jobs: wine-compat: [""] include: - os: windows-latest + python-version: ["3.14"] wine-compat: "-WineCompat" steps: - uses: actions/checkout@v6 From be0759280433a39bc6b97f243ab02a5780420a64 Mon Sep 17 00:00:00 2001 From: Avasam Date: Wed, 28 Jan 2026 22:41:21 -0500 Subject: [PATCH 22/31] not array --- .github/workflows/lint-and-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/lint-and-build.yml b/.github/workflows/lint-and-build.yml index 076ca0e5..8b79b0dd 100644 --- a/.github/workflows/lint-and-build.yml +++ b/.github/workflows/lint-and-build.yml @@ -84,7 +84,7 @@ jobs: wine-compat: [""] include: - os: windows-latest - python-version: ["3.14"] + python-version: "3.14" wine-compat: "-WineCompat" steps: - uses: actions/checkout@v6 From f8b027261cedbea3e0136c14d5ca27e78a94595a Mon Sep 17 00:00:00 2001 From: Avasam Date: Wed, 28 Jan 2026 23:07:43 -0500 Subject: [PATCH 23/31] fix build logs --- .github/workflows/lint-and-build.yml | 4 +++- README.md | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/lint-and-build.yml b/.github/workflows/lint-and-build.yml index 8b79b0dd..24e69d3a 100644 --- a/.github/workflows/lint-and-build.yml +++ b/.github/workflows/lint-and-build.yml @@ -132,7 +132,9 @@ jobs: - name: Upload Build logs uses: actions/upload-artifact@v6 with: - name: Build logs for ${{ steps.artifact_vars.outputs.OS }} (Python ${{ matrix.python-version }}) + name: > + Build logs for ${{ steps.artifact_vars.outputs.OS }}${{matrix.wine-compat}} + (Python ${{ matrix.python-version }}) path: | build/AutoSplit/*.toc build/AutoSplit/*.txt diff --git a/README.md b/README.md index d37dd352..caee9c4b 100644 --- a/README.md +++ b/README.md @@ -45,10 +45,11 @@ To understand how to use AutoSplit and how it works in-depth, please read the [t ### Compatibility - Windows 10 and 11. +- Wine 10.1+ (Only supports the BitBlt Capture Method) + - Useful if you want to use Desktop version of LiveSplit on Linux - Linux (still in early development) - Should work on Ubuntu 22.04+ - Wayland is not currently supported - - Running under Wine only supports the BitBlt Capture Method - WSL2/WSLg requires an additional Desktop Environment, external X11 server, and/or systemd - x64 and ARM64 architectures \* (see [Known Limitations](#known-limitations) for ARM64) - If you'd like to run the project directly in Python from the source code, refer to the [build instructions](/docs/build%20instructions.md). From f1f27168841fd0ad1e7e646646d63408b911786e Mon Sep 17 00:00:00 2001 From: Avasam Date: Wed, 28 Jan 2026 23:08:07 -0500 Subject: [PATCH 24/31] pyright --- src/capture_method/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/capture_method/__init__.py b/src/capture_method/__init__.py index 9de3f79a..f0f7295e 100644 --- a/src/capture_method/__init__.py +++ b/src/capture_method/__init__.py @@ -127,7 +127,7 @@ def get(self, key: CaptureMethodEnum, default: object = None, /): # Keep this check for a while even after it's implemented # TODO: Fix these pywin32 types in typeshed win32api.GetProcAddress( # pyright: ignore[reportUnknownMemberType] - win32api.LoadLibrary("d3d11.dll"), # pyright: ignore[reportUnknownMemberType, reportArgumentType] + win32api.LoadLibrary("d3d11.dll"), # pyright: ignore[reportUnknownMemberType] "CreateDirect3D11DeviceFromDXGIDevice", # pyright: ignore[reportArgumentType] ) except win32api.error as exception: From c44a9ad3c822639317535d0063d02b1cbf7dc4a6 Mon Sep 17 00:00:00 2001 From: Avasam Date: Wed, 28 Jan 2026 23:08:29 -0500 Subject: [PATCH 25/31] . --- src/capture_method/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/capture_method/__init__.py b/src/capture_method/__init__.py index f0f7295e..0b639750 100644 --- a/src/capture_method/__init__.py +++ b/src/capture_method/__init__.py @@ -127,7 +127,7 @@ def get(self, key: CaptureMethodEnum, default: object = None, /): # Keep this check for a while even after it's implemented # TODO: Fix these pywin32 types in typeshed win32api.GetProcAddress( # pyright: ignore[reportUnknownMemberType] - win32api.LoadLibrary("d3d11.dll"), # pyright: ignore[reportUnknownMemberType] + win32api.LoadLibrary("d3d11.dll"), # pyright: ignore[reportUnknownMemberType, reportUnknownArgumentType] "CreateDirect3D11DeviceFromDXGIDevice", # pyright: ignore[reportArgumentType] ) except win32api.error as exception: From 4e4de22496a20c8a39d88c5c285c88439dc9e51d Mon Sep 17 00:00:00 2001 From: Avasam Date: Wed, 28 Jan 2026 23:17:59 -0500 Subject: [PATCH 26/31] Extract WGC support check --- .../WindowsGraphicsCaptureMethod.py | 18 +++++++++++++ src/capture_method/__init__.py | 26 +++++-------------- 2 files changed, 25 insertions(+), 19 deletions(-) diff --git a/src/capture_method/WindowsGraphicsCaptureMethod.py b/src/capture_method/WindowsGraphicsCaptureMethod.py index d75f9135..d39dfb61 100644 --- a/src/capture_method/WindowsGraphicsCaptureMethod.py +++ b/src/capture_method/WindowsGraphicsCaptureMethod.py @@ -8,7 +8,9 @@ from typing import TYPE_CHECKING, cast, override import numpy as np +import win32api import win32gui +import winerror from cv2.typing import MatLike from winrt.windows.graphics import SizeInt32 from winrt.windows.graphics.capture import Direct3D11CaptureFramePool, GraphicsCaptureSession @@ -29,6 +31,22 @@ WGC_NO_BORDER_MIN_BUILD = 20348 +try: + # Wine hasn't implemented CreateDirect3D11DeviceFromDXGIDevice yet + # https://bugs.winehq.org/show_bug.cgi?id=52487 + # Keep this check for a while even after it's implemented + # TODO: Fix these pywin32 types in typeshed + IS_WGC_SUPPORTED = WINDOWS_BUILD_NUMBER >= WGC_MIN_BUILD and bool( + win32api.GetProcAddress( # pyright: ignore[reportUnknownMemberType] + win32api.LoadLibrary("d3d11.dll"), # pyright: ignore[reportUnknownMemberType, reportUnknownArgumentType] + "CreateDirect3D11DeviceFromDXGIDevice", # pyright: ignore[reportArgumentType] + ) + ) +except win32api.error as exception: + if exception.winerror != winerror.ERROR_PROC_NOT_FOUND: + raise + IS_WGC_SUPPORTED = False + async def convert_d3d_surface_to_software_bitmap(surface: IDirect3DSurface): return await SoftwareBitmap.create_copy_from_surface_async(surface) diff --git a/src/capture_method/__init__.py b/src/capture_method/__init__.py index 0b639750..54e5405d 100644 --- a/src/capture_method/__init__.py +++ b/src/capture_method/__init__.py @@ -10,10 +10,9 @@ from capture_method.CaptureMethodBase import CaptureMethodBase from capture_method.VideoCaptureDeviceCaptureMethod import VideoCaptureDeviceCaptureMethod -from utils import WGC_MIN_BUILD, WINDOWS_BUILD_NUMBER, first, get_input_device_resolution +from utils import first, get_input_device_resolution if sys.platform == "win32": - import win32api import winerror from capture_method.BitBltCaptureMethod import BitBltCaptureMethod @@ -24,7 +23,10 @@ from capture_method.ForceFullContentRenderingCaptureMethod import ( ForceFullContentRenderingCaptureMethod, ) - from capture_method.WindowsGraphicsCaptureMethod import WindowsGraphicsCaptureMethod + from capture_method.WindowsGraphicsCaptureMethod import ( + IS_WGC_SUPPORTED, + WindowsGraphicsCaptureMethod, + ) if sys.platform == "linux": from PIL import features @@ -121,22 +123,8 @@ def get(self, key: CaptureMethodEnum, default: object = None, /): CAPTURE_METHODS = CaptureMethodDict() if sys.platform == "win32": # Windows Graphics Capture requires a minimum Windows Build - if WINDOWS_BUILD_NUMBER >= WGC_MIN_BUILD: - try: - # Wine hasn't implemented yet (https://bugs.winehq.org/show_bug.cgi?id=52487) - # Keep this check for a while even after it's implemented - # TODO: Fix these pywin32 types in typeshed - win32api.GetProcAddress( # pyright: ignore[reportUnknownMemberType] - win32api.LoadLibrary("d3d11.dll"), # pyright: ignore[reportUnknownMemberType, reportUnknownArgumentType] - "CreateDirect3D11DeviceFromDXGIDevice", # pyright: ignore[reportArgumentType] - ) - except win32api.error as exception: - if exception.winerror != winerror.ERROR_PROC_NOT_FOUND: - raise - else: - CAPTURE_METHODS[CaptureMethodEnum.WINDOWS_GRAPHICS_CAPTURE] = ( - WindowsGraphicsCaptureMethod - ) + if IS_WGC_SUPPORTED: + CAPTURE_METHODS[CaptureMethodEnum.WINDOWS_GRAPHICS_CAPTURE] = WindowsGraphicsCaptureMethod CAPTURE_METHODS[CaptureMethodEnum.BITBLT] = BitBltCaptureMethod if IS_DESKTOP_DUPLICATION_SUPPORTED: CAPTURE_METHODS[CaptureMethodEnum.DESKTOP_DUPLICATION] = DesktopDuplicationCaptureMethod From bda8fb7e39ac4fe4573d60688d7522c7ed7f1231 Mon Sep 17 00:00:00 2001 From: Avasam Date: Wed, 28 Jan 2026 23:21:56 -0500 Subject: [PATCH 27/31] pyright --- src/capture_method/WindowsGraphicsCaptureMethod.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/capture_method/WindowsGraphicsCaptureMethod.py b/src/capture_method/WindowsGraphicsCaptureMethod.py index d39dfb61..31bb8829 100644 --- a/src/capture_method/WindowsGraphicsCaptureMethod.py +++ b/src/capture_method/WindowsGraphicsCaptureMethod.py @@ -45,7 +45,7 @@ except win32api.error as exception: if exception.winerror != winerror.ERROR_PROC_NOT_FOUND: raise - IS_WGC_SUPPORTED = False + IS_WGC_SUPPORTED = False # pyright: ignore[reportConstantRedefinition] async def convert_d3d_surface_to_software_bitmap(surface: IDirect3DSurface): From 0dc8b0248b3ad01e794a397d2d82ec46c6f804ab Mon Sep 17 00:00:00 2001 From: Avasam Date: Wed, 28 Jan 2026 23:22:31 -0500 Subject: [PATCH 28/31] Discard changes to src/user_profile.py --- src/user_profile.py | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/src/user_profile.py b/src/user_profile.py index ffba5891..c631ecdb 100644 --- a/src/user_profile.py +++ b/src/user_profile.py @@ -4,6 +4,7 @@ import tomllib from copy import deepcopy from typing import TYPE_CHECKING, NoReturn, TypedDict, cast, override +from warnings import deprecated import tomli_w from gen import design @@ -16,19 +17,7 @@ from utils import auto_split_directory if TYPE_CHECKING: - from warnings import deprecated - from AutoSplit import AutoSplit -else: - - def deprecated( - message: str, # noqa: ARG001 - /, - *, - category: type[Warning] | None = DeprecationWarning, # noqa: ARG001 - stacklevel: int = 1, # noqa: ARG001 - ): - return lambda x: x class UserProfileDict(TypedDict): From 1862df6546ef8bf95b4e7615940056669ba9ef62 Mon Sep 17 00:00:00 2001 From: Avasam Date: Thu, 29 Jan 2026 00:12:12 -0500 Subject: [PATCH 29/31] More sensible UPX install check --- .github/workflows/lint-and-build.yml | 6 +++--- scripts/install.ps1 | 13 +++++++------ 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/.github/workflows/lint-and-build.yml b/.github/workflows/lint-and-build.yml index 24e69d3a..0215268d 100644 --- a/.github/workflows/lint-and-build.yml +++ b/.github/workflows/lint-and-build.yml @@ -104,7 +104,7 @@ jobs: with: python-version: ${{ !startsWith(matrix.os, 'ubuntu') && matrix.python-version || null }} # endregion - - run: scripts/install.ps1 + - run: scripts/install.ps1 ${{ matrix.wine-compat }} shell: pwsh - run: "scripts/build.ps1 ${{ matrix.wine-compat }}" shell: pwsh @@ -123,7 +123,7 @@ jobs: with: name: > AutoSplit v${{ steps.artifact_vars.outputs.AUTOSPLIT_VERSION }} - for ${{ steps.artifact_vars.outputs.OS }}${{matrix.wine-compat}} + for ${{ steps.artifact_vars.outputs.OS }}${{ matrix.wine-compat }} (Python ${{ matrix.python-version }}) path: | dist/AutoSplit* @@ -133,7 +133,7 @@ jobs: uses: actions/upload-artifact@v6 with: name: > - Build logs for ${{ steps.artifact_vars.outputs.OS }}${{matrix.wine-compat}} + Build logs for ${{ steps.artifact_vars.outputs.OS }}${{ matrix.wine-compat }} (Python ${{ matrix.python-version }}) path: | build/AutoSplit/*.toc diff --git a/scripts/install.ps1 b/scripts/install.ps1 index 4fa3139f..39daa6f9 100644 --- a/scripts/install.ps1 +++ b/scripts/install.ps1 @@ -1,4 +1,5 @@ #! /usr/bin/pwsh +param([switch]$WineCompat) # Validating user groups on Linux if ($IsLinux) { @@ -38,18 +39,13 @@ if ($IsLinux) { } } -$prod = if ($Env:GITHUB_JOB -eq 'Build') { '--no-dev' } else { } -$lock = if ($Env:GITHUB_JOB) { '--locked' } else { } -Write-Output "Installing Python dependencies with: uv sync $prod $lock" -uv sync --active $prod $lock - # UPX is only used by PyInstaller on Windows, # Doesn't work on ARM64, # and we avoid using it on the "wine-compatible build" if (` $IsWindows ` -and [System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture -eq 'X64' ` - -and (&uv run --active python -c 'import sys; print(sys.version_info < (3, 14))') -eq 'True' + -and -not $WineCompat ) { $UPXVersion = '5.0.1' $UPXFolderName = "upx-$UPXVersion-win64" @@ -64,6 +60,11 @@ if (` Remove-Item $PSScriptRoot/.upx/$UPXFolderName } +$prod = if ($Env:GITHUB_JOB -eq 'Build') { '--no-dev' } else { } +$lock = if ($Env:GITHUB_JOB) { '--locked' } else { } +Write-Output "Installing Python dependencies with: uv sync $prod $lock" +uv sync --active $prod $lock + # Don't compile resources on the Build CI job as it'll do so in build script if (-not $prod) { & "$PSScriptRoot/compile_resources.ps1" From 48b7d005124997b4371e3e1b70f45ba18b7dd9df Mon Sep 17 00:00:00 2001 From: Avasam Date: Thu, 29 Jan 2026 00:12:37 -0500 Subject: [PATCH 30/31] . --- src/capture_method/WindowsGraphicsCaptureMethod.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/capture_method/WindowsGraphicsCaptureMethod.py b/src/capture_method/WindowsGraphicsCaptureMethod.py index 31bb8829..7896b388 100644 --- a/src/capture_method/WindowsGraphicsCaptureMethod.py +++ b/src/capture_method/WindowsGraphicsCaptureMethod.py @@ -37,7 +37,7 @@ # Keep this check for a while even after it's implemented # TODO: Fix these pywin32 types in typeshed IS_WGC_SUPPORTED = WINDOWS_BUILD_NUMBER >= WGC_MIN_BUILD and bool( - win32api.GetProcAddress( # pyright: ignore[reportUnknownMemberType] + win32api.GetProcAddress( # pyright: ignore[reportUnknownMemberType, reportUnknownArgumentType] win32api.LoadLibrary("d3d11.dll"), # pyright: ignore[reportUnknownMemberType, reportUnknownArgumentType] "CreateDirect3D11DeviceFromDXGIDevice", # pyright: ignore[reportArgumentType] ) From 3bfcc34521789201c2edc2e6b0d6a5f4e2c4dcfa Mon Sep 17 00:00:00 2001 From: Avasam Date: Thu, 29 Jan 2026 11:05:29 -0500 Subject: [PATCH 31/31] Update readme --- README.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index caee9c4b..791186b1 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ To understand how to use AutoSplit and how it works in-depth, please read the [t ### Compatibility - Windows 10 and 11. -- Wine 10.1+ (Only supports the BitBlt Capture Method) +- Wine 10.1+ ([very limited](#wine-limitations)) - Useful if you want to use Desktop version of LiveSplit on Linux - Linux (still in early development) - Should work on Ubuntu 22.04+ @@ -79,6 +79,13 @@ See the [installation instructions](https://github.com/Toufool/LiveSplit.AutoSpl - The Perceptual Hash Comparison Method similarity may differ by 3.125% on ARM64. (this will be solved eventually, we have to use a fallback method for now) - Native ARM64 builds go completely untested. There may be unforseen issues. +### Wine Limitations + +- Only the BitBlt Capture method is supported. Wine [does not support `CreateDirect3D11DeviceFromDXGIDevice`](https://bugs.winehq.org/show_bug.cgi?id=52487) +- No Video Capture Device (ie Webcam, OBS Virtual Cam). Wine [does not support DirectShow Device Enumeration](https://gitlab.winehq.org/wine/wine/-/wikis/Hardware#restrictions:~:text=camera) +- Only applications running within the **same wineserver instance** can be recorded. Which means that if you want to record a Steam Game for example, you would need to run AutoSplit through Steam (add it as a non-Steam game) using the same Proton version as the target game. + - In practice, at the time of writing this, you can't even run AutoSplit through Proton yet, as even its Experimental version is still on Wine 10.0, and AutoSplit [requires Wine 10.1+](https://gitlab.winehq.org/wine/wine/-/releases/wine-10.1#:~:text=crealf) + ## Resources Still need help?