sha,message,author_date,committer_date,raw_author,raw_author_label,raw_committer,raw_committer_label,repo,repo_label,author,author_label,committer,committer_label e8625695a3b7938f37b64dff09c14e47d9428fe5,"xfail documentation unit tests for view classes, refs #299 More documentation unit tests. These ones check that every single **View class imported into the datasette/app.py module are covered by our documentation. Just one problem: they aren't documented yet. So I'm using the xfail pytest decorator to mark these tests as allowed-to-fail. When you run the test suite you now get a report of how many views still need to be documented, but it doesn't fail the tests. The output looks something like this: $ pytest tests/test_docs.py collected 31 items tests/test_docs.py ..........................XXXxx. [100%] ============ 26 passed, 2 xfailed, 3 xpassed in 1.06 seconds ============ Once I have documented all the views I will remove the xfail so any future views that are added without documentation will cause a test failure. We can detect that a view is documented by looking for ReST label in the docs, for example: .. _IndexView: Some view classes can be used to power multiple URLs - the JsonDataView class for example is used to power /-/metadata and /-/config and /-/plugins In this case, the second part of the label can indicate the variety of page, e.g: .. _JsonDataView_metadata: The test will pass as long as there is at least one label that starts with _JsonDataView.",2018-07-28T03:13:26Z,2018-07-28T03:13:26Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw acf07a67722aa74828744726187690b59d342494,"x button for clearing filters, refs #1016",2020-10-12T02:53:26Z,2020-10-12T02:53:26Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw bf8d84af5422606597be893cedd375020cb2b369,"word-wrap: anywhere on links in cells, refs #1805",2022-09-07T03:34:59Z,2022-09-07T03:34:59Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw f49d15a7583fafb94e7a7fcfe504d333812139f3,word-break: break-word;,2020-10-27T19:20:28Z,2020-10-27T19:39:55Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 365f62520fa080bc363ab3820b0c800c5096abff,"will, not may - refs #468",2022-08-27T23:20:35Z,2022-08-28T03:38:30Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 787dd427de97dcbd0843611f1aef6d157d8bb0b6,"white-space: pre-wrap for table SQL, closes #505",2019-07-07T20:21:50Z,2019-07-07T20:26:38Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 1b09538bc6c1fda773590f3e600993ef06591041,"where= and where_args= parameters to search() and search_sql() Closes #441",2022-06-14T21:54:35Z,2022-06-14T21:54:35Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 29c5ff493ad7918b8fc44ea7920b41530e56dd5d,"view-instance permission for debug URLs, closes #833",2020-06-11T22:14:51Z,2020-06-11T22:14:51Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 9b42e1a4f5902fb7d6ad0111189900e2656ffda3,"view-database permission Also now using 🔒 to indicate private resources - resources that would not be available to the anonymous user. Refs #811",2020-06-08T03:50:37Z,2020-06-08T03:50:37Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw fe279ab7b4ae99dab295d5cf4d39ad06d782997e,"v0.8 - added PyPI metadata, ready to ship",2017-11-13T21:17:34Z,2017-11-13T21:17:34Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 70ff615f1b831c4dce936e9f9fc57a9e8e71e547,"utils.path_with_added_args() improvements * Now covered by unit tests * Preserves original order * Can handle multiple args of the same name, e.g. ?bar=1&bar=2",2018-05-12T21:35:25Z,2018-05-12T21:44:09Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw e10536c7f59abbb785f092bf83c4ab94c00e31a3,"utils.chunks() is now a documented API, closes #451",2022-07-15T21:59:30Z,2022-07-15T21:59:30Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 54867fefc58b88b63de4a2b3c06cce970b41d1f2,"users-lookup command, closes #7",2019-09-08T20:32:08Z,2019-09-08T20:32:08Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw bfcc1233f3f7b3f50b68971102a848adbcd5f53d,"user-timeline now takes --sql/--attach/--ids and multiple identifiers Refs #35, refs #8. Still needs documentation.",2020-03-20T20:12:51Z,2020-03-20T20:12:51Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 013cc8147abb78227b7232c2d14cb428613b5760,user-timeline documentation,2019-09-04T20:39:12Z,2019-09-04T20:39:12Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 75e75d2a3d5bc5a60b53bb38d4c7eab221ece2fe,user and trees commands,2020-03-21T04:15:48Z,2020-03-21T04:15:48Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,248903544,hacker-news-to-sqlite,9599,simonw,9599,simonw be655827b4a4ff88eb4813075339b0b01e018145,use_table_factory is a better name than use_class_constructor,2019-07-22T23:33:37Z,2019-07-22T23:33:37Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 25fdbe6b27888b7ccf1284c0304a8eb282dbb428,"use tmpdir instead of isolated_filesystem, refs #2037 Should hopefully get tests passing for #2036 too.",2023-03-08T20:33:23Z,2023-03-08T20:33:23Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 10c35bd371faaa0f3c98067c08f26334c9f5ea52,"urls.static_plugins() method, closes #1033 Also documented how to package static assets and templates in plugins, closes #575",2020-10-24T20:03:40Z,2020-10-24T20:03:40Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 2376c452a56b0c3e75e7ca698273434e32945304,upsert_all() now works with not_null - refs #538,2023-05-08T19:24:10Z,2023-05-08T19:24:19Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 7633b9ab249b2dce5ee0b4fcf9542c13a1703ef0,"unauthenticated: true method plus allow block docs, closes #825",2020-06-09T17:01:03Z,2020-06-09T17:01:03Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 5ea8c6d1cd8ded832718fb1a652b5880c4bf5ebb,"type-pk instead of type-link CSS class, closes #729",2020-05-15T05:55:20Z,2020-05-15T05:55:20Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 6a8012b6370154616f073cd8f1c159c3b388b0b7,"twitter-to-sqlite import recreates archive- tables, closes #17",2019-10-11T15:40:00Z,2019-10-11T15:40:00Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw aedf22abac2f87f02d05252a7c6bf2c9854bc786,twitter-to-sqlite followers --auth option,2019-09-03T22:40:56Z,2019-09-03T22:40:56Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 2e4b7c136734b352732186b4d761e608835f7ad3,twitter-to-sqlite auth and followers commands,2019-09-03T20:28:36Z,2019-09-03T20:30:34Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 9dc9f6243f20d0a1217e0d67793ec496333befde,twitter-to-sqlite auth -a my-auth.json option,2019-09-03T22:32:22Z,2019-09-03T22:37:30Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw d0737e4de51ce178e556fc011ccb8cc46bbb6359,"truncate_cells_html now affects URLs too, refs #1805",2022-09-06T23:50:43Z,2022-09-06T23:50:43Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 88ac538b41a4753c3de9b509c3a0e13077f66182,"transfer-encoding: chunked for DB downloads, refs #749 This should get >32MB downloads working on Cloud Run.",2020-12-02T23:47:37Z,2020-12-02T23:47:37Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw da53e0360da4771ffb56a8e3eb3f7476f3168299,"tracer.trace_child_tasks() for asyncio.gather tracing Also added documentation for datasette.tracer module. Closes #1576",2022-02-05T05:19:49Z,2022-02-05T05:19:49Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 27efa8c381bc1c9b8b3e6056e7e544ce6bedaedc,"todomvc permissions and fixed DATASETTE_SECRET for new demo Refs https://github.com/simonw/todomvc-datasette/issues/2",2022-12-02T01:29:44Z,2022-12-02T01:29:44Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw e55bc3b2fa6e1e8be7b7c1f5b6cb3764713b6faa,th align left for all tables,2017-10-25T14:46:38Z,2017-10-25T14:46:38Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 2db977d8f30e0eb8b7cda1481a4a8852b414915d,"tests/fixtures.py can now write out plugins too This command: python tests/fixtures.py \ fixtures.db \ metadata.json \ fixtures-plugins/ Will now create the fixtures.db and metadata.json files, AND create a folder called fixtures-plugins/ containing two test plugins. You can then run it like this: datasette fixtures.db \ -m metadata.json --plugins-dir=fixtures-plugins/",2019-05-06T02:50:33Z,2019-05-09T16:44:21Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 468d51314adac193e63b3a6ef9d67f0d43501e9b,test_upsert_compound_primary_key,2019-12-30T05:31:03Z,2019-12-30T05:31:03Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 764738dfcb16cd98b0987d443f59d5baa9d3c332,"test_routes also now asserts matches, refs #1666",2022-03-19T16:30:22Z,2022-03-19T16:30:22Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw b998c2793fec24e965e561fdbdca5c987223d536,"test_facets.py using ds_client, refs #1959",2022-12-16T17:05:54Z,2022-12-17T21:47:55Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 165bc5fcb0600a1898249e48b03ce798010e07f9,"test_extract_works_with_null_values, refs #423, #455",2022-08-28T03:32:01Z,2022-08-28T03:38:37Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 4af4762521fe3e1ced7fcade67eaeabf41213aab,"test_duplicate_fails_if_table_does_not_exist, refs #449",2022-07-15T21:23:57Z,2022-07-15T21:23:57Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw dee18ed8ce7af2ab8699bcb5a51a99f48301bc42,"test_create_table_error_rows_twice_with_duplicates, refs #1927",2022-12-08T01:29:24Z,2022-12-08T01:29:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 9342b60f148e01a6eee491e32d4a946693b49a3d,"test_create_table_error_if_pk_changed, refs #1927",2022-12-08T01:27:01Z,2022-12-08T01:27:01Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 534fc9689227eba70e69a45da0cee5820bbda9e1,"template_debug mode plus plugin docs, closes #25",2020-09-18T22:11:58Z,2020-09-18T22:11:58Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,197431109,dogsheep-beta,9599,simonw,9599,simonw a290f28caae61b47e76e825c06984f22fc41a694,"table_rows => table_rows_count, filtered_table_rows => filtered_table_rows_count Renamed properties. Closes #194",2018-04-09T05:24:24Z,2018-04-09T05:24:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 0209a0a344503157351e625f0629b686961763c9,"table_exists() now uses async SQL, refs #420",2019-03-31T18:02:22Z,2019-03-31T18:02:22Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 2f7731e9e5ff9b324beb5039fbe2be55d704a184,"table_actions() plugin hook plus menu, closes #1066 Refs #690",2020-10-30T05:16:41Z,2020-10-30T05:16:41Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 9c67cb925253cd5ef54a1fe0496e0ff9caeacfd6,"table.xindexes property plus improved introspection documentation, closes #261",2021-06-03T03:51:27Z,2021-06-03T03:51:27Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 59d8689ed0e6e042d99fd650896def680ca3c657,"table.virtual_table_using property, closes #196",2020-11-05T03:53:32Z,2020-11-05T03:53:45Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 5b257949d996fe43dc5d218d4308b88796a90740,"table.use_rowid introspection property, closes #285",2021-06-19T15:12:29Z,2021-06-19T15:12:29Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw b067f1ff57372be7f520d536510adc808764243a,"table.triggers_dict property, closes #211",2021-01-02T02:10:04Z,2021-01-02T02:10:04Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 8ae77a6961fed94ef2c9cc81fcfc7c81d222d9a2,"table.search(quote=True) parameter, refs #296",2021-08-18T19:55:53Z,2021-08-18T19:55:53Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 4c0f79398fa8a08515781d12243af21af8d9004e,"table.rebuild_fts() method, refs #155",2020-09-08T22:09:25Z,2020-09-08T22:09:25Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 38e688fb8bcb58ae888b676fe3f7dd0529b4eecc,"table.pks_and_rows_where() method, closes #240",2021-02-25T16:28:17Z,2021-02-25T16:28:17Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 3e87500e1561f5c4e105cd026d33e0f715cc7dea,"table.optimize() deletes junk docsize rows Closes #153. Closes #149.",2020-09-07T21:16:13Z,2020-09-07T21:16:13Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw b6b92980c00eda14a4d759b724139a0a2d321007,"table.m2m(..., m2m_table=x) argument",2019-08-03T17:51:22Z,2019-08-03T17:51:22Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw d4e00f8d0121cf5e1f1ad822dda68919d47cc5e1,"table.m2m(..., alter=True) option, closes #222",2021-01-18T04:26:02Z,2021-01-18T04:26:02Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 35eeafaaa33648a528cbcd57ceca966fea19c6ae,"table.m2m(...) method, with tests",2019-07-31T05:31:27Z,2019-07-31T05:51:50Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw b4f09146d342ba72190f9a8543a44ccd6ea06b02,"table.has_counts_triggers property, refs #219",2021-01-03T20:41:24Z,2021-01-03T20:41:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 2db6c5b2d57f8f35124c8da70d60331b3fbc658b,"table.extract() now works with rowid tables, refs #42",2020-09-22T23:11:07Z,2020-09-22T23:11:28Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw f8553799d38deece370f890f6c90af32f52a609b,"table.extract() method, refs #42",2020-09-22T22:20:18Z,2020-09-22T22:20:18Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 0eda638d81280c7e585db071c35444e14b0b00f6,"table.exists() now a documented method, closes #83",2020-02-08T23:56:03Z,2020-02-08T23:56:03Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 1cad7fad3e7a5b734088f5cc545b69a055e636da,"table.enable_counts() method, closes #212",2021-01-02T21:40:10Z,2021-01-02T21:40:10Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw c236894caa976d4ea5c7503e9331a3e9d2fbb1c4,"table.drop(ignore=True) option, refs #237",2021-02-25T17:05:08Z,2021-02-25T17:05:08Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 36ffcafb1a0f94c134cdedeb626012bc8e2c1d8a,"table.default_values property, closes #475 Refs #468",2022-08-27T22:41:10Z,2022-08-27T22:42:58Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 4427d2d96f7197e25acee85643bcf02e758b8b1e,"table.create_index(columns, index_name) method",2018-08-01T15:20:44Z,2018-08-01T15:20:44Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 0d10402f7b0428c6bb275a106b628298c6d0201d,"table.create_index(..., analyze=True), refs #378",2022-01-10T20:00:24Z,2022-01-10T20:00:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 4823aff4c33dd979bf61dcade2d3a6006d248372,"table.count_where() method, closes #305",2021-08-02T05:05:03Z,2021-08-02T05:08:17Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw b69f8b6c856adff577fe6a1816359bb00e82ffd1,"table.count property, plus made a start on table documentation",2018-07-31T03:24:35Z,2018-07-31T03:24:35Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 94b50230666cc6657a7b447e0ef1ddcb74a44473,"table.count now uses cached counts if db.use_counts_table Closes #215",2021-01-03T20:19:34Z,2021-01-03T20:19:34Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw e1ca938aa1c84367fd9d4786b9709c56f3e6e778,"table.add_foreign_key(column, other_table, other_column) New mechanism for adding foreign key constraints to an existing SQLite table. SQLite ALTER TABLE does not support this out-of-the-box, so I instead had to write some careful code that uses PRAGMA writable_schema = 1 to directly modify the sqlite_master table. Refs #2",2019-02-24T21:10:51Z,2019-02-24T21:10:51Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw dc2560879ed32136d64707a031b62b2870809892,"table.add_column(name, type) method, refs #15",2019-02-24T19:40:26Z,2019-02-24T19:40:26Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 26bb4a268127da2c38f4241abe45444b2a6f7874,"table-wrapper on query page too, refs ##998",2020-10-27T07:56:35Z,2020-10-27T07:56:35Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 8430c3bc7dd22b173c1a8c6cd7180e3b31240cd1,"table facet_size in metadata, refs #1804",2022-09-06T15:59:19Z,2022-09-06T15:59:19Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw c9ecd0d6a32d4518c9b92bcc08183a10268d52d7,"stem and suffix columns for insert-files, closes #372",2022-01-09T20:16:52Z,2022-01-09T20:16:52Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 17606ed11e157f3c67611d7233b60ed5eb750c37,"statuses-lookup command, closes #13",2019-10-07T00:31:27Z,2019-10-07T00:31:39Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw c80971d28ab03c703f2d39cfaa6123ea8a249711,"sqlite_utils.utils.rows_from_file in reference.html, refs #443",2022-06-20T19:22:27Z,2022-06-20T19:22:44Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 34e75ed0dd3091a6f94d6bd70150caa70660736d,"sqlite_utils.utils.flatten() function, closes #500",2022-10-18T18:00:25Z,2022-10-18T18:00:35Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 432a3d675fa3697bd92fcc559d66e0c403d30c16,"sqlite3.enable_callback_tracebacks(True), closes #891",2020-09-15T21:59:17Z,2020-09-15T21:59:17Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw ec50e5eebc502c85448a2d3db74985c3b0c630c5,"sqlite3.enable_callback_tracebacks(True) in docs, closes #300",2021-08-02T21:53:44Z,2021-08-02T21:53:44Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw d13c123100bddbe53b56cad6f9f0e7a0e50c4e0d,"sqlite-utils transform --column-order option, closes #176",2020-09-24T16:11:53Z,2020-09-24T16:11:53Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw e3c0ed1b1a4f4dd3eeed50d80ca3bd9e9b8c43c9,"sqlite-utils tables now takes --counts, --columns, --csv, --nl",2019-02-23T02:12:53Z,2019-02-23T02:12:53Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 147b52622d68473ba6ab184657258d8576100b05,"sqlite-utils tables ... --schema option, closes #104",2020-05-01T17:09:36Z,2020-05-01T17:12:16Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 9501ba4bf1b96aeefe26e261de085839e9a97e67,"sqlite-utils table_names blah.db is now tables blah.db Travis tests were failing because on OS X the command was this: sqlite-utils table_names blah.db But in Travis CI the command was this: sqlite-utils table-names blah.db Renaming it to tables fixes this inconsistency.",2019-01-25T07:04:52Z,2019-01-25T07:04:52Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 2c00567aac6d9c79087cfff0d054f64922b1473d,"sqlite-utils search WIP, refs #192",2020-11-03T22:01:14Z,2020-11-06T18:30:41Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw ccf128cd6df57f9db1900f043aaa540928f9c844,"sqlite-utils search --quote option, closes #296",2021-08-18T20:10:44Z,2021-08-18T20:10:44Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw ab8d4aad0c42f905640981f6f24bc1e37205ae62,"sqlite-utils schema now takes optional tables, closes #299",2021-07-24T22:08:36Z,2021-07-24T22:08:36Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw cec8c3c4826da8999a5d0f905596be8de519cbc9,sqlite-utils rows now obeys --json-cols,2019-05-28T00:47:59Z,2019-05-28T00:47:59Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 6863dc267745bc0a3392912f00c6aeb628e5ee3f,"sqlite-utils rows -c, closes #200",2020-11-07T00:28:41Z,2020-11-07T00:28:41Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 3b632f0a7eda0aff444ea67a78f5003797b286c5,"sqlite-utils rows --where and -p options, closes #382",2022-01-11T23:32:43Z,2022-01-11T23:32:43Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 7a9a6363ffc1b4f1a9444a22999addabfa756c54,"sqlite-utils rows --order option, closes #469",2022-08-27T04:10:20Z,2022-08-27T04:10:20Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 324ebc31308752004fe5f7e4941fc83706c5539c,"sqlite-utils rows --limit and --offset options, closes #381",2022-01-11T23:19:29Z,2022-01-11T23:19:29Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 176f4e0ef4a4825ae3b61a5f7169a8943fccb073,"sqlite-utils rebuild-fts command, closes #155",2020-09-08T23:16:03Z,2020-09-08T23:16:03Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 31f062d4a7e6457bfbe94b2e45a7b80028f1e95c,"sqlite-utils query --functions option, refs #471",2022-08-27T04:53:55Z,2022-08-27T04:53:55Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 57e4eb8e5564af5d97f892b3be8342451ee177a2,"sqlite-utils populate-fts --tokenize= option, closes #130",2020-08-01T20:51:05Z,2020-08-01T20:51:05Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 0a8194e730f8ecdd9a5af1f6a8d5a889796d7dba,"sqlite-utils optimize command, .optimize() and .detect_fts() table methods",2019-01-25T04:35:51Z,2019-01-25T04:35:51Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 8df116b24cc79a837d9bfa291d23082f838f78a6,sqlite-utils now lives at sqlite-utils.datasette.io,2020-12-29T21:38:53Z,2020-12-29T21:38:53Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw c1b26eed03f60c3e317550053a3832b7ad62e588,"sqlite-utils memory handles files with same filename, closes #325",2021-09-22T20:45:37Z,2021-09-22T20:45:37Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 933be66eba1203a3287ebaacd69f694d12f6f0a0,"sqlite-utils memory --schema, closes #288 Also updated some rowid examples, closes #287",2021-06-20T18:25:21Z,2021-06-20T18:25:21Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 8286a66413bc466db11b3b7e0e75826efbd7850e,sqlite-utils memory --help now mentions --schema,2021-06-28T16:35:01Z,2021-06-28T16:35:01Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 59e2cfbdc12082bac03e8ac6f99c8c41a4bc72ba,"sqlite-utils memory --functions, refs #471",2022-08-27T05:03:53Z,2022-08-27T05:03:53Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 12b8c9de256ba907d4fa8e134bf9ce9bc012302e,"sqlite-utils memory --flatten, closes #332",2021-11-14T23:05:00Z,2021-11-14T23:05:00Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 9258f4bd8450c951900de998a7bf81ca9b45a014,"sqlite-utils memory --analyze, closes #320",2021-08-22T15:44:25Z,2021-08-22T15:44:25Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 5466c9745dfef858286146ea158ffd5a71391d10,"sqlite-utils json dogs.db ""select * from dogs""",2019-01-26T02:06:29Z,2019-01-26T02:06:29Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw ebc802f7ff0e640b6ae11ea525290fea0115228c,"sqlite-utils insert-files command, closes #122",2020-07-27T07:08:57Z,2020-07-27T07:08:57Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 82f0f6076ab5042faf870339dc49a570133e1d2a,"sqlite-utils insert db.db foo - --csv New option for efficiently inserting rows from a CSV. Uses a generator so this will happily consume enormous CSV files without needing to slurp the whole thing into memory first.",2019-01-29T15:28:12Z,2019-01-29T15:28:12Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 5309c5c7755818323a0f5353bad0de98ecc866be,"sqlite-utils insert ... --nl option, closes #6",2019-01-28T02:17:38Z,2019-01-28T02:17:38Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 99ff0a288c08ec2071139c6031eb880fa9c95310,"sqlite-utils insert --sniff option, closes #230",2021-02-14T19:23:12Z,2021-02-14T19:23:12Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw f67327abf0a9f018e1764660e190c5bbf9556ec2,"sqlite-utils insert --flatten option, closes #310",2021-08-09T21:44:03Z,2021-08-09T21:44:03Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw fd9867d145c11a6be6c4049e0383832d0e856f4b,"sqlite-utils insert --detect-types option, refs #282",2021-06-19T04:18:58Z,2021-06-19T04:18:58Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 28dc5aac347ffdecb2dff154d23a73883a2ffabf,"sqlite-utils indexes command, refs #263",2021-06-03T04:26:46Z,2021-06-03T04:26:49Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 55cf928f73254273370d8489b4143875de4cabf2,"sqlite-utils extract, closes #42",2020-09-22T23:37:39Z,2020-09-22T23:37:39Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw c710ade6443d45ca2f581cdf975c7990436ab8fc,"sqlite-utils duplicate command, closes #454, refs #449 Also made it so .duplicate() raises new NoTable exception rather than raising an AssertionError if the source table does not exist.",2022-07-15T21:45:14Z,2022-07-15T21:45:47Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw ca2b26130f6c5fd030973ce593b02f08d19c9d84,"sqlite-utils dump command, closes #274",2021-06-16T23:51:48Z,2021-06-16T23:51:48Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw c83dd8a5eb9a146ef8072932333a0bca98f9577a,"sqlite-utils csv data.db ""select ..."" command",2019-01-25T15:50:20Z,2019-01-25T15:50:20Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 99a7906fd93ce1c6400733b855255ed62e3e9fa1,"sqlite-utils create-table docs, plus doc unit test Refs #27. Closes #108",2020-05-03T04:13:49Z,2020-05-03T04:13:49Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 8a5d0d80c37008f30953110d58f474aac2728ee3,"sqlite-utils create-index command, closes #14",2019-02-24T19:11:21Z,2019-02-24T19:11:21Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 1d64cd2e5b402ff957f9be2d9bb490d313c73989,"sqlite-utils create-database command, closes #348",2022-01-09T20:33:16Z,2022-01-09T20:33:16Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw a3df483c803ea6e45cf878025aa8a59d2c62f67e,"sqlite-utils convert db table column -, refs #353",2021-12-11T00:01:02Z,2021-12-11T00:01:02Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw d1d2a8e6fa95d8daf11973f747578602d08e4962,"sqlite-utils bulk --batch-size option, closes #392",2022-01-26T18:15:23Z,2022-01-26T18:15:23Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw e0ef9288fede5cba5698c5206f55c98363ca456e,"sqlite-utils analyze command, refs #379",2022-01-11T01:24:17Z,2022-01-11T01:24:17Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 3cc1944e53b75749644f558cbe1717397cae72ea,"sqlite-utils add-foreign-keys command, closes #157",2020-09-20T20:14:25Z,2020-09-20T20:14:25Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw f8d3b7cfe5c1950b0749d40eb2640df50b52f651,"sqlite-utils add-foreign-key books.db books author_id authors id Command for adding foreign keys to existing tables. Closes #2",2019-02-24T21:33:45Z,2019-02-24T21:33:45Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 2ba558888131b58ed13bccea29e0db20c9c01087,"sqlite-utils --attach option, closes #236",2021-02-19T05:08:39Z,2021-02-19T05:08:39Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw f571b19d8a5fd3a19fdf679421fd55a8edbf5295,"sqlerrors() decorator catching and returning useful errors Closes #8",2017-10-23T15:28:00Z,2017-10-23T15:28:00Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 1465fea4798599eccfe7e8f012bd8d9adfac3039,"sphinx-copybutton for docs, closes #1748",2022-05-20T19:11:08Z,2022-05-20T19:11:28Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 2238e9baf94d1d2af794d6cb064dbac098abd3f3,"sphinx-copybutton extension, closes #436",2022-05-20T21:57:26Z,2022-05-20T21:57:26Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 97331f3435ba1583a0f9dbcaffc25de8894cf1f8,"sortable_columns_for_table() no longer uses inspect() Refs #420",2019-04-07T01:58:51Z,2019-04-07T01:58:51Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 5629aaca67437acce8af47acb06488bd9991420b,sortable_columns also now works with views,2018-08-06T00:29:23Z,2018-08-06T00:29:23Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw b1fd24ac9f9035464af0a8ce92391c166a783253,"skip_csrf(datasette, scope) plugin hook, refs #1377",2021-06-23T22:39:52Z,2021-06-23T22:40:09Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 087753cd42c406f1e060c1822dcd9b5fda3d60f4,sites.db is better name than dogs.db in this example,2022-08-28T04:01:55Z,2022-08-28T04:01:55Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw afe9aa3ae03c485c5d6652741438d09445a486c1,"show/hide link for SQL on custom query page Closes #415",2019-03-15T05:22:24Z,2019-03-15T05:22:35Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 9f8d9fe262866ff3463f8e61214dcc6897bd5a9c,setup: add tests to package exclusion (#458),2019-05-10T01:54:50Z,2019-05-10T01:54:50Z,5e571aa122bb7440d7e40e22fd627b3fbbf12c38,Veit Heller,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,7725188,hellerve,9599,simonw 3ef35ca8b4369af6a8bcdd9e5cfbb5f3a7d17cf8,"serve and publish commands now take a --metadata option If provided, the --metadata option is the path to a JSON file containing metadata that should be displayed alongside the dataset. datasette /tmp/fivethirtyeight.db --metadata /tmp/metadata.json Currently that metadata format looks like this: { ""title"": ""Five Thirty Eight"", ""license"": ""CC Attribution 4.0 License"", ""license_url"": ""http://creativecommons.org/licenses/by/4.0/"", ""source"": ""fivethirtyeight/data on GitHub"", ""source_url"": ""https://github.com/fivethirtyeight/data"" } If provided, this will be used by the index template and to populate the common footer. The publish command also accepts this argument, and will package any provided metadata up and include it with the resulting Docker container. datasette publish --metadata /tmp/metadata.json /tmp/fivethirtyeight.db Closes #68",2017-11-13T15:20:02Z,2017-11-13T15:20:02Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 21b57cdf9a4ede0f9444f15a3bd182be3b06f2c0,"serve --inspect-file=X now populates cached table counts Closes #462",2019-05-16T14:30:32Z,2019-05-16T14:30:32Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 83f6799a96f48b5acef4911c0273973f15efdf05,"searchmode: raw table metadata property, closes #1389",2021-07-10T18:30:48Z,2021-07-10T18:33:08Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 771bd81b62b73b69a61cec5e71be97c0a7e2c5f9,"search_sql() returns most relevant first, not least Refs #192",2020-11-06T23:50:02Z,2020-11-06T23:50:02Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 79109939c39c16fd206010ef179040d59704682b,"search --limit now defaults to everything, refs #192",2020-11-08T17:00:43Z,2020-11-08T17:00:43Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw fa0c3777b876c29df8f2f48901533bce24de9aec,"script type=module support, closes #1186",2021-01-14T01:50:52Z,2021-01-14T01:50:52Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw bf82b3d6a605c9ddadd5fb739249dfe6defaf635,"scale-in animation for column action menu, closes #1039",2020-10-21T17:02:26Z,2020-10-21T17:02:26Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw d379f430f8bc00e5177d38097c9ab2919152ee76,"rows_from_file(... ignore_extras: bool, restkey: str), refs #440",2022-06-14T15:14:02Z,2022-06-14T15:14:02Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 008e2f63c217aa066027a872ee706b07bd084857,"response.set_cookie(), closes #795",2020-06-09T22:19:37Z,2020-06-09T22:19:37Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw fac8e9381500fc02cec99281122ee8e0c72fabe1,"request.url_vars property, closes #822",2020-06-09T03:40:00Z,2020-06-09T03:40:00Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 7bb30c1f11f7246baf7bb6a229f6b93572c4cbe3,"request.url now respects force_https_urls, closes #781",2020-05-28T17:09:32Z,2020-05-28T17:10:06Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 0934844c0b6d124163d0185fb6a41ba5a71433da,request.post_vars() no longer discards empty values,2020-06-03T13:48:39Z,2020-06-03T13:48:39Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 649f48cd702fb76fed92eac1e5d2fd2ec28fbbf9,"request.full_path property, closes #1184",2021-01-11T21:32:58Z,2021-01-11T21:32:58Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 84616a2364df56f966f579eecc0716b9877f0d70,"request.args.getlist() returns [] if missing, refs #774 Also added some unit tests for request.args",2020-05-29T22:51:30Z,2020-05-29T22:51:30Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw ff0dd4da38d48c2fa9250ecf336002c9ed724e36,"repr() method for Request, refs #1519",2021-11-19T20:29:37Z,2021-11-19T20:29:37Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 7ca497a8f5be24c127946813e3052a19b48be1b3,"repr improvements, refs #503",2022-10-25T20:14:41Z,2022-10-25T20:14:41Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 6ff3b4ed426ec0fb06d4acc5443b21c241fb91d2,"repos -r option for specific repos, closes #42",2020-07-09T23:25:01Z,2020-07-09T23:25:25Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 169b72e2c9f64214e32874e3dbd55e94b2e39540,"repos --readme and --readme-html options, closes #52",2020-10-19T05:33:29Z,2020-10-19T05:33:29Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 5c1df4e3063cf47229a305fbe75757a8d412a8af,"replace=True and ignore=True parameters for create_view(), closes #106",2020-05-02T16:02:04Z,2020-05-02T16:02:04Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 2e836f72d9a4e61341d75ea48e88314e0d006b65,"render_cell(value, column, table, database, datasette) The render_cell plugin hook previously was only passed value. It is now passed (value, column, table, database, datasette).",2018-08-28T10:03:01Z,2018-08-28T10:03:01Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 0b4a28691468b5c758df74fa1d72a823813c96bf,"render_cell(..., request) argument, closes #2007",2023-01-28T03:34:14Z,2023-01-28T03:34:14Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 3bb6409a6cb8eaee32eb572423d9c0485a1dd917,"render_cell() can now return an awaitable, refs",2021-08-08T23:04:42Z,2021-08-08T23:05:00Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw b72b2423c79dea4600b2337949db98269d0b6215,"rel=alternate JSON for queries and database pages, closes #1620",2022-02-02T21:21:11Z,2022-02-02T21:22:45Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw eccfeb0871dd4bc27870faf64f80ac68e5b6bc0d,"register_routes() plugin hook datasette argument, closes #1404",2021-07-26T23:16:46Z,2021-07-26T23:16:46Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 799ecae94824640bdff21f86997f69844048d5c3,"register_output_renderer can now return Response, closes #953",2020-08-28T04:02:50Z,2020-08-28T04:02:50Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 1491b66dd7439dd87cd5cd4c4684f46eb3c5751b,"register_function(name=...) argument, closes #458",2022-07-28T00:13:49Z,2022-07-28T00:13:49Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 30c18576d603366dc3bd83ba50de1b7e70844430,"register_commands() plugin hook, closes #1449",2021-08-28T01:39:42Z,2021-08-28T01:39:42Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw de1059034486166131f2b2cd59ad69b4d26d6e25,"recursive_triggers=on by default, closes #152 Refs #149",2020-09-07T20:45:06Z,2020-09-07T20:45:06Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw f39c98a9c706a1e5c59ed0b2ced234bbf9325174,"raw_authors plus handle null authors, closes #18",2020-03-23T20:43:52Z,2020-03-23T20:43:52Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 699be7dea9499355d576c16e330b85b90e1aca2a,"raise_404() function for use in custom templates, closes #964",2020-09-14T17:39:13Z,2020-09-14T17:39:25Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw fcc7cd6379ab62b5c2440d26935659a797133030,rST formatting,2020-06-11T16:04:32Z,2020-06-11T16:05:15Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 9e6075d21facbfef565ffcdf160a558744fc1c2d,rST fixes for register_output_renderer docs,2020-05-27T18:35:31Z,2020-05-27T18:35:31Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 089278b8dbe0cb3d41f27666d97b0096b750fbe2,"rST fix, refs #1384",2021-06-26T22:49:07Z,2021-06-26T22:49:07Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw be768f26d09fa060b1ca71785ff546dd572f3fbc,python setup.py test now runs the tests,2017-11-04T23:40:27Z,2017-11-04T23:40:27Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 606ff9e35e007ae58a491d417f47779034bacabc,"python app.py --build to generate build-metadata.json This is now run by the Dockerfile to build this at compile time.",2017-10-24T05:53:13Z,2017-10-24T05:53:13Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw b46856391de5a819a85d1dd970428cbc702be94a,"pytest.mark.serial for any test using isolated_filesystem(), refs #1406",2021-07-30T00:44:16Z,2021-07-30T23:46:41Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 2b1c535c128984cc0ee2a097ecaa3ab638ae2a5b,"pytest.mark.serial for any test using isolated_filesystem(), refs #1406",2021-07-30T00:44:16Z,2021-07-30T00:44:16Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 73e214a9760c5dc32ed3c5429cb04d4d471ce014,"py.typed file so mypy picks up the types, closes #331",2021-11-14T23:21:04Z,2021-11-14T23:21:04Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 20d41c8e8e84ab3e8bdb5cca9bd9799da09794ad,"publish now takes a required publisher argument - only current option is 'now' Closes #76",2017-11-13T18:40:51Z,2017-11-13T18:40:51Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 25c2933667680db045851b2cedcf4666d737d352,publish heroku now uses python-3.8.7,2021-01-23T00:46:16Z,2021-01-23T00:46:25Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 666c37415a898949fae0437099d62a35b1e9c430,"publish heroku now uses Python 3.6.8 Also refactored temporary_heroku_directory out of utils.py",2019-05-16T04:32:23Z,2019-05-16T04:32:23Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 371170eee8d1659437e42c8ee267cb4b2abcffb5,publish heroku now deploys with Python 3.8.3,2020-06-11T15:44:44Z,2020-06-11T15:44:44Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 3863a30b5d18204b4c77518f1880a1f705e929db,"publish command checks 'now' is installed Closes #58",2017-11-11T16:00:00Z,2017-11-11T16:00:00Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw b40872f5e5ae5dad331c58f75451e2d206565196,"prepare_jinja2_environment(datasette) argument, refs #1809",2022-09-14T21:31:54Z,2022-09-14T21:31:54Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 6303ea50483e432bbef193d1c54c2bf54e53f157,"prepare_connection() now takes datasette and database args, refs #678",2020-02-22T01:32:40Z,2020-02-22T01:32:40Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 9db22cdf1809fb78a7b183cd2f617cd5e26efc68,"pk__notin= filter, closes #614",2019-11-04T04:11:55Z,2019-11-04T04:11:55Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 7c0ef116edd78f8970be32523d230340675db5bd,"pk=['id'] now equivalent to pk='id', closes #181",2020-10-14T21:59:38Z,2020-10-14T21:59:38Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 8eaac7c5f1c8543ce4b8a6a0545862bc9404e334,"pip, not pip3",2020-05-11T19:23:11Z,2020-05-11T19:23:11Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 9e97b725f11be3f4dca077fe5569078a62ec2761,pip install -e .[docs] for docs dependencies,2019-06-25T12:08:04Z,2019-06-25T12:08:04Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 502efb941a8177611d6295c864f7a88553af2fa7,"photos-to-sqlite upload photos.db dirname command, closes #4",2020-04-18T21:57:00Z,2020-04-18T21:57:00Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,256834907,dogsheep-photos,9599,simonw,9599,simonw b4cd8797b8592a8bf060a76eb7227f3f1ba61d32,permission_checks is now _permission_checks,2020-06-02T17:43:50Z,2020-06-02T21:11:32Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 02dc6298bdbfb1d63e0d2a39ff597b5fcc60e06b,permission_allowed resource can be a tuple,2020-07-21T15:22:31Z,2020-07-21T15:22:36Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 8a4ed052a5034d3f12daf5eedabb0808a0bf20fc,path_with_added_args now works with multiple existing args,2018-05-14T22:09:09Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 2b79f2bdeb1efa86e0756e741292d625f91cb93d,path_with_added_args now preserves order in Python 3.5,2018-05-14T03:02:07Z,2018-05-14T03:04:23Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw c195ee4d46f2577b1943836a8270d84c8341d138,"package and publish commands now accept --static and --template-dir Example usage: datasette package --static css:extra-css/ --static js:extra-js/ \ sf-trees.db --template-dir templates/ --tag sf-trees --branch master This creates a local Docker image that includes copies of the templates/, extra-css/ and extra-js/ directories. You can then run it like this: docker run -p 8001:8001 sf-trees For publishing to Zeit now: datasette publish now --static css:extra-css/ --static js:extra-js/ \ sf-trees.db --template-dir templates/ --name sf-trees --branch master Example: https://sf-trees-wbihszoazc.now.sh/sf-trees-02c8ef1/Street_Tree_List For publishing to Heroku: datasette publish heroku --static css:extra-css/ --static js:extra-js/ \ sf-trees.db --template-dir templates/ --branch master Closes #157, #160",2017-12-09T18:19:39Z,2017-12-09T18:28:49Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw bce18721093489c0047792444b6f6eda5e8cc20b,"order= is now order_by=, refs #197",2020-11-07T00:43:33Z,2020-11-07T00:43:33Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 3fb1034e869090876cab0247146a312be993210f,"option, not object, refs #310",2021-08-09T21:46:47Z,2021-08-09T21:46:47Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 76548596a6397336042fffeb0fcab24e6ef59cfe,"optimize command now accepts optional tables, refs #155",2020-09-08T22:34:55Z,2020-09-08T22:34:55Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 320f3ac33a83b32f89559ef0c162b7eca428a278,"offset= and limit= parameters, closes #231",2021-02-14T20:02:41Z,2021-02-14T20:02:41Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 362359da7eed7dc6589589122960c0a0d0460d7c,"not_null= and defaults= arguments to various Python methods, refs #24",2019-06-13T06:10:07Z,2019-06-13T06:10:07Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 8d1d8013899e110c03c50c1f66a7b9c0b51f8383,"mypy tweaks, refs #289, #266, #37",2021-06-22T18:08:21Z,2021-06-22T18:08:21Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 19efee2746d4afdb67a7225b6972aa5aa7bbb1b7,"mypy fixes, refs #440",2022-06-14T15:39:08Z,2022-06-14T15:39:08Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 7b3fdf0fcd553ddf25b8d606b7fc34f9fd7979df,"mypy annotations for rows_from_file(), run mypy in CI Refs #289, #279",2021-06-22T18:04:32Z,2021-06-22T18:04:32Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw f80ff9b07b5ecdfeca4aa81f5728812a22bfb019,"min-height on .hd Now it should be the same size on the homepage as it is on pages with breadcrumbs",2019-07-07T20:16:48Z,2019-07-07T20:16:48Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw e0e8d8caa9657b04bfb8a2cf16c9b580f38b1805,"milestones now has FK to creator, plus repo column - closes #29",2020-04-21T00:43:52Z,2020-04-21T00:43:52Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw d7b21a862335d3765247d84e5afe778f83eb69ee,"metadata.yaml now treated as default in docs Added sphinx-inline-tabs to provide JSON and YAML tabs to show examples. Refs #1153",2023-07-08T16:37:01Z,2023-07-08T16:37:01Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 80bf3afa43e3cb396c7a7c9b168eedbc6fe0fa15,"metadata.json support for per-table/per-database metadata Also added support for descriptions and HTML descriptions. Here's an example metadata.json file illustrating custom per-database and per- table metadata: { ""title"": ""Overall datasette title"", ""description_html"": ""This is a description with HTML."", ""databases"": { ""db1"": { ""title"": ""First database"", ""description"": ""This is a string description & has no HTML"", ""license_url"": ""http://example.com/"", ""license"": ""The example license"", ""queries"": { ""canned_query"": ""select * from table1 limit 3;"" }, ""tables"": { ""table1"": { ""title"": ""Custom title for table1"", ""description"": ""Tables can have descriptions too"", ""source"": ""This has a custom source"", ""source_url"": ""http://example.com/"" } } } } } Closes #165, Refs #164",2017-12-07T16:42:54Z,2017-12-07T16:47:07Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw cae005fa01da7fa6161330c1b565120135cf74a6,"merged_by as foreign key to users, if available",2020-11-30T00:11:03Z,2020-11-30T00:19:02Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 4bc06a243774ca8d8e04ad6592e895d3a7a0300b,"memory_name= feature, closes #405",2022-02-16T01:21:25Z,2022-02-16T01:23:11Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw a6b918cc50b7ac0a647e662f0574c34361f34b7c,master branch is now main,2020-10-12T20:27:44Z,2020-10-12T20:27:44Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,205429375,swarm-to-sqlite,9599,simonw,9599,simonw c1b8f21113ba73a960832877045253cdca839f34,master => main,2020-10-17T20:53:58Z,2020-10-17T20:53:58Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,197882382,healthkit-to-sqlite,9599,simonw,9599,simonw 446d47fdb005b3776bc06ad8d1f44b01fc2e938b,"make html title more readable in query template (#180) tiny tweak to make this easier to visually parse—I think it matches your style in other templates",2018-04-03T15:24:04Z,2018-04-03T15:24:04Z,daa0836007170071f748b575d34c4432f4f43926,Ryan Pitts,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,56477,ryanpitts,9599,simonw ad6142b67c8f137b001770339510979c5df43d85,long_description in markdown for the new PyPI,2018-04-13T16:03:09Z,2018-04-13T16:04:18Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 6b268a1b3664784ed2267482d8c1d021a597d2b2,"language = ""en"" to fix Sphinx warning",2022-09-26T19:26:04Z,2022-09-26T19:26:04Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw f27cabbaf3d834f47bc6bea1de7e27c11fcfa5e7,label_column option in metadata.json - closes #234,2018-04-22T17:51:43Z,2018-04-22T17:53:16Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw f3f42957128c1e7ece584d45d9167f2ac003a3b8,"label_column now defined on the table-being-linked-to, fixes #234",2018-04-22T20:46:18Z,2018-04-22T20:46:18Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw a6ff123de5464806441f6a6f95145c9a83b7f20b,"keep_blank_values=True when parsing query_string, closes #1551 Refs #1518",2021-12-12T20:01:51Z,2021-12-12T20:01:51Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw defa2974c6d3abc19be28d6b319649b8028dc966,"jsonify_if_needed output of convert() functions, closes #495",2022-10-25T21:23:24Z,2022-10-25T21:23:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 8c9b5558a1549803ac0cb648c78a21767cccce86,"issue-comments command, closes #7 Also added --issue option to issues command, for fetching one specific issue.",2019-10-13T05:24:25Z,2019-10-13T05:24:25Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 0e42444866fc6e2d45b77471badda2524e95d412,"invoke_startup() inside ds_client fixture, refs #1959",2022-12-16T17:51:29Z,2022-12-17T21:47:55Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 85247038f70d7eb2f3e272cfeaa4c44459cafba8,"install and uninstall commands, closes #483",2022-09-26T18:57:11Z,2022-09-26T18:57:11Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw f0afa5646b596885a9c030f00596d9228ad23994,"insert_all() now accepts generator, closes #7",2019-01-28T06:12:18Z,2019-01-28T06:12:18Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 8fe1e6d1be021aeeb8f08b0f77f03b75a83b6f75,"insert-files can now read from stdin, closes #127",2020-07-30T03:08:12Z,2020-07-30T03:08:12Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw ffb54427d3c5944ea4ed83d138d3917309cc5242,"insert now replaces square braces in column name with underscore, closes #341",2021-11-15T02:56:35Z,2021-11-15T02:56:35Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 607a2a9ff63b2bf8b14ed67b66ead5d00c77f2b7,"insert --replace and insert(..., replace=True) Refs #66",2019-12-27T09:15:31Z,2019-12-30T05:29:23Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw aca41618f8761f99c47c8ae8e81b07a6d4af4d7a,index view is also important for plugin hooks,2019-11-25T17:04:39Z,2019-11-25T17:04:39Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 8d607194db4ad6e92f59e901e3da690a3d20f1fa,"import command now works on files and directories, closes #22",2019-10-16T18:53:31Z,2019-10-16T18:53:31Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw e23eedb4ce4efbf24fd01b80c0209de4b9aba2bf,"ignore=True argument for add_foreign_key, closes #112 Also --ignore for add-foreign-key command Plus table.add_foreign_key(...) now returns self, allowing more chaining",2020-09-20T22:17:25Z,2020-09-20T22:17:25Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 6b27537988ed849682afb9fa3b713dbf33174651,"ignore/replace to create requires pk, refs #1927",2022-12-08T01:18:40Z,2022-12-08T01:18:40Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 1d84a96a47a70680de9d621771dfe6cf2082cf08,"home-timeline command, closes #18",2019-10-11T16:51:03Z,2019-10-11T16:51:03Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw dbf239e3fc8af00ef43ec578fb195dfe604a99fe,"hash_id= mechanism for setting ID using content hash, closes #13",2019-02-24T04:36:40Z,2019-02-24T04:36:40Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw bc9871c93583f3cdcca191b7fa05b255be7275c8,"gt/lt/gte/lte now treat numeric arguments as numeric This now works: https://immutabase-dlmggyoepw.now.sh/northwind-40d049b/Products?UnitsInStock__gt=100 Previously the input value of 100 would be treated as a string. Also fixed a bug where filter arguments had stopped working entirely. Refs #23",2017-11-09T16:09:55Z,2017-11-09T16:09:55Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 672197206a4fb7f090f87e0a01fea5ecd74be6b2,"github-to-sqlite workflows replaces existing workflows, closes #55",2020-11-29T23:48:43Z,2020-11-29T23:48:43Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw f1fa627a744f740a31b19dae812718838c3a6f6b,"github-to-sqlite starred' command, closes #1",2019-09-14T21:30:30Z,2019-09-14T21:30:36Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 45c1dee0c280ff49ae59c0105b29dada762a4d07,"github-to-sqlite stargazers command, refs #4",2020-05-02T20:01:14Z,2020-05-02T20:01:14Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw b2d49b65a92eb46f6e2b90988ad5dacd4ffd527a,"github-to-sqlite get command, refs #50",2020-09-17T03:32:51Z,2020-09-17T03:33:02Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 0cdceb9244a21fbd1e70a6ca0a76b2ed2ce4dd3f,"github-to-sqlite commits command, refs #17",2020-03-10T21:55:36Z,2020-03-10T21:55:36Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 7ff51598c468deb1d2c0d4c23a808458c9b1e3a2,"git commit -m ""datasette --template-dir=mytemplates/"" argument You can now pass an additional argument specifying a directory to look for custom templates in. Datasette will fall back on the default templates if a template is not found in that directory. Refs #12, #153",2017-11-30T16:05:01Z,2017-11-30T16:05:01Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 619f724a722b3f23f4364f67d3164b93e8ba2a70,"get_profile() now saves user to DB This ensures we don't accidentally fail to create a user record for the currently authenticated user.",2019-10-17T05:54:36Z,2019-10-17T05:54:36Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 34d77d780f68b778fd9d6ebbaf69f250436f055f,"gcloud run is now GA, s/beta// (#660) Thanks, @glasnt",2020-01-21T23:28:11Z,2020-01-21T23:28:11Z,f9a18a704545f33349d7b28b24faf7063846ae0a,Katie McLaughlin,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,813732,glasnt,9599,simonw 30255055150d7bc0affc8156adc18295495020ff,functools.wraps to help investigate #1517,2021-11-19T03:19:43Z,2021-11-19T03:19:43Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 7d0299edd40636037a06548736681b67385b499e,"fts_table and fts_pk metadata configs, available for both tables and views",2018-08-06T00:44:47Z,2018-08-06T00:44:47Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 6ebd482619bd94180e54bb7b56549c413077d329,"friends command, refs #31",2019-11-09T20:38:09Z,2019-11-09T20:38:09Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 07a10bdb2c09c7e275a9db546c42900b1dea4e75,foreign_keys=[...] can now detect tables and keys - closes #25,2019-06-13T05:32:26Z,2019-06-13T05:32:26Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw db02311ebf3711309b231d007967bcf8b026a026,"foreign_key_tables no longer uses inspect, refs #420",2019-04-07T03:23:30Z,2019-04-07T03:23:30Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw e1efa9b7a37dcf4bf56d7faee9e21fbc141f9de5,"force_https_urls on for publish cloudrun, refs #1178",2021-01-06T18:13:34Z,2021-01-06T18:13:34Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 04c1d2cc54c71d4c6e795d174c7bb52f91739627,"followers/friends --sql/--attach options, closes #36",2020-03-20T23:12:30Z,2020-03-20T23:12:30Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw b5ab2bd69772ece9dc853b359931c7fdaaa19160,"followers-ids and friends-ids subcommands Closes #9",2019-09-10T17:36:44Z,2019-09-10T17:36:44Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 5bfc59fe205da619d2b306734fc30f7327b175e7,"follow command now takes screen names, supports --sql and --ids refs #11",2019-10-06T04:33:18Z,2019-10-06T04:33:18Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw adea5bc3965c80684f219b12299f708f2f422ca1,"flake8 fix, refs #331",2021-11-14T23:24:15Z,2021-11-14T23:24:15Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw bf4c6b7c82fab6b2400e48424f8dac1ae2f0a2dc,"find_spatialite() utility function, closes #135",2020-08-21T20:30:02Z,2020-08-21T20:30:02Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw f5b7ceba5b3167e962808814d492e49f87454b3f,"favorites command now populates favorited_by table, closes #14",2019-10-14T03:30:17Z,2019-10-14T03:30:17Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 19b5633b4ae0937e33e980b93bf777763f454a80,"favorites --stop_after option, refs #20",2019-10-15T18:51:16Z,2019-10-15T18:51:16Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 0120c24927af364304574ab1a58e417094e01c22,"extra_css_urls/extra_js_urls in metadata, refs #153 A mechanism in the metadata.json format for adding custom CSS and JS urls. Create a metadata.json file that looks like this: { ""extra_css_urls"": [ ""https://simonwillison.net/static/css/all.bf8cd891642c.css"" ], ""extra_js_urls"": [ ""https://code.jquery.com/jquery-3.2.1.slim.min.js"" ] } Then start datasette like this: datasette mydb.db --metadata=metadata.json The CSS and JavaScript files will be linked in the
of every page. You can also specify a SRI (subresource integrity hash) for these assets: { ""extra_css_urls"": [ { ""url"": ""https://simonwillison.net/static/css/all.bf8cd891642c.css"", ""sri"": ""sha384-9qIZekWUyjCyDIf2YK1FRoKiPJq4PHt6tp/ulnuuyRBvazd0hG7pWbE99zvwSznI"" } ], ""extra_js_urls"": [ { ""url"": ""https://code.jquery.com/jquery-3.2.1.slim.min.js"", ""sri"": ""sha256-k2WSCIexGzOj3Euiig+TlR8gA0EmPjuc79OEeY5L45g="" } ] } Modern browsers will only execute the stylsheet or JavaScript if the SRI hash matches the content served. You can generate hashes using www.srihash.org",2017-11-29T02:38:15Z,2017-11-29T02:38:15Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw b7c6a9f9bd2bbd06ef64fef4a1fcc86fa0039039,"extra_css_urls(template, database, table, datasette) The extra_css_urls and extra_js_urls hooks now take additional optional parameters. Also refactored them out of the Datasette class and into RenderMixin. Plus improved plugin documentation to explicitly list parameters.",2018-08-28T10:56:57Z,2018-08-28T10:56:57Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw c38c42948cbfddd587729413fd6082ba352eaece,"extra_body_script module support, closes #1187",2021-01-14T02:14:33Z,2021-01-14T02:14:33Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 36bd6558b00be027bb4b7dba0c8d200da0ca95df,"expandable_columns() no longer uses inspect, refs #420",2019-04-07T03:46:08Z,2019-04-07T03:46:08Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 53bf875483d98861314db3a0cdcec8f5ce22ee96,"expand_foreign_keys() no longer uses inspect, refs #420",2019-04-07T02:56:07Z,2019-04-07T02:56:07Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 00a2895cd2dc42c63846216b36b2dc9f41170129,"execute_write defaut is now block=True, closes #1579",2021-12-23T19:03:49Z,2021-12-23T19:03:49Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 8f0d44d6468a96e9b78487c36da20ddc2ae9d937,"escape_sqlite_table_name => escape_sqlite, handles reserved words It can be used for column names as well as table names. Reserved word list from https://www.sqlite.org/lang_keywords.html",2018-04-03T13:39:50Z,2018-04-03T13:40:49Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 878d5f5cea3455b4d135a9664ccad6b673354812,"errors=r.SET_NULL/r.IGNORE options for parsedate/parsedatetime, closes #416",2022-03-21T04:01:35Z,2022-03-21T04:01:35Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 6a0c5de6154893eb4269dc7b1f160726ec6395f2,"ensure_build_metadata() function for metadata This will be run at compile time - the goal is to generate a build- metadata.json file with a bunch of useful facts about the databases that could be expensive to generate at run-time. Example metadata: { ""flights"": { ""file"": ""flights.db"", ""tables"": { ""airlines"": 6048, ""airports"": 8107, ""routes"": 67663 }, ""hash"": ""07d1283e07786b1235bb7041ea445ae103d1571565580a29eab0203c555725fd"" } So far we have a sha256 hash of the database file itself, plus a row count for each table. Fixes #11",2017-10-23T16:02:40Z,2017-10-23T16:02:40Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 617e6f070c85be66ea04c80b78dafd08c875f8c8,"enable_fts(..., tokenize=X) parameter, refs #130",2020-08-01T20:40:36Z,2020-08-01T20:40:36Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw f4907f6df58d822dfb67660b982a9081b39a06fb,"enable_fts(), populate_fts() and search() methods",2018-07-31T16:19:05Z,2018-07-31T16:19:20Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 3f8ef35b2abfc64b32e254a849f2f7caff969c3b,enable-fts and populate-fts CLI commands,2019-02-08T05:18:24Z,2019-02-08T05:18:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 40b6947255540b8cf0639b87824ea8568ec6863c,"enable-fts --replace option, refs #450 Also fixed up some sqlite3.OperationalError imports.",2022-07-15T22:20:26Z,2022-07-15T22:20:26Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 0949f0989c932bae59ec702a002fe521ca56570c,"emojis command, closes #47",2020-08-18T14:52:08Z,2020-08-18T14:52:08Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw b9a89a0f2c3559989efe65f25a6e1f8fa76fe8b0,"duplicate --ignore option, refs #450",2022-07-15T22:35:58Z,2022-07-15T22:35:58Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw ebd3358e4901b07bf66727cb69e46672133ac6eb,ds_client for test_table_html.py,2022-12-16T02:00:32Z,2022-12-17T21:47:55Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw bc88491cb78e674690783d962c725c3b779e47d8,"ds_client for test_table_api.py, refs #1959",2022-12-16T06:09:33Z,2022-12-17T21:47:55Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 30f1a0705bc9ca09411479f4cf0103d591c2cc44,"ds_client for test_plugins.py, refs #1959",2022-12-16T17:25:37Z,2022-12-17T21:47:55Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw be95359a80b57b2daf5270c1597303d639c48a19,"ds_client for test_permissions.py, refs #1959",2022-12-16T17:40:54Z,2022-12-17T21:47:55Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw ef74d0ff706fa1484d5cfaedeb5395b911bec006,"ds_client for test_internal_db.py, refs #1959",2022-12-16T17:30:13Z,2022-12-17T21:47:55Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 4a151b15cc4d2a1be39aa9c034b2a4fd0381a86f,"ds_client for test_filters.py, refs #1959",2022-12-16T17:27:53Z,2022-12-17T21:47:55Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 3001eec66a7ec2ba91f5c0acd7cf3c0b79ab2c00,"ds_client for test_csv.py and test_canned_queries.py, refs #1959",2022-12-15T22:24:39Z,2022-12-17T21:47:55Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 57e812d5de9663a3c177e0344f4d1e552a74d484,"ds_author cookie can now expire, closes #829 Refs https://github.com/simonw/datasette-auth-github/issues/62#issuecomment-642152076",2020-06-10T19:39:54Z,2020-06-10T19:39:54Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw b5f04f42ab56be90735e1df9660e334089fbd6aa,"ds_actor cookie documentation, closes #826",2020-06-09T22:32:24Z,2020-06-09T22:32:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 4e9cb739c757948b63e7bffaf4d8cfed0dd5de23,"drop-table and drop-view commands, closes #111",2020-05-11T00:44:21Z,2020-05-11T00:44:21Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw c882e9262f64e0fc7c2fc89c611bdb768c069af7,"display_columns_and_rows() no longer uses inspect, refs #420",2019-04-07T03:11:08Z,2019-04-07T03:11:08Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw f9473ace14878212c1fa968b7bd2f51e4f064dba,"disable-fts and .disable_fts(), closes #88",2020-02-27T04:40:35Z,2020-02-27T04:40:35Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw b1fed48a95516ae84c0f020582303ab50ab817e2,"derive_named_parameters falls back to regex on SQL error, refs #1421",2021-08-09T03:26:08Z,2021-08-09T03:26:08Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 389cbd57924da5886a7700c6802d55a934523a29,"delete_where(analyze=True), closes #378",2022-01-11T01:08:05Z,2022-01-11T01:08:05Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw c41278b46f7936b4b1a8a14bf285bed82c81c609,"default_allow_sql setting, closes #1409 Refs #1410",2023-01-05T00:51:11Z,2023-01-05T00:51:26Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw b07312c2b3bc7e4a9298c1f291f420bd92b6f842,"dedent SQL for neighborhood_search fixture Makes this page a little prettier: https://latest.datasette.io/fixtures/neighborhood_search",2020-04-03T00:54:27Z,2020-04-03T00:54:27Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 222f79bb4c6e2aa5426cc5ff25f1b2461e18a300,"debug-menu permission, closes #1068 Also added tests for navigation menu logic.",2020-10-30T15:41:57Z,2020-10-30T15:41:57Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw e3f108e0f339e3d87ce48541bbca8f891bfaf040,"db.supports_strict and table.strict properties, refs #344",2021-11-29T22:19:30Z,2021-11-29T22:19:30Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw d25cdd37a3b7d1b277b399106473fa368b72635a,"db.sqlite_version property and fix for deterministic=True on SQLite 3.8.3 Closes #408",2022-03-02T00:24:27Z,2022-03-02T00:37:53Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 0d2e4f49f324de01bcd8257d0adeea3ebf391791,"db.schema and 'sqlite-utils schema' command, closes #268",2021-06-11T20:51:49Z,2021-06-11T20:51:49Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw b9256413d26875c2bc3841e68b90d3842e88ccb8,"db.m2m_table_candidates(table, other_table)",2019-08-03T18:07:06Z,2019-08-03T18:07:06Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 5cadc244895fc47e0534c6e90df976d34293921e,"db.execute_write_script() and db.execute_write_many(), closes #1570 Refs #1555",2021-12-18T18:57:22Z,2021-12-18T18:57:22Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 9e094b7c9d575320a2f0c956eb547bfcf6d64d39,"db.execute_write(executescript=True) option, closes #1569",2021-12-18T18:28:25Z,2021-12-18T18:34:15Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 9a5c92b63e7917c93cc502478493c51c781b2ecc,"db.enable_counts() method, closes #213",2021-01-02T22:03:52Z,2021-01-02T22:03:52Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw f3a4c3d3ee6475a6caf3c9606656dbaf1df020b7,db.create_table() now remembers configs,2019-07-23T07:47:19Z,2019-07-23T07:47:19Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 05e2bb85fcd11729db40c6452f2f7287232e2f1a,"db.close() method, closes #504",2022-10-25T20:57:43Z,2022-10-25T20:57:43Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 999f099cbe267554f679963a3964042f09c1c159,"db.attach(alias, filepath) method, closes #113 Will also be useful for #236",2021-02-19T04:56:32Z,2021-02-19T04:56:32Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 541f64ddb0513cd8fe7a84abc8ee218e36ef9ca6,"db.analyze() and table.analyze() methods, refs #366",2022-01-10T19:48:38Z,2022-01-10T19:48:38Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 0e49842e227a0f1f69d48108c87d17fe0379e548,"datasette/actor_auth_cookie.py coverae to 100%, refs #841",2020-06-13T18:29:14Z,2020-06-13T18:29:14Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 2e43a14da195b3a4d4d413b217cdca0239844e26,datasette.utils.check_callable(obj) - refs #2078,2023-05-25T18:35:34Z,2023-05-25T18:35:34Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 11eb1e026f3d84cb771f8d6e204939cbaee130cd,"datasette.urls.table(..., format=""json""), closes #1035 Also improved tests for datasette.urls and added format= to some other methods",2020-10-31T18:16:28Z,2020-10-31T18:16:28Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 7a67bc7a569509d65b3a8661e0ad2c65f0b09166,"datasette.urls methods will not apply base_url prefix twice, refs #1026",2020-10-31T19:11:40Z,2020-10-31T19:11:40Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw fa27e44fe09f57dcb87157be97f15b6add7f14ad,"datasette.sign() and datasette.unsign() methods, refs #785",2020-05-31T22:42:08Z,2020-06-01T01:16:42Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw fdf7c27b5438f02153c3a7f8ad1b320e4b29e4f4,"datasette.create_token() method, closes #1951",2022-12-14T02:42:01Z,2022-12-14T02:42:01Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 84bc7244c106ab6175b8315a2d917cf29ea53c4d,"datasette.client now applies base_url, closes #1026",2020-10-31T19:29:42Z,2020-10-31T19:29:42Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 471cf4f045d25bc319d61b9de3a698beaf1a6c96,"datasette-search-all plugin, refs #13",2020-03-23T23:58:24Z,2020-03-23T23:58:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 0c91e59d2bbfc08884cfcf5d1b902a2f4968b7ff,datasette-leaflet-freedraw is an example of filters_from_request,2021-12-17T23:28:44Z,2021-12-17T23:55:06Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 10659c3f1f82458adfa65c61f4dcc8d9af5467ed,datasette-debug-asgi plugin to help investigate #1590,2022-01-14T00:38:53Z,2022-01-14T00:38:53Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw fe86d853089f324f92daa950cc56f4052bf78f98,"datasette serve --create option, closes #1135",2020-12-09T19:45:45Z,2020-12-09T19:45:45Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw b18e4515855c3f1eeca3dfcccdbb6df05869084a,"datasette publish/package --spatialite, closes #243 New command-line argument which causes SpatiaLite to be installed and configured for the published Datasette. datasette publish now --spatialite mydb.db",2018-05-31T14:16:50Z,2018-05-31T14:16:50Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 404fa2252b070952ff1d1fc8bafc153789f36ada,"datasette publish/package --install option, closes #223 Allows you to specify one or more additional packages to be installed, useful for deploying plugins.",2018-04-18T14:48:34Z,2018-04-18T14:55:36Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 4c66097d581c3970a23530598c4fe98b09f422ee,"datasette publish now works with full paths e.g. datasette publish /tmp/blah/database.db now does the right thing",2017-11-12T23:16:24Z,2017-11-12T23:16:24Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 538565de3a126a6aa1cdb4b4ba91135507411af0,"datasette publish now --token=X argument Lets you specify the auth token to use when deploying to Now. Tokens can be created at https://zeit.co/account/tokens",2018-06-17T19:46:52Z,2018-06-17T21:16:08Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw d95b46b09bf53530b212cc17202a242daa62fd64,"datasette publish now --alias option You can now use --alias to attempt to alias after you deploy. Also updated now.json to use version: 1",2019-01-02T05:14:46Z,2019-01-02T05:15:54Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 107d0887a61d2fb3d61e9471863ad665633c321b,datasette publish heroku now uses Python 3.8.6,2020-10-08T23:22:11Z,2020-10-08T23:22:11Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 17863d108b9c8672b5e102d97858a96ca715a9d6,"datasette publish heroku now supports --extra-options, closes #334",2018-07-10T01:45:56Z,2018-07-10T01:45:56Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw e4554c37b7c13c014b9374a512641916131d47a9,"datasette publish heroku --tar option, closes #969",2020-10-08T23:30:46Z,2020-10-08T23:30:46Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw b80b03ac9a9b8fc676ae17570b32f5439545198e,"datasette publish cloudrun --service=x, closes #457",2019-05-09T16:45:01Z,2019-05-09T16:45:01Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 37d18a5bce08c9ee53c080f613bae84fc2ccc853,"datasette publish cloudrun --apt-get-install, closes #1110",2020-11-25T03:05:35Z,2020-11-25T03:05:35Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 75a21fc2a136ccfc9da7bbf521cf288e63c9707f,"datasette publish cloudrun (#434) - thanks, @rprimet New publish subcommand that publishes using the new Google Cloud Run platform. datasette publish cloudrun database.db",2019-05-03T13:59:01Z,2019-05-03T13:59:01Z,8ff51bbea01fdafe1fb3502111343b563f7d5a1b,Romain Primet,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,10352819,rprimet,9599,simonw ff2fb573cd8773206a6df83229620928056e2ee2,"datasette publish --name=now-accepts-name Fixes #72",2017-11-13T02:12:21Z,2017-11-13T02:12:21Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 01fe5b740171bfaea3752fc5754431dac53777e3,"datasette install / datasette uninstall commands, closes #925",2020-08-11T22:31:47Z,2020-08-11T22:32:06Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 1ad92a1d87d79084ebe524ed186c900ff042328c,"datasette install -r requirements.txt, closes #2033",2023-03-06T22:27:30Z,2023-03-06T22:27:30Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 69033c6ec4a76d720e5c866aaa43b175c5ec1d8b,"datasette install --upgrade option, closes #945",2020-08-19T17:20:41Z,2020-08-19T17:20:41Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 46b237c29a195025de81dcd920c6893181229dc5,"datasette inspect now finds primary_keys Closes #195",2018-04-10T00:54:12Z,2018-04-10T00:54:12Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 36701c85928b1eb785527ffd11cd941b31087ea3,datasette build now takes --load-extension,2017-11-26T23:01:53Z,2017-11-26T23:02:01Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw d02f6151dae073135a22d0123e8abdc6cbef7c50,"datasette --get status code for error pages, closes #947",2020-09-11T21:32:54Z,2020-09-11T21:32:54Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw c13dada2f858a36a33fe90508aeadb3395cd9652,"datasette --get --token option, closes #1946, refs #1855",2022-12-13T04:36:42Z,2022-12-13T04:36:42Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw f156bf9e6b223c749b5b8176a4dc06add641251a,"datalist autocomplete for facet filters, refs #1890",2022-11-15T06:31:29Z,2022-11-15T06:31:29Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 7b194920702358b65739a6e8bd3adb765ffa346a,"database_actions() plugin hook, closes #1077",2020-11-02T18:27:25Z,2020-11-02T18:27:25Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw de08096989de1e025f0457e53404477f71a994e4,"database.triggers_dict, closes #216",2021-01-03T04:19:55Z,2021-01-03T04:19:55Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw b37431976cdc39ad46ae4fc60b12be6e1f993bd2,custom pages tests templates now in repo,2020-10-07T22:16:41Z,2020-10-07T22:16:41Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 9f0987cb57a82a7d2fe0c679fc909e5b39593ee4,"cursor: pointer; on the new menu icons Refs #1064, #1066",2020-10-30T05:55:10Z,2020-10-30T05:55:10Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 28bb1c51897f3956861755e345e18b8e0b1423ac,"csrftoken() now works with .render_template(), closes #863",2020-06-24T03:23:30Z,2020-06-24T03:23:50Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw e8d958109ee290cfa1b44ef7a39629bb50ab673e,"create_index(..., find_unique_name=True) option, refs #335",2021-11-14T22:49:19Z,2021-11-14T22:49:42Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 6f3cb2c106ae99f0a14201e6b4c61ec2f492e766,"create_index now works with columns with spaces, closes #85",2020-02-11T05:13:15Z,2020-02-11T05:13:15Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 9cc1a7c4c8798ebd49b43e2e63c2d96a6e23b307,"create-token command can now create restricted tokens, refs #1855",2022-12-13T04:15:56Z,2022-12-13T04:15:56Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 4d5916075d42b390302b8018d84eafdc709dadc8,"create-table --not-null, --default, --fk, refs #27",2020-05-03T15:09:00Z,2020-05-03T15:09:00Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 9f6085b4e4c8289b34c6a3d40ba72d77ed62b4ef,"create-table --ignore and --replace, refs #27",2020-05-03T15:24:39Z,2020-05-03T15:24:39Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw e2fab012551eed05278040b5d57e7373a1b9a0bf,"create-subset command, closes #23",2020-05-19T22:32:29Z,2020-05-19T22:32:29Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,256834907,dogsheep-photos,9599,simonw,9599,simonw 213e6a892636408d289dd75511327c4312c438e4,"content-length for DB downloads, closes #905",2020-07-22T04:52:35Z,2020-07-22T04:52:35Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 33eadb8782d5b3e179df7dfa08f6d376ded2acd3,"config.json is now settings.json, closes #1104",2020-11-24T20:37:29Z,2020-11-24T20:37:29Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 8ce7866312f9b7c873541d6e3662ada3e850fa85,"compile_options output in /-/versions, closes #396",2019-01-11T00:44:37Z,2019-01-11T00:44:50Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 56c351893cb4d443a812de4470f0617f4f6c8aa8,"commits now only gets new commits unless --all, refs #17",2020-03-11T02:42:55Z,2020-03-11T02:42:55Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw d45a7213eddd48ea75d1c021377e5a237b095833,"codespell>=2.5.5, also spellcheck README - refs #2089",2023-06-29T14:43:01Z,2023-06-29T14:43:01Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 62f1d3a6cbf7fca5c0e85c13a77830755c314883,"class=""suggested-facets""",2018-05-16T05:08:58Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw c8697b3e4ef044412209b52c70548fedbcb346c7,clarification in README,2020-03-22T15:44:45Z,2020-03-22T15:44:45Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,248903544,hacker-news-to-sqlite,9599,simonw,9599,simonw c2622ceabd073b43b5789ccaa5036471b3c96e12,"cd docs && make livehtml Enabled make rule for sphinx-autobuild",2019-06-13T04:50:18Z,2019-06-13T04:50:18Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 5ab411c733233435d613d04c610a5a41fd0b7735,"can_render mechanism for register_output_renderer, closes #770",2020-05-28T05:57:05Z,2020-05-28T05:57:05Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 41a0cd7b6afe0397efbbf27ad822679fc574811a,"call_with_supported_arguments() util, refs #581",2020-05-27T19:25:52Z,2020-05-27T19:25:52Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 23ef1d6c20f6a8ef0db508b9711ae0d8ed6a4156,"bulk --functions, closes #471",2022-08-27T05:10:43Z,2022-08-27T05:10:43Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw b9b93583467986a72f34732fc87a201157ad83ea,"boolean --config are now case insensitive, refs #284",2018-05-25T05:53:58Z,2018-05-25T05:53:58Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw f643f7aee1b3d29df82b93a6560887a35b7a2f13,"base64 encode bytestrings from DB in JSON Fixes #29",2017-10-24T14:58:41Z,2017-10-24T14:58:41Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 26b2922f177caa4e147aaee28be0cff37a457802,await_me_maybe utility function,2020-09-02T22:21:12Z,2020-09-02T22:21:12Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 1f6a134369e6a7efaae9db469f15b1dd2b7f3709,"await request.post_body() method, closes #897",2020-07-17T20:12:35Z,2020-07-17T20:12:35Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw a000c80d5036822c8324c1cd037fe7d20e5246b5,"await Request(scope, receive).post_vars() method, closes #700 Needed for #698",2020-03-17T02:47:37Z,2020-03-17T02:47:37Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 3b575908681387550a2ea64a21f194e973d90b7d,"auth now updates rather than over-writes auth.json, closes #10",2022-08-22T16:17:16Z,2022-08-22T16:17:16Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,213286752,pocket-to-sqlite,9599,simonw,9599,simonw 98dcabccbbf9c0800efa74df9b7d1fee81c3cd0c,"asyncio_run helper to deal with a 3.10 warning, refs #1482",2021-10-09T00:32:11Z,2021-10-09T00:32:11Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw d714c67d656c46e012b24ccca53b59409440334f,asyncio_mode = strict to avoid pytest warnings,2022-03-07T16:09:15Z,2022-03-07T16:09:15Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 219ffc2493cf7400c279d0fd15d5eed73f2cd402,"assets in a separate table, closes #15",2020-03-23T19:17:25Z,2020-03-23T19:17:25Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 08b4928a75faa1f2ba1c5b9908bcf2df4975a9d4,"asgi-csrf>=0.6, refs #835",2020-07-01T01:18:19Z,2020-07-01T01:18:19Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 4c25b035b2370983c8dd5e0c8762e9154e379774,"arraynotcontains filter, closes #1132",2020-12-07T22:41:03Z,2020-12-07T22:41:03Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 0a47c376ba8c7143aeb05146643d6b26bb83e485,archive_app import for app.js,2021-08-21T20:50:14Z,2021-08-21T20:50:14Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw d427ae3db524d6a348a004def3daa5aacc515f24,"apple_photos_scores table, refs #15",2020-05-04T22:23:36Z,2020-05-04T22:24:35Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,256834907,dogsheep-photos,9599,simonw,9599,simonw d5d69b9019703c47bc251444838578dd752801e2,"apple-photos command now works even without first running upload, closes #19",2020-05-19T20:59:52Z,2020-05-19T20:59:52Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,256834907,dogsheep-photos,9599,simonw,9599,simonw c3a78eb05c0b146b2eb37b50c1668b9430b8f50a,app_client() fixture doesn't need to take **kwargs,2019-01-13T22:23:44Z,2019-01-13T22:23:44Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw ab392157f7c89e1596b480649e2f7195f838da29,"analyze=True for insert_all/upsert_all, refs #378",2022-01-11T01:00:34Z,2022-01-11T01:00:34Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw e10da9af3595c0a4e09c6f370103571aa4ea106e,"alternative-route demo, refs #1668",2022-03-20T00:21:56Z,2022-03-20T00:21:56Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw eff52023c6d316ead336c198a2a9365ce4f91b09,"alter=True/--alter option to automatically add missing columns Closes #18",2019-05-25T00:41:04Z,2019-05-25T00:41:04Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 552543a74970f8a3a3f87f887be23a0c6eb1cb5b,alter=True when upserting users,2019-10-07T04:01:41Z,2019-10-07T04:01:41Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 0be971c2801ab6369f5b887dc2a578f78fb6b3ef,"alter=True in a bunch more places, refs #11",2021-01-18T04:13:28Z,2021-01-18T04:13:28Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,205429375,swarm-to-sqlite,9599,simonw,9599,simonw f722b0a730377d28e3b4e8292da2036f32896e02,"allow_sql config option to disable custom SQL, closes #284",2018-05-25T05:50:50Z,2018-05-25T05:50:50Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 49d6d2f7b0f6cb02e25022e1c9403811f1fa0a7c,"allow_sql block to control execute-sql upermission in metadata.json, closes #813 Also removed the --config allow_sql:0 mechanism in favour of the new allow_sql block.",2020-06-09T00:05:44Z,2020-06-09T00:05:44Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 50920cfe3d42483f15e2077c345427059fd19941,"allow_facet, allow_download, suggest_facets boolean --config Refs #284",2018-05-25T01:12:27Z,2018-05-25T01:12:27Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw d645032cfa4edbccd0542eecdddca29edf9f7b07,"add_foreign_key can now detect table and pk, refs #25",2019-06-13T04:51:09Z,2019-06-13T04:51:09Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 6d25f648ed708b8dd78cbb0af5e356d16859625f,"add_column now accepts explicit SQLite types, refs #15",2019-02-24T19:49:24Z,2019-02-24T19:49:31Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 3cab079d3e45aa3468e9f7317680ded6438f3955,"add-column col_type now optional, defaults to str",2019-02-24T22:24:00Z,2019-02-24T22:24:00Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 5fa823f03ff2117020ae7fd56198ca7d50130574,"add-column --ignore option, refs #450",2022-07-15T22:31:37Z,2022-07-15T22:31:37Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw ed2b3f25beac720f14869350baacc5f62b065194,"add support for ?field__isnull=1 (#107) * add support for ?field__isnull=1 * Add unit test and conditional formatting for ?field__isnull",2017-11-17T13:29:22Z,2017-11-17T13:29:22Z,19245be93da11be3d5e72991646660a06a9d3449,Ray N,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,3433657,raynae,9599,simonw 14f6b4d200f24940a795ddc0825319ab2891bde2,"actor_matches_allow utility function, refs #800",2020-06-06T18:39:11Z,2020-06-06T18:39:11Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 060a56735c1d3bde0a4c7674e82b5f45bef34dee,"actor_from_request and permission_allowed hookspecs, refs #699",2020-05-30T20:24:00Z,2020-06-01T01:16:42Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw bf6b0f918de4aeee7c1036ac975ce2fb23237da7,about and about_url metadata options,2019-03-10T21:37:11Z,2019-03-15T03:54:42Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw df4fd2d7ddca8956d8a51c72ce007b8c75227f32,"_sort= works even if sort column not selected, closes #1773",2022-08-14T15:44:02Z,2022-08-14T15:44:02Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw a82175276c3f5898161c7630f669d0b8990d7a16,_sort/_next links now use new path_with_replaced_args method,2018-05-15T09:34:45Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw f3a3820ff5c5ba9b4af102e65ed1f084b1fe704d,"_sort and _sort_desc parameters for table views Allows for paginated sorted results based on a specified column. Refs #189",2018-04-09T00:06:10Z,2018-04-09T05:10:22Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 3c861f363df02a59a67c59036278338e4760d2ed,"_search= queries now correctly escaped, fixes #651 Queries with reserved words or characters according to the SQLite FTS5 query language could cause errors. Queries are now escaped like so: dog cat => ""dog"" ""cat""",2019-12-29T18:48:13Z,2019-12-29T18:48:30Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 6b47734c04e669c3f8775e6d84cbb7737a29b91d,"_memory database should not be mutable, closes #1917",2022-11-30T05:05:47Z,2022-11-30T05:06:52Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 9ac6292614a332ddc5d0868abe4a72f8f48bc7ac,"_header_x now defaults to empty string Prior to this a request to e.g. https://latest.datasette.io/fixtures/magic_parameters which did not include a User-Agent header would trigger a 500 error.",2020-06-30T22:00:17Z,2020-06-30T22:00:17Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 2c0aca4887ed65167606a5fd084f35d046e2a00a,"_header=off option for CSV export, closes #1133",2020-12-10T23:28:44Z,2020-12-10T23:28:44Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 55024b5301892306b786fc37a8ab3c096be5c227,"_facet_array no longer confused by duplicate array items, closes #448",2021-11-16T01:19:33Z,2021-11-16T01:19:33Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw f4943ca89bf400350205788f9130c135aaf7b85b,"_facet selections persist through table form, refs #255",2018-05-15T10:28:48Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 012c76901af65442e90eac4b36db43455e3c922f,"_ prefix for many private methods of Datasette, refs #576",2020-05-30T14:38:46Z,2020-05-30T14:38:46Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 62e1edeaf600f45a59fde432f1bde2bcc4e1ee7b,[] escaping for FTS columns,2019-02-22T04:17:58Z,2019-02-22T04:17:58Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw eae103a82b92949189cf718794d2ad0424005460,"Write errors to stderr, closes #1131",2020-12-05T05:21:11Z,2020-12-05T05:21:11Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 2cae2a754231e35f0714f45d4d362762acb70c38,"Write auth.json with plain echo, refs #13",2020-03-23T21:57:54Z,2020-03-23T21:58:00Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw e7c769ef30add8f984eab920b2f503d4b8096bde,"Working implementation of #216 which passes the tests Reverted commit 5364fa7f3357f2de24fd45c85832205377642f19 (where I removed the code that didn't work). Added primary keys to order-by clause for sorting to get tests to pass",2018-04-17T01:41:17Z,2018-04-17T01:41:55Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 849c4f06ea766ccdb664eab4e82b80be574a0f03,"Workflow for manually pushing a Docker tag, refs #1281",2021-03-29T01:35:56Z,2021-03-29T01:36:07Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 50a6355c081a79c63625d96d3d350603298da42b,"Workaround to get sphinx-build working again, refs 1153",2023-07-08T18:22:21Z,2023-07-08T18:22:21Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 6887c12ea30598e7d06d20cd6b2a2ef8256a9fa1,"Workaround for 'too many open files' error, refs #1843",2022-10-23T22:13:02Z,2022-10-23T22:17:33Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw a4ad5a504c161bc3b1caaa40b22e46d600f7d4fc,"Workaround for 'Too many open files' in test runs, refs #846",2020-06-14T00:26:02Z,2020-06-14T00:26:18Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 4777362bf2692bc72b221ec47c3e6216151d1b89,"Work around CI bug with ensure_eventloop, refs #1115",2020-11-29T20:19:24Z,2020-11-29T20:19:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 8461b930d5d4d3a282289b6663b252037ebd45d3,Wording tweaks,2019-05-16T05:09:06Z,2019-05-16T05:09:06Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 20f8659e2a6cc6fce82cd52d282ddaf798063eb0,"Wide tables now scroll horizontally, refs #998",2020-10-22T01:09:01Z,2020-10-22T01:09:01Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 0c6745b70f95663f8ddf4309c578bd568eca75ec,Whitespace fix,2019-02-24T18:42:27Z,2019-02-24T18:42:27Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 7dc23cd71aeb5a0e194f25fd1b8e569e3bb2149b,Whitespace,2020-06-06T20:05:09Z,2020-06-06T20:05:09Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw dab4b73f7d76f43e67ae1e2b74921f62db71925c,White cards on mobile,2020-10-27T19:07:25Z,2020-10-27T19:39:55Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 0f7c71a86f8963740eb3cf51efa0c521e62cb591,"What to do if extensions will not load, refs #1979",2023-01-07T23:48:08Z,2023-01-07T23:49:28Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 9f236c4c00689a022fd1d508f2b809ee2305927f,"Warn that register_facet_classes may change, refs #830 Also documented policy that plugin hooks should not be shipped without a real example. Refs #818",2020-06-10T20:06:46Z,2020-06-10T20:06:46Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 504196341c49840270bd75ea1a1871ef386ba7ea,"Visually distinguish float/int columns, closes #729",2020-05-15T05:51:39Z,2020-05-15T05:51:39Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 6dff22eff8a52253a6c2bdf3e32f082fbf81b921,Visited link colours,2020-10-27T18:39:35Z,2020-10-27T19:39:55Z,cb0d330fa68b6a0d1b11370a9dbda0d2b8f4d3aa,Natalie Downe,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,72973,natbat,9599,simonw ff2ab9dc7d82f70daae10f5b0cde87d74704f910,"Views now show their SQL, are handled a bit better Refs #66",2017-11-12T20:31:46Z,2017-11-12T20:32:25Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw db3fa4abfac366184e97fb313b36d3429e5b937a,"Views no longer attempt to link to records Closes #54",2017-11-12T21:29:26Z,2017-11-12T21:29:26Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 7ccd55a1638d7d2762f2789f192e5bb81fb0d0c7,"Views do support sorting now, refs #508",2020-05-28T18:54:57Z,2020-05-29T22:44:22Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw dcec89270a2e3b9fabed93f1d7b9be3ef86e9ed2,"View list respects view-table permission, refs #811 Also makes a small change to the /fixtures.json JSON: ""views"": [""view_name""] Is now: ""views"": [{""name"": ""view_name"", ""private"": true}]",2020-06-08T18:20:21Z,2020-06-08T18:20:59Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw b0f3d4e375655f0764f3137dbcede324f9bbc0cb,Version 0.11,2017-11-14T01:48:22Z,2017-11-14T01:48:22Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 5928c11ee798a232aa4096706cd47e639d1c9fc2,Version 0.10,2017-11-14T00:45:23Z,2017-11-14T00:45:23Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 36a44bffbf5185a58fcd2548e8de94e9490a7aea,"Validation for --port, closes #1226",2021-02-18T18:05:27Z,2021-02-18T18:05:27Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw df851c117db031dec50dd4ef1ca34745920ac77a,"Validate settings.json keys on startup, closes #1816 Refs #1814",2022-09-19T23:46:39Z,2022-09-19T23:46:39Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 04ec53c039feb590c7832d499a14a9caba081f11,"Validate column names in more places, refs #86",2020-02-27T04:55:17Z,2020-02-27T04:55:17Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw e8c5b042e49c627aefd620c8d4b1c84eb8677f73,"Validate column names in analyze-columns, closes #548",2023-05-21T17:35:48Z,2023-05-21T17:35:48Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 3b336d8071fb5707bd006de1d614f701d20246a3,"Utility function for cog for generating YAML/JSON tabs, refs #1153",2023-07-08T16:37:47Z,2023-07-08T16:37:47Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw dd0566ff8eda7fa2f0d92e51809581fae62cffed,"Utility for writing test database fixtures to a .db file python tests/fixtures.py /tmp/hello.db This is useful for making a SQLite database of the test fixtures for interactive exploration.",2018-04-03T13:46:11Z,2018-04-03T13:46:11Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw ef13bb046f525f33cda7cd56a12093a5071a3cb6,"Useful error message for enable_fts() on views, closes #220",2021-02-14T22:34:22Z,2021-02-14T22:34:22Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw cf1fe693e5741035df65cc9d69c4af32befd021d,Used isort to re-order my imports,2018-05-13T12:58:28Z,2018-05-14T03:04:23Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw e64d14e413a955a10df88e106a8b5f1572ec8613,"Use type integer for --timeout, refs #1717",2022-04-24T14:09:08Z,2022-04-24T14:09:08Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw dfb87d012c30a5a3e2d6c4f2cf0a94d2fd080723,"Use to_css_class for table cell column classes This ensures that columns with spaces in the name will still generate usable CSS class names. Refs #209",2018-04-18T01:19:21Z,2018-04-18T01:19:21Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 079bf1f4dc8540f834adae68c7feeeffcbc1d4f2,"Use tmp_path fixture in test_recreate, refs #503",2022-10-25T20:06:58Z,2022-10-25T20:06:58Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 810853c5f2fa560c6d303331c037f6443c145930,"Use time.perf_counter() instead of time.time(), closes #1157",2020-12-21T21:49:14Z,2020-12-21T21:49:14Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw a388cf1f1b6b67752d669466cda8b171b6582171,"Use thread pool for hashing This speeds it up a ton. Closes #10",2020-04-24T04:32:27Z,2020-04-24T04:32:27Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,256834907,dogsheep-photos,9599,simonw,9599,simonw aff7a6985e2b87777bfaf6e0e516172126f066bf,"Use table_columns context for CodeMirror schema, if available - refs #1897",2022-11-18T00:41:20Z,2022-11-18T00:41:25Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw af350ba4571b8e3f9708c40f2ddb48fea7ac1084,"Use single Request created in DatasetteRouter, refs #870",2020-06-29T00:01:33Z,2020-06-29T00:01:33Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw fdf9891c3f0313af9244778574c7ebaac9c3a438,"Use shot-scraper images from datasette-screenshots repo, closes #1844",2022-10-14T19:56:48Z,2022-10-14T19:57:00Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw bd39cb48050396c0c99212d282b2283428684a05,"Use service-specific image ID for Cloud Run deploys, refs #2036",2023-03-08T20:25:55Z,2023-03-08T20:25:55Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 52fa79c6075f0830ff635b81d957c64d877a05aa,"Use select colnames, not select * for table view - refs #615",2019-11-04T23:03:48Z,2019-11-04T23:03:48Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw a4d6acc23943759b46fa90ec68e500016b933410,"Use scope='session' for all fixtures This means they will only be executed once which makes sense since the database they create is immutable.",2018-05-28T20:41:06Z,2018-05-28T20:41:06Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw afdeda8216d4d3027f87583ccdbef17ad85022ef,"Use runpy in install/uninstall, refs #928",2020-08-11T23:54:52Z,2020-08-11T23:54:52Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw d9fa2bf7ba2f9d3dcb2beb303f772c86344b4bcf,"Use rowid if no primary key available Allows us to link to individual records even for tables that do not have a primary key. Refs #5",2017-11-09T14:39:50Z,2017-11-09T14:39:50Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw f272cbc65fbf56368413320e21c87dc842e0a083,"Use request.args.getlist instead of request.args[...], refs #774",2020-05-29T22:57:46Z,2020-05-29T22:57:46Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 54a59b9fdb40b9c86ff065a5b7047e6ef305bc22,Use python-3.6.7 runtime for Heroku deploys,2018-12-16T20:53:00Z,2018-12-16T20:53:00Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 84351a5269ca6a2e99808cd66652a6158e2f67f0,Use pytest -vv,2019-09-05T20:18:02Z,2019-09-05T20:18:02Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206649770,google-takeout-to-sqlite,9599,simonw,9599,simonw 152eb2afaf35cde5d44e50369f4cb32a72e72fdb,Use pysqlite3 if available,2019-07-22T22:39:35Z,2019-07-22T22:39:35Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw bda594ef50d24cc20d4e7a8ecb44547c68787150,"Use porter stemming by default, closes #2",2020-09-01T20:40:17Z,2020-09-01T20:40:17Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,197431109,dogsheep-beta,9599,simonw,9599,simonw 78af2b8ada30e7e81f910cb632bfedff98201920,"Use pocket_ prefix in auth.json, closes #4",2020-03-27T20:43:53Z,2020-03-27T20:43:53Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,213286752,pocket-to-sqlite,9599,simonw,9599,simonw a8ecf95f115e70eafc4cb352c4677e6e1418afbd,Use pip install -e .[docs] for documentation dependencies,2019-07-14T19:23:31Z,2019-07-14T19:23:31Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 42440d6345c242ee39778045e29143fb550bd2c2,Use parametrize for FTS test,2022-06-27T23:41:13Z,2022-06-27T23:41:13Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 54b6e96ee8aa553b6671e341a1944f93f3fb89c3,"Use optional rich dependency to render tracebacks, closes #1416",2021-08-03T16:12:48Z,2021-08-03T16:12:48Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw c7e4308e6f49d929704163531632e558f9646e4a,"Use new db.close() method, refs #504",2022-10-25T21:00:53Z,2022-10-25T21:00:53Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 1335bcb8939e903a4a7680493624055faecc3da4,"Use my own global variable instead of scope=session Refs https://github.com/simonw/datasette/pull/1960#issuecomment-1354148139",2022-12-16T03:33:14Z,2022-12-17T21:47:55Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 53d4473ce5015299eed679b4375a44c6f17155d8,"Use jq to create auth.json Refs #13",2020-03-23T21:50:12Z,2020-03-23T21:50:12Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 63aaf80e5b3d27ded34f557df2c689c9d9854e97,"Use hash_id in less places I was getting import errors when duplicate hash_id was generated.",2019-07-20T16:42:26Z,2019-07-20T16:42:26Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,197882382,healthkit-to-sqlite,9599,simonw,9599,simonw c1875feeec29a2fe15142d2b2e389836bb93a05b,"Use hash_id for notes, isoformat for created/updated Closes #2, closes #3",2020-10-11T23:14:52Z,2020-10-11T23:14:52Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,303218369,evernote-to-sqlite,9599,simonw,9599,simonw 31ea281c40540013c5dbae84d67c5193f40b0e3e,Use group_concat(distinct categories.name) for venue_details view,2019-08-30T17:25:04Z,2019-08-30T17:25:04Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,205429375,swarm-to-sqlite,9599,simonw,9599,simonw 7757a417c266f311152e3ccf359e35e3c2f1e063,"Use foreign key to repos table on issues and milestones, refs #31",2020-04-21T18:44:43Z,2020-04-21T18:44:43Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 16f592247a2a0e140ada487e9972645406dcae69,"Use explicit lifestyle=on for Uvicorn, refs #873",2020-06-29T15:42:50Z,2020-06-29T15:42:50Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw d96a8f149ecb4d3fd8a8e5226774b7060c96ec95,Use existing m2m table if one exists,2019-08-03T18:15:16Z,2019-08-03T18:16:51Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw d637ed46762fdbbd8e32b86f258cd9a53c1cfdc7,"Use execute_write_many to optimize internal DB, refs #1555, #1570",2021-12-18T19:11:08Z,2021-12-18T19:11:08Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw a892f9a0bd6667c1ad4c590016d6845cd98a645a,Use escape_sqlite() more consistently,2018-05-15T15:00:39Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 937828f946238c28e77ba50e0b2e649c874560f7,"Use distinfo.project_name for plugin name if available, closes #606",2019-11-01T05:39:59Z,2019-11-01T05:39:59Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 5bfd001b55357106dba090c83a1c88912a004665,"Use de-dupe idiom that works with Python 3.6, refs #1632",2022-02-07T23:42:37Z,2022-02-07T23:42:37Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 9a759e9ddf36dc834f6a91158910fef041be5679,"Use datasette.client, closes #28 Also refs https://github.com/simonw/datasette/issues/1020",2020-10-17T23:00:41Z,2020-10-17T23:00:41Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,197431109,dogsheep-beta,9599,simonw,9599,simonw 253f2d9a3cc96edcb47b33c6971300d0ff15d4dc,"Use correct QueryInterrupted exception on row page, closes #1088",2020-11-12T04:36:44Z,2020-11-12T04:36:44Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 3359d54a4eb9c9725c27a85437661b5180c4099a,Use cookies when accessing csrftoken_from,2020-06-06T19:33:08Z,2020-06-06T19:33:08Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 74b775e20f870de921ca3c09a75fe69e1c199fc7,"Use consistent pattern for test before deploy, refs #1406",2021-07-30T00:50:45Z,2021-07-30T00:50:45Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 43c30ce0236ebbc7e9cec98a3822265eb2691430,"Use cog to maintain default plugin list in plugins.rst, closes #1600 Also fixed a bug I spotted where datasette.filters showed the same hook three times.",2022-01-20T05:04:09Z,2022-01-20T05:04:09Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 148e9c7aeea2486b0562814b82f152506bfb0dd5,"Use cog to maintain --fmt list, closes #373",2022-01-09T17:48:48Z,2022-01-09T17:48:48Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw a1ba6cd6bb86d935cdad240de6be6b37aad683f2,"Use build arguments, refs #1522",2021-11-20T00:34:35Z,2021-11-20T00:34:35Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 0c1b8b7f96be874bb63801f69323960f277aa49a,Use assertion to enforce <=999 columns,2019-07-28T11:41:57Z,2019-07-28T11:41:57Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 2045f2766387dada103dce4c9aaf1418bfaec3b5,Use archive_ in README,2019-10-11T16:55:10Z,2019-10-11T16:55:10Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 5ebc7137d736d8fa47b24cc799fb93909f49cabb,"Use application/octet-stream for downloadable databses I'd also like to send the Content-Length here but that's not currently possible in Sanic - see bug report here: https://github.com/channelcat/sanic/issues/1194",2018-04-18T00:31:54Z,2018-04-18T00:31:54Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw b6546da53516e148e6aa34ad94f3452da30040f8,"Use Zeit cloud v1 to avoid 100MB image limit Closes #366 - thanks @slygent",2018-11-05T06:22:34Z,2018-11-05T06:22:34Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 0ad3ce5e2d664c227d7045afafec46704f251a10,"Use INTEGER for organization column, fixes #27",2020-04-18T00:18:45Z,2020-04-18T00:18:45Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw d1209a2c453311432dcc41966a81a39d895e9fae,"Use FTS4 when running the tests Because the version of sqlite3 running in Travis CI does not have FTS5",2018-08-13T00:33:13Z,2018-08-13T00:33:13Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 26e6d2622c57460a24ffdd0128bbaac051d51a5f,"Use :param x: for docstring comments, refs #413",2022-03-11T17:38:34Z,2022-03-11T17:39:17Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw b2188f044265c95f7e54860e28107c17d2a6ed2e,Use .custom_sql() for _group_count implementation (refs #150),2018-04-08T15:42:56Z,2018-04-08T15:43:45Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw e513a80afba30bca9eeebd71c5e6aa6d8a811f33,"Use -i with datasette publish, closes #469",2019-05-19T22:53:34Z,2019-05-19T22:53:34Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 3e864b1625f3142e6ff084f9b41247f2f9f60f80,"Use --platform=managed for publish cloudrun, closes #587",2019-10-17T21:51:45Z,2019-10-17T21:51:45Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw ce918195a4d72152569999c907937feb9d866ce3,"Use $ instead of % in CLI documentation Refs #218",2021-01-03T03:52:15Z,2021-01-03T03:52:15Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 8fb7609e5b133fd8b53a79772ee5501dac60ea88,Usage instructions,2019-07-20T05:57:26Z,2019-07-20T05:57:26Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,197882382,healthkit-to-sqlite,9599,simonw,9599,simonw d939455af00e07866686457ee2fcb9b2d1b7194e,"Upload photos in a thread pool, closes #11",2020-04-24T16:45:30Z,2020-04-24T16:45:30Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,256834907,dogsheep-photos,9599,simonw,9599,simonw be2fa42f5f4e9d146ce6e486d7e421ba286a2d3a,"Upgraded to sqlite-utils 2.x, closes #7",2020-03-28T02:24:57Z,2020-03-28T02:24:57Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,205429375,swarm-to-sqlite,9599,simonw,9599,simonw 156196431219f27b3835ed3b96b6bf042053e6ca,"Upgrade to sqlite-utils 3.0, closes #30",2020-12-16T21:27:04Z,2020-12-16T21:27:04Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,197431109,dogsheep-beta,9599,simonw,9599,simonw 0057c087a1d467b1770bebf3206e2cb008bc2b7f,"Upgrade to sqlite-utils 2.x, closes #20",2020-03-23T19:22:46Z,2020-03-23T19:22:46Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw 733447d7c71805efe6189f728a0f620e239fe4ac,"Upgrade to Python 3.11 on Heroku, refs #1905",2022-11-19T00:44:46Z,2022-11-19T00:44:46Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw f36e010b3b69ada104b79d83c7685caf9359049e,"Upgrade to Pluggy>=1.0, refs #1575",2021-12-20T01:25:40Z,2021-12-20T01:25:40Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw a648bb82bac201c7658f6fdb499ff8ac17ebd2e8,"Upgrade to Black 20.8b1, closes #958",2020-09-02T22:24:55Z,2020-09-02T22:24:55Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 84d7890b63f6aa43e7369fa8fc7a0a1bbf98c91f,Upgrade pytest to 4.0.2,2018-12-16T21:18:55Z,2018-12-16T21:18:55Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 969771770fcf795daace72e2310804e699067cfe,"Upgrade pytest to 3.6.0 https://github.com/pytest-dev/pytest/issues/1875 made it impossible to declare a function as a fixture multiple times, which we were doing across different modules. The fix was to move our @pytest.fixture calls into decorators in the tests/fixtures.py module.",2018-05-31T13:40:30Z,2018-05-31T13:42:37Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw adfe3042817a297fcb3160c1e3a446ece0149008,Upgrade pip in GitHub Actions runs,2020-08-11T23:12:05Z,2020-08-11T23:12:22Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw cc6774cbaaba2359e0a92cfcc41ad988680075d6,"Upgrade httpx and remove xfail from tests, refs #1005",2021-02-28T22:34:44Z,2021-02-28T22:34:44Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw f6d6aa803702668a9d5c824877abe064c7263065,Upgrade GitHub Actions workflows,2023-04-11T03:14:25Z,2023-04-11T03:14:25Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,205429375,swarm-to-sqlite,9599,simonw,9599,simonw f6c1af27e301b91ec64fb20324c92a8639f5a359,Upgrade GitHub Actions,2023-07-09T01:03:25Z,2023-07-09T01:04:39Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,213286752,pocket-to-sqlite,9599,simonw,9599,simonw f7f31a0223d822f7186c4d20174c002cb723d0f9,"Upgrade Dockerfile to SQLite 3.31.1, closes #695",2020-03-06T06:15:19Z,2020-03-06T06:15:19Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 9676b2deb07cff20247ba91dad3e84a4ab0b00d1,"Upgrade Docker images to Python 3.11, closes #1853",2022-10-25T18:59:03Z,2022-10-25T19:04:53Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 2c31d1cd9cd3b63458ccbe391866499fa3f44978,"Upgrade Docker base to Debian buster, refs #1497",2021-10-24T23:24:41Z,2021-10-24T23:24:41Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 668415df9f6334bd255c22ab02018bed5bc14edd,Upgrade Docker baes to 3.10.6-slim-bullseye - refs #1768,2022-08-14T15:47:17Z,2022-08-14T15:47:17Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 9dbbfa1f0b5cf07c91ba4c8d7b0145cf0ed4cf0f,"Upgrade CodeMirror to 5.57.0, refs #948",2020-08-30T17:39:16Z,2020-08-30T17:39:16Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 1a805288abe8d155b6dad227221e5f70311d06c3,"Updating homebrew plugin installation instructions This will start working as soon as Datasette 0.47 ships. Refs #923",2020-08-12T00:31:53Z,2020-08-12T00:31:56Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw a56d4394438f34abf175c6fdba0d5c2096d46133,Updated to sqlite-utils 2.x,2020-03-24T00:28:39Z,2020-03-24T00:28:39Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206202864,inaturalist-to-sqlite,9599,simonw,9599,simonw 040fc0546f1ad602125ecdc27d9d013d830aa808,"Updated tests, refs #817",2020-06-08T19:02:56Z,2020-06-08T19:02:56Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 2a8b39800f194925658bd9e1b5e4cc12619d5e9c,"Updated tests, refs #811",2020-06-08T14:50:06Z,2020-06-08T14:50:06Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw e2e373d2178ea76fe16fc8d07fffac8b175c2010,Updated tests for new tables in #40,2020-04-01T04:18:17Z,2020-04-01T04:18:17Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw 2d14f21f85d3a1fe0ff914e01fcacd089704f7aa,Updated tests for date(...) lookup,2019-05-21T06:06:19Z,2019-05-21T06:06:19Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw b01304d7070df5a02870ebd204ea093f3742029e,Updated tests I broke in c195ee4,2017-12-09T18:38:04Z,2017-12-09T18:39:19Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw e06b0117711ca7c9d6d6865d2bff8525aa11ebf0,"Updated tests Refs #23",2017-11-10T18:43:54Z,2017-11-10T18:43:54Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw c8e7c85fd3db46081d61d6071ab1140e8291325e,Updated test_database_page test,2017-11-22T20:25:51Z,2017-11-22T20:25:51Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 6f610e1d94b7b8ec605b5b7fcb01537f6adf9c5b,"Updated test, refs #1890",2022-11-16T03:04:24Z,2022-11-16T03:04:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 62dfd3bc4014b108200001ef4bc746feb6f33b45,"Updated some links Refs https://github.com/simonw/datasette/issues/1161",2020-12-29T21:57:11Z,2020-12-29T21:57:11Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw ab7d6a7179e9939c2764989e508bfa8eba31f3b1,Updated settings help URL to avoid redirect,2022-01-14T00:38:16Z,2022-01-14T00:38:16Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw c440ffc65a3e20b272ec0cc34e53f1000369379c,"Updated serve help, refs #1028",2020-10-20T00:33:04Z,2020-10-20T00:33:04Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 02bb373194000d2b15f61914e7c5fdb124275bcd,Updated release process,2020-12-11T01:38:16Z,2020-12-11T01:38:16Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 30b6f71b306a43605c99bef79302ed5cb22d1924,Updated release notes with #653,2020-02-05T02:17:30Z,2020-02-05T02:17:47Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw f2006cca80040871439055ae6ccbc14e589bdf4b,Updated release notes,2019-07-11T16:27:28Z,2019-07-11T16:27:28Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 393f1b49d70e9f58bc193c6a28afff4ec9459a2e,Updated nav in pattern portfolio,2020-10-30T20:12:01Z,2020-10-30T20:12:01Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw a0f0175d64d3c52529703755b89daf9c24d12d8b,"Updated help for upsert, refs #66",2019-12-30T06:05:31Z,2019-12-30T06:05:31Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw da5beb2f94eb21454a71fb364aec562ec7c221d7,"Updated foreign keys test, refs #27",2020-04-16T19:19:38Z,2020-04-16T19:19:38Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw c7d145e016522dd6ee229d4d0b3ba79a7a8877c1,"Updated example for extra_template_vars hook, closes #816",2020-06-08T19:06:05Z,2020-06-08T19:06:05Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 32963018e7edfab1233de7c7076c428d0e5c7813,"Updated documentation to remove hash_urls, refs #1661",2022-03-19T00:33:06Z,2022-03-19T00:33:06Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 3d656f4b31e95047e0ffc1eaa7417a303ccce3c1,Updated documentation formatting,2020-03-22T01:31:49Z,2020-03-22T01:31:54Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 5a77f7a6494c74372bedfef6185e1beed7bea5dc,"Updated docs renaming config to settings - config.html is now settings.html - ConfigOption in app.py is now Setting - updated documentation unit tests Refs #1106",2020-11-24T21:22:33Z,2020-11-24T21:22:33Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 6d29210cf45dcd4e57681146a9ce0a0c910381b9,Updated docs on what happens when a release goes out,2020-08-09T16:05:09Z,2020-08-09T16:05:09Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw ce2b07c358cd68e6de4c8942d7067591b7f1be96,"Updated docs for .search_sql() method Also improved indentation of generated SQL queries. Refs #197",2020-11-08T17:04:33Z,2020-11-08T17:04:37Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw e543a095cc4c1ca895b082cfd1263ca25203a7c0,"Updated default plugins in docs, refs #1770",2022-07-18T00:57:41Z,2022-07-18T00:57:41Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 75153ea9b94d09ec3d61f7c6ebdf378e0c0c7a0b,"Updated db.execute_write_fn() docs for block=True default, refs #1579",2021-12-23T19:16:31Z,2021-12-23T19:16:31Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw b9ede4c1898616512b5d204f9c941deff473cbe4,"Updated custom template docs, refs #521",2019-07-03T03:13:34Z,2019-07-03T03:23:05Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 9998f92cc05e6061a81af6cf194c3caa4d0759c1,"Updated custom facet docs, closes #482",2019-07-07T23:19:02Z,2019-07-07T23:19:02Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 9662d4ce267accdc8f5301b20a4c7cd82b5ccf34,"Updated cog, refs #527",2023-05-08T21:05:30Z,2023-05-08T21:05:30Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 0104dccca9d04916a9a5ba03874c92d9a9704096,"Updated Travis password, refs #317",2018-06-21T15:33:14Z,2018-06-21T15:33:14Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 11a9511d23ba79e7c8c92bc90ec29ba7f22e3eb7,Updated README to reflect new query default subcommand,2019-02-23T01:53:48Z,2019-02-23T01:53:48Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw b031fe97636b80b05fec409ee1dffb7d044fd4e9,Updated README news for 0.36,2020-02-22T03:04:46Z,2020-02-22T03:04:46Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 1f384e662b58e2eb43ce20842976b677e4478f43,Updated PyPI classifiers,2018-04-18T00:30:46Z,2018-04-18T00:30:46Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw ca6624643842f4b80644b83c3f4ad7c2265c15d8,Updated JSON foreign key tables test for #1525,2021-11-30T06:45:04Z,2021-11-30T06:45:04Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 4c1e277edbd783d06840d3f9b20bf00783478ce4,"Updated JSON API shape documentation, refs #262",2023-03-29T06:21:42Z,2023-03-29T06:21:42Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw ff45ed0ce5e1f151f24f089c6b78ab7f7a5cd0dc,"Updated --help output for latest Click, closes #1354",2021-06-01T16:16:58Z,2021-06-01T16:16:58Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 81bf9a9f3cc5b30107a6b1adeee39d5e8312ecfc,"Updated --cors documentation, refs #1467",2021-10-14T19:19:03Z,2021-10-14T19:19:03Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 4c18730e71e0b9109312fdfc2295d9c4ab6fbdcb,"Update tests to export 200 for OPTIONS calls, refs #1922",2022-11-30T18:29:48Z,2022-11-30T18:29:48Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 751e7b4af7e6ae73d173d38fd5b097673c2169f6,"Update tests for new plugin_hooks.rst, refs #687",2020-06-22T02:41:07Z,2020-06-22T02:41:07Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 7b2d1c0ffd0b874e280292b926f328a61cb31e2c,"Update tests for Python 3.11, closes #502",2022-10-25T19:23:20Z,2022-10-25T19:23:27Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 1163da89163f357003007b14f458a2c28f2e0a8e,"Update test to handle Python 3.10 error message differenc, refs #1482",2021-10-09T00:32:52Z,2021-10-09T00:32:52Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw 0cee77b1764f7dff029eb0ea1e857e5b69c591ee,"Update test for renamed restkey, refs #440, #443",2022-06-14T21:14:10Z,2022-06-14T21:14:20Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw 9e8c36793bfbb17c2f67371cc7f9aa8b9202fdc4,"Update spatialite.rst (#413) a line of sql added to create the idx_