1111
1212
1313class VersionArgs (TypedDict , total = False ):
14+ commitizen : bool
1415 report : bool
1516 project : bool
1617 verbose : bool
@@ -19,46 +20,52 @@ class VersionArgs(TypedDict, total=False):
1920
2021
2122class Version :
22- """Get the version of the installed commitizen or the current project."""
23+ """Get the version of the installed commitizen or the current project.
24+ Precedence:
25+ 1. commitizen
26+ 2. report
27+ 3. verbose, project
28+ """
2329
2430 def __init__ (self , config : BaseConfig , arguments : VersionArgs ) -> None :
2531 self .config : BaseConfig = config
2632 self .parameter = arguments
27- self .operating_system = platform .system ()
28- self .python_version = sys .version
2933
3034 def __call__ (self ) -> None :
35+ if self .parameter .get ("commitizen" ) or not any (self .parameter .values ()):
36+ # Enter this block if commitizen is explicitly requested or no argument is given
37+ out .write (f"{ __version__ } " )
38+ return
39+
3140 if self .parameter .get ("report" ):
3241 out .write (f"Commitizen Version: { __version__ } " )
33- out .write (f"Python Version: { self . python_version } " )
34- out .write (f"Operating System: { self . operating_system } " )
42+ out .write (f"Python Version: { sys . version } " )
43+ out .write (f"Operating System: { platform . system () } " )
3544 return
3645
37- if (verbose := self .parameter .get ("verbose" )) or self .parameter .get ("project" ):
38- if verbose :
39- out .write (f"Installed Commitizen Version: { __version__ } " )
40-
41- try :
42- version = get_provider (self .config ).get_version ()
43- except NoVersionSpecifiedError :
44- out .error ("No project information in this project." )
45- return
46+ if self .parameter .get ("verbose" ):
47+ out .write (f"Installed Commitizen Version: { __version__ } " )
4648
47- try :
48- version_scheme = get_version_scheme (self .config . settings )
49- except VersionSchemeUnknown :
50- out .error ("Unknown version scheme ." )
51- return
49+ try :
50+ version = get_provider (self .config ). get_version ( )
51+ except NoVersionSpecifiedError :
52+ out .error ("No project information in this project ." )
53+ return
5254
53- _version = version_scheme (version )
55+ try :
56+ version_scheme = get_version_scheme (self .config .settings )
57+ except VersionSchemeUnknown :
58+ out .error ("Unknown version scheme." )
59+ return
5460
55- if self .parameter .get ("major" ):
56- version = f"{ _version .major } "
57- elif self .parameter .get ("minor" ):
58- version = f"{ _version .minor } "
61+ _version = version_scheme (version )
5962
60- out .write (f"Project Version: { version } " if verbose else version )
61- return
63+ if self .parameter .get ("major" ):
64+ version = f"{ _version .major } "
65+ elif self .parameter .get ("minor" ):
66+ version = f"{ _version .minor } "
6267
63- # if no argument is given, show installed commitizen version
64- out .write (f"{ __version__ } " )
68+ out .write (
69+ f"Project Version: { version } " if self .parameter .get ("verbose" ) else version
70+ )
71+ return
0 commit comments