{"push_id":613392241,"size":13,"distinct_size":13,"ref":"refs/heads/master","head":"375bd1599353a6538eda1beeb5e940503aa33b2c","before":"cc968566045a76985126cda9ffbbedbe5b5fdc81","commits":[{"sha":"6b27138ebebb42cb231a9a7c7e552d2919b5f669","author":{"email":"adef2a190da3a33c5da8b7941934f6fddc6c11ed@gmail.com","name":"Sam Stavinoha"},"message":"feat(metaconfig): for new config sources\n\nmeta config options allow an entire configuration to be\nspecified by a single source. the only existing native\ncapability was the use of ini files, but there was no\nway to specify which ini file, much less specify it the\nsame way any other Option could be specified (cli, env, keyring).\n\nthis connects a metaconfig instance that can be used to provision\nan entire (or part of) a Config. the first meta option to be\nimplemented was `--ini` since Config natively supports parsing ini\nfiles.\n\nSee the MetaConfig docstring for more details.","distinct":true,"url":"https://api.github.com/repos/checkmate/simpl/commits/6b27138ebebb42cb231a9a7c7e552d2919b5f669"},{"sha":"d196f7ebe1643a21646eaeac09c74e3c21249bde","author":{"email":"adef2a190da3a33c5da8b7941934f6fddc6c11ed@gmail.com","name":"Sam Stavinoha"},"message":"feat(Option): group and group_description kwarg\n\nThis allows you to specify the Option's 'group' title,\nwhich is displayed in the help/usage format when --help\nor -h is invoked. The default group titles are\n'positional arguments' and 'optional arguments' which\nresult in this help/usage message by default:\n\nimport argparse\np = argparse.ArgumentParser()\np.add_argument('--yes')\np.add_argument('--no')\np.add_argument('this')\np.print_help()\n\n    usage: ipython [-h] [--yes YES] [--no NO] this\n\n    positional arguments:\n      this\n\n    optional arguments:\n      -h, --help  show this help message and exit\n      --yes YES\n      --no NO\n\nBy specifying a custom 'group' and 'group_description'\nin your Option like:\n\n    Option('--blob', group='exceptional arguments',\n           group_description='too good')\n\nyou get this:\n\n    usage: ipython [-h] [--yes YES] [--no NO] this\n\n    positional arguments:\n      this\n\n    optional arguments:\n      -h, --help  show this help message and exit\n      --yes YES\n      --no NO\n\n    exceptional arguments:\n      too good\n\n      --blob BLOB\n\nRead the full rationale for argument groups in the python docs:\n\nhttps://docs.python.org/2.7/library/argparse.html#argument-groups\n\nThis enables future work which may change the\n'mutually_exclusive_group' keyword argument\nsupported by Option to just use 'group', and allow the Option to\nspecify that it is mutually exclusive with a separate flag\nmutually_exclusive=True.\n\n Please enter the commit message for your changes. Lines starting","distinct":true,"url":"https://api.github.com/repos/checkmate/simpl/commits/d196f7ebe1643a21646eaeac09c74e3c21249bde"},{"sha":"b3fc754b345133508cb6757c8ae172647b3c31cc","author":{"email":"adef2a190da3a33c5da8b7941934f6fddc6c11ed@gmail.com","name":"Sam Stavinoha"},"message":"refactor mutual exclusion for Options\n\nthis change makes it so that the help/usage output\nis correctly organized into appropriate groups.\n\nthe metaconfig's options will (by default) assign\nthemselves to the same group by passing group= to\nOption instantiation.\n\nIn addition, this introduces a breaking change for\nOptions that were specifying mutual exclusion.\nPreviously, in order to delegate two or more arguments\nas mutually exclusive, you would use the same value\nfor the mutually_exclusive_group= keyword argument\nfor any Options that were mutually exclusive.\nNow you will specify a group name using group= AND use\nmutually_exclusive=True. This seems like \"more work\"\nbut it makes for much, much better help/usage\noutput when using --help.","distinct":true,"url":"https://api.github.com/repos/checkmate/simpl/commits/b3fc754b345133508cb6757c8ae172647b3c31cc"},{"sha":"fe1002e078c00dc3244d1855bcc4528dfc5a8404","author":{"email":"adef2a190da3a33c5da8b7941934f6fddc6c11ed@gmail.com","name":"Sam Stavinoha"},"message":"demo script if __main__","distinct":true,"url":"https://api.github.com/repos/checkmate/simpl/commits/fe1002e078c00dc3244d1855bcc4528dfc5a8404"},{"sha":"91632b8136b1ab0f19983fae4791215dee1e8d5b","author":{"email":"adef2a190da3a33c5da8b7941934f6fddc6c11ed@gmail.com","name":"Sam Stavinoha"},"message":"attach ini_config from ConfigParser to instance\n\nThis allows a caller to reveal any key/vals found\nin the specified ini files that did not correspond\nto one of the Options in the list.","distinct":true,"url":"https://api.github.com/repos/checkmate/simpl/commits/91632b8136b1ab0f19983fae4791215dee1e8d5b"},{"sha":"64f2259dcd1733c7abd9a0a19c7dca368377ca9a","author":{"email":"adef2a190da3a33c5da8b7941934f6fddc6c11ed@gmail.com","name":"Sam Stavinoha"},"message":"add copy and repr for Option\n\nAdding __repr__ makes it easier to figure out which\nOption(s) you're looking at when debugging or showing\nthe output of the Options list.\n\nAdding __copy__ allows us to make a copy of the options\nlist so that we can modify it for other purposes. The\ninitial use case was to extract the defaults using\nargparse and \"temporarily\" popping the 'required' keyword\nargument off each Option.\n\nTo make a copy of the full list of options, without having\nto worry about mutating them in a destructive way,\n\n    opts = [copy.copy(o) for o in self._options]","distinct":true,"url":"https://api.github.com/repos/checkmate/simpl/commits/64f2259dcd1733c7abd9a0a19c7dca368377ca9a"},{"sha":"b590e1d0a18aded9713c0d921d23e710e3bd58cb","author":{"email":"adef2a190da3a33c5da8b7941934f6fddc6c11ed@gmail.com","name":"Sam Stavinoha"},"message":"keep track of required but mutually exclusive args\n\nBefore this, if permissive was True, we would never\n\"remember\" to check that by the end of all the parsing,\nwe have values for these arguments.","distinct":true,"url":"https://api.github.com/repos/checkmate/simpl/commits/b590e1d0a18aded9713c0d921d23e710e3bd58cb"},{"sha":"81b1c896d83dbc55d09cf0a5f1732c0c66902ec3","author":{"email":"adef2a190da3a33c5da8b7941934f6fddc6c11ed@gmail.com","name":"Sam Stavinoha"},"message":"Allow passing in argument strings to __init__\n\nThis will primarily be used for testing and overriding\nthe behavior of looking for sys.argv. It allows the builder\nof the Config to set the list of argument strings once, at\ninitialization and the value will be used by parse() later.","distinct":true,"url":"https://api.github.com/repos/checkmate/simpl/commits/81b1c896d83dbc55d09cf0a5f1732c0c66902ec3"},{"sha":"dd4bcb40af679a1b5758a3c269503311a41263d3","author":{"email":"adef2a190da3a33c5da8b7941934f6fddc6c11ed@gmail.com","name":"Sam Stavinoha"},"message":"allow setting self.prog after init\n\nThe 'prog' is used for many things, including the\ndefault os.environ namespace, the keyring namespace, and\nthe default ini file section name. It is useful to be able\nto reset this on the fly so that those resulting targets\ncan be changed.","distinct":true,"url":"https://api.github.com/repos/checkmate/simpl/commits/dd4bcb40af679a1b5758a3c269503311a41263d3"},{"sha":"a1300dded257688cd77ca82709bf61b66fe27bcf","author":{"email":"adef2a190da3a33c5da8b7941934f6fddc6c11ed@gmail.com","name":"Sam Stavinoha"},"message":"cp the options list when figuring defaults\n\nThis ensures that no matter the behavior of 'permissive'\nand the parser, we dont throw any SystemExit due to\na lacking 'required' arguement when all we are really\ntrying to do in get_defaults() is to get an initial\nset of defaults by leveraging argparse.","distinct":true,"url":"https://api.github.com/repos/checkmate/simpl/commits/a1300dded257688cd77ca82709bf61b66fe27bcf"},{"sha":"6af69bd15d2233f1e8e77a66e900920df0551c7f","author":{"email":"adef2a190da3a33c5da8b7941934f6fddc6c11ed@gmail.com","name":"Sam Stavinoha"},"message":"tests for groups, mutual exclusion and metaconfig","distinct":true,"url":"https://api.github.com/repos/checkmate/simpl/commits/6af69bd15d2233f1e8e77a66e900920df0551c7f"},{"sha":"f8cbcea377f77dec59ea855b6a661704e9acb0ba","author":{"email":"adef2a190da3a33c5da8b7941934f6fddc6c11ed@gmail.com","name":"Sam Stavinoha"},"message":"pep8, pylint","distinct":true,"url":"https://api.github.com/repos/checkmate/simpl/commits/f8cbcea377f77dec59ea855b6a661704e9acb0ba"},{"sha":"375bd1599353a6538eda1beeb5e940503aa33b2c","author":{"email":"a7b9e7e6ca6f0f391e4a7deb07fc87cdc9fcd7f9@gmail.com","name":"Bruce Stringer"},"message":"Merge pull request #6 from samstav/metaconfig\n\nfeat(metaconfig): for new config sources, add groupable options and refactor mutual exclusion","distinct":true,"url":"https://api.github.com/repos/checkmate/simpl/commits/375bd1599353a6538eda1beeb5e940503aa33b2c"}]}