22import sys
33
44from .constants import (
5- INSTALL_VERSIONS ,
6- SHOW_VERSIONS ,
7- UPGRADE ,
8- USE_VERSION ,
5+ INSTALL_COMMAND ,
6+ UPGRADE_COMMAND ,
7+ USE_COMMAND ,
8+ VERSIONS_COMMAND ,
99)
1010from .exceptions import (
1111 ChecksumMismatchError ,
@@ -64,7 +64,8 @@ def solc_select_upgrade(service: SolcService) -> None:
6464 service .upgrade_architecture ()
6565
6666
67- def solc_select () -> None :
67+ def create_parser () -> argparse .ArgumentParser :
68+ """Create and configure the argument parser."""
6869 parser = argparse .ArgumentParser ()
6970 subparsers = parser .add_subparsers (
7071 help = "Allows users to install and quickly switch between Solidity compiler versions" ,
@@ -73,50 +74,55 @@ def solc_select() -> None:
7374
7475 # Install command
7576 parser_install = subparsers .add_parser (
76- "install" , help = "list and install available solc versions"
77+ INSTALL_COMMAND , help = "list and install available solc versions"
7778 )
7879 parser_install .add_argument (
79- INSTALL_VERSIONS ,
80+ "versions" ,
8081 help = 'specific versions you want to install "0.4.25", "all" or "latest"' ,
8182 nargs = "*" ,
8283 default = [],
8384 )
8485
8586 # Use command
86- parser_use = subparsers .add_parser ("use" , help = "change the version of global solc compiler" )
87- parser_use .add_argument (
88- USE_VERSION , help = "solc version you want to use (eg: 0.4.25)" , nargs = "?"
87+ parser_use = subparsers .add_parser (
88+ USE_COMMAND , help = "change the version of global solc compiler"
8989 )
90+ parser_use .add_argument ("version" , help = "solc version you want to use (eg: 0.4.25)" , nargs = "?" )
9091 parser_use .add_argument ("--always-install" , action = "store_true" )
9192
9293 # Versions command
9394 parser_versions = subparsers .add_parser (
94- "versions" , help = "prints out all installed solc versions"
95+ VERSIONS_COMMAND , help = "prints out all installed solc versions"
9596 )
96- parser_versions .add_argument (SHOW_VERSIONS , nargs = "*" , help = argparse .SUPPRESS )
97+ parser_versions .add_argument ("versions" , nargs = "*" , help = argparse .SUPPRESS )
9798
9899 # Upgrade command
99- parser_upgrade = subparsers .add_parser ("upgrade" , help = "upgrades solc-select" )
100- parser_upgrade .add_argument (UPGRADE , nargs = "*" , help = argparse .SUPPRESS )
100+ parser_upgrade = subparsers .add_parser (UPGRADE_COMMAND , help = "upgrades solc-select" )
101+ parser_upgrade .add_argument ("upgrade" , nargs = "*" , help = argparse .SUPPRESS )
102+
103+ return parser
101104
105+
106+ def solc_select () -> None :
107+ parser = create_parser ()
102108 args = parser .parse_args ()
103109
104110 # Create service instance
105111 service = SolcService ()
106112
107113 try :
108- if args .command == "install" :
109- solc_select_install (service , args .INSTALL_VERSIONS )
114+ if args .command == INSTALL_COMMAND :
115+ solc_select_install (service , args .versions )
110116
111- elif args .command == "use" :
112- if not args .USE_VERSION :
113- parser .error ("the following arguments are required: USE_VERSION " )
114- solc_select_use (service , args .USE_VERSION , args .always_install )
117+ elif args .command == USE_COMMAND :
118+ if not args .version :
119+ parser .error ("the following arguments are required: version " )
120+ solc_select_use (service , args .version , args .always_install )
115121
116- elif args .command == "versions" :
122+ elif args .command == VERSIONS_COMMAND :
117123 solc_select_versions (service )
118124
119- elif args .command == "upgrade" :
125+ elif args .command == UPGRADE_COMMAND :
120126 solc_select_upgrade (service )
121127
122128 else :
0 commit comments