diff --git a/main.py b/main.py index 2f20bef..46d0385 100644 --- a/main.py +++ b/main.py @@ -37,7 +37,7 @@ def main() -> None: parser = Parser(patcher, config) app_all_patches = patcher.get_app_configs(app) app.download_apk_for_patching(config) - patcher.include_exclude_patch(app, parser, app_all_patches) + parser.include_exclude_patch(app, app_all_patches, patcher.patches_dict) logger.info(app) parser.patch_app(app) except AppNotFoundError as e: diff --git a/src/parser.py b/src/parser.py index 6b92e67..5ab5171 100644 --- a/src/parser.py +++ b/src/parser.py @@ -2,7 +2,7 @@ from pathlib import Path from subprocess import PIPE, Popen from time import perf_counter -from typing import List, Self +from typing import Dict, List, Self from loguru import logger @@ -103,6 +103,18 @@ class Parser(object): if item == "-i": self._PATCHES[idx] = "-e" + def include_exclude_patch( + self: Self, app: APP, patches: List[Dict[str, str]], patches_dict: Dict[str, str] + ) -> None: + """The function `include_exclude_patch` includes and excludes patches for a given app.""" + for patch in patches: + normalized_patch = patch["name"].lower().replace(" ", "-") + self.include(normalized_patch) if normalized_patch not in app.exclude_request else self.exclude( + normalized_patch + ) + for normalized_patch in app.include_request: + self.include(normalized_patch) if normalized_patch not in patches_dict["universal_patch"] else () + @staticmethod def is_new_cli(cli_path: Path) -> bool: """Check if new cli is being used.""" diff --git a/src/patches.py b/src/patches.py index c0e9e96..c2d1090 100644 --- a/src/patches.py +++ b/src/patches.py @@ -156,29 +156,6 @@ class Patches(object): version = next(i["version"] for i in patches if i["version"] != "all") return patches, version - def include_exclude_patch(self: Self, app: APP, parser: Any, patches: List[Dict[str, str]]) -> None: - """The function `include_exclude_patch` includes and excludes patches for a given app. - - Parameters - ---------- - app : APP - The "app" parameter is the name of the app for which the patches are being included or - excluded. - parser : Any - The `parser` parameter is an object of type `Any`, which means it can be any type of object. It - is used to perform parsing operations. - patches : List[Dict[str, str]] - A list of dictionaries, where each dictionary represents a patch and contains the following - keys: - """ - for patch in patches: - normalized_patch = patch["name"].lower().replace(" ", "-") - parser.include(normalized_patch) if normalized_patch not in app.exclude_request else parser.exclude( - normalized_patch - ) - for normalized_patch in app.include_request: - parser.include(normalized_patch) if normalized_patch not in self.patches_dict["universal_patch"] else () - def get_app_configs(self: Self, app: "APP") -> List[Dict[str, str]]: """The function `get_app_configs` returns configurations for a given app.