diff --git a/conf/project/pyrightconfig-base.json b/conf/project/pyrightconfig-base.json new file mode 100644 index 00000000..c6b2fd39 --- /dev/null +++ b/conf/project/pyrightconfig-base.json @@ -0,0 +1,6 @@ +{ + "typeCheckingMode": "basic", + "pythonPlatform": "Linux", + "useLibraryCodeForTypes": true, + "verboseOutput": false +} diff --git a/make/project.conf b/make/project.conf index 6de8ace9..71fa0347 100644 --- a/make/project.conf +++ b/make/project.conf @@ -21,7 +21,7 @@ devel = jw-pkg-run = VERSION-REVISION run = bash, python3 build = make, time, xdg-utils, coreutils, cpio, xdg-utils, git-core devel = sudo, gawk, pkg-config -release = python3-isort, python3-yapf, python3-ruff +release = python3-isort, python3-yapf, python3-ruff, python3-pyright [pkg.requires.centos] run = hostname, python diff --git a/make/py-topdir.mk b/make/py-topdir.mk index ddccdc34..a7aaecb0 100644 --- a/make/py-topdir.mk +++ b/make/py-topdir.mk @@ -1,4 +1,4 @@ -TD_COPY_FILES += pyproject.toml +TD_COPY_FILES += pyproject.toml pyrightconfig.json PY_CHECK_EXCLUDE ?= PY_SRC_ROOT += $(wildcard $(TOPDIR)/src $(TOPDIR)/tools) @@ -13,6 +13,7 @@ py-check: py-check-syntax py-check-format py-check-syntax: ruff check $(addprefix --exclude ,$(PY_CHECK_EXCLUDE)) $(PY_SRC_ROOT) mypy $(addprefix --exclude ,$(PY_CHECK_EXCLUDE)) $(PY_SRC_ROOT) + pyright py-check-format: yapf --diff --recursive . @@ -32,3 +33,8 @@ py-format-assignments: clean.topdir: clean.py-check clean.py-check: rm -rf .mypy_cache + +pyrightconfig.json: + $(PYTHON) $(JWB_SCRIPT_DIR)/jw-pkg.py -p $(PROJECTS_DIR) -t $(TOPDIR) --topdir-format unaltered projects create-file --format pyright \ + $(PROJECT) --field base=$(JW_PKG_CONF_BASE_DIR)/project/pyrightconfig-base.json $(addprefix --field include=,$(wildcard src/python tools/python)) > $@.tmp + mv $@.tmp $@ diff --git a/scripts/jw-pkg-create-project.sh b/scripts/jw-pkg-create-project.sh index 9d181162..1bc140a7 100644 --- a/scripts/jw-pkg-create-project.sh +++ b/scripts/jw-pkg-create-project.sh @@ -129,6 +129,7 @@ cat_gitignore() __init__.py __pycache__ pyproject.toml + pyrightconfig.json EOT }