tree 00841c5d0106c9a17d71021096b99c88ca446882
parent 308637a1b8b48c9004787828a7776f6ad5c62587
author Scott Todd <scotttodd@google.com> 1692909113 -0700
committer GitHub <noreply@github.com> 1692909113 +0000
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJk5745CRBK7hj4Ov3rIwAAmuQIAJ214naE/zTBF5SW0zxAb2w5
 TqyuS3WT8RgFuGUBZ9GNCdO+yXuIu51Th2D7SZP5EDfLRxqXBJBxoDljsy5EntZQ
 9D1Psdebqch1yVS8PdqVYXdYh/HVpojn03pO2bj229Iis9vVBzvulOrbyDPSo1HQ
 NZI2P6CknM50mTAP/WeYxmVgfpmfdVh230w6AMfEZNekcMPkIWeqcbMAvrMsNdyH
 GRxEm68a3dXO7TyYgYjCkMFBb1EGQuwbHx/rxOTsDcQysdUnRIVMtnLQoT4EP+4z
 F1u1o+clxu+YLDOQbv89iP/acvM7tOxCsLKN2JdgnxZzGAZJ4AJ1vNQOGyd/Pog=
 =W6jp
 -----END PGP SIGNATURE-----
 

Fix ir_tool argparse subcommand usage. (#14804)

The "cp" alias for "copy" was not working, instead producing an error:
`error: Unrecognized sub-command {args.sub_command}"`.

The docs (https://docs.python.org/3/library/argparse.html#sub-commands)
recommend using

```python
parser = argparse.ArgumentParser()
subparsers = parser.add_subparsers(required=True)

parser_foo = subparsers.add_parser('foo')
parser_foo.set_defaults(func=foo)

# parse the args and call whatever function was selected
args = parser.parse_args(...)
args.func(args)
```

After switching to that style, "cp" and "copy" both work.

If an unknown subcommand is used, argparse has its own error message:
```bash
$ python -m iree.compiler.tools.ir_tool foo
usage: __main__.py [-h] {copy,cp,strip-data} ...
__main__.py: error: argument sub_command: invalid choice: 'foo' (choose from 'copy', 'cp', 'strip-data')
```
(and the program returns exit code `2`, not `0`)