Skip to content

Commit 1b0703a

Browse files
authored
Merge 0060566 into cb7258a
2 parents cb7258a + 0060566 commit 1b0703a

16 files changed

Lines changed: 106 additions & 301 deletions

.github/workflows/testAndPublish.yml

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,8 @@ jobs:
4545
uses: actions/checkout@v4
4646
with:
4747
submodules: true
48-
- name: Install dependencies
49-
uses: actions/setup-python@v5
50-
with:
51-
python-version: '3.11'
52-
architecture: x86
48+
- name: Install the latest version of uv
49+
uses: astral-sh/setup-uv@v5
5350
- name: Set version variables
5451
run: ci/scripts/setBuildVersionVars.ps1
5552
- name: Set scons args

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,3 +49,4 @@ source/locale/*/cldr.dic
4949
nvdaHelper/docs/
5050
*.pfx
5151
appveyor-tools/
52+
uv.lock

.python-version

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
cpython-3.11-windows-x86-none

pyproject.toml

Lines changed: 88 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,41 @@ build-backend = "setuptools.build_meta"
44

55
[project]
66
name = "nvda"
7+
dynamic = ["version"]
78
description = "NonVisual Desktop Access (NVDA)"
89
maintainers = [
910
{name = "NV Access", email = "info@nvaccess.org"},
1011
]
12+
requires-python = ">=3.11"
1113
classifiers = [
12-
"Development Status :: 5 - Production/Stable",
13-
"Intended Audience :: End Users/Desktop",
14-
"License :: OSI Approved :: GNU General Public License v2",
15-
"Operating System :: Microsoft :: Windows",
16-
"Programming Language :: Python :: 3",
17-
"Topic :: Accessibility",
14+
"Development Status :: 5 - Production/Stable",
15+
"Intended Audience :: End Users/Desktop",
16+
"License :: OSI Approved :: GNU General Public License v2",
17+
"Operating System :: Microsoft :: Windows",
18+
"Programming Language :: Python :: 3",
19+
"Topic :: Accessibility",
1820
]
1921
readme = "readme.md"
2022
license = {file = "copying.txt"}
23+
dependencies = [
24+
# NVDA's runtime dependencies
25+
"comtypes==1.4.6",
26+
"cryptography==44.0.1",
27+
"pyserial==3.5",
28+
"wxPython==4.2.2",
29+
"configobj",
30+
"requests==2.32.3",
31+
"url-normalize==1.4.3",
32+
"schedule==1.2.2",
33+
#NVDA_DMP requires diff-match-patch
34+
"fast-diff-match-patch==2.1.0",
35+
# typing_extensions are required for specifying default value for `TypeVar` prior to Python 3.13 (see PEP 696)
36+
"typing-extensions==4.12.2",
37+
# pycaw is a Core Audio Windows Library used for sound split
38+
"pycaw==20240210",
39+
# Sanitize HTML for browsable messages and documentation output to prevent XSS from translators
40+
"nh3==0.2.19",
41+
]
2142

2243
[project.urls]
2344
Homepage = "https://www.nvaccess.org/"
@@ -249,3 +270,64 @@ reportMissingParameterType = false # 4000+ errors
249270
reportUnknownVariableType = false # 6000+ errors
250271
reportUnknownArgumentType = false # 6000+ errors
251272
reportUnknownMemberType = false # 20000+ errors
273+
274+
[tool.uv]
275+
default-groups = [
276+
"dev",
277+
"docs",
278+
"lint",
279+
]
280+
python-preference = "only-managed"
281+
environments = ["sys_platform == 'win32'"]
282+
283+
[tool.setuptools.packages.find]
284+
where = ["source"] # list of folders that contain the packages (["."] by default)
285+
286+
[tool.uv.sources]
287+
configobj = { git = "https://github.com/DiffSK/configobj", rev = "8be54629ee7c26acb5c865b74c76284e80f3aa31" }
288+
289+
[dependency-groups]
290+
dev = [
291+
# NVDA's build system is SCons
292+
"SCons==4.8.1",
293+
# Packaging NVDA
294+
"py2exe==0.13.0.2",
295+
# l10nUtil requires Crowdin
296+
"crowdin-api-client==1.21.0",
297+
]
298+
lint = [
299+
"ruff==0.8.1",
300+
"pre-commit==4.0.1",
301+
"pyright==1.1.396",
302+
]
303+
license-check = [
304+
"licensecheck==2024.3",
305+
]
306+
docs = [
307+
# Building user documentation
308+
"Markdown==3.7",
309+
"mdx_truly_sane_lists==1.3",
310+
"markdown-link-attr-modifier==0.2.1",
311+
"mdx-gh-links==0.4",
312+
# For building developer documentation
313+
"sphinx==8.1.2",
314+
"sphinx_rtd_theme==3.0.1",
315+
]
316+
l10n = [
317+
# l10nUtil requires Crowdin
318+
"crowdin-api-client==1.21.0"
319+
]
320+
system-tests = [
321+
"robotframework==7.1.1",
322+
"robotremoteserver==1.1.1",
323+
"robotframework-screencaplibrary==1.6.0",
324+
]
325+
unit-tests = [
326+
# Creating XML unit test reports
327+
"unittest-xml-reporting==3.2.0",
328+
# Feed parameters to tests neatly
329+
"parameterized==0.9.0",
330+
]
331+
332+
[tool.setuptools.dynamic]
333+
version = {attr = "buildVersion.version_dev"}

requirements.txt

Lines changed: 0 additions & 57 deletions
This file was deleted.

runlicensecheck.bat

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,8 @@ rem Runs a license check for python dependencies
44
set hereOrig=%~dp0
55
set here=%hereOrig%
66
if #%hereOrig:~-1%# == #\# set here=%hereOrig:~0,-1%
7-
set scriptsDir=%here%\venvUtils
87

98
set checkArgs=
109
if "%1" NEQ "" set checkArgs=--file=%1 --format=markdown
11-
call "%scriptsDir%\venvCmd.bat" py -m licensecheck -0 --format ansi %checkArgs%
10+
call uv run --group license-check --directory "%here%" -m licensecheck -0 --format ansi %checkArgs%
1211
if ERRORLEVEL 1 exit /b %ERRORLEVEL%

runlint.bat

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,14 @@ rem Lints and formats all python files
44
set hereOrig=%~dp0
55
set here=%hereOrig%
66
if #%hereOrig:~-1%# == #\# set here=%hereOrig:~0,-1%
7-
set scriptsDir=%here%\venvUtils
87

98
set ruffCheckArgs=
109
set ruffFormatArgs=
1110
if "%1" NEQ "" set ruffCheckArgs=--output-file=%1/PR-lint.xml --output-format=junit
1211
if "%1" NEQ "" set ruffFormatArgs=--diff > %1/lint-diff.diff
13-
call "%scriptsDir%\venvCmd.bat" ruff check --fix %ruffCheckArgs%
12+
call uv run --group lint --directory "%here%" ruff check --fix %ruffCheckArgs%
1413
if ERRORLEVEL 1 exit /b %ERRORLEVEL%
15-
call "%scriptsDir%\venvCmd.bat" ruff format %ruffFormatArgs%
14+
call uv run --group lint --directory "%here%" ruff format %ruffFormatArgs%
1615
if ERRORLEVEL 1 exit /b %ERRORLEVEL%
17-
call "%scriptsDir%\venvCmd.bat" pyright --threads --level warning
16+
call uv run --group lint --directory "%here%" pyright --threads --level warning
1817
if ERRORLEVEL 1 exit /b %ERRORLEVEL%

runnvda.bat

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
set hereOrig=%~dp0
33
set here=%hereOrig%
44
if #%hereOrig:~-1%# == #\# set here=%hereOrig:~0,-1%
5-
set scriptsDir=%here%\venvUtils
65
set sourceDirPath=%here%\source
76

8-
call "%scriptsDir%\venvCmd.bat" start pyw "%sourceDirPath%\nvda.pyw" %*
7+
call uv run --directory "%sourceDirPath%" nvda.pyw %*

runsettingsdiff.bat

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
set hereOrig=%~dp0
33
set here=%hereOrig%
44
if #%hereOrig:~-1%# == #\# set here=%hereOrig:~0,-1%
5-
set scriptsDir=%here%\venvUtils
65
set systemTestsPath=%here%\tests\system
76

8-
call "%scriptsDir%\venvCmd.bat" py -m robot --argumentfile "%systemTestsPath%\guiDiff.robot" %* "%systemTestsPath%\robot"
7+
call uv run --group system-tests --directory "%here%" -m robot --argumentfile "%systemTestsPath%\guiDiff.robot" %* "%systemTestsPath%\robot"

runsystemtests.bat

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
set hereOrig=%~dp0
33
set here=%hereOrig%
44
if #%hereOrig:~-1%# == #\# set here=%hereOrig:~0,-1%
5-
set scriptsDir=%here%\venvUtils
65
set systemTestsPath=%here%\tests\system
76

8-
call "%scriptsDir%\venvCmd.bat" py -m robot --argumentfile "%systemTestsPath%\robotArgs.robot" %* "%systemTestsPath%\robot"
7+
call uv run --group system-tests --directory "%here%" -m robot --argumentfile "%systemTestsPath%\robotArgs.robot" %* "%systemTestsPath%\robot"

0 commit comments

Comments
 (0)