Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
df16caf
Attempt Python 3.14. Blocked by:
Avasam Jun 2, 2025
54dd152
FIx the pywin32 install
Avasam Jun 3, 2025
36b8f9a
winrt can be built for 3.14
Avasam Jun 3, 2025
27dc370
redo lockfile and optional scipy
Avasam Jun 3, 2025
ecb69e8
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jun 4, 2025
a39cd07
Merge branch 'main' of https://github.com/Toufool/AutoSplit into Pyth…
Avasam Jun 9, 2025
4fccb69
Few updates
Avasam Jun 9, 2025
84ab3ea
Bump winrt-*
Avasam Jun 12, 2025
a11c63d
Upgrade setuptools
Avasam Jun 12, 2025
67208d8
Bump everything in lockfile
Avasam Jun 12, 2025
44ecc4b
Use prebuilt pywin32
Avasam Jun 12, 2025
ec51605
Remove
Avasam Jun 12, 2025
1483b60
Add back
Avasam Jun 12, 2025
e30c331
Try adding again with *.whl eol=auto
Avasam Jun 12, 2025
9d3aeff
Move keyboard git source back to dependencies
Avasam Jun 12, 2025
f37f69d
Try resync numpy lower
Avasam Jun 12, 2025
4a3631f
Bump numpy to 2.4.0
Avasam Jun 12, 2025
dcefc70
Merge branch 'main' of https://github.com/Toufool/AutoSplit into Pyth…
Avasam Jun 13, 2025
45825fc
Merge branch 'main' of https://github.com/Toufool/AutoSplit into Pyth…
Avasam Jun 14, 2025
0530b83
Fix flaky pyright
Avasam Jun 14, 2025
d83eb73
Run uv sync
Avasam Jun 14, 2025
0ba0179
Better no-type-check
Avasam Jun 14, 2025
014d7e3
Unused pyright ignore
Avasam Jun 14, 2025
7842617
Merge branch 'main' of https://github.com/Toufool/AutoSplit into Pyth…
Avasam Jun 16, 2025
57af997
Missed a newline
Avasam Jun 16, 2025
34df81a
Add pywin32 wheel for both arm64 and amd64
Avasam Jun 16, 2025
9d58c76
Run uv sync
Avasam Jun 16, 2025
9d09de3
Merge branch 'main' of https://github.com/Toufool/AutoSplit into Pyth…
Avasam Jun 20, 2025
d2a4906
Add = for consistency
Avasam Jun 20, 2025
daa16bd
Bump pywin32 and orjson
Avasam Jul 15, 2025
ddb899c
Try fixing manylinux resolution
Avasam Jul 15, 2025
bce04fc
Try specifying aarch64 instead
Avasam Jul 15, 2025
de5de18
Update lock file
Avasam Jul 15, 2025
a7ee47d
Bump numpy + some further type polish
Avasam Jul 24, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/lint-and-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ jobs:
# Pyright is version and platform sensible
matrix:
os: [windows-latest, ubuntu-22.04]
python-version: ["3.13"]
python-version: ["3.13", "3.14"]
steps:
- uses: actions/checkout@v4
- name: Set up uv for Python ${{ matrix.python-version }}
Expand Down Expand Up @@ -80,7 +80,7 @@ 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"]
python-version: ["3.13", "3.14"]
steps:
- uses: actions/checkout@v4
# region pyinstaller/pyinstaller#9012 + astral-sh/uv#12906
Expand Down
37 changes: 25 additions & 12 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,15 @@ dependencies = [
"PyAutoGUI >=0.9.52",
"PyWinCtl >=0.0.42", # py.typed
"keyboard @ git+https://github.com/boppreh/keyboard.git", # Fix install on macos and linux-ci https://github.com/boppreh/keyboard/pull/568
"numpy >=2.3", # Windows ARM64 wheels
"numpy >=2.3.2", # Python 3.14 support
"opencv-contrib-python-headless >=4.10", # NumPy 2 support
"packaging >=20.0", # py.typed
# When needed, dev builds can be found at https://download.qt.io/snapshots/ci/pyside/dev?C=M;O=D
"PySide6-Essentials", # Let package resolution find the minimum for wheels (>=6.9.0 on Windows ARM64; <6.8.1 on ubuntu-22.04-arm (glibc 2.39))
"tomli-w >=1.1.0", # Typing fixes

# When needed, PySide6 dev builds can be found at https://download.qt.io/snapshots/ci/pyside/dev?C=M;O=D
"PySide6-Essentials <6.8.1; sys_platform == 'linux' and platform_machine == 'aarch64'", # <6.8.1 on ubuntu-22.04-arm (glibc 2.39)
"PySide6-Essentials >=6.9.0; sys_platform != 'linux' or platform_machine != 'aarch64'", # >=6.9.0 on Windows ARM64; Use this for everything else that supports as well

#
# Build and compile resources
"pyinstaller >=6.14.0", # Mitigate issues with pkg_resources deprecation warning
Expand All @@ -24,16 +26,18 @@ dependencies = [
#
# Windows-only dependencies:
"pygrabber >=0.2; sys_platform == 'win32'", # Completed types
"pywin32 >=307; sys_platform == 'win32'", # Python 3.13 support
"pywin32 >=311; sys_platform == 'win32'", # Python 3.14 support
"typed-D3DShot[numpy] >=1.0.1; sys_platform == 'win32'",
"winrt-Windows.Foundation >=2.2.0; sys_platform == 'win32'", # Python 3.13 support
"winrt-Windows.Graphics >=2.2.0; sys_platform == 'win32'", # Python 3.13 support
"winrt-Windows.Graphics.Capture >=3.0.0; sys_platform == 'win32'", # Type hints are no longer typing.Optional by default.
"winrt-Windows.Graphics.Capture.Interop >=2.3.0; sys_platform == 'win32'", # Python 3.13 support
"winrt-Windows.Graphics.DirectX >=2.3.0; sys_platform == 'win32'", # Python 3.13 support
"winrt-Windows.Graphics.DirectX.Direct3D11 >=2.3.0; sys_platform == 'win32'", # Python 3.13 support
"winrt-Windows.Graphics.DirectX.Direct3D11.Interop >=2.3.0; sys_platform == 'win32'",
"winrt-Windows.Graphics.Imaging >=2.3.0; sys_platform == 'win32'", # Python 3.13 support
# winrt: winrt-runtime didn't have a working Python 3.14 sdist build until 3.2.0
# TODO: Bump when 3.14 wheels are released
"winrt-Windows.Foundation >=3.2.0; sys_platform == 'win32'",
"winrt-Windows.Graphics >=3.2.0; sys_platform == 'win32'",
"winrt-Windows.Graphics.Capture >=3.2.0; sys_platform == 'win32'",
"winrt-Windows.Graphics.Capture.Interop >=3.2.0; sys_platform == 'win32'",
"winrt-Windows.Graphics.DirectX >=3.2.0; sys_platform == 'win32'",
"winrt-Windows.Graphics.DirectX.Direct3D11 >=3.2.0; sys_platform == 'win32'",
"winrt-Windows.Graphics.DirectX.Direct3D11.Interop >=3.2.0; sys_platform == 'win32'",
"winrt-Windows.Graphics.Imaging >=3.2.0; sys_platform == 'win32'",
#
# Linux-only dependencies
"PyScreeze >=1.0.0; sys_platform == 'linux'",
Expand Down Expand Up @@ -73,6 +77,15 @@ dependency-metadata = [
{ name = "types-PyAutoGUI", requires-dist = [] },
]

[tool.uv.sources] # Development channels
# pywin32 = { git = "https://github.com/mhammond/pywin32.git", marker = "python_version == '3.15'" }
# numpy = { index = "scientific-python-nightly-wheels" }
[[tool.uv.index]]
# https://anaconda.org/scientific-python-nightly-wheels/
name = "scientific-python-nightly-wheels"
url = "https://pypi.anaconda.org/scientific-python-nightly-wheels/simple"
explicit = true

[tool.uv-secure.maintainability_criteria]
forbid_yanked = true

Expand Down
2 changes: 1 addition & 1 deletion scripts/build.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ $arguments = @(
"$ProjectRoot/src/AutoSplit.py",
'--onefile',
'--windowed',
'--optimize 2', # Remove asserts and docstrings for smaller build
'--optimize=2', # Remove asserts and docstrings for smaller build
"--additional-hooks-dir=$ProjectRoot/Pyinstaller/hooks",
"--add-data=$ProjectRoot/pyproject.toml$([System.IO.Path]::PathSeparator).",
"--upx-dir=$PSScriptRoot/.upx"
Expand Down
10 changes: 4 additions & 6 deletions src/AutoSplit.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,13 @@
if sys.platform == "win32":
import ctypes

def do_nothing(*_): ...

# pyautogui._pyautogui_win.py
ctypes.windll.user32.SetProcessDPIAware = ( # pyright: ignore[reportAttributeAccessIssue]
lambda: None
)
ctypes.windll.user32.SetProcessDPIAware = do_nothing # pyright: ignore[reportAttributeAccessIssue]
# pymonctl._pymonctl_win.py
# pywinbox._pywinbox_win.py
ctypes.windll.shcore.SetProcessDpiAwareness = ( # pyright: ignore[reportAttributeAccessIssue]
lambda _: None # pyright: ignore[reportUnknownLambdaType]
)
ctypes.windll.shcore.SetProcessDpiAwareness = do_nothing # pyright: ignore[reportAttributeAccessIssue]
if sys.platform == "linux":
# Fixes "undefined symbol: wl_proxy_marshal_flags": https://bugreports.qt.io/browse/QTBUG-114635
os.environ.setdefault("QT_QPA_PLATFORM", "xcb")
Expand Down
6 changes: 3 additions & 3 deletions src/split_parser.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
*_,
) = tuple(1 << i for i in range(31)) # 32 bits of flags

T = TypeVar("T", str, int, float)
FileFlagValueT = TypeVar("FileFlagValueT", str, int, float)

# Note, the following symbols cannot be used in a filename:
# / \ : * ? " < > |
Expand All @@ -34,8 +34,8 @@
def __value_from_filename(
filename: str,
delimiters: str,
default_value: T,
) -> T:
default_value: FileFlagValueT,
) -> FileFlagValueT:
if len(delimiters) != 2:
raise ValueError("delimiters parameter must contain exactly 2 characters")
try:
Expand Down
Loading