commit - 9d9b5072223e4276793a7c6005786cb87f96cb08
commit + e9071c627f6d0a04a388b95402dbddd7ecfc3f52
blob - f979d3cdf036e519ffd79209a431c3736611ee0c
blob + 962e327b7f5096c5030bcf11507d4bde11446fb8
--- dulwich/config.py
+++ dulwich/config.py
BytesLike = Union[bytes, str]
Key = Tuple[bytes, ...]
KeyLike = Union[bytes, str, Tuple[BytesLike, ...]]
-Value = Union[bytes, bool]
-ValueLike = Union[bytes, str, bool]
+Value = bytes
+ValueLike = Union[bytes, str]
class Config(object):
value: value of the setting
"""
raise NotImplementedError(self.set)
+
+ def set_boolean(self, section: KeyLike, name: BytesLike, value: bool) -> None:
+ """Set a boolean configuration value.
+
+ Args:
+ section: Tuple with section name and optional subsection namee
+ name: Name of the configuration value, including section
+ and optional subsection
+ value: value of the setting
+ """
+ text = b"true" if value else b"false"
+ self.set(section, name, text)
def items(self, section: KeyLike) -> Iterator[Tuple[bytes, Value]]:
"""Iterate over the configuration pairs for a specific section.
section_kind, section_name = section
if section_kind == b"submodule":
sm_path = config.get(section, b"path")
- assert isinstance(sm_path, bytes)
- assert sm_path is not None
sm_url = config.get(section, b"url")
- assert sm_url is not None
- assert isinstance(sm_url, bytes)
yield (sm_path, sm_url, section_name)
blob - c7ff6544e509efb2a6c4b4fb4382b581726c6243
blob + d34dac7e8a6f3a6113e2b30e97f9f4f27dbe1a1a
--- dulwich/porcelain.py
+++ dulwich/porcelain.py
if config.has_section(section):
remote_name = encoded_location.decode()
- url = config.get(section, "url")
- assert url is not None
- assert isinstance(url, bytes)
- encoded_location = url
+ encoded_location = config.get(section, "url")
else:
remote_name = None
blob - 396069b9de456f1bde341145a311b23b46130da8
blob + 264ab907e6d89a032af4c3251432c66331a9e14f
--- dulwich/repo.py
+++ dulwich/repo.py
email = email_uc.encode("utf-8")
if user is None:
try:
- config_value = config.get(("user",), "name")
- assert isinstance(config_value, bytes)
- user = config_value
+ user = config.get(("user",), "name")
except KeyError:
user = None
if email is None:
try:
- config_value = config.get(("user",), "email")
- assert isinstance(config_value, bytes)
- email = config_value
+ email = config.get(("user",), "email")
except KeyError:
email = None
default_user, default_email = _get_default_identity()
cf = ConfigFile()
cf.set("core", "repositoryformatversion", "0")
if self._determine_file_mode():
- cf.set("core", "filemode", True)
+ cf.set_boolean("core", "filemode", True)
else:
- cf.set("core", "filemode", False)
+ cf.set_boolean("core", "filemode", False)
- cf.set("core", "bare", bare)
- cf.set("core", "logallrefupdates", True)
+ cf.set_boolean("core", "bare", bare)
+ cf.set_boolean("core", "logallrefupdates", True)
cf.write_to_file(f)
self._put_named_file("config", f.getvalue())
self._put_named_file(os.path.join("info", "exclude"), b"")