-
-
Notifications
You must be signed in to change notification settings - Fork 20
Expand file tree
/
Copy pathpyproject.toml
More file actions
131 lines (118 loc) · 4.54 KB
/
pyproject.toml
File metadata and controls
131 lines (118 loc) · 4.54 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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
[project]
name = "dlss-updater"
version = "4.1.8"
description = "DLSS, XeSS, DirectStorage, FSR, and Streamline DLL updater for games"
readme = "README.md"
license = "AGPL-3.0-only"
license-files = ["LICENSE"]
requires-python = ">=3.14" # Optimized for free-threaded Python (GIL disabled)
authors = [
{ name = "Recol (Deco)" }
]
keywords = ["dlss", "nvidia", "gaming", "xess", "directstorage", "fsr", "streamline"]
classifiers = [
"Development Status :: 5 - Production/Stable",
"Environment :: Win32 (MS Windows)",
"Environment :: X11 Applications",
"Intended Audience :: End Users/Desktop",
"License :: OSI Approved :: GNU Affero General Public License v3",
"Operating System :: Microsoft :: Windows",
"Operating System :: POSIX :: Linux",
"Programming Language :: Python :: 3.14",
"Topic :: Games/Entertainment",
"Topic :: Utilities",
]
dependencies = [
"pefile>=2024.8.26",
"psutil>=7.2.2",
"packaging>=26.2",
"platformdirs>=4.10.0", # Replaces unmaintained appdirs (abandoned 2020); near-identical API
"rapidfuzz>=3.14.5", # Fast fuzzy string matching for game search
"nvidia-ml-py>=13.610.43", # NVML GPU detection (architecture / DLSS preset hints); best-effort, returns False on non-NVIDIA systems
"flet==0.85.2; platform_system == 'Windows'", # Core framework for Windows
"flet-desktop==0.85.2; platform_system == 'Windows'", # Desktop runtime for Windows
"flet==0.85.2; platform_system == 'Linux'", # Core framework for Linux
"flet-desktop==0.85.2; platform_system == 'Linux'", # Desktop runtime for Linux (flet-desktop-light removed in 0.83.0; flet-desktop defaults to "light" flavor on Linux automatically)
"msgspec>=0.21.1",
"msgpack>=1.1.2", # Free-threading compatible (has Py_mod_gil declaration)
"aiohttp>=3.14.0",
"requests>=2.34.2", # Fallback for DLL downloads when aiohttp fails; 2.32.5 fixes CVE-2024-47081
"pyinstaller>=6.20.0",
"aiosqlite>=0.22.1",
"aiofiles>=25.1.0",
"pillow>=12.2.0", # Image thumbnail generation, Python 3.14 free-threaded compatible
# scandir-rs is optional - provides 6-70x faster directory scanning
# Falls back to os.walk when unavailable (e.g., free-threaded Python)
# "scandir-rs>=2.9.3; platform_system == 'Windows'",
"winloop>=0.6.3; platform_system == 'Windows'", # cp314t wheels for win_arm64/amd64/win32
"uvloop>=0.22.1; platform_system == 'Linux'",
"pytest-codspeed>=5.0.3",
]
[project.optional-dependencies]
dev = [
"pytest>=9.0.3",
"pytest-asyncio>=1.4.0",
"flake8>=7.3.0",
"pylint>=4.0.5",
"ruff>=0.15.16",
]
build = [
"pyinstaller",
"briefcase>=0.4.2",
]
[project.urls]
Homepage = "https://github.com/Recol/DLSS-Updater"
Repository = "https://github.com/Recol/DLSS-Updater"
Issues = "https://github.com/Recol/DLSS-Updater/issues"
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.hatch.build.targets.wheel]
packages = ["dlss_updater"]
[tool.uv]
# Cross-platform application (Windows and Linux)
required-environments = [
"sys_platform == 'win32'",
"sys_platform == 'linux'",
]
# Fix for Flet on Windows: uv symlinks cause silent exit (no GUI)
# See: https://github.com/flet-dev/website/pull/454
link-mode = "copy"
[tool.ruff]
line-length = 127
target-version = "py314"
[tool.ruff.lint]
select = ["E", "F", "W", "I"]
ignore = ["E501"] # Line too long (handled by formatter)
[tool.pytest.ini_options]
asyncio_mode = "auto"
testpaths = ["tests"]
[tool.flet]
# Flet build configuration for `flet build linux/windows/etc`
project = "DLSS_Updater"
product = "DLSS Updater"
org = "io.github.recol"
description = "Update DLSS/XeSS/FSR DLLs for games"
# Entry point module (main.py in root)
module_name = "main"
[tool.briefcase]
# Briefcase external app configuration for MSI packaging
# Used to wrap PyInstaller onedir output into a Windows MSI installer
# Build flow: pyinstaller DLSS_Updater_MSI.spec → briefcase package windows
project_name = "DLSS Updater"
bundle = "io.github.recol"
version = "4.1.8"
url = "https://github.com/Recol/DLSS-Updater"
license = "AGPL-3.0-only"
license-files = ["LICENSE"]
author = "Recol (Deco)"
[tool.briefcase.app.dlss_updater]
formal_name = "DLSS Updater"
description = "DLSS, XeSS, DirectStorage, FSR, and Streamline DLL updater for games"
icon = "dlss_updater/icons/dlss_updater"
[tool.briefcase.app.dlss_updater.windows]
# Points to PyInstaller onedir output directory
external_package_path = "dist/DLSS_Updater"
external_package_executable_path = "DLSS_Updater.exe"
system_installer = true
use_full_install_path = false