summaryrefslogtreecommitdiffstats
path: root/git_config.py
diff options
context:
space:
mode:
authorJoanna Wang <jojwang@google.com>2022-12-02 09:47:29 -0500
committerJoanna Wang <jojwang@google.com>2022-12-02 14:57:56 +0000
commitea5239ddd930624532cd1d0edccc0f3e74bec73f (patch)
treee0883d5a6e8986ee712c4440c5ed238e00ba652f /git_config.py
parent1b8714937c20d43f98bd9ffe498a49fcfb086141 (diff)
downloadgit-repo-ea5239ddd930624532cd1d0edccc0f3e74bec73f.tar.gz
Fix ManifestProject.partial_clone_exclude property.
Bug: b/256358360 Change-Id: Ic6e3a049aa38827123d0324c8b14157562c5986e Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/353574 Reviewed-by: Mike Frysinger <vapier@google.com> Tested-by: Joanna Wang <jojwang@google.com> Reviewed-by: Josip Sokcevic <sokcevic@google.com>
Diffstat (limited to 'git_config.py')
-rw-r--r--git_config.py14
1 files changed, 10 insertions, 4 deletions
diff --git a/git_config.py b/git_config.py
index 94378e9a..af1a1015 100644
--- a/git_config.py
+++ b/git_config.py
@@ -22,6 +22,7 @@ import re
22import ssl 22import ssl
23import subprocess 23import subprocess
24import sys 24import sys
25from typing import Union
25import urllib.error 26import urllib.error
26import urllib.request 27import urllib.request
27 28
@@ -117,7 +118,7 @@ class GitConfig(object):
117 return self.defaults.Has(name, include_defaults=True) 118 return self.defaults.Has(name, include_defaults=True)
118 return False 119 return False
119 120
120 def GetInt(self, name): 121 def GetInt(self, name: str) -> Union[int, None]:
121 """Returns an integer from the configuration file. 122 """Returns an integer from the configuration file.
122 123
123 This follows the git config syntax. 124 This follows the git config syntax.
@@ -126,7 +127,7 @@ class GitConfig(object):
126 name: The key to lookup. 127 name: The key to lookup.
127 128
128 Returns: 129 Returns:
129 None if the value was not defined, or is not a boolean. 130 None if the value was not defined, or is not an int.
130 Otherwise, the number itself. 131 Otherwise, the number itself.
131 """ 132 """
132 v = self.GetString(name) 133 v = self.GetString(name)
@@ -152,6 +153,9 @@ class GitConfig(object):
152 try: 153 try:
153 return int(v, base=base) * mult 154 return int(v, base=base) * mult
154 except ValueError: 155 except ValueError:
156 print(
157 f"warning: expected {name} to represent an integer, got {v} instead",
158 file=sys.stderr)
155 return None 159 return None
156 160
157 def DumpConfigDict(self): 161 def DumpConfigDict(self):
@@ -169,7 +173,7 @@ class GitConfig(object):
169 config_dict[key] = self.GetString(key) 173 config_dict[key] = self.GetString(key)
170 return config_dict 174 return config_dict
171 175
172 def GetBoolean(self, name): 176 def GetBoolean(self, name: str) -> Union[str, None]:
173 """Returns a boolean from the configuration file. 177 """Returns a boolean from the configuration file.
174 None : The value was not defined, or is not a boolean. 178 None : The value was not defined, or is not a boolean.
175 True : The value was set to true or yes. 179 True : The value was set to true or yes.
@@ -183,6 +187,8 @@ class GitConfig(object):
183 return True 187 return True
184 if v in ('false', 'no'): 188 if v in ('false', 'no'):
185 return False 189 return False
190 print(f"warning: expected {name} to represent a boolean, got {v} instead",
191 file=sys.stderr)
186 return None 192 return None
187 193
188 def SetBoolean(self, name, value): 194 def SetBoolean(self, name, value):
@@ -191,7 +197,7 @@ class GitConfig(object):
191 value = 'true' if value else 'false' 197 value = 'true' if value else 'false'
192 self.SetString(name, value) 198 self.SetString(name, value)
193 199
194 def GetString(self, name, all_keys=False): 200 def GetString(self, name: str, all_keys: bool = False) -> Union[str, None]:
195 """Get the first value for a key, or None if it is not defined. 201 """Get the first value for a key, or None if it is not defined.
196 202
197 This configuration file is used first, if the key is not 203 This configuration file is used first, if the key is not