id,node_id,number,state,locked,title,user,user_label,body,created_at,updated_at,closed_at,merged_at,merge_commit_sha,assignee,assignee_label,milestone,milestone_label,draft,head,base,author_association,repo,repo_label,url,merged_by,merged_by_label,auto_merge 431478724,MDExOlB1bGxSZXF1ZXN0NDMxNDc4NzI0,819,closed,0,register_routes() plugin hook,9599,simonw,Refs #215,2020-06-09T01:20:44Z,2020-06-09T03:12:08Z,2020-06-09T03:12:07Z,2020-06-09T03:12:07Z,f5e79adf26d0daa3831e3fba022f1b749a9efdee,,,5512395,Datasette 0.44,0,18127f074efc1b0148d1098da063e51ccea7797c,647c5ff0f3e8140f40d7f41f0874ce4e1f4df65c,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/819,,, 434055752,MDExOlB1bGxSZXF1ZXN0NDM0MDU1NzUy,844,closed,0,Action to run tests and upload coverage report,9599,simonw,Refs #843,2020-06-13T20:52:47Z,2020-06-13T21:36:52Z,2020-06-13T21:36:50Z,2020-06-13T21:36:50Z,cf7a2bdb404734910ec07abc7571351a2d934828,,,,,0,1210d9f41841bdca450f85a2342cdb0ff339c1b4,80c18a18fc444b89cc12b73599d56e091f3a3c87,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/844,,, 440946817,MDExOlB1bGxSZXF1ZXN0NDQwOTQ2ODE3,869,closed,0,Magic parameters for canned queries,9599,simonw,"Implementation for #842 TODO: - [x] Add tests for built-in magic parameters - [x] Magic parameters should not show up as blank form fields on the query page - [x] Update documentation for new `_request_X` (now called `_header_X`) implementation where X is a key from the ASGI scope - [x] Make sure these only work for canned queries, not for arbitrary SQL queries (security issue) - [x] Add test for the `register_magic_parameters` plugin hook - [x] Add documentation for the `register_magic_parameters` plugin hook ",2020-06-27T18:37:21Z,2020-06-28T02:58:18Z,2020-06-28T02:58:17Z,2020-06-28T02:58:17Z,563f5a2d3ab30ad08daee38f5ec3ed6429ac9206,,,5533512,Datasette 0.45,0,9e693a7aae3b4a0882881e3a1c182e1c0c753efd,4b142862f237f95a731cb8263a293eda70d13c82,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/869,,, 466410755,MDExOlB1bGxSZXF1ZXN0NDY2NDEwNzU1,927,closed,0,"'datasette --get' option, refs #926",9599,simonw,"Refs #926, #898",2020-08-11T23:31:52Z,2020-08-12T00:24:42Z,2020-08-12T00:24:41Z,2020-08-12T00:24:41Z,e139a7619f63d45ca2ff1ee108b933e17b5675b3,,,,,0,2111da01a03cfc62303b6a4b59ea9f96d22c0f78,83eda049af3f38d4289118d3576f96b2535084b1,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/927,,, 468370658,MDExOlB1bGxSZXF1ZXN0NDY4MzcwNjU4,936,closed,0,Don't hang in db.execute_write_fn() if connection fails,9599,simonw,Refs #935,2020-08-15T22:20:12Z,2020-08-15T22:35:33Z,2020-08-15T22:35:32Z,2020-08-15T22:35:32Z,b86f94883b1d827f85b07009e8346b8e9c6eeefa,,,,,0,94a68b95a21f29526d66e88bf5ea524a3efcc609,13b3b51087964d5e1a8c1cdd2495e07bdbe176b8,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/936,,, 468377212,MDExOlB1bGxSZXF1ZXN0NDY4Mzc3MjEy,937,closed,0,Docs now live at docs.datasette.io,9599,simonw,,2020-08-15T23:53:52Z,2020-08-15T23:57:06Z,2020-08-15T23:57:05Z,2020-08-15T23:57:05Z,41ddc197561ac2d2a1bb988956c301a523c6ca35,,,,,0,ff2605af65e023564cd7b57382b116e94b9d4f16,af12f45c2b0e4782ca92c2d00481dc47ccb7a046,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/937,,, 468484031,MDExOlB1bGxSZXF1ZXN0NDY4NDg0MDMx,941,closed,0,"Run CI on GitHub Actions, not Travis",9599,simonw,Refs #940,2020-08-16T19:13:39Z,2020-08-18T05:09:36Z,2020-08-18T05:09:35Z,2020-08-18T05:09:35Z,5e0b72247ecab4ce0fcec599b77a83d73a480872,,,,,0,f5a72e11b632b01acc41c07f6f4cfffa1a7ed14e,52eabb019d4051084b21524bd0fd9c2731126985,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/941,,, 481616704,MDExOlB1bGxSZXF1ZXN0NDgxNjE2NzA0,151,closed,0,Tracer mechanism for seeing underlying SQL,9599,simonw,"Refs #150. Needs tests and documentation, including for the new `db.execute()` and `db.executescript()` methods.",2020-09-07T19:46:43Z,2020-09-07T21:57:00Z,2020-09-07T21:57:00Z,2020-09-07T21:57:00Z,cf2cb244faf992118f34aa196387a4ef8b39a20f,,,,,0,dc82bf371911d01ac140f40ea99d06d2daee507e,3e87500e1561f5c4e105cd026d33e0f715cc7dea,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/151,,, 490607949,MDExOlB1bGxSZXF1ZXN0NDkwNjA3OTQ5,161,closed,0,table.transform() method,9599,simonw,"Refs #114 - [x] Ability to change the primary key - [x] Support for changing default value for columns - [x] Support for changing `NOT NULL` status of columns - [x] Support for copying existing foreign keys and removing them - Support for `conversions=` parameter - [x] Detailed documentation - [x] `PRAGMA foreign_keys` stuff",2020-09-21T23:16:59Z,2020-09-22T07:48:24Z,2020-09-22T04:20:02Z,2020-09-22T04:20:02Z,987dd123f2ac43c5ab66d69e59d454fe09660606,,,5897911,2.20,0,dc3eb9c313502832c07f4de889aa60c373f45b52,ef882986d07f157b6bcc6be3d7b64270fda3e523,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/161,,, 490703173,MDExOlB1bGxSZXF1ZXN0NDkwNzAzMTcz,166,closed,0,Keyword only arguments for transform(),9599,simonw,Refs #165,2020-09-22T05:41:44Z,2020-09-22T06:39:11Z,2020-09-22T06:39:11Z,2020-09-22T06:39:10Z,f8e10df00eae209fb0a1ea03384d9153f673a3ec,,,,,0,f8648cac3a6dda90578a1536cdae44d145633a2c,987dd123f2ac43c5ab66d69e59d454fe09660606,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/166,,, 492257405,MDExOlB1bGxSZXF1ZXN0NDkyMjU3NDA1,174,closed,0,"Much, much faster extract() implementation",9599,simonw,Takes my test down from ten minutes to four seconds. Refs #172.,2020-09-24T07:52:31Z,2020-09-24T15:44:00Z,2020-09-24T15:43:56Z,2020-09-24T15:43:56Z,022cdd97a9ddab1a152e23e1e1c42e78c1ed0fa9,,,,,0,227095ee90e2a92effec6478d3e629a24d3ccfba,0ca5585fcb834122193e8e7186f926217b23cb8a,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/174,,, 498104830,MDExOlB1bGxSZXF1ZXN0NDk4MTA0ODMw,994,closed,0,Run tests against Python 3.9,9599,simonw,,2020-10-05T20:40:13Z,2020-10-09T16:22:51Z,2020-10-09T16:22:50Z,2020-10-09T16:22:50Z,6e091b14b651d67e0ff41a353d36bbeb1d8ba235,,,,,0,ecba5d257ef4218a98b5903d856a4d7c0382f43d,e807c4eac0e85ae15e013379b0dde1d797f1377d,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/994,,, 499603359,MDExOlB1bGxSZXF1ZXN0NDk5NjAzMzU5,184,closed,0,Test against Python 3.9,9599,simonw,,2020-10-08T01:37:05Z,2020-10-08T01:44:06Z,2020-10-08T01:44:06Z,2020-10-08T01:44:06Z,8e91de8e4edf6c8abeeccdf084b8870fff40a51a,,,,,0,975c05b6dde9feebcdecabc047d47122ebcfdf84,7f4fe9190c1df7f0e72f9d7040327a43cf252c48,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/184,,, 507903392,MDExOlB1bGxSZXF1ZXN0NTA3OTAzMzky,1040,closed,0,/db/table/-/blob/pk/column.blob download URL,9599,simonw,"Refs #1036. Still needs: - [x] Comprehensive tests across all of the code branches, plus permissions - [x] A bit more refactoring to share logic cleanly with `RowView` - ~~A configuration option to disable this feature (probably)~~",2020-10-21T22:39:15Z,2020-10-24T23:09:20Z,2020-10-24T23:09:19Z,2020-10-24T23:09:19Z,5a1519796037105bc20bcf2f91a76e022926c204,,,6026070,0.51,0,4f3165f25fd9241fcf1291c797f4c77766b954dc,bf82b3d6a605c9ddadd5fb739249dfe6defaf635,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1040,,, 510956134,MDExOlB1bGxSZXF1ZXN0NTEwOTU2MTM0,190,closed,0,Progress bar for sqlite-utils insert command,9599,simonw,Refs #173,2020-10-27T18:08:53Z,2020-10-27T18:16:03Z,2020-10-27T18:16:03Z,2020-10-27T18:16:03Z,f99a23652910b03ac4669bbbb35a9b484451aabb,,,,,0,62d678122a251812cd650845705ca7b9efcef86d,c7e5dd64513c0ec2b2df4c51c8df924c282417f9,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/190,,, 511005542,MDExOlB1bGxSZXF1ZXN0NTExMDA1NTQy,1056,closed,0,"Radical new colour scheme and base styles, courtesy of @natbat",9599,simonw,,2020-10-27T19:31:48Z,2020-10-27T19:39:57Z,2020-10-27T19:39:56Z,2020-10-27T19:39:56Z,e5f5034bcdc71e4bc62a6a155ca60eb41910c335,,,6026070,0.51,0,a7b2aabd5148c0ee382b583de68a4f0538f7dfb1,26bb4a268127da2c38f4241abe45444b2a6f7874,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1056,,, 511868153,MDExOlB1bGxSZXF1ZXN0NTExODY4MTUz,1060,closed,0,New explicit versioning mechanism,9599,simonw,"- Remove all references to versioneer - Re-implement versioning to use a static string baked into the repo - Ensure that string is output by `datasette --version` and `/-/versions` Refs #1054",2020-10-28T22:14:55Z,2020-10-29T03:38:17Z,2020-10-29T03:38:16Z,2020-10-29T03:38:16Z,cefd058c1c216a184bb63c79abba66893977c18e,,,6026070,0.51,0,4725d46780783e9875bde5957f053ba19cf92ff0,abcf0222496d8148b2e585ffa0ff192270a04b06,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1060,,, 512545364,MDExOlB1bGxSZXF1ZXN0NTEyNTQ1MzY0,1061,closed,0,.blob output renderer,9599,simonw,"- [x] Remove the `/-/...blob/...` route I added in #1040 in place of the new `.blob` renderer URLs - [x] Link to new `.blob` download links on the arbitrary query page (using `_blob_hash=...`) - plus tests for this Closes #1050, Closes #1051",2020-10-29T20:25:08Z,2020-10-29T22:01:40Z,2020-10-29T22:01:39Z,2020-10-29T22:01:39Z,78b3eeaad9189eb737014f53212082684f4bb0d4,,,6026070,0.51,0,1196d084de6a7a6f68c7705a6cc096bb8df132e3,d6f9ff71378c4eab34dad181c23cfc143a4aef2d,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1061,,, 512736705,MDExOlB1bGxSZXF1ZXN0NTEyNzM2NzA1,1065,closed,0,Nav menu plus menu_links() hook,9599,simonw,"Closes #1064, refs #690.",2020-10-30T03:40:18Z,2020-10-30T03:45:17Z,2020-10-30T03:45:16Z,2020-10-30T03:45:16Z,18a64fbb29271ce607937110bbdb55488c43f4e0,,,6026070,0.51,0,5f118b56afbeff5348acd50a8b87537210e731ee,1a861be19e326e0c88230a711a1b6536366697d7,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1065,,, 513106026,MDExOlB1bGxSZXF1ZXN0NTEzMTA2MDI2,1069,closed,0,load_template() plugin hook,9599,simonw,Refs #1042,2020-10-30T15:59:45Z,2020-10-30T17:47:20Z,2020-10-30T17:47:19Z,2020-10-30T17:47:19Z,81dea4b07ab2b6f4eaaf248307d2b588472054a1,,,6026070,0.51,0,92f3840882a24da29d0d4073e5ed9d77fce438fc,fcf43589eb6a1f1d0432772a639fd35711c48e0c,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1069,,, 515014883,MDExOlB1bGxSZXF1ZXN0NTE1MDE0ODgz,195,closed,0,table.search() improvements plus sqlite-utils search command,9599,simonw,Refs #192. Still needs tests.,2020-11-03T22:02:08Z,2020-11-06T18:30:49Z,2020-11-06T18:30:42Z,2020-11-06T18:30:42Z,d411fba1f4124047429ac9d1175a04b36bf5bee9,,,,,0,973d94d44f27d35d856fe1cc822f9d5d40e4b5e6,59d8689ed0e6e042d99fd650896def680ca3c657,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/195,,, 518988879,MDExOlB1bGxSZXF1ZXN0NTE4OTg4ODc5,1085,closed,0,Use FTS4 in fixtures,9599,simonw,Refs #1081,2020-11-11T06:44:30Z,2020-11-12T00:02:59Z,2020-11-12T00:02:58Z,2020-11-12T00:02:58Z,e8e0a6f284ca953b2980186c4356594c07bd1929,,,,,0,51e7651c66aaf1804274ce68a6b5218bbba76338,2a981e2ac1d13125973904b777d00ea75e8df4e6,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1085,,, 521276296,MDExOlB1bGxSZXF1ZXN0NTIxMjc2Mjk2,1097,closed,0,Use f-strings,9599,simonw,"Since Datasette now requires Python 3.6, how about some f-strings? I ran this in the `datasette` root checkout: ``` pip install flynt flynt . black . ```",2020-11-15T23:12:36Z,2020-11-15T23:24:24Z,2020-11-15T23:24:23Z,2020-11-15T23:24:23Z,30e64c8d3b3728a86c3ca42a75322cc3feb5b0c8,,,,,0,e89211d21eebb7a2e4588b06927da84416e3a555,6fd35be64de221eba4945ca24e8e1678f6142a73,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1097,,, 529783275,MDExOlB1bGxSZXF1ZXN0NTI5NzgzMjc1,1117,closed,0,Support for generated columns,9599,simonw,"Refs #1116. My first attempt at this worked on my laptop but broke in CI, so I'm going to iterate on it in a pull request instead.",2020-11-30T20:10:46Z,2020-11-30T22:23:19Z,2020-11-30T21:29:58Z,2020-11-30T21:29:58Z,461670a0b87efa953141b449a9a261919864ceb3,,,,,0,ccdf2c650278b8b9465d3a2d7c916f3bb06c4f01,dea3c508b39528e566d711c38a467b3d372d220b,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1117,,, 529887861,MDExOlB1bGxSZXF1ZXN0NTI5ODg3ODYx,1120,closed,0,generated_columns table in fixtures.py,9599,simonw,Refs #1119,2020-12-01T00:17:19Z,2020-12-01T00:28:03Z,2020-12-01T00:28:02Z,2020-12-01T00:28:02Z,17cbbb1f7f230b39650afac62dd16476626001b5,,,,,0,ddad8db2cc952eaf4f66f42324ccece115627b02,461670a0b87efa953141b449a9a261919864ceb3,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1120,,, 537791675,MDExOlB1bGxSZXF1ZXN0NTM3NzkxNjc1,208,closed,0,sqlite-utils analyze-tables command and table.analyze_column() method,9599,simonw,"Refs #207 - [x] Improve design of CLI output - [x] Truncate long values in least/most common - [x] Add a `-c` column selection option - [x] Tests - [x] Documentation",2020-12-12T05:27:49Z,2020-12-13T07:20:16Z,2020-12-13T07:20:12Z,2020-12-13T07:20:12Z,69a121e08847acbf95abf0c2df1759fc73dc81b8,,,,,0,95a966bb6216215d40d0016d673a28b04428db43,c5f4f0f70ce394dfec6054c3c5aaedf330887093,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/208,,, 560725714,MDExOlB1bGxSZXF1ZXN0NTYwNzI1NzE0,1203,closed,0,Easier way to run Prettier locally,9599,simonw,Refs #1167,2021-01-25T01:39:06Z,2021-01-25T01:41:46Z,2021-01-25T01:41:46Z,2021-01-25T01:41:46Z,ffff3a4c5398a9f40b61d59736f386444da19289,,,,,0,98acc8865aa7826a40a7a076ab548ba8597af734,b6a7b58fa01af0cd5a5e94bd17d686d283a46819,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1203,,, 560760145,MDExOlB1bGxSZXF1ZXN0NTYwNzYwMTQ1,1204,open,0,WIP: Plugin includes,9599,simonw,"Refs #1191 Next steps: - [ ] Get comfortable that this pattern is the right way to go - [ ] Implement it for all of the other pages, not just the table page - [ ] Add a new set of plugin tests that exercise ALL of these new hook locations - [ ] Document, then ship",2021-01-25T03:59:06Z,2021-12-17T07:10:49Z,,,98f06a766317a40035962416cf3211d7a374866a,,,,,1,05258469ae39bcaad17beb57c5b7eeab0d58a589,07e163561592c743e4117f72102fcd350a600909,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1204,,, 560831638,MDExOlB1bGxSZXF1ZXN0NTYwODMxNjM4,1206,closed,0,Release 0.54,9599,simonw,Refs #1201,2021-01-25T06:45:47Z,2021-01-25T17:33:30Z,2021-01-25T17:33:29Z,2021-01-25T17:33:29Z,0b9ac1b2e9c855f1b823a06a898891da87c720ef,,,,,0,571476d2cf8f7d7eac6098de8557264e69cac43f,a5ede3cdd455e2bb1a1fb2f4e1b5a9855caf5179,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1206,,, 572209243,MDExOlB1bGxSZXF1ZXN0NTcyMjA5MjQz,1222,closed,0,"--ssl-keyfile and --ssl-certfile, refs #1221",9599,simonw,,2021-02-12T00:45:58Z,2021-02-12T00:52:18Z,2021-02-12T00:52:17Z,2021-02-12T00:52:17Z,eda652cf6ee28a0babfb30ce3834512e9e33fb8e,,,,,0,8ec72ea3e3e0a9876d5e61e4a2260224f16db2e3,aa1fe0692c2abb901216738bfb35f9fcc5090e7d,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1222,,, 573147168,MDExOlB1bGxSZXF1ZXN0NTczMTQ3MTY4,233,closed,0,"Run tests against Ubuntu, macOS and Windows",9599,simonw,Refs #232,2021-02-14T20:11:02Z,2021-02-14T20:39:54Z,2021-02-14T20:39:54Z,2021-02-14T20:39:54Z,f51a1f6c3cb2929bcf79cb4efe3b2a9886d9c25c,,,,,0,deb01a8913441e7fedb53c52a3a9fdff274ddbd2,320f3ac33a83b32f89559ef0c162b7eca428a278,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/233,,, 575940193,MDExOlB1bGxSZXF1ZXN0NTc1OTQwMTkz,1232,closed,0,--crossdb option for joining across databases,9599,simonw,"Refs #283. Still needs: - [x] Unit test for --crossdb queries - [x] Show warning on console if it truncates at ten databases (or on web interface) - [x] Show connected databases on the `/_memory` database page - [x] Documentation - [x] https://latest.datasette.io/ demo should demonstrate this feature",2021-02-18T19:48:50Z,2021-02-18T22:09:13Z,2021-02-18T22:09:12Z,2021-02-18T22:09:12Z,6f41c8a2bef309a66588b2875c3e24d26adb4850,,,,,0,887649942b02d70a0fe4e205e1e5eff4e745b016,4df548e7668b5b21d64a267964951e67894f4712,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1232,,, 580235427,MDExOlB1bGxSZXF1ZXN0NTgwMjM1NDI3,241,open,0,Extract expand - work in progress,9599,simonw,Refs #239. Still needs documentation and CLI implementation.,2021-02-25T16:36:38Z,2021-02-25T16:36:38Z,,,0bb6c7a38994627a64e7b3375931528e96b8c222,,,,,1,8d641ab08ac449081e96f3e25bd6c0226870948a,38e688fb8bcb58ae888b676fe3f7dd0529b4eecc,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/241,,, 598213565,MDExOlB1bGxSZXF1ZXN0NTk4MjEzNTY1,1271,open,0,Use SQLite conn.interrupt() instead of sqlite_timelimit(),9599,simonw,"Refs #1270, #1268, #1249 Before merging this I need to do some more testing (to make sure that expensive queries really are properly cancelled). I also need to delete a bunch of code relating to the old mechanism of cancelling queries. [See comment below: this doesn't actually cancel the query due to a thread-local confusion]",2021-03-22T17:34:20Z,2021-03-22T21:49:27Z,,,a4fd7e5a761523881c031b4fee266a366e1c97bd,,,,,1,fb2ad7ada0b86a7fe4a576fe23236757c41eb05e,c4f1ec7f33fd7d5b93f0f895dafb5351cc3bfc5b,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1271,,, 608323028,MDExOlB1bGxSZXF1ZXN0NjA4MzIzMDI4,1290,closed,0,Use pytest-xdist to speed up tests,9599,simonw,"Closes #1289, refs #1212.",2021-04-03T03:34:36Z,2021-04-03T03:42:29Z,2021-04-03T03:42:28Z,2021-04-03T03:42:28Z,0a7621f96f8ad14da17e7172e8a7bce24ef78966,,,,,0,2fb1e4284f1f0f6aaba7e889a6713c0f96e802e1,59ef4a20cba1533bc347378415f4ffcd025f32c8,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1290,,, 651492888,MDExOlB1bGxSZXF1ZXN0NjUxNDkyODg4,1339,closed,0,?_col=/?_nocol= to show/hide columns on the table page,9599,simonw,"See #615. Still to do: - [x] Allow combination of `?_col=` and `?_nocol=` (`_nocol` wins) - [x] Deduplicate same column if passed in `?_col=` multiple times - [x] Validate that user did not try to remove a primary key - [x] Add tests - [x] Ensure this works correctly for SQL views - [x] Add documentation ",2021-05-24T17:15:20Z,2021-05-27T04:17:44Z,2021-05-27T04:17:43Z,2021-05-27T04:17:43Z,f1c29fd6a184254aa68efadf096bcf21e848f921,,,,,0,387c8379b92e559180098f73017a1bf2e6370205,2bd9d54b2762c991e11950c22c88c0336158d49b,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1339,,, 655684477,MDExOlB1bGxSZXF1ZXN0NjU1Njg0NDc3,1346,closed,0,Re-display user's query with an error message if an error occurs,9599,simonw,Refs #619,2021-05-28T02:04:20Z,2021-06-02T03:46:21Z,2021-06-02T03:46:21Z,2021-06-02T03:46:21Z,9552414e1f968c6fc704031cec349c05e6bc2371,,,,,0,3bffc35ff9137a75024d2a8ef44828a50ec91071,7b106e106000713bbee31b34d694b3dadbd4818c,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1346,,, 657373726,MDExOlB1bGxSZXF1ZXN0NjU3MzczNzI2,262,closed,0,Ability to add descending order indexes,9599,simonw,Refs #260,2021-05-29T04:51:04Z,2021-05-29T05:01:42Z,2021-05-29T05:01:39Z,2021-05-29T05:01:39Z,51d01da30d45c1fbc1e587e6046a933529cf915e,,,,,0,50a4fb722d29c3e53f7b148a41aeda901d02a264,b2302875c97f723e02cc39136d0b20fd706369aa,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/262,,, 662557240,MDExOlB1bGxSZXF1ZXN0NjYyNTU3MjQw,1357,closed,0,Make custom pages compatible with base_url setting,9599,simonw,Refs #1238.,2021-06-05T18:54:39Z,2021-06-05T18:59:54Z,2021-06-05T18:59:54Z,2021-06-05T18:59:54Z,a63412152518581c6a3d4e142b937e27dabdbfdb,,,,,0,1b27643d7bd192e1d2cc52e36ada0021c3f76bb8,6e9b07be92905011211d8df7a872fb7c1f2737b2,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1357,,, 671014751,MDExOlB1bGxSZXF1ZXN0NjcxMDE0NzUx,273,closed,0,sqlite-utils memory command for directly querying CSV/JSON data,9599,simonw,"Refs #272. Initial implementation only does CSV data, still needs: - [x] Implement `--save` - [x] Add `--dump` to the documentation - [x] Add `--attach` example to the documentation - [x] Replace `:memory:` in documentation",2021-06-16T05:04:58Z,2021-06-18T15:01:17Z,2021-06-18T15:00:52Z,2021-06-18T15:00:52Z,42ec59d8ee3fcfb8ac1affb772aed43b6e2a7381,,,,,0,df7a37bdb730bb863fa29758f6fb35f809fa0dd0,78aebb6479420217454747870737bc593a259abc,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/273,,, 677554929,MDExOlB1bGxSZXF1ZXN0Njc3NTU0OTI5,293,closed,0,Test against Python 3.10-dev,9599,simonw,,2021-06-25T01:40:39Z,2021-10-13T21:49:33Z,2021-10-13T21:49:33Z,,0f64d20b044ecb86d9e4e5843f9590006d2f39c2,,,,,0,ae0f46a78958c0118e98c2ab18bd1b57a0478326,747be6057d09a4e5d9d726e29d5cf99b10c59dea,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/293,,, 691707409,MDExOlB1bGxSZXF1ZXN0NjkxNzA3NDA5,1397,closed,0,"Fix for race condition in refresh_schemas(), closes #1231",9599,simonw,,2021-07-16T19:44:43Z,2021-07-16T19:45:00Z,2021-07-16T19:44:58Z,2021-07-16T19:44:58Z,c00f29affcafce8314366852ba1a0f5a7dd25690,,,,,0,bf2453ab7cb876c91edab3df59b7f398df2f9727,dd5ee8e66882c94343cd3f71920878c6cfd0da41,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1397,,, 700944644,MDExOlB1bGxSZXF1ZXN0NzAwOTQ0NjQ0,303,closed,0,sqlite-utils convert command and db[table].convert(...) method,9599,simonw,"Refs #251, #302. - [x] Get recipes working - [x] Document recipes - [x] Implement `db[table].convert(...)` method - [x] Add tests for recipes that use the new Python method - [x] Implement `db[table].convert(..., multi=True)` mechanism - [x] Documentation for `db[table].convert(...)` - [x] Refactor `sqlite-utils convert` to use the new method",2021-08-01T16:52:42Z,2021-08-02T04:47:42Z,2021-08-02T04:47:39Z,2021-08-02T04:47:39Z,5ec6686153e29ae10d4921a1ad4c841f192f20e2,,,,,0,4c3bf9730542f1e49cbf11a61dbdb7fd621453df,c7e8d72be9fe8fe0811f685a18eebc637662d41b,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/303,,, 702422263,MDExOlB1bGxSZXF1ZXN0NzAyNDIyMjYz,1418,closed,0,Spelling corrections plus CI job for codespell,9599,simonw,Refs #1417.,2021-08-03T16:21:19Z,2021-08-03T16:36:39Z,2021-08-03T16:36:38Z,2021-08-03T16:36:38Z,2208c3c68e552d343e6a2872ff6e559fca9d1b38,,,,,0,532170fc606df04986104aacbd67b920c5fa0af9,54b6e96ee8aa553b6671e341a1944f93f3fb89c3,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1418,,, 707490789,MDExOlB1bGxSZXF1ZXN0NzA3NDkwNzg5,312,closed,0,Add reference page to documentation using Sphinx autodoc,9599,simonw,Refs #311.,2021-08-10T16:59:17Z,2021-08-10T23:09:32Z,2021-08-10T23:09:28Z,2021-08-10T23:09:28Z,6155da72c8939b5d9bdacb7853e5e8d1767ce1d5,,,,,0,43bc06481783c3cfcee70c0cb541a686e8894adb,ee469e3122d6f5973ec2584c1580d930daca2e7c,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/312,,, 711783616,MDExOlB1bGxSZXF1ZXN0NzExNzgzNjE2,1430,closed,0,Column metadata,9599,simonw,"Refs #942 Still needs: - [x] Tests - [x] Documentation",2021-08-12T23:34:39Z,2021-08-12T23:53:23Z,2021-08-12T23:53:23Z,2021-08-12T23:53:23Z,e837095ef35ae155b4c78cc9a8b7133a48c94f03,,,,,0,941994725dd41deb6f839c5063cff5d15d4abb1c,b1fed48a95516ae84c0f020582303ab50ab817e2,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1430,,, 712412883,MDExOlB1bGxSZXF1ZXN0NzEyNDEyODgz,1434,open,0,Enrich arbitrary query results with foreign key links and column descriptions,9599,simonw,"Refs #1293, follows #942.",2021-08-13T14:43:01Z,2021-08-19T21:18:58Z,,,d4d4f5566b1d43075cb52ded5d19a9dcf4350761,,,,,0,281c0872d5b8a462c9d7b2b2d77a924da4ed25a7,2883098770fc66e50183b2b231edbde20848d4d6,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1434,,, 716262829,MDExOlB1bGxSZXF1ZXN0NzE2MjYyODI5,1444,closed,0,Ability to deploy demos of branches,9599,simonw,See #1442.,2021-08-19T21:08:04Z,2021-08-19T21:09:44Z,2021-08-19T21:09:39Z,2021-08-19T21:09:39Z,d84e574e59c51ddcd6cf60a6f9b3d45182daf824,,,,,0,75f9fe6d6bc642ce5587dd74eed70064c11868be,adb5b70de5cec3c3dd37184defe606a082c232cf,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1444,,, 719109709,MDExOlB1bGxSZXF1ZXN0NzE5MTA5NzA5,321,closed,0,"Ability to insert file contents as text, in addition to blob",9599,simonw,Refs #319.,2021-08-24T22:37:18Z,2021-08-24T23:31:17Z,2021-08-24T23:31:13Z,2021-08-24T23:31:13Z,49a010c93d90bc68ce1c6fff7639927248912b54,,,,,0,db2dd6d9f30b347f4ed22b07f59b5a615184fbfd,9258f4bd8450c951900de998a7bf81ca9b45a014,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/321,,, 729731441,MDExOlB1bGxSZXF1ZXN0NzI5NzMxNDQx,326,closed,0,Test against 3.10-dev,9599,simonw,"This tests against the latest 3.10 RC, https://www.python.org/downloads/release/python-3100rc2/",2021-09-08T15:01:15Z,2021-10-13T21:49:28Z,2021-10-13T21:49:28Z,,c563260408e1b802cbbc81ec7c1e398350a1ca3a,,,,,0,078a08765d8aefa5ce376a03b2643d4ebe1aa57e,77c240df56068341561e95e4a412cbfa24dc5bc7,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/326,,, 753513062,PR_kwDOBm6k_c4s6bJm,1481,closed,0,Fix compatibility with Python 3.10,9599,simonw,,2021-10-07T20:34:23Z,2021-10-24T22:19:55Z,2021-10-24T22:19:54Z,2021-10-24T22:19:54Z,96a823f2834a262ae97a90ebfb6847f14763c415,,,,,0,50005bd2d36219c3ae8b6220d38df918459a1812,63886178a649586b403966a27a45881709d2b868,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1481,,, 757797315,PR_kwDOCGYnMM4tKxHD,330,closed,0,Test against Python 3.10,9599,simonw,,2021-10-13T21:50:22Z,2021-11-15T02:59:29Z,2021-10-13T22:25:05Z,2021-10-13T22:25:05Z,fda4dad23a0494890267fbe8baf179e2b56ee914,,,,,0,fc3de90963b6b097826d36f6a24c46267659dcf2,718a8f61bcaed39c04d5d223104056213f8c8516,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/330,,, 758569502,PR_kwDOBm6k_c4tNtoe,1490,closed,0,Upgrade to httpx 0.20,9599,simonw,Refs #1488 ,2021-10-14T17:51:05Z,2021-10-14T18:03:45Z,2021-10-14T18:03:44Z,2021-10-14T18:03:44Z,b267b5775436577a91a9f9655143908aecff05da,,,,,0,e0332d1f4788a561492965a09ef83fe122fd3d8c,2a8c6690399ee832ee62aafdede1794f5945d911,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1490,,, 782105066,PR_kwDOBm6k_c4unfnq,1512,closed,0,New pattern for async view classes,9599,simonw,Refs #878 - starting out with the new `AsyncBase` class implementing a pytest-inspired `asyncio` parallel execution mechanism.,2021-11-16T21:55:44Z,2021-11-17T01:39:54Z,2021-11-17T01:39:44Z,,fb57d4474cb1fdaef260e244b1b6f470f1992e40,,,,,1,8f757da0750fe7f27b4ed3839bc3ef3650832ad9,0156c6b5e52d541e93f0d68e9245f20ae83bc933,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1512,,, 791153878,PR_kwDOCGYnMM4vKAzW,347,open,0,Test against pysqlite3 running SQLite 3.37,9599,simonw,Refs #346 and #344.,2021-11-29T23:17:57Z,2021-12-11T01:02:19Z,,,f70a61e58ae62e53af74ab48d742bdc335131fbd,,,,,0,1a7ef2fe2064ace01d5535fb771f941296fb642a,213a0ff177f23a35f3b235386366ff132eb879f1,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/347,,, 801798514,PR_kwDOBm6k_c4vynly,1554,closed,0,TableView refactor,9599,simonw,"I'm starting a PR with almost nothing in it so I can use the GitHub code commenting feature to add a bunch of comments to the code I intend to refactor. Related issues: - #617 - #715 - #870 - #1518",2021-12-13T23:16:04Z,2021-12-20T23:52:11Z,2021-12-20T23:52:04Z,,a68545f9a4c3b3a68259be5c03abfc9ad7710875,,,,,0,1d08b46412410837f987c606b2307a121fa2641a,a6ff123de5464806441f6a6f95145c9a83b7f20b,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1554,,, 804924636,PR_kwDOBm6k_c4v-izc,1559,closed,0,"filters_from_request plugin hook, now used in TableView",9599,simonw,"New plugin hook, refs #473 Used it to extract the logic from TableView that handles _search and _through and _where - refs #1518",2021-12-16T23:59:33Z,2021-12-17T23:09:41Z,2021-12-17T19:02:15Z,2021-12-17T19:02:15Z,aa7f0037a46eb76ae6fe9bf2a1f616c58738ecdf,,,,,0,71af58d9392d42f45506cbc2370c1e9994126f63,0663d5525cc41e9260ac7d1f6386d3a6eb5ad2a9,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1559,,, 815164865,PR_kwDOCGYnMM4wlm3B,361,closed,0,--lines and --text and --convert and --import,9599,simonw,"Refs #356 Still TODO: - [x] Get `--lines` working, with tests - [x] Get `--text` working, with tests - [x] Get regular JSON import working with `--convert` with tests - [x] Get `--lines` working with `--convert` with tests - [x] Get `--text` working with `--convert` with tests - [x] Get `--csv` and `--tsv` import working with `--convert` with tests - [x] Get `--nl` working with `--convert` with tests - [x] Documentation for all of the above",2022-01-06T01:49:44Z,2022-01-06T06:37:03Z,2022-01-06T06:24:54Z,2022-01-06T06:24:54Z,413f8ed754e38d7b190de888c85fe8438336cb11,,,,,0,b7f0b88d49032a053f0de2dbba356ee1f3b949c0,f3fd8613113d21d44238a6ec54b375f5aa72c4e0,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/361,,, 816927546,PR_kwDOCGYnMM4wsVM6,367,closed,0,Initial prototype of .analyze() methods,9599,simonw,Refs #366,2022-01-08T21:35:12Z,2022-01-10T19:31:08Z,2022-01-10T19:31:08Z,,2ffcbed6787523649dd676985f3ea70a62944764,,,7558727,3.21,1,9848eaa61b43de0ddb74ff6d085bcb18f4640f91,a8f9cc6f64f299830834428509940d448b82b4ed,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/367,,, 817257851,PR_kwDOCGYnMM4wtl17,377,closed,0,`sqlite-utils bulk` command,9599,simonw,"Refs #375 Still needs: - [x] Refactor `@insert_upsert_options` so that it doesn't duplicate `@import_options` - [x] Tests - [x] Documentation - [x] Try it against a really big file",2022-01-10T05:34:24Z,2022-01-11T02:10:57Z,2022-01-11T02:10:54Z,2022-01-11T02:10:54Z,129141572f249ea290e2a075437e2ebaad215859,,,7558727,3.21,0,f4ea0d32c0543373eefaa9b9f3911eb07549eecb,b6dad08a8389736b7e960cfe9bc719cfc21a98f5,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/377,,, 838724548,PR_kwDOBm6k_c4x_evE,1622,closed,0,Test against Python 3.11-dev,9599,simonw,Refs #1621,2022-02-02T21:39:38Z,2022-02-02T21:58:53Z,2022-02-02T21:58:53Z,2022-02-02T21:58:53Z,a9d8824617268c4d214dd3be2174ac452044f737,,,,,0,fbaf317ab723482e971688cda72ce51825bcf4d7,8d5779acf0041cfd0db7f68f468419f9008b86ec,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1622,,, 838755826,PR_kwDOBm6k_c4x_mXy,1626,open,0,Try test suite against macOS and Windows,9599,simonw,Refs #1625,2022-02-02T22:26:51Z,2022-02-03T01:22:44Z,,,83958f26a8458a108acb7c3c0a1c8aacb777586a,,,,,0,4b4d0e1ff9e2ee998cbd71abd5f5806f25444ed9,b5e6b1a9e1332fca3effe45d55dd06ee4249f163,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1626,,, 872324754,PR_kwDOBm6k_c4z_p6S,1648,closed,0,Use dash encoding for table names and row primary keys in URLs,9599,simonw,"Refs #1439. - [x] Build `dash_encode` / `dash_decode` functions - [x] Use dash encoding for row primary keys - [x] Use dash encoding for `?_next=` pagination tokens - [x] Use dash encoding for table names in URLs - [x] Use dash encoding for database name - ~~Implement redirects from previous `%` URLs that replace those with `-`~~ - separate issue: #1650",2022-03-05T19:50:45Z,2022-03-07T15:38:30Z,2022-03-07T15:38:30Z,2022-03-07T15:38:29Z,1baa030eca375f839f3471237547ab403523e643,,,,,0,32548b88fdb413429d960966decba8f6b3889190,5010d1359b9e9db90a5a69a3ca22d12862893e00,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1648,,, 880373442,PR_kwDOBm6k_c40eW7C,1659,closed,0,Tilde encoding,9599,simonw,Refs #1657,2022-03-15T16:19:07Z,2022-03-15T18:01:58Z,2022-03-15T18:01:57Z,2022-03-15T18:01:57Z,a35393b29cfb5b8abdc6a94e577af1c9a5c13652,,,,,0,99b8263806e81028af169f400352c26e5473ab44,c10cd48baf106659bf3f129ad7bfb2226be73821,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1659,,, 882973374,PR_kwDOBm6k_c40oRq-,1664,closed,0,Remove hashed URL mode,9599,simonw,Refs #1661.,2022-03-17T23:19:10Z,2022-03-19T00:12:04Z,2022-03-19T00:12:04Z,2022-03-19T00:12:03Z,d4f60c2388c01ddce1b16f95c16d310e037c9912,,,,,0,eae91fe8c2934c8674f5202b2d9f85b6f674c410,30e5f0e67c38054a8087a2a4eae3fc4d1779af90,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1664,,, 925807233,PR_kwDOCGYnMM43LrKB,429,closed,0,Depend on click-default-group-wheel,9599,simonw,"Trying to get this to work with Pyodide. Refs: https://github.com/simonw/click-default-group-wheel/issues/3",2022-05-02T18:03:10Z,2022-05-02T18:52:42Z,2022-05-02T18:05:00Z,2022-05-02T18:05:00Z,ed6fd516082e8cc83b199798f62dd67728a6974f,,,,,0,4a02dcf265702a4f11eed943bf8feaa502c590d5,e3a14c33a033b0c2fc00f2470666caaf9027e446,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/429,,, 925926708,PR_kwDOBm6k_c43MIU0,1736,closed,0,Clean up compatibility with Pyodide,9599,simonw,"Closes #1735, closes #1733",2022-05-02T20:14:38Z,2022-05-02T20:15:28Z,2022-05-02T20:15:27Z,2022-05-02T20:15:27Z,3f00a29141bdea5be747f6d1c93871ccdb792167,,,,,0,784fe6a245a051ef6b42e153d3fae9cce7b0b148,a29c1277896b6a7905ef5441c42a37bc15f67599,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1736,,, 1009936222,PR_kwDOCGYnMM48Mmde,457,closed,0,Link to installation instructions,9599,simonw,Also testing https://docs.readthedocs.io/en/stable/pull-requests.html,2022-07-27T17:38:36Z,2022-08-27T03:55:52Z,2022-07-27T17:57:50Z,2022-07-27T17:57:50Z,77ca051d4f5ddbd42fd6250749efac7ea85ea094,,,8355157,3.29,0,80b3907471f724aeecae75796663815c87731e77,9e6cceac1c0e086429e2d308b700e59cc53a1991,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/457,,, 1015320511,PR_kwDOCGYnMM48hI-_,460,closed,0,Cross-link CLI to Python docs,9599,simonw,"Work in progress, partly to test the ReadTheDocs preview link action. Refs: - #426 ---- :books: Documentation preview :books:: https://readthedocs-preview--460.org.readthedocs.build/en/460/ ",2022-08-02T16:18:28Z,2022-08-18T21:58:10Z,2022-08-18T21:58:07Z,2022-08-18T21:58:07Z,f4fb78fa95057fbc86c734020835a3155695297f,,,,,0,f21f4ccf7197e7a0ac8c2eb5086659fc3eb5bc05,1856002e3c0fcc9f09f72ab7d97ad8c75f6de7df,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/460,,, 1015591301,PR_kwDOCGYnMM48iLGF,462,closed,0,Discord badge,9599,simonw,"Also testing fix for: - https://github.com/readthedocs/readthedocs-preview/issues/10 ---- :books: Documentation preview :books:: https://sqlite-utils--462.org.readthedocs.build/en/462/ ",2022-08-02T20:56:04Z,2022-08-02T21:15:57Z,2022-08-02T21:15:52Z,2022-08-02T21:15:52Z,271433fdd18e436b0a527ab899cb6f6fa67f23d0,,,,,0,0a14a031385f2647be0b9d15d96c1d44d05c2296,98a28cbfe6cea67f6334b42b74f35b0ddd309561,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/462,,, 1029360106,PR_kwDOCGYnMM49Wsnq,465,closed,0,beanbag-docutils>=2.0,9599,simonw,Refs #464,2022-08-17T22:41:39Z,2022-08-17T23:38:07Z,2022-08-17T23:38:02Z,2022-08-17T23:38:02Z,f8ffac8787e299a62c99ed1ce914cd5ace84ad94,,,,,0,bb90d3326815a041512b40bf0cf53b3ace06cd67,45e24deffea042b5db7ab84cd1eb63b3ed9bb9da,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/465,,, 1029373779,PR_kwDOCGYnMM49Wv9T,466,closed,0,Use Read the Docs action v1 (#463),9599,simonw,"Read the Docs repository was renamed from `readthedocs/readthedocs-preview` to `readthedocs/actions/`. Now, the `preview` action is under `readthedocs/actions/preview` and is tagged as `v1`",2022-08-17T23:11:50Z,2022-08-17T23:11:54Z,2022-08-17T23:11:54Z,2022-08-17T23:11:54Z,bb90d3326815a041512b40bf0cf53b3ace06cd67,,,,,0,83e7339255e811c62e6db8498c483c44a84d0f28,72655adabc596a9eed43cc11c07177a390791068,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/466,,, 1034485141,PR_kwDOCGYnMM49qP2V,468,closed,0,"db[table].create(..., transform=True) and create-table --transform",9599,simonw,"Work in progress. Still needs documentation and tests (and to cover more cases of things that might have changed). Refs: - #467 ---- :books: Documentation preview :books:: https://sqlite-utils--468.org.readthedocs.build/en/468/ ",2022-08-23T17:27:58Z,2022-08-27T23:17:55Z,2022-08-27T23:17:55Z,2022-08-27T23:17:55Z,104f37fa4d2e7e5999c1d829267b62c737f74d3e,,,8355157,3.29,0,2f6a64f61d561df821d737719941c678dcb1a03c,c5f8a2eb1a81a18b52825cc649112f71fe419b12,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/468,,, 1034576054,PR_kwDOBm6k_c49qmC2,1792,closed,0,Test `--load-extension` in GitHub Actions,9599,simonw,"Refs: - #1789 ---- :books: Documentation preview :books:: https://datasette--1792.org.readthedocs.build/en/1792/ ",2022-08-23T18:43:29Z,2022-08-24T00:11:46Z,2022-08-24T00:11:45Z,2022-08-24T00:11:45Z,ba35105eee2d3ba620e4f230028a02b2e2571df2,,,,,0,f61cfb77056e2ee39ae827889c005b1e44c81165,456dc155d491a009942ace71a4e1827cddc6b93d,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1792,,, 1038565427,PR_kwDOCGYnMM4950Az,473,closed,0,Support entrypoints for `--load-extension`,9599,simonw,"Refs #470 ---- :books: Documentation preview :books:: https://sqlite-utils--473.org.readthedocs.build/en/473/ ",2022-08-27T05:53:59Z,2022-08-27T05:55:52Z,2022-08-27T05:55:47Z,2022-08-27T05:55:47Z,19dd077944429c1365b513d80cc71c605ae3bed3,,,,,0,72db599ae03fabe2e9f999999e258edc1a99ed59,a46a5e3a9e03dcdd8c84a92e4a5dbfa02ba461fa,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/473,,, 1046767034,PR_kwDOBm6k_c4-ZGW6,1801,closed,0,"Don't use upper bound dependencies, refs #1800",9599,simonw,"See https://iscinumpy.dev/post/bound-version-constraints/ ---- :books: Documentation preview :books:: https://datasette--1801.org.readthedocs.build/en/1801/ ",2022-09-05T18:29:28Z,2022-09-05T18:35:41Z,2022-09-05T18:35:41Z,2022-09-05T18:35:41Z,51030df1869b3b574dd3584d1563415776b9cd4e,,,,,0,3f24edd6b29e7deff37d0e45827133fc5a9e5387,ba35105eee2d3ba620e4f230028a02b2e2571df2,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1801,,, 1046943107,PR_kwDOBm6k_c4-ZxWD,1803,closed,0,Workaround for test failure: RuntimeError: There is no current event loop,9599,simonw,"Closes #1802 ---- :books: Documentation preview :books:: https://datasette--1803.org.readthedocs.build/en/1803/ ",2022-09-06T00:31:06Z,2022-09-06T00:40:19Z,2022-09-06T00:40:19Z,2022-09-06T00:40:19Z,64288d827f7ff97f825e10f714da3f781ecf9345,,,,,0,7b6a2b48408697905bd93504b7f5554f4a7627ef,1c29b925d300d1ee17047504473f2517767aa05b,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1803,,, 1067890893,PR_kwDOBm6k_c4_prjN,1823,open,0,Keyword-only arguments for a bunch of internal methods,9599,simonw,"Refs #1822 ---- :books: Documentation preview :books:: https://datasette--1823.org.readthedocs.build/en/1823/ ",2022-09-27T00:44:59Z,2022-10-05T04:37:54Z,,,28068a62ad6a8b76a1c9223c4ca78099cfd2ece5,,,,,0,b545b6a04ed7b407331f991adce107691ac3ab97,5f9f567acbc58c9fcd88af440e68034510fb5d2b,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1823,,, 1086765659,PR_kwDOBm6k_c5Axrpb,1842,closed,0,check_visibility can now take multiple permissions into account,9599,simonw,"Refs #1829 - [x] Fix table page - [x] Fix database page - [x] Fix query page - [x] Fix row page - [x] Tests - [x] Updated documentation for `check_visibility` method, to cover the new `permissions=` keyword argument Also this fix is currently only applied on the table page - needs to be applied on database, row and query pages too. ---- :books: Documentation preview :books:: https://datasette--1842.org.readthedocs.build/en/1842/ ",2022-10-14T00:06:04Z,2022-10-24T02:11:36Z,2022-10-24T02:11:36Z,2022-10-24T02:11:34Z,78dad236df730212aa7172f885fd8ec575f0d3ad,,,,,0,362347574e3283d637243906af7d5e028e100180,79aa0de083d38a9975915d5a4cc68ca6c74fbe3d,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1842,,, 1139440836,PR_kwDOBm6k_c5D6nzE,1912,closed,0,Merge 1.0-dev (with initial write API) back into main,9599,simonw,"See: - #1892 ---- :books: Documentation preview :books:: https://datasette--1912.org.readthedocs.build/en/1912/ ",2022-11-29T19:31:21Z,2022-11-29T19:39:37Z,2022-11-29T19:39:36Z,2022-11-29T19:39:36Z,07aad511769da9242260c850e8d975cbd8c29552,,,,,0,b8fc8e2cd755b9cfc66838bdc1ca9ee87afdce8a,21f8aab53164a4f096737743d8cc624d2186327a,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1912,,, 1144085408,PR_kwDOBm6k_c5EMVug,1931,closed,0,/db/table/-/upsert,9599,simonw,"Refs #1878 Still todo: - [x] Support `""return"": true` properly for upserts (with tests) - [x] Require both `insert-row` and `update-row` permissions - [x] Tests are going to need to cover both rowid-only and compound primary key tables, including all of the error states - [x] Documentation ---- :books: Documentation preview :books:: https://datasette--1931.org.readthedocs.build/en/1931/ ",2022-12-03T07:01:44Z,2022-12-08T01:12:17Z,2022-12-08T01:12:16Z,2022-12-08T01:12:16Z,272982e8a6f45700ff93c3917b4688a86de0e672,,,8711695, Datasette 1.0a2,0,7cd6fd9f76913196d4f99a194a30e406f33aa363,93ababe6f7150454d2cf278dae08569e505d2a5b,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1931,,, 1154884166,PR_kwDOBm6k_c5E1iJG,1938,closed,0,"""permissions"" blocks in metadata.json/yaml",9599,simonw,"Refs #1636 - [x] Documentation - [ ] Implementation - [ ] Validate metadata to check there are no nonsensical permissions (like `debug-menu` set at the table level) - [ ] Tests ---- :books: Documentation preview :books:: https://datasette--1938.org.readthedocs.build/en/1938/ ",2022-12-08T22:07:36Z,2022-12-13T05:23:19Z,2022-12-13T05:23:18Z,,271ea3ae0c858de2d392b61a1a4a9f5837cbddf8,,,8711695, Datasette 1.0a2,0,6e35a6b4f7ea9ba3fb6f02f45452eeb41de69786,e539c1c024bc62d88df91d9107cbe37e7f0fe55f,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1938,,, 1155365505,PR_kwDOBm6k_c5E3XqB,1940,closed,0,register_permissions() plugin hook,9599,simonw,"Refs #1939 From this comment: https://github.com/simonw/datasette/issues/1939#issuecomment-1343872168 - [x] Unit test for the registration plugin hook itself - [x] Use them in `check_permission_actions_are_documented` test in `conftest.py` - [x] Add description field to `Permissions` (and update tests and docs) - [x] Documentation for `datasette.permissions` dictionary - [x] If no `default=` provided in call to `permission_allowed()` then use default from `datasette.permissions` list - [x] Remove `default=` from a bunch of places - [x] Throw an error if two permissions are registered with the same name or abbreviation (but other attributes differ) - [x] Update authentication and permissions documentation to explain that permissions are now registered and have a registered default ---- :books: Documentation preview :books:: https://datasette--1940.org.readthedocs.build/en/1940/ ",2022-12-09T05:09:28Z,2022-12-13T02:05:55Z,2022-12-13T02:05:54Z,2022-12-13T02:05:54Z,8bf06a76b51bc9ace7cf72cf0cca8f1da7704ea7,,,8711695, Datasette 1.0a2,0,94e5c75397a96b86a3349123808cd02cb20f7440,e539c1c024bc62d88df91d9107cbe37e7f0fe55f,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1940,,, 1167432070,PR_kwDOBm6k_c5FlZmG,1960,closed,0,Port as many tests as possible to async def tests against ds_client,9599,simonw,"Refs: - #1959 ---- :books: Documentation preview :books:: https://datasette--1960.org.readthedocs.build/en/1960/ ",2022-12-15T21:45:53Z,2022-12-17T21:47:56Z,2022-12-17T21:47:55Z,2022-12-17T21:47:55Z,89cffcf14cda830871c8ee81742eaa1e2dff017b,,,,,0,f42bca8fc2657cecde05eca644c28fac7c28101f,0b68996cc511b3a801f0cd0157bd66332d75f46f,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1960,,, 1167644140,PR_kwDOBm6k_c5FmNXs,1961,closed,0,Use click.echo() instead of print() for --root option,9599,simonw,"This ensures the URL is output correctly when running under Docker. Closes #1958 ---- :books: Documentation preview :books:: https://datasette--1961.org.readthedocs.build/en/1961/ ",2022-12-16T00:54:56Z,2022-12-16T00:55:19Z,2022-12-16T00:55:18Z,2022-12-16T00:55:18Z,013496862f4d4b441ab61255242b838b24287607,,,,,0,06d20c792f8c872118edd84973308fb3e5137b5e,0b68996cc511b3a801f0cd0157bd66332d75f46f,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1961,,, 1191716406,PR_kwDOBm6k_c5HCCY2,1984,closed,0,Upgrade Sphinx,9599,simonw,"Refs #1971 ---- :books: Documentation preview :books:: https://datasette--1984.org.readthedocs.build/en/1984/ ",2023-01-10T02:00:40Z,2023-01-10T02:02:33Z,2023-01-10T02:02:33Z,2023-01-10T02:02:32Z,8e7073404379d79a2d269167a12bbb58439edd39,,,,,0,0c8b3f5ca1385c804c696f1fa61c24de29ae4755,4880638f13c3a1abc53f395cde39ac848daf416d,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1984,,, 1212277427,PR_kwDOBm6k_c5IQeKz,1999,closed,0,?_extra= support (draft),9599,simonw,"Refs: - #262 ---- :books: Documentation preview :books:: https://datasette--1999.org.readthedocs.build/en/1999/ ",2023-01-21T04:55:18Z,2023-03-22T22:49:41Z,2023-03-22T22:49:40Z,2023-03-22T22:49:40Z,d97e82df3c8a3f2e97038d7080167be9bb74a68d,,,,,0,69a31cd5b61f0b62938efdeec5972090f1a1a508,56b0758a5fbf85d01ff80a40c9b028469d7bb65f,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1999,,, 1303909190,PR_kwDOBm6k_c5NuBNG,2053,closed,0,WIP new JSON for queries,9599,simonw,"Refs: - #2049 TODO: - [x] Read queries JSON - Implement error display with `""ok"": false` and an errors key - Read queries HTML - Read queries other formats (plugins) - Canned read queries (dispatched to from table) - Write queries (a canned query thing) - Implement different shapes, refactoring to share code with table - Implement a sensible subset of extras, also refactoring to share code with table - Get all tests passing ---- :books: Documentation preview :books:: https://datasette--2053.org.readthedocs.build/en/2053/ ",2023-04-05T23:26:15Z,2023-07-26T18:28:59Z,2023-07-26T18:26:45Z,,c69f7961e42c1103e281ca061edbe041e212cbb0,,,,,1,ee24ea94525ace221f1b4d141d01cf56410c2c6d,dda99fc09fb0b5523948f6d481c6c051c1c7b5de,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/2053,,, 1358254580,PR_kwDOCGYnMM5Q9VH0,546,closed,0,"Analyze tables options: --common-limit, --no-most, --no-least",9599,simonw,"Refs #544 - [x] Documentation for CLI options - [x] Documentation for new Python API parameters: `most_common: bool` and `least_common: bool` - [x] Tests for CLI - [x] Tests for Python API",2023-05-21T15:54:39Z,2023-05-21T16:19:30Z,2023-05-21T16:19:30Z,2023-05-21T16:19:30Z,d2a7b15b2b930fe384e1f1715fc4af23386f4935,,,,,0,2eca17d46eca2cff52c78553085ec64d9029c969,e047cc32e9d5de7025d4d3c16554d4290f4bd3d1,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/546,,, 1358282799,PR_kwDOCGYnMM5Q9cAv,549,closed,0,TUI powered by Trogon,9599,simonw,"Refs: - #545 ---- :books: Documentation preview :books:: https://sqlite-utils--549.org.readthedocs.build/en/549/ ",2023-05-21T17:55:42Z,2023-05-21T18:42:00Z,2023-05-21T18:41:56Z,2023-05-21T18:41:56Z,718b0cba9b32d97a41bcf9757c97fe1d058da81c,,,,,0,948692a94b22852b3147abebac9d719b69320b57,e8c5b042e49c627aefd620c8d4b1c84eb8677f73,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/549,,, 1358321208,PR_kwDOCGYnMM5Q9lY4,553,closed,0,Reformatted CLI examples in docs,9599,simonw,"Refs: - #551 ---- :books: Documentation preview :books:: https://sqlite-utils--553.org.readthedocs.build/en/553/ ",2023-05-21T20:44:34Z,2023-05-21T20:57:27Z,2023-05-21T20:57:23Z,2023-05-21T20:57:22Z,d8fe1b0d899faaaa3d4714a39328f4c24932278f,,,,,0,21036a5084a2c846a05feb6bced3111d849bbe3c,e240133b11588d31dc22c632f7a7ca636c72978d,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/553,,, 1365439700,PR_kwDOBm6k_c5RYvTU,2080,closed,0,New View base class,9599,simonw,"Refs: - #2078 TODO: - [x] Teach router layer how to handle this - [x] Use it for something ---- :books: Documentation preview :books:: https://datasette--2080.org.readthedocs.build/en/2080/ ",2023-05-25T23:22:55Z,2023-05-26T00:18:45Z,2023-05-26T00:18:44Z,2023-05-26T00:18:44Z,dda99fc09fb0b5523948f6d481c6c051c1c7b5de,,,,,0,e990fbc00ef36c022986432e7706b3ad1c9c68a1,b49fa446d683ddcaf6faf2944dacc0d866bf2d70,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/2080,,, 1406821147,PR_kwDOCGYnMM5T2mMb,560,closed,0,Use sqlean if available in environment,9599,simonw,"Refs: - #559 ---- :books: Documentation preview :books:: https://sqlite-utils--560.org.readthedocs.build/en/560/ ",2023-06-25T19:48:48Z,2023-06-26T08:21:00Z,2023-06-25T23:25:51Z,2023-06-25T23:25:51Z,f5c63088e1454811ce8361208b72297408eb5237,,,,,0,5e7d27e5df024ce1f45e3a850c4e0f65e765cccd,2747257a3334d55e890b40ec58fada57ae8cfbfd,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/560,,, 1451100029,PR_kwDOBm6k_c5Wfgd9,2118,closed,0,New JSON design for query views,9599,simonw,"WIP. Refs: - #2109 ---- :books: Documentation preview :books:: https://datasette--2118.org.readthedocs.build/en/2118/ ",2023-07-26T23:29:21Z,2023-08-08T01:47:40Z,2023-08-08T01:47:39Z,2023-08-08T01:47:39Z,1377a290cd85ba8d3338b1da47c4665ed4c6c625,,,9700784,Datasette 1.0a3,0,8b1dea3c0994d5875e372965eb5ca388ea08fe6a,08181823990a71ffa5a1b57b37259198eaa43e06,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/2118,,, 1479795255,PR_kwDOCGYnMM5YM-I3,584,closed,0,.transform() instead of modifying sqlite_master for add_foreign_keys,9599,simonw,"Refs: - #577 ---- :books: Documentation preview :books:: https://sqlite-utils--584.org.readthedocs.build/en/584/ ",2023-08-17T23:32:45Z,2023-08-18T00:48:13Z,2023-08-18T00:48:08Z,2023-08-18T00:48:08Z,509857ee8724f73760f3631b69c26f9047381187,,,,,0,291505084e652972ad806383250757d41d596d38,1dc6b5aa644a92d3654f7068110ed7930989ce71,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/584,,, 1488154809,PR_kwDOBm6k_c5Ys3C5,2154,closed,0,Cascade for restricted token view-table/view-database/view-instance operations,9599,simonw,"Refs: - #2102 Also includes a prototype implementation of `--actor option` which I'm using for testing this, from: - #2153 ---- :books: Documentation preview :books:: https://datasette--2154.org.readthedocs.build/en/2154/ ",2023-08-24T14:24:23Z,2023-08-29T16:32:35Z,2023-08-29T16:32:34Z,2023-08-29T16:32:34Z,50da908213a0fc405ecd7a40090dfea7a2e7395c,,,,,0,1b38cba913b0a3515b4b1649276dc1ff973680bb,2e2825869fc2655b5fcadc743f6f9dec7a49bc65,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/2154,,, 1492599485,PR_kwDOBm6k_c5Y90K9,2161,closed,0,"-s/--setting x y gets merged into datasette.yml, refs #2143, #2156",9599,simonw,"This change updates the `-s/--setting` option to `datasette serve` to allow it to be used to set arbitrarily complex nested settings in a way that is compatible with the new `-c datasette.yml` work happening in: - #2143 It will enable things like this: ``` datasette data.db --setting plugins.datasette-ripgrep.path ""/home/simon/code"" ``` For the moment though it just affects [settings](https://docs.datasette.io/en/1.0a4/settings.html) - so you can do this: ``` datasette data.db --setting settings.sql_time_limit_ms 3500 ``` I've also implemented a backwards compatibility mechanism, so if you use it this way (the old way): ``` datasette data.db --setting sql_time_limit_ms 3500 ``` It will notice that the setting you passed is one of Datasette's core settings, and will treat that as if you said `settings.sql_time_limit_ms` instead. ---- :books: Documentation preview :books:: https://datasette--2161.org.readthedocs.build/en/2161/ ",2023-08-28T19:30:42Z,2023-08-28T20:06:15Z,2023-08-28T20:06:14Z,2023-08-28T20:06:14Z,d9aad1fd042a25d226f2ace1f7827b4602761038,,,,,0,a5cbf80d795b599697b2b873566386abb0cd8b32,527cec66b0403e689c8fb71fc8b381a1d7a46516,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/2161,,, 1496106142,PR_kwDOBm6k_c5ZLMSe,2165,closed,0,DATASETTE_LOAD_PLUGINS environment variable for loading specific plugins,9599,simonw,"- #2164 TODO: - [x] Automated tests - [ ] Documentation - [x] Make sure `DATASETTE_LOAD_PLUGINS=''` works for loading zero plugins",2023-08-30T20:33:30Z,2023-08-30T22:12:25Z,2023-08-30T22:12:25Z,2023-08-30T22:12:25Z,6bfe104d47b888c70bfb7781f8f48ff11452b2b5,,,,,0,6321c9c055a640ed6ea98e231dc5813dcde1f773,30b28c8367a9c6870386ea10a202705b40862457,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/2165,,, 1503774871,PR_kwDOBm6k_c5ZociX,2173,closed,0,click-default-group>=1.2.3,9599,simonw,"Now available as a wheel: - https://github.com/click-contrib/click-default-group/issues/21 ---- :books: Documentation preview :books:: https://datasette--2173.org.readthedocs.build/en/2173/ ",2023-09-06T02:33:28Z,2023-09-06T02:50:10Z,2023-09-06T02:50:10Z,2023-09-06T02:50:10Z,05707aa16b5c6c39fbe48b3176b85a8ffe493938,,,,,0,a481ebd495d0f87ebd6dcf360a9cff25a6e148d7,fd083e37ec53e7e625111168d324a572344a3b19,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/2173,,, 1504918180,PR_kwDOBm6k_c5Zszqk,2175,closed,0,Test against Python 3.12 preview,9599,simonw,"https://dev.to/hugovk/help-test-python-312-beta-1508/ ---- :books: Documentation preview :books:: https://datasette--2175.org.readthedocs.build/en/2175/ ",2023-09-06T16:09:05Z,2023-09-06T16:16:28Z,2023-09-06T16:16:27Z,2023-09-06T16:16:27Z,e86eaaa4f371512689e973c18879298dab51f80a,,,,,0,21e77c3ff9e4aacaa9442a7b3b36aafd87025115,05707aa16b5c6c39fbe48b3176b85a8ffe493938,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/2175,,, 1504920193,PR_kwDOCGYnMM5Zs0KB,591,closed,0,Test against Python 3.12 preview,9599,simonw,"https://dev.to/hugovk/help-test-python-312-beta-1508/ ---- :books: Documentation preview :books:: https://sqlite-utils--591.org.readthedocs.build/en/591/ ",2023-09-06T16:10:00Z,2023-11-04T00:58:03Z,2023-11-04T00:58:02Z,,ac0db3c705355178bd5a337b8dd74df141b12c7a,,,,,0,1f14df1de4a214b12abfba6edd61a4bfa0b8473e,347fdc865e91b8d3410f49a5c9d5b499fbb594c1,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/591,,, 1507097949,PR_kwDOCGYnMM5Z1H1d,593,closed,0,".transform() now preserves rowid values, refs #592",9599,simonw,"Refs: - #592 - [x] Tests against weird shaped tables I need to test that this works against: - `rowid` tables - Tables that have a column called `rowid` even though they are not rowid tables ---- :books: Documentation preview :books:: https://sqlite-utils--593.org.readthedocs.build/en/593/ ",2023-09-08T01:02:28Z,2023-09-10T17:44:59Z,2023-09-09T00:45:30Z,2023-09-09T00:45:30Z,1c6ea54338e24fcebcee4e2f9c170ee300a5d946,,,,,0,b86374f705d1f4143a51634b30289cb48add0ea2,5d123f031fc4fadc98f508e0ef6b7b6671e86155,OWNER,140912432,sqlite-utils,https://github.com/simonw/sqlite-utils/pull/593,,, 1507122571,PR_kwDOBm6k_c5Z1N2L,2181,closed,0,actors_from_ids plugin hook and datasette.actors_from_ids() method,9599,simonw,"Refs: - #2180 This plugin hook is feature complete - including documentation and tests. I'm not going to land it in Datasette `main` until we've used it at least once though, which should happen promptly in development for [Datasette Cloud](https://www.datasette.cloud/). ---- :books: Documentation preview :books:: https://datasette--2181.org.readthedocs.build/en/2181/ ",2023-09-08T01:51:07Z,2023-09-08T04:24:00Z,2023-09-08T04:23:59Z,2023-09-08T04:23:59Z,b645174271aa08e8ca83b27ff83ce078ecd15da2,,,,,0,e1c5a9d92b7677eaf9eff58d05badb39d078d1bd,c26370485a4fd4bf130da051be9163d92c57f24f,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/2181,,, 1522166951,PR_kwDOBm6k_c5aumyn,2192,closed,0,Stop using parallel SQL queries for tables,9599,simonw,"Refs: - #2189 ---- :books: Documentation preview :books:: https://datasette--2192.org.readthedocs.build/en/2192/ ",2023-09-20T01:28:43Z,2023-09-20T22:10:56Z,2023-09-20T22:10:55Z,2023-09-20T22:10:55Z,b0e5d8afa308759f4ee9f3ecdf61101dffc4a037,,,,,0,4e6a34179eaedec44c1263275d7592fd83d7e2ac,6ed7908580fa2ba9297c3225d85c56f8b08b9937,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/2192,,, 290897104,MDExOlB1bGxSZXF1ZXN0MjkwODk3MTA0,518,closed,0,Port Datasette from Sanic to ASGI + Uvicorn,9599,simonw,"Most of the code here was fleshed out in comments on #272 (Port Datasette to ASGI) - this pull request will track the final pieces: - [x] Update test harness to more correctly simulate the `raw_path` issue - [x] Use `raw_path` so table names containing `/` can work correctly - [x] Bug: JSON not served with correct content-type - [x] Get ?_trace=1 working again - [x] Replacement for `@app.listener(""before_server_start"")` - [x] Bug: `/fixtures/table%2Fwith%2Fslashes.csv?_format=json` downloads as CSV - [x] Replace Sanic request and response objects with my own classes, so I can remove Sanic dependency - [x] Final code tidy-up before merging to master",2019-06-23T15:18:42Z,2019-06-24T13:42:50Z,2019-06-24T03:13:09Z,2019-06-24T03:13:09Z,ba8db9679f3bd2454c9e76e7e6c352126848b57a,9599,simonw,3268330,Datasette 1.0,0,b794554a26ddc81bd772c4422d80d5ee863e92b0,35429f90894321eda7f2db31b9ea7976f31f73ac,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/518,,, 500256485,MDExOlB1bGxSZXF1ZXN0NTAwMjU2NDg1,1000,closed,0,datasette.client internal requests mechanism,9599,simonw,Refs #943,2020-10-08T23:58:25Z,2020-10-09T16:11:26Z,2020-10-09T16:11:25Z,2020-10-09T16:11:25Z,8f97b9b58e77f82fef1f10e9c9f6754b993544b6,9599,simonw,5971510,Datasette 0.50,0,8a80c79deb640bc1a1864132a3564ccca59e8858,7249ac5ca04b5ddc6517750326ee7e522cc49145,OWNER,107914493,datasette,https://github.com/simonw/datasette/pull/1000,,,