3838
3939if TYPE_CHECKING :
4040 from git .repo .base import Repo
41+ from io import BytesIO
4142
4243# -------------------------------------------------------------
4344
@@ -274,7 +275,7 @@ class GitConfigParser(with_metaclass(MetaParserBuilder, cp.RawConfigParser, obje
274275 # list of RawConfigParser methods able to change the instance
275276 _mutating_methods_ = ("add_section" , "remove_section" , "remove_option" , "set" )
276277
277- def __init__ (self , file_or_files : Union [None , PathLike , IO , Sequence [Union [PathLike , IO ]]] = None ,
278+ def __init__ (self , file_or_files : Union [None , PathLike , BytesIO , Sequence [Union [PathLike , BytesIO ]]] = None ,
278279 read_only : bool = True , merge_includes : bool = True ,
279280 config_level : Union [Lit_config_levels , None ] = None ,
280281 repo : Union ['Repo' , None ] = None ) -> None :
@@ -303,7 +304,7 @@ def __init__(self, file_or_files: Union[None, PathLike, IO, Sequence[Union[PathL
303304 self ._proxies = self ._dict ()
304305
305306 if file_or_files is not None :
306- self ._file_or_files : Union [PathLike , IO , Sequence [Union [PathLike , IO ]]] = file_or_files
307+ self ._file_or_files : Union [PathLike , 'BytesIO' , Sequence [Union [PathLike , 'BytesIO' ]]] = file_or_files
307308 else :
308309 if config_level is None :
309310 if read_only :
@@ -650,7 +651,7 @@ def write(self) -> None:
650651 a file lock"""
651652 self ._assure_writable ("write" )
652653 if not self ._dirty :
653- return
654+ return None
654655
655656 if isinstance (self ._file_or_files , (list , tuple )):
656657 raise AssertionError ("Cannot write back if there is not exactly a single file to write to, have %i files"
@@ -675,7 +676,7 @@ def write(self) -> None:
675676 with open (fp , "wb" ) as fp_open :
676677 self ._write (fp_open )
677678 else :
678- fp = cast (IO , fp )
679+ fp = cast (BytesIO , fp )
679680 fp .seek (0 )
680681 # make sure we do not overwrite into an existing file
681682 if hasattr (fp , 'truncate' ):
0 commit comments