From 37a5743c6a42140d7e46f2605ebb88bc9cc68ddd Mon Sep 17 00:00:00 2001 From: phot0n Date: Fri, 10 Dec 2021 16:23:42 +0530 Subject: [PATCH] chore: renamed check_or_get_parsed_git_obj_from_url function * chore: rearranged setup_details' if-else code block --- bench/app.py | 28 ++++++++++++++-------------- bench/utils/__init__.py | 4 ++-- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/bench/app.py b/bench/app.py index 7d677a879..4eb8e6d98 100755 --- a/bench/app.py +++ b/bench/app.py @@ -17,11 +17,11 @@ import bench from bench.exceptions import NotInBenchDirectoryError from bench.utils import ( - check_or_get_parsed_git_obj_from_url, fetch_details_from_tag, get_available_folder_name, is_bench_directory, log, + parse_git_url, run_frappe_cmd, ) from bench.utils.bench import ( @@ -60,6 +60,9 @@ class Healthcare(AppConfig): """ self.name = name.rstrip('/') self.to_clone = to_clone + # NOTE: keeping this here in lieu of: + # https://github.com/frappe/bench/pull/1233#discussion_r766489037 + self.remote_git_host = "github.com" self.on_disk = False self.from_name_tag = False self.from_apps = False @@ -67,13 +70,16 @@ class Healthcare(AppConfig): self.setup_details() def setup_details(self): - # NOTE: ideally it should be used in if-else code block but in order to minimize - # same function calls we're using this over here and since we're currently - # supporting python v3.7, walrus operator (:=) can't be used :( - parsed_git_obj = check_or_get_parsed_git_obj_from_url(self.name) + + # fetch meta for repo from git url - traditional get-app url + parsed_git_obj = parse_git_url(self.name) + if parsed_git_obj: + self.tag = self.branch + self.org = parsed_git_obj.owner + self.repo = parsed_git_obj.name # fetch meta from installed apps - if ( + elif ( not self.to_clone and hasattr(self, "bench") and os.path.exists(os.path.join(self.bench.name, "apps", self.name)) @@ -86,12 +92,6 @@ def setup_details(self): self.on_disk = True self._setup_details_from_mounted_disk() - # fetch meta for repo from remote git server - traditional get-app url - elif parsed_git_obj: - self.tag = self.branch - self.org = parsed_git_obj.owner - self.repo = parsed_git_obj.name - # fetch meta from new styled name tags & first party apps on github else: self._setup_details_from_name_tag() @@ -119,11 +119,11 @@ def url(self): if self.from_name_tag: return self.get_http_url() - # return the git url as is + # return the git url when it's valid return self.name def get_http_url(self): - return f"https://github.com/{self.org}/{self.repo}.git" + return f"https://{self.remote_git_host}/{self.org}/{self.repo}.git" @functools.lru_cache(maxsize=None) diff --git a/bench/utils/__init__.py b/bench/utils/__init__.py index 0469b1300..12fc026bc 100644 --- a/bench/utils/__init__.py +++ b/bench/utils/__init__.py @@ -7,7 +7,7 @@ import sys from glob import glob from shlex import split -from typing import Any, List, Tuple +from typing import List, Tuple # imports - third party imports import click @@ -421,7 +421,7 @@ def fetch_details_from_tag(_tag: str) -> Tuple[str, str, str]: return org, repo, tag -def check_or_get_parsed_git_obj_from_url(url: str) -> Any: +def parse_git_url(url: str): try: parsed_obj = giturlparse.parse(url) except Exception: