-
Notifications
You must be signed in to change notification settings - Fork 30
/
Copy pathpyproject.toml
124 lines (118 loc) · 4.43 KB
/
pyproject.toml
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
112
113
114
115
116
117
118
119
120
121
122
123
124
[project]
name = "AutoSplit"
dynamic = ["version"]
requires-python = " >=3.11"
dependencies = [
# Dependencies:
"Levenshtein >=0.25",
"PyAutoGUI >=0.9.52",
"PyWinCtl >=0.0.42", # py.typed
"keyboard",
"numpy >=2.1", # Python 3.13 support
"opencv-python-headless >=4.10", # NumPy 2 support
"packaging >=20.0", # py.typed
"psutil >=6.0.0", # Python 3.13 support
# When needed, dev builds can be found at https://download.qt.io/snapshots/ci/pyside/dev?C=M;O=D
"PySide6-Essentials <6.8.1", # Has typing issue with QMessageBox.warning https://bugreports.qt.io/browse/PYSIDE-2939
# "PySide6-Essentials >=6.8.2", # Fixed typing issue with QMessageBox.warning
"scipy >=1.14.1", # Python 3.13 support
"tomli-w >=1.1.0", # Typing fixes
"typing-extensions >=4.4.0", # @override decorator support
#
# Build and compile resources
"pyinstaller >=6.10.0", # Python 3.13 support
#
# https://peps.python.org/pep-0508/#environment-markers
#
# Windows-only dependencies:
"pygrabber >=0.2; sys_platform == 'win32'", # Completed types
"pywin32 >=307; sys_platform == 'win32'", # Python 3.13 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 >=2.3.0; sys_platform == 'win32'", # Python 3.13 support
"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
#
# Linux-only dependencies
"PyScreeze >=1.0.0; sys_platform == 'linux'",
"pillow >=11.0; sys_platform == 'linux'", # Python 3.13 support # Necessary for PyScreeze/ImageGrab.
"python-xlib >=0.33; sys_platform == 'linux'",
]
[dependency-groups]
dev = [
#
# Visual Designer
"qt6-applications >=6.5.0",
#
# Linters & Formatters
"mypy >=1.14",
"pyright[nodejs] >=1.1",
"ruff >=0.8.5",
#
# Types (pins based on implementation version)
"scipy-stubs >=1.14.1.1",
"types-PyAutoGUI >=0.9.3",
"types-PyScreeze >=1.0.0; sys_platform == 'linux'",
"types-keyboard >=0.13.2",
"types-psutil >=6.0.0",
"types-pyinstaller >=6.10.0",
"types-python-xlib >=0.33; sys_platform == 'linux'",
"types-pywin32 >=307; sys_platform == 'win32'",
]
[tool.uv]
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 = [] },
]
[tool.uv.sources]
keyboard = { git = "https://github.com/boppreh/keyboard.git" } # Fix install on macos and linux-ci https://github.com/boppreh/keyboard/pull/568
# https://github.com/microsoft/pyright/blob/main/docs/configuration.md#sample-pyprojecttoml-file
[tool.pyright]
typeCheckingMode = "strict"
pythonVersion = "3.11"
# Prefer `pyright: ignore`
enableTypeIgnoreComments = false
###
# Downgraded diagnostics
###
# Type stubs may not be completable
reportMissingTypeStubs = "warning"
# Extra runtime safety
reportUnnecessaryComparison = "warning"
# Using Ruff instead. Name is already grayed out and red squiggle looks like a mistyped import
reportUnusedImport = "none"
###
# Off by default even in strict mode
###
deprecateTypingAliases = true
enableExperimentalFeatures = true
reportCallInDefaultInitializer = "error"
reportImplicitOverride = "error"
reportImplicitStringConcatenation = "error"
# False positives with TYPE_CHECKING
reportImportCycles = "information"
# Too strict. False positives on base classes
reportMissingSuperCall = "none"
reportPropertyTypeMismatch = "error"
reportShadowedImports = "error"
reportUninitializedInstanceVariable = "error"
reportUnnecessaryTypeIgnoreComment = "error"
reportUnusedCallResult = "none"
# Exclude from scanning when running pyright
exclude = [
".venv/",
# Auto generated, fails some strict pyright checks
"build/",
"src/gen/",
]
# Ignore must be specified for Pylance to stop displaying errors
ignore = [
# We expect stub files to be incomplete or contain useless statements
"**/*.pyi",
]