44import logging
55import os
66import pathlib
7+ import sys
78
89from ._version import VERSION
910from .version import VersionComponent
1011from .query import query_folder , predict_folder
1112
1213
13- def main (args = None ) -> None :
14- """Entry point of the command-line interface."""
14+ def main (args = None , namespace = None ) -> None :
15+ """Run the command-line interface.
16+
17+ Either query or predict version in a given folder according to the arguments.
18+ """
1519 logging_level = getattr (logging , os .environ .get ('LOGGING_LEVEL' , 'warning' ).upper ())
1620 logging .basicConfig (level = min (logging_level , logging .WARNING ))
1721 logging .getLogger ().setLevel (logging .WARNING )
@@ -28,15 +32,16 @@ def main(args=None) -> None:
2832 i.e. assume existence of git repository and infer current version from
2933 its tags, history and working tree status''' )
3034 parser .add_argument ('path' , type = pathlib .Path )
31- parser .add_argument ('--version' , action = 'version' , version = VERSION )
32- args = parser .parse_args (args )
33- if args .predict and args .increment :
35+ parser .add_argument ('--version' , action = 'version' ,
36+ version = f'{ parser .prog } { VERSION } ,\n Python { sys .version } ' )
37+ parsed_args = parser .parse_args (args = args , namespace = namespace )
38+ if parsed_args .predict and parsed_args .increment :
3439 raise ValueError (
3540 'choose one: either increment current version, or predict upcoming version' )
36- if args .predict :
37- version = predict_folder (args .path )
41+ if parsed_args .predict :
42+ version = predict_folder (parsed_args .path )
3843 else :
39- version = query_folder (args .path )
40- if args .increment :
44+ version = query_folder (parsed_args .path )
45+ if parsed_args .increment :
4146 version .increment (VersionComponent .Patch )
4247 print (version )
0 commit comments