`docopt` looks interesting, but you're right that I'd prefer not to add another dependency.

I do like about `argparse` that it validates the arguments and converts them into the types that you want.  It appears that `docopt` returns all arguments as strings, which I consider a disadvantage.