argparse.py translated to coffeescript; initially only ArgumentParser; rest borrowed from argparse js
translation of Python argparse to coffee; initially building on the javascript argparse
numerous fixes to argcoffee.coffee
fixed and tested on test/*

lib/argparse.js loads this just as with the other argparse package
tweak rendition of a Namespace (candidate for new class, more like regular JS object)

get subparsers working (main problem was in passing a namespace to subparser)
get mutuallyExclusiveGroups working
cleanup error invocation
correct handling of '-xyz' style args  (use || null instead of ? null)

_.zip handles diff length arrays diff from python
(uses longers v shortest); issue when working through positionals

some confusion due to python and argcoffee using _ in anes, js using camelcse
check_value - handle several types of 'choices' (python 'in choices' works for
strings, arrays and dict; JS isn't quite as general)

room for some cleanup (old DEBUG lines)
fileprefix business not working
capturing sys exit from printHelp, printVersion needed
would like to implement more of the classes in coffee
argcontainer.coffee working; argcoffee test with -xz 123 works; other tests with subparsers and format_help do not; problems may have to do with the underscore v camelcase naming conventions.
argcoffee working for all builtin test case with both action_container.js and argcontainer.coffee; need cleanup on debug statements; also cleanup camelcase
got examples and tests running
start translating action class (and subclasses)
initial modification of the Action class(s)
action.coffee compiles
argcoffee using action.coffee works for most tests (except sub_commands); failure in doc_examples
Fix subparser action
Fix constant actions
tests and doc_examples run
add const.js, formatter.js to lib
working toward converting formatter (helpformatter.coffee)
argumentError added argcoffee
no longer depend on argparse

Working toward adapting Python test_argparse.py

argcontainer - add store_True etc to register; make it easier to uses python tests

test_argparse_convert.py takes 70+ 'classes' with args like argument_signatures, successes
and writes these as JSON to a file (testpy.json).  It skips ones that aren't easy,
and makes some simple changes to be more compatible with JS.

test_argparse.coffee loads testpy (with require), and loops on the resulting list
creating a parser (with parser_argument if given), adds arguments, and then
tries the successes and failures tests.  Test run saved in test_argparse_results.

TODO - check those test results; '-x --foo' when only '-x' is defined is one issue.
make these tests compatible with argparse
rewrite tests for mocha
see if other py tests can be translated without too much work
action - correct passing of defaultValue arg
container - move to argument_default
argcoffee - correct match in _match_argument (to start)
TODO - does match partial need same?
   py match starts at start; JS match needs '^'

test_argparse.coffee - alt to run on argparse; adjust const->constant,
default -> defaultValue, camelize action keys
TODO - argparse wants action values camelized; argcoffee does not

test_argcoffee_results - argcoffee passes all 76 tests
test_argparse_results - not passing all yet
test_argparse_convert1.py - import tests from test_argparse.py
convert enough to JSON serialize
write to JSON file

test_argparse.coffee - add argparse to give control over json file name,
where we test argcoffee or argparse.  Also give the option of testing
while ignoring null values - this accomodates argparse Namespace quirks

test_argparse_subset.js - base.js like test for the potential problems
identified by this test_argparse work
test_argparse.coffee can write a mocha test file
cleanup test_argparse_convert and test_argparse.coffee
clean up documentation and function names
formatter.js - fix the usage when exclusive groups are present.
It was not putting brackets around the group's actions.
This change needs to be added main argparse
test/test_exclusive.coffee is a preliminary test for this, adapted from
test_argparse.py.
Maybe I should add the other test_argparse.py ExclusiveGroup tests to the
test_group.js mocha.


change all  _addAction to _add_action
add a formatUsage alias
pass mutually exclusive groups to add_usage
change all conflict_handler to conflictHandler (may change back later)

ExclusiveGroup add_action - change to more closely match python
in particular remove the super(action); with that actions added to xgroup
are not added to container (e.g. optionals), and don't appear in help
So this Xgroup isn't just an extension of regular groups.
formatter: add space with * and + usage; testgroups: expand with usage test
correct a global pattern search in formatter; more tests in testgroup1