Skip to content

Commit f62d1db

Browse files
committed
fix: raise NoVersionSpecifiedError if version is None, and adjust call sites of get_version
1 parent fb04e28 commit f62d1db

File tree

3 files changed

+22
-22
lines changed

3 files changed

+22
-22
lines changed

commitizen/commands/bump.py

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
NoPatternMapError,
2424
NotAGitProjectError,
2525
NotAllowed,
26-
NoVersionSpecifiedError,
2726
)
2827
from commitizen.providers import get_provider
2928
from commitizen.tags import TagRules
@@ -163,11 +162,7 @@ def _find_increment(self, commits: list[git.GitCommit]) -> Increment | None:
163162
def __call__(self) -> None:
164163
"""Steps executed to bump."""
165164
provider = get_provider(self.config)
166-
167-
try:
168-
current_version = self.scheme(provider.get_version())
169-
except TypeError:
170-
raise NoVersionSpecifiedError()
165+
current_version = self.scheme(provider.get_version())
171166

172167
increment = self.arguments["increment"]
173168
prerelease = self.arguments["prerelease"]

commitizen/commands/version.py

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
from commitizen import out
66
from commitizen.__version__ import __version__
77
from commitizen.config import BaseConfig
8+
from commitizen.exceptions import NoVersionSpecifiedError
89
from commitizen.providers import get_provider
910

1011

@@ -28,19 +29,20 @@ def __call__(self) -> None:
2829
out.write(f"Commitizen Version: {__version__}")
2930
out.write(f"Python Version: {self.python_version}")
3031
out.write(f"Operating System: {self.operating_system}")
31-
elif self.parameter.get("project"):
32-
version = get_provider(self.config).get_version()
33-
if version:
34-
out.write(f"{version}")
35-
else:
36-
out.error("No project information in this project.")
37-
elif self.parameter.get("verbose"):
38-
out.write(f"Installed Commitizen Version: {__version__}")
39-
version = get_provider(self.config).get_version()
40-
if version:
41-
out.write(f"Project Version: {version}")
42-
else:
32+
return
33+
34+
if (verbose := self.parameter.get("verbose")) or self.parameter.get("project"):
35+
if verbose:
36+
out.write(f"Installed Commitizen Version: {__version__}")
37+
38+
try:
39+
version = get_provider(self.config).get_version()
40+
except NoVersionSpecifiedError:
4341
out.error("No project information in this project.")
44-
else:
45-
# if no argument is given, show installed commitizen version
46-
out.write(f"{__version__}")
42+
return
43+
44+
out.write(("Project Version: " if verbose else "") + version)
45+
return
46+
47+
# if no argument is given, show installed commitizen version
48+
out.write(f"{__version__}")

commitizen/providers/commitizen_provider.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from __future__ import annotations
22

3+
from commitizen.exceptions import NoVersionSpecifiedError
34
from commitizen.providers.base_provider import VersionProvider
45

56

@@ -9,7 +10,9 @@ class CommitizenProvider(VersionProvider):
910
"""
1011

1112
def get_version(self) -> str:
12-
return self.config.settings["version"] # type: ignore[return-value] # TODO: check if we can fix this by tweaking the `Settings` type
13+
if ret := self.config.settings["version"]:
14+
return ret
15+
raise NoVersionSpecifiedError()
1316

1417
def set_version(self, version: str) -> None:
1518
self.config.set_key("version", version)

0 commit comments

Comments
 (0)