From e32cf71ae7dacbf9674262705cb2e8e1a5a2d206 Mon Sep 17 00:00:00 2001 From: Anton Hvornum Date: Thu, 6 Jan 2022 22:01:15 +0100 Subject: Added type annotations to all functions (#845) * Added type annotations for 1/5 of the files. There's bound to be some issues with type miss-match, will sort that out later. * Added type hints for 4/5 of the code * Added type hints for 4.7/5 of the code * Added type hints for 5/5 of the code base * Split the linters into individual files This should help with more clearly show which runner is breaking since they don't share a single common name any longer. Also moved mypy settings into pyproject.toml * Fixed some of the last flake8 issues * Missing parameter * Fixed invalid lookahead types * __future__ had to be at the top * Fixed last flake8 issues --- archinstall/lib/plugins.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'archinstall/lib/plugins.py') diff --git a/archinstall/lib/plugins.py b/archinstall/lib/plugins.py index 027b58d5..e61c114e 100644 --- a/archinstall/lib/plugins.py +++ b/archinstall/lib/plugins.py @@ -7,6 +7,7 @@ import pathlib import urllib.parse import urllib.request from importlib import metadata +from typing import ModuleType, Optional, List from .output import log from .storage import storage @@ -38,7 +39,7 @@ def localize_path(profile_path :str) -> str: return profile_path -def import_via_path(path :str, namespace=None): # -> module (not sure how to write that in type definitions) +def import_via_path(path :str, namespace :Optional[str] = None) -> ModuleType: if not namespace: namespace = os.path.basename(path) @@ -62,14 +63,14 @@ def import_via_path(path :str, namespace=None): # -> module (not sure how to wri except: pass -def find_nth(haystack, needle, n): +def find_nth(haystack :List[str], needle :str, n :int) -> int: start = haystack.find(needle) while start >= 0 and n > 1: start = haystack.find(needle, start + len(needle)) n -= 1 return start -def load_plugin(path :str): # -> module (not sure how to write that in type definitions) +def load_plugin(path :str) -> ModuleType: parsed_url = urllib.parse.urlparse(path) # The Profile was not a direct match on a remote URL -- cgit v1.2.3-70-g09d2 From 93f9d159bd69fee03e0fa139296bc9aa52520c92 Mon Sep 17 00:00:00 2001 From: Anton Hvornum Date: Fri, 7 Jan 2022 11:54:29 +0100 Subject: Fixed import error ModuleType (#848) Co-authored-by: Anton Hvornum --- archinstall/lib/installer.py | 3 ++- archinstall/lib/plugins.py | 3 ++- archinstall/lib/profiles.py | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) (limited to 'archinstall/lib/plugins.py') diff --git a/archinstall/lib/installer.py b/archinstall/lib/installer.py index b1570e16..6e4a6193 100644 --- a/archinstall/lib/installer.py +++ b/archinstall/lib/installer.py @@ -6,7 +6,8 @@ import shlex import pathlib import subprocess import glob -from typing import Union, Dict, Any, List, ModuleType, Optional, Iterator, Mapping +from types import ModuleType +from typing import Union, Dict, Any, List, Optional, Iterator, Mapping from .disk import get_partitions_in_use, Partition from .general import SysCommand, generate_password from .hardware import has_uefi, is_vm, cpu_vendor diff --git a/archinstall/lib/plugins.py b/archinstall/lib/plugins.py index e61c114e..7f920317 100644 --- a/archinstall/lib/plugins.py +++ b/archinstall/lib/plugins.py @@ -7,7 +7,8 @@ import pathlib import urllib.parse import urllib.request from importlib import metadata -from typing import ModuleType, Optional, List +from typing import Optional, List +from types import ModuleType from .output import log from .storage import storage diff --git a/archinstall/lib/profiles.py b/archinstall/lib/profiles.py index 6b0e69bf..9befd3d5 100644 --- a/archinstall/lib/profiles.py +++ b/archinstall/lib/profiles.py @@ -9,7 +9,8 @@ import sys import urllib.error import urllib.parse import urllib.request -from typing import Optional, ModuleType, Dict, Union, TYPE_CHECKING +from typing import Optional, Dict, Union, TYPE_CHECKING +from types import ModuleType # https://stackoverflow.com/a/39757388/929999 if TYPE_CHECKING: from .installer import Installer -- cgit v1.2.3-70-g09d2