{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":440450587,"defaultBranch":"master","name":"appeal","ownerLogin":"larryhastings","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2021-12-21T08:53:51.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/14175923?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1697113258.0","currentOid":""},"activityList":{"items":[{"before":"856429b7a43db9337fb3bfb8d577a0f64ff89a8e","after":"06812e2c9364db097ef2e6a6e7d0f1e74fc757d3","ref":"refs/heads/master","pushedAt":"2023-10-15T13:56:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"larryhastings","name":null,"path":"/larryhastings","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14175923?s=80&v=4"},"commit":{"message":"Bugfix for `read_mapping`.\n\nBugfix for `read_mapping`. Previously you couldn't have\ntwo parameters with the same name anywhere in the annotations\ntree for a mapping function, and now you can.","shortMessageHtmlLink":"Bugfix for read_mapping."}},{"before":"0bbc73e7766e8dd00cdaa7364f72777d79273574","after":"856429b7a43db9337fb3bfb8d577a0f64ff89a8e","ref":"refs/heads/master","pushedAt":"2023-10-12T12:20:52.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"larryhastings","name":null,"path":"/larryhastings","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14175923?s=80&v=4"},"commit":{"message":"0.6.2! Fixes usage regression tests.\n\n* Presentation change: if you run a program without arguments,\n runs no-argument `help` instead of `usage`. This prints out\n both usage information and a list of commands, which seems more\n useful. That's how most modern programs do it (e.g. `git`, `hg`).\n* Minor API change: renamed Appeal's custom exceptions, to\n remove the word `Appeal`. So, for example, `AppealUsageError`\n is now simply `UsageError`. I added aliases so the old names\n still work; I'll remove them eventually, but I promise to\n keep the old names around for at least one year.\n* Fixed usage generation, added tests.\n* Fixed a bug where using a \"simple type\" (e.g. bool, float)\n as an annotation for an option would cause Appeal help to\n raise an exception. Fixes #15.","shortMessageHtmlLink":"0.6.2! Fixes usage regression tests."}},{"before":"ae88a24f226941ee2a76fd7903ba4074a9aad09a","after":"0bbc73e7766e8dd00cdaa7364f72777d79273574","ref":"refs/heads/master","pushedAt":"2023-09-24T15:54:16.000Z","pushType":"pr_merge","commitsCount":4,"pusher":{"login":"larryhastings","name":null,"path":"/larryhastings","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14175923?s=80&v=4"},"commit":{"message":"Merge pull request #13 from hugovk/patch-1\n\nBump actions/setup-python to v4","shortMessageHtmlLink":"Merge pull request #13 from hugovk/patch-1"}},{"before":null,"after":"7154dd8479269e7c9cc39180171feaefb7ddabdb","ref":"refs/heads/fix_usage_some_more","pushedAt":"2023-08-08T10:41:01.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"larryhastings","name":null,"path":"/larryhastings","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14175923?s=80&v=4"},"commit":{"message":"Fixing usage stuff. Not done yet.","shortMessageHtmlLink":"Fixing usage stuff. Not done yet."}},{"before":"12359c74822e58e9a3293f080cedb9c723ab809e","after":"ae88a24f226941ee2a76fd7903ba4074a9aad09a","ref":"refs/heads/master","pushedAt":"2023-07-28T14:35:31.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"larryhastings","name":null,"path":"/larryhastings","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14175923?s=80&v=4"},"commit":{"message":"Merge pull request #12 from hynek/patch-1\n\nCI: use a nicer way to use pre-releases","shortMessageHtmlLink":"Merge pull request #12 from hynek/patch-1"}},{"before":"8a2f266ea6f6caf20e26e1a7c8f0be4eeb8dc414","after":"12359c74822e58e9a3293f080cedb9c723ab809e","ref":"refs/heads/master","pushedAt":"2023-07-22T13:32:55.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"larryhastings","name":null,"path":"/larryhastings","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14175923?s=80&v=4"},"commit":{"message":"Fix minor doc bug.\n\nThis fix restores Hynek's faith in me, that I am a man of\nrefined tastes, and I convert the underscores in parameter\nnames into dashes when you see them on the command-line.","shortMessageHtmlLink":"Fix minor doc bug."}},{"before":"a893b2e35d49be1836d5bdfb2c4fecc600c4bb27","after":"8a2f266ea6f6caf20e26e1a7c8f0be4eeb8dc414","ref":"refs/heads/master","pushedAt":"2023-07-21T23:39:41.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"larryhastings","name":null,"path":"/larryhastings","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14175923?s=80&v=4"},"commit":{"message":"0.6.1! Fix 3.6 and 3.7, add CI.\n\n* Fixed 3.6 and 3.7 support--some equals-sign-in-f-strings\n uses crept in.\n* Added GitHub Actions integration. Tests and\n coverage are run in the cloud after every checkin.\n Thanks to Dan Pope for gently walking me through this!\n* Fixed metadata in the pyproject.toml file.\n* Added badges for testing and supported Python\n versions. (Didn't add the coverage badge yet...\n it's too embarassing!)","shortMessageHtmlLink":"0.6.1! Fix 3.6 and 3.7, add CI."}},{"before":"57378cd729d0c28a74128628465114c5a855a9b0","after":"c9cc9bd96f55d763ac86f4da2752d6e024edc9f6","ref":"refs/heads/gha3","pushedAt":"2023-07-21T23:33:03.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"larryhastings","name":null,"path":"/larryhastings","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14175923?s=80&v=4"},"commit":{"message":"Improve CI scripts.","shortMessageHtmlLink":"Improve CI scripts."}},{"before":"73d091fff79f4f952ce1574690b3a699c174abe2","after":"57378cd729d0c28a74128628465114c5a855a9b0","ref":"refs/heads/gha3","pushedAt":"2023-07-21T23:29:26.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"larryhastings","name":null,"path":"/larryhastings","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14175923?s=80&v=4"},"commit":{"message":"Update version.","shortMessageHtmlLink":"Update version."}},{"before":null,"after":"73d091fff79f4f952ce1574690b3a699c174abe2","ref":"refs/heads/gha3","pushedAt":"2023-07-21T23:28:39.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"larryhastings","name":null,"path":"/larryhastings","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14175923?s=80&v=4"},"commit":{"message":"0.6.2! Fixed 3.6 and 3.7 support, added CI.\n\nFixed 3.6 and 3.7 support--some equals-sign-in-f-strings\nuses crept in.\n\nAdded badges for testing and supported Python\nversions. (Didn't add the coverage badge yet...\nit's too embarassing!)","shortMessageHtmlLink":"0.6.2! Fixed 3.6 and 3.7 support, added CI."}},{"before":"6fc96ec504febff6766a8a4288c95f8f3020bc45","after":"bdd2e4e43548ae6808e9016695f166cc17c3f7e4","ref":"refs/heads/gha","pushedAt":"2023-07-21T12:50:48.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"larryhastings","name":null,"path":"/larryhastings","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14175923?s=80&v=4"},"commit":{"message":"Try single quotes!","shortMessageHtmlLink":"Try single quotes!"}},{"before":"ed4779746f34665da30c283f5e48158af064bfae","after":"6fc96ec504febff6766a8a4288c95f8f3020bc45","ref":"refs/heads/gha","pushedAt":"2023-07-21T12:48:42.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"larryhastings","name":null,"path":"/larryhastings","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14175923?s=80&v=4"},"commit":{"message":"Prettify coverage output on summary screen.","shortMessageHtmlLink":"Prettify coverage output on summary screen."}},{"before":"12cc2d860e215393b0ccebaa24bc5da2cbb8019e","after":"ed4779746f34665da30c283f5e48158af064bfae","ref":"refs/heads/gha","pushedAt":"2023-07-21T12:47:20.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"larryhastings","name":null,"path":"/larryhastings","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14175923?s=80&v=4"},"commit":{"message":"Oops! Actually install coverage.","shortMessageHtmlLink":"Oops! Actually install coverage."}},{"before":"f173c955247e8cf7f1d2c46640ed7b4cc0999392","after":"12cc2d860e215393b0ccebaa24bc5da2cbb8019e","ref":"refs/heads/gha","pushedAt":"2023-07-21T12:46:20.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"larryhastings","name":null,"path":"/larryhastings","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14175923?s=80&v=4"},"commit":{"message":"Github action for coverage.","shortMessageHtmlLink":"Github action for coverage."}},{"before":"1a50b48da1da8f303872b93a5fcb0004ff4118a2","after":"f173c955247e8cf7f1d2c46640ed7b4cc0999392","ref":"refs/heads/gha","pushedAt":"2023-07-21T12:19:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"larryhastings","name":null,"path":"/larryhastings","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14175923?s=80&v=4"},"commit":{"message":"Build wheel and use it.","shortMessageHtmlLink":"Build wheel and use it."}},{"before":"ec6f9c86bb7e066585282f836f7749e5a7374271","after":"1a50b48da1da8f303872b93a5fcb0004ff4118a2","ref":"refs/heads/gha","pushedAt":"2023-07-21T12:06:49.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"larryhastings","name":null,"path":"/larryhastings","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14175923?s=80&v=4"},"commit":{"message":"Getting fancy with multiversion testing.","shortMessageHtmlLink":"Getting fancy with multiversion testing."}},{"before":null,"after":"ec6f9c86bb7e066585282f836f7749e5a7374271","ref":"refs/heads/gha","pushedAt":"2023-07-21T12:03:40.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"larryhastings","name":null,"path":"/larryhastings","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14175923?s=80&v=4"},"commit":{"message":"Trying out GitHub Actions.","shortMessageHtmlLink":"Trying out GitHub Actions."}},{"before":"a6c03c0e76d6ff221491c9a6699bb5ea4c1baa84","after":"a893b2e35d49be1836d5bdfb2c4fecc600c4bb27","ref":"refs/heads/master","pushedAt":"2023-07-20T13:33:46.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"larryhastings","name":null,"path":"/larryhastings","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14175923?s=80&v=4"},"commit":{"message":"0.6 final! Appeal can now read config files.\n\n* A new feature: Appeal can now read configuration files!\n Check out the new APIs `Appeal.read_mapping`,\n `Appeal.read_iterable`, and even `Appeal.read_csv`.\n This was a massive undertaking and involved a big\n overhaul of the compiler.\n\n* The biggest change to existing behavior: Appeal now\n early-maps options. (See issue #3.)\n In short: when options are only defined in an optional group,\n they get provisionally mapped (made available) *before* the first\n argument in that group. Using that option enters the group just\n like specifying the first argument in that group. You'll see\n the difference in usage; an optional group that mapped an option\n used to look like `[a [-v|--verbose] b c]` but now looks like\n `[[-v|--verbose] a b c]`.\n\n* Appeal now handles multiple short options smashed together\n (e.g. `-ace`) *identically* to them being specified separately\n (e.g. `-a -c -e`). This caused an observable change in behavior\n regarding when child options get unmapped.\n\n - Appeal only permits using child options in a limited context:\n it must be after the parent option is executed, it\n must be after the parent option has consumed all its required\n *or optional* opargs, and it must be before any top-level\n positional argument or option mapped before the parent option\n was executed. But Appeal was lax about enforcing these rules\n when using multiple short options smashed together (e.g. `-ace`);\n it would handle all the options and *then* unmap child options\n as needed. The good news: Appeal now enforces these rules here\n too. (The old behavior seems to have been *intentional* on my\n part--what was I *thinking?!)*\n\n* The usage message raised for an unknown option is now much\n better. If the option is defined anywhere in the program\n being run, it prints a different message telling you it\n can't be used here, but also tells you where it can be used.\n For example, if you use option `-x`, but that's a child\n option mapped by `--parent`, the message would say\n `-x can't be used here, it must be used immediately after --parent`.\n\n* Renamed `Appeal.argument` to `Appeal.parameter`.\n This was one of those \"what was I *thinking?\"* moments.\n The function affects the parameter, not the argument.\n The old name still works but will be removed before 1.0.\n\n* `short_option_concatenated_oparg` is now more strictly\n enforced: it's only permitted for short options that have\n *exactly one* **optional** oparg, as specified by POSIX.","shortMessageHtmlLink":"0.6 final! Appeal can now read config files."}},{"before":"9ce23600904a17c029a879848a19b7bceaf62b6a","after":"7624cb24b6370d5315705aa47db17d9971b7ca57","ref":"refs/heads/perky_parser_two","pushedAt":"2023-07-18T00:38:43.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"larryhastings","name":null,"path":"/larryhastings","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14175923?s=80&v=4"},"commit":{"message":"Documentation for reading config files.","shortMessageHtmlLink":"Documentation for reading config files."}},{"before":"484303ce64bf40efbd06f501fceacba50af36b26","after":"9ce23600904a17c029a879848a19b7bceaf62b6a","ref":"refs/heads/perky_parser_two","pushedAt":"2023-07-16T00:09:04.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"larryhastings","name":null,"path":"/larryhastings","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14175923?s=80&v=4"},"commit":{"message":"Fixed all tests! I think we're a go.","shortMessageHtmlLink":"Fixed all tests! I think we're a go."}},{"before":"5e70a38715686da5493a60f21a39b6560abec694","after":"484303ce64bf40efbd06f501fceacba50af36b26","ref":"refs/heads/perky_parser_two","pushedAt":"2023-07-14T00:18:20.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"larryhastings","name":null,"path":"/larryhastings","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14175923?s=80&v=4"},"commit":{"message":"Only one failing test left! But it's a doozy!","shortMessageHtmlLink":"Only one failing test left! But it's a doozy!"}},{"before":"c89eb7437a72d2ea5f618c6f63a8476b139e079f","after":"5e70a38715686da5493a60f21a39b6560abec694","ref":"refs/heads/perky_parser_two","pushedAt":"2023-07-13T23:40:44.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"larryhastings","name":null,"path":"/larryhastings","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14175923?s=80&v=4"},"commit":{"message":"More bugs fixed, more tests working.","shortMessageHtmlLink":"More bugs fixed, more tests working."}},{"before":"ef32b22e43e9d76b7a5e4b93d99c3bc763c95926","after":"c89eb7437a72d2ea5f618c6f63a8476b139e079f","ref":"refs/heads/perky_parser_two","pushedAt":"2023-07-12T18:40:30.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"larryhastings","name":null,"path":"/larryhastings","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14175923?s=80&v=4"},"commit":{"message":"Check in without debug prints.","shortMessageHtmlLink":"Check in without debug prints."}},{"before":"a44562a4cd94be382eda3e957e927d02f6cb6da9","after":"ef32b22e43e9d76b7a5e4b93d99c3bc763c95926","ref":"refs/heads/perky_parser_two","pushedAt":"2023-07-11T22:51:10.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"larryhastings","name":null,"path":"/larryhastings","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14175923?s=80&v=4"},"commit":{"message":"Starting to fix usage.","shortMessageHtmlLink":"Starting to fix usage."}},{"before":"b6684f4f95a49134268a7b7b63149ad7e6e34312","after":"a44562a4cd94be382eda3e957e927d02f6cb6da9","ref":"refs/heads/perky_parser_two","pushedAt":"2023-07-05T00:41:29.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"larryhastings","name":null,"path":"/larryhastings","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14175923?s=80&v=4"},"commit":{"message":"Use args where appropriate, write default values.\n\nIf it's a positional-only argument, you have to append to args,\nyou can't write as a kwarg.\n\nIf it's an optional argument, and it's not available, go ahead\nand write the default value in.","shortMessageHtmlLink":"Use args where appropriate, write default values."}},{"before":"408e081def0a8b87e4043adc0ab66f851adf8024","after":"b6684f4f95a49134268a7b7b63149ad7e6e34312","ref":"refs/heads/perky_parser_two","pushedAt":"2023-07-03T01:57:41.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"larryhastings","name":null,"path":"/larryhastings","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14175923?s=80&v=4"},"commit":{"message":"Add test for--and fix--IteratorCompiler *args.","shortMessageHtmlLink":"Add test for--and fix--IteratorCompiler *args."}},{"before":"40bbf0aac5df6121de28b95335d28a712a9dfcda","after":"408e081def0a8b87e4043adc0ab66f851adf8024","ref":"refs/heads/perky_parser_two","pushedAt":"2023-07-02T15:53:19.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"larryhastings","name":null,"path":"/larryhastings","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14175923?s=80&v=4"},"commit":{"message":"Added test suite for Appeal read.","shortMessageHtmlLink":"Added test suite for Appeal read."}},{"before":"57956ec18b44580ef4c7e9acfd6baa02ea2285f1","after":"40bbf0aac5df6121de28b95335d28a712a9dfcda","ref":"refs/heads/perky_parser_two","pushedAt":"2023-07-01T15:25:12.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"larryhastings","name":null,"path":"/larryhastings","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14175923?s=80&v=4"},"commit":{"message":"MappingCompiler can handle *nested* multioptions!","shortMessageHtmlLink":"MappingCompiler can handle *nested* multioptions!"}},{"before":"74f67b5401e9c57cb84e9a1a8d2d9b5a3ddca9aa","after":"57956ec18b44580ef4c7e9acfd6baa02ea2285f1","ref":"refs/heads/perky_parser_two","pushedAt":"2023-06-29T08:08:25.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"larryhastings","name":null,"path":"/larryhastings","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14175923?s=80&v=4"},"commit":{"message":"Fix mapping compiler degenerate converter trees.\n\nWhen compiling a function with Appeal for use with\nthe mapping compiler, if you have a degenerate tree\nlike this:\n\ndef myfloat(x: float):\n ...\ndef my_top_fn(a: myfloat, b):\n ...\n\nyou want the name you look up in the dictionary to\nbe \"a\", not \"x\", and not the name of the parameter\nto \"float\". How do we handle that?\n\nAppeal uses the name of the highest parameter in that\nsubtree that's either the root, or the lowest annotation\nin the tree that has more than one parameter. Functions\nthat take one value and emit one value \"feel like\"\ninline conversions but maybe don't have interesting\nparameter names.","shortMessageHtmlLink":"Fix mapping compiler degenerate converter trees."}},{"before":"7f63af04e1e52de804ebc0fed37c212e68532657","after":"74f67b5401e9c57cb84e9a1a8d2d9b5a3ddca9aa","ref":"refs/heads/perky_parser_two","pushedAt":"2023-06-28T13:02:56.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"larryhastings","name":null,"path":"/larryhastings","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14175923?s=80&v=4"},"commit":{"message":"Parsed TOML file! Even one with a float!","shortMessageHtmlLink":"Parsed TOML file! Even one with a float!"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAADl2Q8uAA","startCursor":null,"endCursor":null}},"title":"Activity ยท larryhastings/appeal"}