diff --git a/commitizen/config/__init__.py b/commitizen/config/__init__.py index 2cbd544825..e4e414437c 100644 --- a/commitizen/config/__init__.py +++ b/commitizen/config/__init__.py @@ -28,8 +28,8 @@ def read_cfg() -> BaseConfig: _conf: Union[TomlConfig, JsonConfig, YAMLConfig] - with open(filename, "r") as f: - data: str = f.read() + with open(filename, "rb") as f: + data: bytes = f.read() if "toml" in filename.suffix: _conf = TomlConfig(data=data, path=filename) diff --git a/commitizen/config/base_config.py b/commitizen/config/base_config.py index f3e0767dd2..76cd1706e1 100644 --- a/commitizen/config/base_config.py +++ b/commitizen/config/base_config.py @@ -31,5 +31,5 @@ def update(self, data: dict): def add_path(self, path: Union[str, Path]): self._path = Path(path) - def _parse_setting(self, data: str) -> dict: + def _parse_setting(self, data: Union[bytes, str]) -> dict: raise NotImplementedError() diff --git a/commitizen/config/json_config.py b/commitizen/config/json_config.py index fbf37bbd83..725e37a0eb 100644 --- a/commitizen/config/json_config.py +++ b/commitizen/config/json_config.py @@ -6,7 +6,7 @@ class JsonConfig(BaseConfig): - def __init__(self, *, data: str, path: Union[Path, str]): + def __init__(self, *, data: Union[bytes, str], path: Union[Path, str]): super(JsonConfig, self).__init__() self.is_empty_config = False self._parse_setting(data) @@ -22,7 +22,7 @@ def set_key(self, key, value): For now only strings are supported. We use to update the version number. """ - with open(self.path, "r") as f: + with open(self.path, "rb") as f: parser = json.load(f) parser["commitizen"][key] = value @@ -30,7 +30,7 @@ def set_key(self, key, value): json.dump(parser, f) return self - def _parse_setting(self, data: str): + def _parse_setting(self, data: Union[bytes, str]): """We expect to have a section in .cz.json looking like ``` diff --git a/commitizen/config/toml_config.py b/commitizen/config/toml_config.py index a9b3cfab1e..27ab47d4e2 100644 --- a/commitizen/config/toml_config.py +++ b/commitizen/config/toml_config.py @@ -7,7 +7,7 @@ class TomlConfig(BaseConfig): - def __init__(self, *, data: str, path: Union[Path, str]): + def __init__(self, *, data: Union[bytes, str], path: Union[Path, str]): super(TomlConfig, self).__init__() self.is_empty_config = False self._parse_setting(data) @@ -23,7 +23,7 @@ def set_key(self, key, value): For now only strings are supported. We use to update the version number. """ - with open(self.path, "r") as f: + with open(self.path, "rb") as f: parser = parse(f.read()) parser["tool"]["commitizen"][key] = value @@ -31,7 +31,7 @@ def set_key(self, key, value): f.write(parser.as_string()) return self - def _parse_setting(self, data: str): + def _parse_setting(self, data: Union[bytes, str]): """We expect to have a section in pyproject looking like ``` diff --git a/commitizen/config/yaml_config.py b/commitizen/config/yaml_config.py index 510882b9b0..5d199c1929 100644 --- a/commitizen/config/yaml_config.py +++ b/commitizen/config/yaml_config.py @@ -7,7 +7,7 @@ class YAMLConfig(BaseConfig): - def __init__(self, *, data: str, path: Union[Path, str]): + def __init__(self, *, data: Union[bytes, str], path: Union[Path, str]): super(YAMLConfig, self).__init__() self.is_empty_config = False self._parse_setting(data) @@ -17,7 +17,7 @@ def init_empty_config_content(self): with open(self.path, "a") as json_file: yaml.dump({"commitizen": {}}, json_file) - def _parse_setting(self, data: str): + def _parse_setting(self, data: Union[bytes, str]): """We expect to have a section in cz.yaml looking like ``` @@ -37,7 +37,7 @@ def set_key(self, key, value): For now only strings are supported. We use to update the version number. """ - with open(self.path, "r") as yaml_file: + with open(self.path, "rb") as yaml_file: parser = yaml.load(yaml_file, Loader=yaml.FullLoader) parser["commitizen"][key] = value