{"sha": "324ebc31308752004fe5f7e4941fc83706c5539c", "message": "sqlite-utils rows --limit and --offset options, closes #381", "author_date": "2022-01-11T23:19:29Z", "committer_date": "2022-01-11T23:19:29Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "176f4e0ef4a4825ae3b61a5f7169a8943fccb073", "message": "sqlite-utils rebuild-fts command, closes #155", "author_date": "2020-09-08T23:16:03Z", "committer_date": "2020-09-08T23:16:03Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "f8277d0fb9c05a88a9ff01d996e31d55f0f0a645", "message": "sqlite-utils query can now run DML (#120)\n\n* Failing test showing that DML in `sqlite-utils query` doesn't work\r\n* Run `sqlite-utils query` in a transaction so that DML is committed\r\n\r\nThanks, @tsibley!", "author_date": "2020-07-08T05:14:04Z", "committer_date": "2020-07-08T05:14:04Z", "raw_author": {"value": "f25304fb12f6d6fab36f551427610ed8e96f0c2f", "label": "Thomas Sibley"}, "raw_committer": {"value": "cd792325681cbad9f663f2879d8b69f1edbb678f", "label": "GitHub"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 79913, "label": "tsibley"}, "committer": {"value": 19864447, "label": "web-flow"}} {"sha": "31f062d4a7e6457bfbe94b2e45a7b80028f1e95c", "message": "sqlite-utils query --functions option, refs #471", "author_date": "2022-08-27T04:53:55Z", "committer_date": "2022-08-27T04:53:55Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "57e4eb8e5564af5d97f892b3be8342451ee177a2", "message": "sqlite-utils populate-fts --tokenize= option, closes #130", "author_date": "2020-08-01T20:51:05Z", "committer_date": "2020-08-01T20:51:05Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "0a8194e730f8ecdd9a5af1f6a8d5a889796d7dba", "message": "sqlite-utils optimize command, .optimize() and .detect_fts() table methods", "author_date": "2019-01-25T04:35:51Z", "committer_date": "2019-01-25T04:35:51Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "8df116b24cc79a837d9bfa291d23082f838f78a6", "message": "sqlite-utils now lives at sqlite-utils.datasette.io", "author_date": "2020-12-29T21:38:53Z", "committer_date": "2020-12-29T21:38:53Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "c1b26eed03f60c3e317550053a3832b7ad62e588", "message": "sqlite-utils memory handles files with same filename, closes #325", "author_date": "2021-09-22T20:45:37Z", "committer_date": "2021-09-22T20:45:37Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "42ec59d8ee3fcfb8ac1affb772aed43b6e2a7381", "message": "sqlite-utils memory command for directly querying CSV/JSON data\n\n* Turn SQL errors into click errors\r\n* Initial CSV-only prototype of sqlite-utils memory, refs #272\r\n* Implement --save plus tests for --save and --dump, refs #272\r\n* Re-arranged CLI query documentation, refs #272\r\n* Re-organized CLI query docs, refs #272\r\n* Docs for --save and --dump plus made SQL optional for those, refs #273\r\n* Replaced one last :memory: example\r\n* Documented --attach option for memory command, refs #272\r\n* Improved arrangement of CLI query documentation", "author_date": "2021-06-18T15:00:52Z", "committer_date": "2021-06-18T15:00:52Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "cd792325681cbad9f663f2879d8b69f1edbb678f", "label": "GitHub"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 19864447, "label": "web-flow"}} {"sha": "933be66eba1203a3287ebaacd69f694d12f6f0a0", "message": "sqlite-utils memory --schema, closes #288\n\nAlso updated some rowid examples, closes #287", "author_date": "2021-06-20T18:25:21Z", "committer_date": "2021-06-20T18:25:21Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "8286a66413bc466db11b3b7e0e75826efbd7850e", "message": "sqlite-utils memory --help now mentions --schema", "author_date": "2021-06-28T16:35:01Z", "committer_date": "2021-06-28T16:35:01Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "59e2cfbdc12082bac03e8ac6f99c8c41a4bc72ba", "message": "sqlite-utils memory --functions, refs #471", "author_date": "2022-08-27T05:03:53Z", "committer_date": "2022-08-27T05:03:53Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "12b8c9de256ba907d4fa8e134bf9ce9bc012302e", "message": "sqlite-utils memory --flatten, closes #332", "author_date": "2021-11-14T23:05:00Z", "committer_date": "2021-11-14T23:05:00Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "9258f4bd8450c951900de998a7bf81ca9b45a014", "message": "sqlite-utils memory --analyze, closes #320", "author_date": "2021-08-22T15:44:25Z", "committer_date": "2021-08-22T15:44:25Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "5466c9745dfef858286146ea158ffd5a71391d10", "message": "sqlite-utils json dogs.db \"select * from dogs\"", "author_date": "2019-01-26T02:06:29Z", "committer_date": "2019-01-26T02:06:29Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "ebc802f7ff0e640b6ae11ea525290fea0115228c", "message": "sqlite-utils insert-files command, closes #122", "author_date": "2020-07-27T07:08:57Z", "committer_date": "2020-07-27T07:08:57Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "82f0f6076ab5042faf870339dc49a570133e1d2a", "message": "sqlite-utils insert db.db foo - --csv\n\nNew option for efficiently inserting rows from a CSV.\n\nUses a generator so this will happily consume enormous CSV files without\nneeding to slurp the whole thing into memory first.", "author_date": "2019-01-29T15:28:12Z", "committer_date": "2019-01-29T15:28:12Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "5309c5c7755818323a0f5353bad0de98ecc866be", "message": "sqlite-utils insert ... --nl option, closes #6", "author_date": "2019-01-28T02:17:38Z", "committer_date": "2019-01-28T02:17:38Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "99ff0a288c08ec2071139c6031eb880fa9c95310", "message": "sqlite-utils insert --sniff option, closes #230", "author_date": "2021-02-14T19:23:12Z", "committer_date": "2021-02-14T19:23:12Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "f67327abf0a9f018e1764660e190c5bbf9556ec2", "message": "sqlite-utils insert --flatten option, closes #310", "author_date": "2021-08-09T21:44:03Z", "committer_date": "2021-08-09T21:44:03Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "fd9867d145c11a6be6c4049e0383832d0e856f4b", "message": "sqlite-utils insert --detect-types option, refs #282", "author_date": "2021-06-19T04:18:58Z", "committer_date": "2021-06-19T04:18:58Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "28dc5aac347ffdecb2dff154d23a73883a2ffabf", "message": "sqlite-utils indexes command, refs #263", "author_date": "2021-06-03T04:26:46Z", "committer_date": "2021-06-03T04:26:49Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "e8f887ef4a0977243811b90bc2ce9aed9d2c206a", "message": "sqlite-utils index-foreign-keys / db.index_foreign_keys()\n\nCloses #33", "author_date": "2019-06-30T23:50:54Z", "committer_date": "2019-06-30T23:50:54Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "cd792325681cbad9f663f2879d8b69f1edbb678f", "label": "GitHub"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 19864447, "label": "web-flow"}} {"sha": "55cf928f73254273370d8489b4143875de4cabf2", "message": "sqlite-utils extract, closes #42", "author_date": "2020-09-22T23:37:39Z", "committer_date": "2020-09-22T23:37:39Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "c710ade6443d45ca2f581cdf975c7990436ab8fc", "message": "sqlite-utils duplicate command, closes #454, refs #449\n\nAlso made it so .duplicate() raises new NoTable exception rather than raising\nan AssertionError if the source table does not exist.", "author_date": "2022-07-15T21:45:14Z", "committer_date": "2022-07-15T21:45:47Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "ca2b26130f6c5fd030973ce593b02f08d19c9d84", "message": "sqlite-utils dump command, closes #274", "author_date": "2021-06-16T23:51:48Z", "committer_date": "2021-06-16T23:51:48Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "c83dd8a5eb9a146ef8072932333a0bca98f9577a", "message": "sqlite-utils csv data.db \"select ...\" command", "author_date": "2019-01-25T15:50:20Z", "committer_date": "2019-01-25T15:50:20Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "99a7906fd93ce1c6400733b855255ed62e3e9fa1", "message": "sqlite-utils create-table docs, plus doc unit test\n\nRefs #27. Closes #108", "author_date": "2020-05-03T04:13:49Z", "committer_date": "2020-05-03T04:13:49Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "8a5d0d80c37008f30953110d58f474aac2728ee3", "message": "sqlite-utils create-index command, closes #14", "author_date": "2019-02-24T19:11:21Z", "committer_date": "2019-02-24T19:11:21Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "1d64cd2e5b402ff957f9be2d9bb490d313c73989", "message": "sqlite-utils create-database command, closes #348", "author_date": "2022-01-09T20:33:16Z", "committer_date": "2022-01-09T20:33:16Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "a3df483c803ea6e45cf878025aa8a59d2c62f67e", "message": "sqlite-utils convert db table column -, refs #353", "author_date": "2021-12-11T00:01:02Z", "committer_date": "2021-12-11T00:01:02Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "5ec6686153e29ae10d4921a1ad4c841f192f20e2", "message": "sqlite-utils convert command and db[table].convert(...) method\n\nCloses #251, closes #302.", "author_date": "2021-08-02T04:47:39Z", "committer_date": "2021-08-02T04:47:39Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "cd792325681cbad9f663f2879d8b69f1edbb678f", "label": "GitHub"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 19864447, "label": "web-flow"}} {"sha": "d1d2a8e6fa95d8daf11973f747578602d08e4962", "message": "sqlite-utils bulk --batch-size option, closes #392", "author_date": "2022-01-26T18:15:23Z", "committer_date": "2022-01-26T18:15:23Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "69a121e08847acbf95abf0c2df1759fc73dc81b8", "message": "sqlite-utils analyze-tables command and table.analyze_column() method\n\nCloses #207", "author_date": "2020-12-13T07:20:11Z", "committer_date": "2020-12-13T07:20:11Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "cd792325681cbad9f663f2879d8b69f1edbb678f", "label": "GitHub"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 19864447, "label": "web-flow"}} {"sha": "e0ef9288fede5cba5698c5206f55c98363ca456e", "message": "sqlite-utils analyze command, refs #379", "author_date": "2022-01-11T01:24:17Z", "committer_date": "2022-01-11T01:24:17Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "3cc1944e53b75749644f558cbe1717397cae72ea", "message": "sqlite-utils add-foreign-keys command, closes #157", "author_date": "2020-09-20T20:14:25Z", "committer_date": "2020-09-20T20:14:25Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "f8d3b7cfe5c1950b0749d40eb2640df50b52f651", "message": "sqlite-utils add-foreign-key books.db books author_id authors id\n\nCommand for adding foreign keys to existing tables. Closes #2", "author_date": "2019-02-24T21:33:45Z", "committer_date": "2019-02-24T21:33:45Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "2ba558888131b58ed13bccea29e0db20c9c01087", "message": "sqlite-utils --attach option, closes #236", "author_date": "2021-02-19T05:08:39Z", "committer_date": "2021-02-19T05:08:39Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "f571b19d8a5fd3a19fdf679421fd55a8edbf5295", "message": "sqlerrors() decorator catching and returning useful errors\n\nCloses #8", "author_date": "2017-10-23T15:28:00Z", "committer_date": "2017-10-23T15:28:00Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "1465fea4798599eccfe7e8f012bd8d9adfac3039", "message": "sphinx-copybutton for docs, closes #1748", "author_date": "2022-05-20T19:11:08Z", "committer_date": "2022-05-20T19:11:28Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "2238e9baf94d1d2af794d6cb064dbac098abd3f3", "message": "sphinx-copybutton extension, closes #436", "author_date": "2022-05-20T21:57:26Z", "committer_date": "2022-05-20T21:57:26Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "97331f3435ba1583a0f9dbcaffc25de8894cf1f8", "message": "sortable_columns_for_table() no longer uses inspect()\n\nRefs #420", "author_date": "2019-04-07T01:58:51Z", "committer_date": "2019-04-07T01:58:51Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "5629aaca67437acce8af47acb06488bd9991420b", "message": "sortable_columns also now works with views", "author_date": "2018-08-06T00:29:23Z", "committer_date": "2018-08-06T00:29:23Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "b1fd24ac9f9035464af0a8ce92391c166a783253", "message": "skip_csrf(datasette, scope) plugin hook, refs #1377", "author_date": "2021-06-23T22:39:52Z", "committer_date": "2021-06-23T22:40:09Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "087753cd42c406f1e060c1822dcd9b5fda3d60f4", "message": "sites.db is better name than dogs.db in this example", "author_date": "2022-08-28T04:01:55Z", "committer_date": "2022-08-28T04:01:55Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "afe9aa3ae03c485c5d6652741438d09445a486c1", "message": "show/hide link for SQL on custom query page\n\nCloses #415", "author_date": "2019-03-15T05:22:24Z", "committer_date": "2019-03-15T05:22:35Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "9f8d9fe262866ff3463f8e61214dcc6897bd5a9c", "message": "setup: add tests to package exclusion (#458)", "author_date": "2019-05-10T01:54:50Z", "committer_date": "2019-05-10T01:54:50Z", "raw_author": {"value": "5e571aa122bb7440d7e40e22fd627b3fbbf12c38", "label": "Veit Heller"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 7725188, "label": "hellerve"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "626dd61f6070f95f7652104cb9f4100e9b88862f", "message": "setup-gcloud fix", "author_date": "2022-12-15T06:57:31Z", "committer_date": "2022-12-15T06:57:31Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "cd792325681cbad9f663f2879d8b69f1edbb678f", "label": "GitHub"}, "repo": {"value": 207052882, "label": "github-to-sqlite"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 19864447, "label": "web-flow"}} {"sha": "4880638f13c3a1abc53f395cde39ac848daf416d", "message": "setup-gcloud 318.0.0\n\nRefs https://til.simonwillison.net/googlecloud/gcloud-error-workaround", "author_date": "2023-01-10T00:02:02Z", "committer_date": "2023-01-10T00:02:02Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "cd792325681cbad9f663f2879d8b69f1edbb678f", "label": "GitHub"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 19864447, "label": "web-flow"}} {"sha": "3ef35ca8b4369af6a8bcdd9e5cfbb5f3a7d17cf8", "message": "serve and publish commands now take a --metadata option\n\nIf provided, the --metadata option is the path to a JSON file containing\nmetadata that should be displayed alongside the dataset.\n\n datasette /tmp/fivethirtyeight.db --metadata /tmp/metadata.json\n\nCurrently that metadata format looks like this:\n\n {\n \"title\": \"Five Thirty Eight\",\n \"license\": \"CC Attribution 4.0 License\",\n \"license_url\": \"http://creativecommons.org/licenses/by/4.0/\",\n \"source\": \"fivethirtyeight/data on GitHub\",\n \"source_url\": \"https://github.com/fivethirtyeight/data\"\n }\n\nIf provided, this will be used by the index template and to populate the\ncommon footer.\n\nThe publish command also accepts this argument, and will package any provided\nmetadata up and include it with the resulting Docker container.\n\n datasette publish --metadata /tmp/metadata.json /tmp/fivethirtyeight.db\n\nCloses #68", "author_date": "2017-11-13T15:20:02Z", "committer_date": "2017-11-13T15:20:02Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "21b57cdf9a4ede0f9444f15a3bd182be3b06f2c0", "message": "serve --inspect-file=X now populates cached table counts\n\nCloses #462", "author_date": "2019-05-16T14:30:32Z", "committer_date": "2019-05-16T14:30:32Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "83f6799a96f48b5acef4911c0273973f15efdf05", "message": "searchmode: raw table metadata property, closes #1389", "author_date": "2021-07-10T18:30:48Z", "committer_date": "2021-07-10T18:33:08Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "771bd81b62b73b69a61cec5e71be97c0a7e2c5f9", "message": "search_sql() returns most relevant first, not least\n\nRefs #192", "author_date": "2020-11-06T23:50:02Z", "committer_date": "2020-11-06T23:50:02Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "79109939c39c16fd206010ef179040d59704682b", "message": "search --limit now defaults to everything, refs #192", "author_date": "2020-11-08T17:00:43Z", "committer_date": "2020-11-08T17:00:43Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "fa0c3777b876c29df8f2f48901533bce24de9aec", "message": "script type=module support, closes #1186", "author_date": "2021-01-14T01:50:52Z", "committer_date": "2021-01-14T01:50:52Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "bf82b3d6a605c9ddadd5fb739249dfe6defaf635", "message": "scale-in animation for column action menu, closes #1039", "author_date": "2020-10-21T17:02:26Z", "committer_date": "2020-10-21T17:02:26Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "d379f430f8bc00e5177d38097c9ab2919152ee76", "message": "rows_from_file(... ignore_extras: bool, restkey: str), refs #440", "author_date": "2022-06-14T15:14:02Z", "committer_date": "2022-06-14T15:14:02Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "008e2f63c217aa066027a872ee706b07bd084857", "message": "response.set_cookie(), closes #795", "author_date": "2020-06-09T22:19:37Z", "committer_date": "2020-06-09T22:19:37Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "fac8e9381500fc02cec99281122ee8e0c72fabe1", "message": "request.url_vars property, closes #822", "author_date": "2020-06-09T03:40:00Z", "committer_date": "2020-06-09T03:40:00Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "7bb30c1f11f7246baf7bb6a229f6b93572c4cbe3", "message": "request.url now respects force_https_urls, closes #781", "author_date": "2020-05-28T17:09:32Z", "committer_date": "2020-05-28T17:10:06Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "0934844c0b6d124163d0185fb6a41ba5a71433da", "message": "request.post_vars() no longer discards empty values", "author_date": "2020-06-03T13:48:39Z", "committer_date": "2020-06-03T13:48:39Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "649f48cd702fb76fed92eac1e5d2fd2ec28fbbf9", "message": "request.full_path property, closes #1184", "author_date": "2021-01-11T21:32:58Z", "committer_date": "2021-01-11T21:32:58Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "84616a2364df56f966f579eecc0716b9877f0d70", "message": "request.args.getlist() returns [] if missing, refs #774\n\nAlso added some unit tests for request.args", "author_date": "2020-05-29T22:51:30Z", "committer_date": "2020-05-29T22:51:30Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "ff0dd4da38d48c2fa9250ecf336002c9ed724e36", "message": "repr() method for Request, refs #1519", "author_date": "2021-11-19T20:29:37Z", "committer_date": "2021-11-19T20:29:37Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "7ca497a8f5be24c127946813e3052a19b48be1b3", "message": "repr improvements, refs #503", "author_date": "2022-10-25T20:14:41Z", "committer_date": "2022-10-25T20:14:41Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "6ff3b4ed426ec0fb06d4acc5443b21c241fb91d2", "message": "repos -r option for specific repos, closes #42", "author_date": "2020-07-09T23:25:01Z", "committer_date": "2020-07-09T23:25:25Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 207052882, "label": "github-to-sqlite"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "169b72e2c9f64214e32874e3dbd55e94b2e39540", "message": "repos --readme and --readme-html options, closes #52", "author_date": "2020-10-19T05:33:29Z", "committer_date": "2020-10-19T05:33:29Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 207052882, "label": "github-to-sqlite"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "5c1df4e3063cf47229a305fbe75757a8d412a8af", "message": "replace=True and ignore=True parameters for create_view(), closes #106", "author_date": "2020-05-02T16:02:04Z", "committer_date": "2020-05-02T16:02:04Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "eed116ac0599c7d21b7129af94d58ce03a923e4e", "message": "render_template needs await", "author_date": "2020-06-24T03:06:30Z", "committer_date": "2020-06-24T03:06:30Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "cd792325681cbad9f663f2879d8b69f1edbb678f", "label": "GitHub"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 19864447, "label": "web-flow"}} {"sha": "2e836f72d9a4e61341d75ea48e88314e0d006b65", "message": "render_cell(value, column, table, database, datasette)\n\nThe render_cell plugin hook previously was only passed value.\n\nIt is now passed (value, column, table, database, datasette).", "author_date": "2018-08-28T10:03:01Z", "committer_date": "2018-08-28T10:03:01Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "4ac913224061f2dc4f673efab1a5ac6bc748854f", "message": "render_cell(value) plugin hook, closes #352\n\nNew plugin hook for customizing the way cells values are rendered in HTML.\r\n\r\nThe first full example of this hook in use is https://github.com/simonw/datasette-json-html", "author_date": "2018-08-05T00:14:56Z", "committer_date": "2018-08-05T00:14:56Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "cd792325681cbad9f663f2879d8b69f1edbb678f", "label": "GitHub"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 19864447, "label": "web-flow"}} {"sha": "0b4a28691468b5c758df74fa1d72a823813c96bf", "message": "render_cell(..., request) argument, closes #2007", "author_date": "2023-01-28T03:34:14Z", "committer_date": "2023-01-28T03:34:14Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "3bb6409a6cb8eaee32eb572423d9c0485a1dd917", "message": "render_cell() can now return an awaitable, refs", "author_date": "2021-08-08T23:04:42Z", "committer_date": "2021-08-08T23:05:00Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "b72b2423c79dea4600b2337949db98269d0b6215", "message": "rel=alternate JSON for queries and database pages, closes #1620", "author_date": "2022-02-02T21:21:11Z", "committer_date": "2022-02-02T21:22:45Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "eccfeb0871dd4bc27870faf64f80ac68e5b6bc0d", "message": "register_routes() plugin hook datasette argument, closes #1404", "author_date": "2021-07-26T23:16:46Z", "committer_date": "2021-07-26T23:16:46Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "f5e79adf26d0daa3831e3fba022f1b749a9efdee", "message": "register_routes() plugin hook (#819)\n\nFixes #215", "author_date": "2020-06-09T03:12:06Z", "committer_date": "2020-06-09T03:12:06Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "cd792325681cbad9f663f2879d8b69f1edbb678f", "label": "GitHub"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 19864447, "label": "web-flow"}} {"sha": "8bf06a76b51bc9ace7cf72cf0cca8f1da7704ea7", "message": "register_permissions() plugin hook (#1940)\n\n* Docs for permissions: in metadata, refs #1636\r\n* Refactor default_permissions.py to help with implementation of #1636\r\n* register_permissions() plugin hook, closes #1939 - also refs #1938\r\n* Tests for register_permissions() hook, refs #1939\r\n* Documentation for datasette.permissions, refs #1939\r\n* permission_allowed() falls back on Permission.default, refs #1939\r\n* Raise StartupError on duplicate permissions\r\n* Allow dupe permisisons if exact matches", "author_date": "2022-12-13T02:05:54Z", "committer_date": "2022-12-13T02:05:54Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "cd792325681cbad9f663f2879d8b69f1edbb678f", "label": "GitHub"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 19864447, "label": "web-flow"}} {"sha": "799ecae94824640bdff21f86997f69844048d5c3", "message": "register_output_renderer can now return Response, closes #953", "author_date": "2020-08-28T04:02:50Z", "committer_date": "2020-08-28T04:02:50Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "1491b66dd7439dd87cd5cd4c4684f46eb3c5751b", "message": "register_function(name=...) argument, closes #458", "author_date": "2022-07-28T00:13:49Z", "committer_date": "2022-07-28T00:13:49Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "30c18576d603366dc3bd83ba50de1b7e70844430", "message": "register_commands() plugin hook, closes #1449", "author_date": "2021-08-28T01:39:42Z", "committer_date": "2021-08-28T01:39:42Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "de1059034486166131f2b2cd59ad69b4d26d6e25", "message": "recursive_triggers=on by default, closes #152\n\nRefs #149", "author_date": "2020-09-07T20:45:06Z", "committer_date": "2020-09-07T20:45:06Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "1a6105cfcc99ba72050b4101cb0f072b58d9a8a0", "message": "rebuild fts tables\n\nRefs https://github.com/simonw/sqlite-utils/issues/149", "author_date": "2020-09-11T04:31:14Z", "committer_date": "2020-09-11T04:31:14Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "cd792325681cbad9f663f2879d8b69f1edbb678f", "label": "GitHub"}, "repo": {"value": 207052882, "label": "github-to-sqlite"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 19864447, "label": "web-flow"}} {"sha": "1856002e3c0fcc9f09f72ab7d97ad8c75f6de7df", "message": "readthedocs/readthedocs-preview\n\nTip from https://twitter.com/readthedocs/status/1552354156056395778", "author_date": "2022-08-02T16:02:43Z", "committer_date": "2022-08-02T16:02:43Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "cd792325681cbad9f663f2879d8b69f1edbb678f", "label": "GitHub"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 19864447, "label": "web-flow"}} {"sha": "4218c9cd742b79b1e3cb80878e42b7e39d16ded2", "message": "reST markup fix", "author_date": "2022-10-04T18:45:36Z", "committer_date": "2022-10-04T18:45:36Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "cd792325681cbad9f663f2879d8b69f1edbb678f", "label": "GitHub"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 19864447, "label": "web-flow"}} {"sha": "f39c98a9c706a1e5c59ed0b2ced234bbf9325174", "message": "raw_authors plus handle null authors, closes #18", "author_date": "2020-03-23T20:43:52Z", "committer_date": "2020-03-23T20:43:52Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 207052882, "label": "github-to-sqlite"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "699be7dea9499355d576c16e330b85b90e1aca2a", "message": "raise_404() function for use in custom templates, closes #964", "author_date": "2020-09-14T17:39:13Z", "committer_date": "2020-09-14T17:39:25Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "fcc7cd6379ab62b5c2440d26935659a797133030", "message": "rST formatting", "author_date": "2020-06-11T16:04:32Z", "committer_date": "2020-06-11T16:05:15Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "9e6075d21facbfef565ffcdf160a558744fc1c2d", "message": "rST fixes for register_output_renderer docs", "author_date": "2020-05-27T18:35:31Z", "committer_date": "2020-05-27T18:35:31Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "089278b8dbe0cb3d41f27666d97b0096b750fbe2", "message": "rST fix, refs #1384", "author_date": "2021-06-26T22:49:07Z", "committer_date": "2021-06-26T22:49:07Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "7f4c854db1ed8c15338e9cf42d2a3f0c92e3b7b2", "message": "rST fix", "author_date": "2021-07-13T18:45:32Z", "committer_date": "2021-07-13T18:45:32Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "cd792325681cbad9f663f2879d8b69f1edbb678f", "label": "GitHub"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 19864447, "label": "web-flow"}} {"sha": "e4f1c7b936981de29823730c5dbef4f4ba7a4286", "message": "python_requires=\">=3.6\"\n\nInspired by https://github.com/simonw/datasette/pull/1044", "author_date": "2020-10-23T21:19:30Z", "committer_date": "2020-10-23T21:19:30Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "cd792325681cbad9f663f2879d8b69f1edbb678f", "label": "GitHub"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 19864447, "label": "web-flow"}} {"sha": "be768f26d09fa060b1ca71785ff546dd572f3fbc", "message": "python setup.py test now runs the tests", "author_date": "2017-11-04T23:40:27Z", "committer_date": "2017-11-04T23:40:27Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "606ff9e35e007ae58a491d417f47779034bacabc", "message": "python app.py --build to generate build-metadata.json\n\nThis is now run by the Dockerfile to build this at compile time.", "author_date": "2017-10-24T05:53:13Z", "committer_date": "2017-10-24T05:53:13Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "2b1c535c128984cc0ee2a097ecaa3ab638ae2a5b", "message": "pytest.mark.serial for any test using isolated_filesystem(), refs #1406", "author_date": "2021-07-30T00:44:16Z", "committer_date": "2021-07-30T00:44:16Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "b46856391de5a819a85d1dd970428cbc702be94a", "message": "pytest.mark.serial for any test using isolated_filesystem(), refs #1406", "author_date": "2021-07-30T00:44:16Z", "committer_date": "2021-07-30T23:46:41Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "73e214a9760c5dc32ed3c5429cb04d4d471ce014", "message": "py.typed file so mypy picks up the types, closes #331", "author_date": "2021-11-14T23:21:04Z", "committer_date": "2021-11-14T23:21:04Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "dbbe707841973b50a76d2703003ae2c40e7ad1fd", "message": "publish_subcommand hook + default plugins mechanism, used for publish heroku/now (#349)\n\nThis change introduces a new plugin hook, publish_subcommand, which can be\r\nused to implement new subcommands for the \"datasette publish\" command family.\r\n\r\nI've used this new hook to refactor out the \"publish now\" and \"publish heroku\"\r\nimplementations into separate modules. I've also added unit tests for these\r\ntwo publishers, mocking the subprocess.call and subprocess.check_output\r\nfunctions.\r\n\r\nAs part of this, I introduced a mechanism for loading default plugins. These\r\nare defined in the new \"default_plugins\" list inside datasette/app.py\r\n\r\nCloses #217 (Plugin support for datasette publish)\r\nCloses #348 (Unit tests for \"datasette publish\")\r\nRefs #14, #59, #102, #103, #146, #236, #347", "author_date": "2018-07-26T05:15:59Z", "committer_date": "2018-07-26T05:15:59Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "cd792325681cbad9f663f2879d8b69f1edbb678f", "label": "GitHub"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 19864447, "label": "web-flow"}} {"sha": "20d41c8e8e84ab3e8bdb5cca9bd9799da09794ad", "message": "publish now takes a required publisher argument - only current option is 'now'\n\nCloses #76", "author_date": "2017-11-13T18:40:51Z", "committer_date": "2017-11-13T18:40:51Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "25c2933667680db045851b2cedcf4666d737d352", "message": "publish heroku now uses python-3.8.7", "author_date": "2021-01-23T00:46:16Z", "committer_date": "2021-01-23T00:46:25Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "666c37415a898949fae0437099d62a35b1e9c430", "message": "publish heroku now uses Python 3.6.8\n\nAlso refactored temporary_heroku_directory out of utils.py", "author_date": "2019-05-16T04:32:23Z", "committer_date": "2019-05-16T04:32:23Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}}