diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c84a51b..0ad1fe0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -202,10 +202,14 @@ jobs: with: python-version: ${{ matrix.python-version }} - - name: Typecheck + - run: uv sync --frozen --group typecheck + - name: Typecheck (mypy) run: | - uv run --frozen --no-editable --group typecheck mypy src/gpgi + uv run mypy src + - name: Typecheck (pyright) + run: | + uv run pyright src future: name: py${{ matrix.python-version }} diff --git a/pyproject.toml b/pyproject.toml index 2c8f222..b61f6ff 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -52,6 +52,7 @@ concurrency = [ ] typecheck = [ "mypy>=1.13.0", + "pyright>=1.1.391", ] [tool.setuptools] diff --git a/uv.lock b/uv.lock index 0335f81..fb77c33 100644 --- a/uv.lock +++ b/uv.lock @@ -179,6 +179,7 @@ test = [ ] typecheck = [ { name = "mypy" }, + { name = "pyright" }, ] [package.metadata] @@ -202,7 +203,10 @@ test = [ { name = "pytest", specifier = ">=7.0.0" }, { name = "pytest-mpl", specifier = ">=0.16.1" }, ] -typecheck = [{ name = "mypy", specifier = ">=1.13.0" }] +typecheck = [ + { name = "mypy", specifier = ">=1.13.0" }, + { name = "pyright", specifier = ">=1.1.391" }, +] [[package]] name = "iniconfig" @@ -422,6 +426,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/2a/e2/5d3f6ada4297caebe1a2add3b126fe800c96f56dbe5d1988a2cbe0b267aa/mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d", size = 4695 }, ] +[[package]] +name = "nodeenv" +version = "1.9.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/43/16/fc88b08840de0e0a72a2f9d8c6bae36be573e475a6326ae854bcc549fc45/nodeenv-1.9.1.tar.gz", hash = "sha256:6ec12890a2dab7946721edbfbcd91f3319c6ccc9aec47be7c7e6b7011ee6645f", size = 47437 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d2/1d/1b658dbd2b9fa9c4c9f32accbfc0205d532c8c6194dc0f2a4c0428e7128a/nodeenv-1.9.1-py2.py3-none-any.whl", hash = "sha256:ba11c9782d29c27c70ffbdda2d7415098754709be8a7056d79a737cd901155c9", size = 22314 }, +] + [[package]] name = "numpy" version = "2.2.1" @@ -546,6 +559,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/1c/a7/c8a2d361bf89c0d9577c934ebb7421b25dc84bf3a8e3ac0a40aed9acc547/pyparsing-3.2.1-py3-none-any.whl", hash = "sha256:506ff4f4386c4cec0590ec19e6302d3aedb992fdc02c761e90416f158dacf8e1", size = 107716 }, ] +[[package]] +name = "pyright" +version = "1.1.391" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "nodeenv" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/11/05/4ea52a8a45cc28897edb485b4102d37cbfd5fce8445d679cdeb62bfad221/pyright-1.1.391.tar.gz", hash = "sha256:66b2d42cdf5c3cbab05f2f4b76e8bec8aa78e679bfa0b6ad7b923d9e027cadb2", size = 21965 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ad/89/66f49552fbeb21944c8077d11834b2201514a56fd1b7747ffff9630f1bd9/pyright-1.1.391-py3-none-any.whl", hash = "sha256:54fa186f8b3e8a55a44ebfa842636635688670c6896dcf6cf4a7fc75062f4d15", size = 18579 }, +] + [[package]] name = "pytest" version = "8.3.4"