Skip to content

Commit 49f897d

Browse files
authored
Merge 09f42c3 into cb7258a
2 parents cb7258a + 09f42c3 commit 49f897d

15 files changed

Lines changed: 1291 additions & 300 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

.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: 83 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,59 @@ 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+
package = false
281+
python-preference = "only-managed"
282+
environments = ["sys_platform == 'win32'"]
283+
284+
[tool.uv.sources]
285+
configobj = { git = "https://github.com/DiffSK/configobj", rev = "8be54629ee7c26acb5c865b74c76284e80f3aa31" }
286+
287+
[dependency-groups]
288+
dev = [
289+
# NVDA's build system is SCons
290+
"SCons==4.8.1",
291+
# Packaging NVDA
292+
"py2exe==0.13.0.2",
293+
# l10nUtil requires Crowdin
294+
"crowdin-api-client==1.21.0",
295+
]
296+
lint = [
297+
"ruff==0.8.1",
298+
"pre-commit==4.0.1",
299+
"pyright==1.1.396",
300+
]
301+
license-check = [
302+
"licensecheck==2024.3",
303+
]
304+
docs = [
305+
# Building user documentation
306+
"Markdown==3.7",
307+
"mdx_truly_sane_lists==1.3",
308+
"markdown-link-attr-modifier==0.2.1",
309+
"mdx-gh-links==0.4",
310+
# For building developer documentation
311+
"sphinx==8.1.2",
312+
"sphinx_rtd_theme==3.0.1",
313+
]
314+
l10n = [
315+
# l10nUtil requires Crowdin
316+
"crowdin-api-client==1.21.0"
317+
]
318+
system-tests = [
319+
"robotframework==7.1.1",
320+
"robotremoteserver==1.1.1",
321+
"robotframework-screencaplibrary==1.6.0",
322+
]
323+
unit-tests = [
324+
# Creating XML unit test reports
325+
"unittest-xml-reporting==3.2.0",
326+
# Feed parameters to tests neatly
327+
"parameterized==0.9.0",
328+
]

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"

rununittests.bat

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,8 @@
22
set hereOrig=%~dp0
33
set here=%hereOrig%
44
if #%hereOrig:~-1%# == #\# set here=%hereOrig:~0,-1%
5-
set scriptsDir=%here%\venvUtils
65
set unitTestsPath=%here%\tests\unit
76
set testOutput=%here%\testOutput\unit
87
md %testOutput%
98

10-
call "%scriptsDir%\venvCmd.bat" py -m xmlrunner discover -b -s "%unitTestsPath%" -t "%here%" --output-file "%testOutput%\unitTests.xml" %*
9+
call uv run --group unit-tests --directory "%here%" -m xmlrunner discover -b -s "%unitTestsPath%" -t "%here%" --output-file "%testOutput%\unitTests.xml" %*

0 commit comments

Comments
 (0)