Browse Source

markups: backwards compatibility

David Hotham 2 years ago
parent
commit
0c467db4cf
2 changed files with 22 additions and 22 deletions
  1. 18 18
      dulwich/config.py
  2. 4 4
      dulwich/repo.py

+ 18 - 18
dulwich/config.py

@@ -29,13 +29,12 @@ TODO:
 import os
 import sys
 import warnings
-
 from typing import (
     BinaryIO,
     Iterable,
     Iterator,
-    List,
     KeysView,
+    List,
     MutableMapping,
     Optional,
     Tuple,
@@ -202,7 +201,12 @@ class Config(object):
             return False
         raise ValueError("not a valid boolean string: %r" % value)
 
-    def set(self, section: KeyLike, name: BytesLike, value: ValueLike) -> None:
+    def set(
+        self,
+        section: KeyLike,
+        name: BytesLike,
+        value: Union[ValueLike, bool]
+    ) -> None:
         """Set a configuration value.
 
         Args:
@@ -213,18 +217,6 @@ class Config(object):
         """
         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.
 
@@ -381,11 +373,14 @@ class ConfigDict(Config, MutableMapping[Key, MutableMapping[bytes, Value]]):
         self,
         section: KeyLike,
         name: BytesLike,
-        value: ValueLike,
+        value: Union[ValueLike, bool],
     ) -> None:
         section, name = self._check_section_and_name(section, name)
 
-        if not isinstance(value, (bytes, bool)):
+        if isinstance(value, bool):
+            value = b"true" if value else b"false"
+
+        if not isinstance(value, bytes):
             value = value.encode(self.encoding)
 
         self._values.setdefault(section)[name] = value
@@ -744,7 +739,12 @@ class StackedConfig(Config):
             except KeyError:
                 pass
 
-    def set(self, section: KeyLike, name: BytesLike, value: ValueLike) -> None:
+    def set(
+        self,
+        section: KeyLike,
+        name: BytesLike,
+        value: Union[ValueLike, bool]
+    ) -> None:
         if self.writable is None:
             raise NotImplementedError(self.set)
         return self.writable.set(section, name, value)

+ 4 - 4
dulwich/repo.py

@@ -366,12 +366,12 @@ class BaseRepo(object):
         cf = ConfigFile()
         cf.set("core", "repositoryformatversion", "0")
         if self._determine_file_mode():
-            cf.set_boolean("core", "filemode", True)
+            cf.set("core", "filemode", True)
         else:
-            cf.set_boolean("core", "filemode", False)
+            cf.set("core", "filemode", False)
 
-        cf.set_boolean("core", "bare", bare)
-        cf.set_boolean("core", "logallrefupdates", True)
+        cf.set("core", "bare", bare)
+        cf.set("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"")