Yelp/mrjob — pull request #459 by irskep (2012-05-17 00:55:46+00:00)
Title: Split help into --help, --help-emr, --help-hadoop, and --help-runner

Result:

```
> python mrjob/examples/mr_word_freq_count.py --help
Usage: mr_word_freq_count.py [options] [input files]

Options:
--help show this message and exit
--help-emr show emr-related options
--help-hadoop show hadoop-related options
--help-runner show runner-related options

Running specific parts of the job:
--mapper run a mapper
--combiner run a combiner
--reducer run a reducer
--step-num=STEP_NUM
which step to execute (default is 0)
--steps print the mappers, combiners, and reducers that this
job defines

Protocols:
--input-protocol=INPUT_PROTOCOL
DEPRECATED: protocol to read input with (default:
raw_value)
--output-protocol=OUTPUT_PROTOCOL
DEPRECATED: protocol for final output (default: same
as --protocol)
-p PROTOCOL, --protocol=PROTOCOL
DEPRECATED: output protocol for mappers/reducers.
Choices: json, json_value, pickle, pickle_value,
raw_value, repr, repr_value (default: json)
--strict-protocols If something violates an input/output protocol then
raise an exception
```

The `--help-*` options just print the option lists as they appeared in the original help screen.

Downside: `OptionParser.option_groups` is *slightly* undocumented.