[project] name = "AutoSplit" version = "2.3.4" # (remember to bump in uv.lock too) requires-python = ">=3.14" dependencies = [ "Levenshtein >=0.27.5", # Python 3.15 wheels "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.5.2", # Python 3.15 support "packaging >=20.0", # py.typed "pyinstaller >=6.21.0", # Python 3.15 support "tomli-w >=1.1.0", # Typing fixes # v4.13: glibc 2.28 wheels (for aarch); v5 restored sdist "opencv-contrib-python-headless >=5.0; sys_platform != 'win32' or platform_machine != 'ARM64'", # Windows ARM64 has no opencv wheel (any version) so it source-builds the sdist. # v5 sdist fails to build there (opencv-python setup.py expects an ffmpeg dll that isn't # provided for win-arm64). Pin to the last 4.x that builds until win-arm64 wheels ship: # https://github.com/opencv/opencv-python/pull/1143 # https://github.com/opencv/opencv-python/issues/1092 "opencv-contrib-python-headless ==4.11.*; sys_platform == 'win32' and platform_machine == 'ARM64'", # When needed, PySide6 dev builds can be found at https://download.qt.io/snapshots/ci/pyside/dev?C=M;O=D "PySide6-Essentials >=6.9.0", # Windows ARM64 support # # https://packaging.python.org/en/latest/specifications/dependency-specifiers/#environment-markers # # Windows-only dependencies: "pygrabber >=0.2; sys_platform == 'win32'", # Completed types "pywin32 >=312; sys_platform == 'win32'", # Python 3.15 support "typed-D3DShot[numpy] >=1.1.1; sys_platform == 'win32'", # winrt v4: 3.15 wheels "winrt-Windows.Graphics >=4.0.0; sys_platform == 'win32'", "winrt-Windows.Graphics.Capture >=4.0.0; sys_platform == 'win32'", "winrt-Windows.Graphics.Capture.Interop >=4.0.0; sys_platform == 'win32'", "winrt-Windows.Graphics.DirectX >=4.0.0; sys_platform == 'win32'", "winrt-Windows.Graphics.DirectX.Direct3D11 >=4.0.0; sys_platform == 'win32'", "winrt-Windows.Graphics.DirectX.Direct3D11.Interop >=4.1.0; sys_platform == 'win32'", # Added create_direct3d11_device "winrt-Windows.Graphics.Imaging >=4.0.0; sys_platform == 'win32'", # # Linux-only dependencies "python-xlib >=0.33; sys_platform == 'linux'", ] [dependency-groups] formatters = [ "beslogic-ruff-config", "dprint-py >=0.50.0.0", "ruff", # Version should come from beslogic-ruff-config and the lock file ] dev = [ # # Linters & Formatters "mypy >=2.2", # Python 3.15 support "pyright[nodejs] >=1.1.400", # reportPrivateImportUsage behaviour change { include-group = "formatters" }, # # Types "types-PyAutoGUI", "types-keyboard", "types-pyinstaller >=6.21.0.20260616", # types to check for Splash screen support "types-python-xlib; sys_platform == 'linux'", "types-pywin32 >=306.0.0.20240130; sys_platform == 'win32'", # # OS-specific, but installable on other OSes for convenient typing references "pygrabber", "python-xlib", "typed-D3DShot[numpy]", ] [tool.uv] required-version = ">=0.13.4" # https://github.com/astral-sh/uv/security/advisories/GHSA-hq85-5cpj-mr62 environments = [ # AutoSplit does not currently support macOS "sys_platform == 'linux'", "sys_platform == 'win32'", ] required-environments = [ # Ensure we don't miss wheels at resolution for supported platform combinations # "sys_platform == 'linux' and platform_machine == 'aarch64'", # "sys_platform == 'linux' and platform_machine == 'x86_64'", # "sys_platform == 'win32' and platform_machine == 'amd64'", # "sys_platform == 'win32' and platform_machine == 'arm64'", ] dependency-metadata = [ # PyAutoGUI installs extra libraries we don't want. We only use it for hotkeys # PyScreeze -> pyscreenshot -> mss deps calls SetProcessDpiAwareness on Windows { name = "PyAutoGUI", requires-dist = [] }, { name = "types-PyAutoGUI", requires-dist = [] }, ] override-dependencies = [ # opencv-contrib-python-headless requires numpy>=2,<2.3.0 but that's a bad upper bound # https://github.com/opencv/opencv-python/pull/1121 # https://github.com/opencv/opencv-python/issues/1201 "numpy >=2.5.2", ] # python-xlib's setup.py imports pkg_resources, removed in setuptools 81 # https://github.com/python-xlib/python-xlib/issues/286 build-constraint-dependencies = ["setuptools <81"] exclude-newer = "1 week" [tool.uv.exclude-newer-package] typed-D3DShot = false # I own it ### # Development channels ### [tool.uv.sources] beslogic-ruff-config = { git = "https://github.com/Beslogic/Beslogic-Ruff-Config", rev = "39c27278054fc428b54205581a0e23caca7ad77a" } # Quadratic receive buffer fix for large GetImage replies (X11 capture) # https://github.com/python-xlib/python-xlib/pull/298 python-xlib = { git = "https://github.com/Avasam/python-xlib", branch = "fix-quadratic-recv" } # pywin32 = { git = "https://github.com/mhammond/pywin32.git", marker = "python_version >= '3.15'" } # pyinstaller = { git = "https://github.com/pyinstaller/pyinstaller.git", marker = "python_version >= '3.15'" } # numpy = { index = "scientific-python-nightly-wheels", marker = "python_version >= '3.15'" } [[tool.uv.index]] exclude-newer = false # Anaconda index doesn't have upload dates # https://anaconda.org/scientific-python-nightly-wheels/ name = "scientific-python-nightly-wheels" url = "https://pypi.anaconda.org/scientific-python-nightly-wheels/simple" explicit = true # Avoid index hijacking