diff --git a/AUTHORS b/AUTHORS index 47c1ab30..fffe7359 100644 --- a/AUTHORS +++ b/AUTHORS @@ -9,4 +9,5 @@ Jannis Leidel Ralf Schmitt Ian Cordasco Marc Abramowitz (http://marc-abramowitz.com/) -Tom Myers \ No newline at end of file +Tom Myers +Rodrigue Cloutier diff --git a/twine/cli.py b/twine/cli.py index 76676585..43c7baf7 100644 --- a/twine/cli.py +++ b/twine/cli.py @@ -25,7 +25,8 @@ def _registered_commands(group='twine.registered_commands'): - return list(pkg_resources.iter_entry_points(group=group)) + registered_commands = pkg_resources.iter_entry_points(group=group) + return dict((c.name, c) for c in registered_commands) def dep_versions(): @@ -49,7 +50,7 @@ def dispatch(argv): ) parser.add_argument( "command", - choices=[c.name for c in registered_commands], + choices=registered_commands.keys(), ) parser.add_argument( "args", @@ -59,14 +60,6 @@ def dispatch(argv): args = parser.parse_args(argv) - command = args.command - for registered_command in registered_commands: - if registered_command.name == command: - break - else: - print("{0} is not a valid command.".format(command)) - raise SystemExit(True) - - main = registered_command.load() + main = registered_commands[args.command].load() main(args.args)