@@ -4,20 +4,41 @@ build-backend = "setuptools.build_meta"
44
55[project ]
66name = " nvda"
7+ dynamic = [" version" ]
78description = " NonVisual Desktop Access (NVDA)"
89maintainers = [
910 {name = " NV Access" , email = " info@nvaccess.org" },
1011]
12+ requires-python = " >=3.11"
1113classifiers = [
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]
1921readme = " readme.md"
2022license = {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 ]
2344Homepage = " https://www.nvaccess.org/"
@@ -249,3 +270,59 @@ reportMissingParameterType = false # 4000+ errors
249270reportUnknownVariableType = false # 6000+ errors
250271reportUnknownArgumentType = false # 6000+ errors
251272reportUnknownMemberType = 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+ ]
0 commit comments