-
-
Notifications
You must be signed in to change notification settings - Fork 29
Expand file tree
/
Copy pathpyproject.toml
More file actions
111 lines (105 loc) · 4.96 KB
/
Copy pathpyproject.toml
File metadata and controls
111 lines (105 loc) · 4.96 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
[project]
name = "AutoSplit"
version = "2.3.4" # (remember to bump in uv.lock too)
requires-python = ">=3.14"
dependencies = [
"Levenshtein >=0.27.3", # free-threaded # TODO: Bump when 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.3.2", # Python 3.14 support # TODO: Bump when 3.15 wheels
# 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
"opencv-contrib-python-headless ==4.11.*; sys_platform == 'win32' and platform_machine == 'ARM64'",
"packaging >=20.0", # py.typed
"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.9.0", # Windows ARM64 support
#
# Build and compile resources
"pyinstaller >=6.21.0", # Python 3.15 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: 3.14 wheels # TODO: Bump when 3.15 wheels
"winrt-Windows.Foundation >=3.2.1; sys_platform == 'win32'",
"winrt-Windows.Graphics >=3.2.1; sys_platform == 'win32'",
"winrt-Windows.Graphics.Capture >=3.2.1; sys_platform == 'win32'",
"winrt-Windows.Graphics.Capture.Interop >=3.2.1; sys_platform == 'win32'",
"winrt-Windows.Graphics.DirectX >=3.2.1; sys_platform == 'win32'",
"winrt-Windows.Graphics.DirectX.Direct3D11 >=3.2.1; sys_platform == 'win32'",
"winrt-Windows.Graphics.DirectX.Direct3D11.Interop >=3.2.1; sys_platform == 'win32'",
"winrt-Windows.Graphics.Imaging >=3.2.1; sys_platform == 'win32'",
#
# Linux-only dependencies
"pillow>=12.3.0; sys_platform == 'linux'", # Python 3.15 support # Necessary for ImageGrab.
"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.1", # TODO: Bump when 3.15 wheels
"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'",
]
[tool.uv]
required-version = ">=0.11.25" # Lockfile supported environments simplifications
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 = [] },
]
find-links = ["./scripts"] # Discover local wheels
exclude-newer = "1 week"
[tool.uv.exclude-newer-package]
typed-D3DShot = false # I own it
opencv-contrib-python-headless = "1 day" # Fixed sdist
###
# Development channels
###
[tool.uv.sources]
beslogic-ruff-config = { git = "https://github.com/Beslogic/Beslogic-Ruff-Config", rev = "312cfab8a1e2653639a2ef665e99eac6c7412ba7" }
# pywin32 = { git = "https://github.com/mhammond/pywin32.git", marker = "python_version >= '3.15'" }
# pyinstaller = { url = "https://github.com/pyinstaller/pyinstaller/archive/develop.zip", marker = "python_version >= '3.15'" }
# numpy = { index = "scientific-python-nightly-wheels", marker = "python_version >= '3.15'" }
# pillow = { 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