CI: pyright in github actions (#3121)
* CI: strict mypy check in github actions mypy_files.txt is a list of files that will fail the CI if mypy finds errors in them * don't need these * `Any` should be a way to silence the type checker * restrict return Any * CI: pyright in github actions * fix mistake in translating from mypy * missed another change from mypy to pyright * pin pyright version * add more paths that should trigger check * use Python instead of bash * type error for testing CI * Revert "type error for testing CI" This reverts commit 99f65f3dadf67fb18b6bbee90bd77d8dbd10f9f9. * oops * don't need to redirect output
This commit is contained in:
		
							parent
							
								
									38c54ba393
								
							
						
					
					
						commit
						30cdde8605
					
				|  | @ -0,0 +1,27 @@ | |||
| { | ||||
|   "include": [ | ||||
|     "type_check.py", | ||||
|     "../worlds/AutoSNIClient.py", | ||||
|     "../Patch.py" | ||||
|   ], | ||||
| 
 | ||||
|   "exclude": [ | ||||
|     "**/__pycache__" | ||||
|   ], | ||||
| 
 | ||||
|   "stubPath": "../typings", | ||||
| 
 | ||||
|   "typeCheckingMode": "strict", | ||||
|   "reportImplicitOverride": "error", | ||||
|   "reportMissingImports": true, | ||||
|   "reportMissingTypeStubs": true, | ||||
| 
 | ||||
|   "pythonVersion": "3.8", | ||||
|   "pythonPlatform": "Windows", | ||||
| 
 | ||||
|   "executionEnvironments": [ | ||||
|     { | ||||
|       "root": ".." | ||||
|     } | ||||
|   ] | ||||
| } | ||||
|  | @ -0,0 +1,15 @@ | |||
| from pathlib import Path | ||||
| import subprocess | ||||
| 
 | ||||
| config = Path(__file__).parent / "pyright-config.json" | ||||
| 
 | ||||
| command = ("pyright", "-p", str(config)) | ||||
| print(" ".join(command)) | ||||
| 
 | ||||
| try: | ||||
|     result = subprocess.run(command) | ||||
| except FileNotFoundError as e: | ||||
|     print(f"{e} - Is pyright installed?") | ||||
|     exit(1) | ||||
| 
 | ||||
| exit(result.returncode) | ||||
|  | @ -0,0 +1,33 @@ | |||
| name: type check | ||||
| 
 | ||||
| on: | ||||
|   pull_request: | ||||
|     paths: | ||||
|       - "**.py" | ||||
|       - ".github/pyright-config.json" | ||||
|       - ".github/workflows/strict-type-check.yml" | ||||
|       - "**.pyi" | ||||
|   push: | ||||
|     paths: | ||||
|       - "**.py" | ||||
|       - ".github/pyright-config.json" | ||||
|       - ".github/workflows/strict-type-check.yml" | ||||
|       - "**.pyi" | ||||
| 
 | ||||
| jobs: | ||||
|   pyright: | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|       - uses: actions/checkout@v4 | ||||
| 
 | ||||
|       - uses: actions/setup-python@v5 | ||||
|         with: | ||||
|           python-version: "3.11" | ||||
| 
 | ||||
|       - name: "Install dependencies" | ||||
|         run: | | ||||
|           python -m pip install --upgrade pip pyright==1.1.358 | ||||
|           python ModuleUpdate.py --append "WebHostLib/requirements.txt" --force --yes | ||||
| 
 | ||||
|       - name: "pyright: strict check on specific files" | ||||
|         run: python .github/type_check.py | ||||
|  | @ -70,7 +70,7 @@ def install_pkg_resources(yes=False): | |||
|         subprocess.call([sys.executable, "-m", "pip", "install", "--upgrade", "setuptools"]) | ||||
| 
 | ||||
| 
 | ||||
| def update(yes=False, force=False): | ||||
| def update(yes: bool = False, force: bool = False) -> None: | ||||
|     global update_ran | ||||
|     if not update_ran: | ||||
|         update_ran = True | ||||
|  |  | |||
|  | @ -1,7 +1,7 @@ | |||
| """ FillType_* is not a real kivy type - just something to fill unknown typing. """ | ||||
| 
 | ||||
| from typing import Any, Optional, Protocol | ||||
| from ..graphics import FillType_Drawable, FillType_Vec | ||||
| from ..graphics.texture import FillType_Drawable, FillType_Vec | ||||
| 
 | ||||
| 
 | ||||
| class FillType_BindCallback(Protocol): | ||||
|  |  | |||
|  | @ -64,7 +64,7 @@ class SuffixIdentifier: | |||
|     def __init__(self, *args: str): | ||||
|         self.suffixes = args | ||||
| 
 | ||||
|     def __call__(self, path: str): | ||||
|     def __call__(self, path: str) -> bool: | ||||
|         if isinstance(path, str): | ||||
|             for suffix in self.suffixes: | ||||
|                 if path.endswith(suffix): | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue