From 5a723500c0e6b94f4facb1ad700b0a508a417fad Mon Sep 17 00:00:00 2001 From: Allen Li Date: Fri, 19 Jul 2024 01:34:54 +0000 Subject: [PATCH] [git_cl] Add _base_url property Makes __init__ a bit cleaner, and planning to make _shortname a property also next, since it can be derived from _remote_url Bug: b/351071334 Change-Id: I12f4363723172a9cdaba37f6beb8fa37bbf09d72 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5718639 Commit-Queue: Allen Li Reviewed-by: Yiwei Zhang --- git_cl.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/git_cl.py b/git_cl.py index c74996066..8e92ee333 100755 --- a/git_cl.py +++ b/git_cl.py @@ -13,6 +13,7 @@ import collections import datetime import enum import fnmatch +import functools import httplib2 import itertools import json @@ -3720,12 +3721,16 @@ class GitAuthConfigChanger(object): self.mode: GitConfigMode = mode self._shortname: str = host_shortname - parts: urllib.parse.SplitResult = urllib.parse.urlsplit(remote_url) - # Base URL looks like https://chromium.googlesource.com/ - self._base_url: str = parts._replace(path='/', query='', - fragment='').geturl() + self._remote_url: str = remote_url self._set_config_func: Callable[..., str] = set_config_func + @functools.cached_property + def _base_url(self) -> str: + # Base URL looks like https://chromium.googlesource.com/ + parts: urllib.parse.SplitResult = urllib.parse.urlsplit( + self._remote_url) + return parts._replace(path='/', query='', fragment='').geturl() + @classmethod def new_from_env(cls) -> 'GitAuthConfigChanger': """Create a GitAuthConfigChanger by inferring from env."""