github
id | node_id | number | state | locked | title | user | body | created_at | updated_at | closed_at | merged_at | merge_commit_sha | assignee | milestone | draft | head | base | author_association | repo | url | merged_by | auto_merge |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
782105066 | PR_kwDOBm6k_c4unfnq | 1512 | closed | 0 | New pattern for async view classes | 9599 | Refs #878 - starting out with the new `AsyncBase` class implementing a pytest-inspired `asyncio` parallel execution mechanism. | 2021-11-16T21:55:44Z | 2021-11-17T01:39:54Z | 2021-11-17T01:39:44Z | fb57d4474cb1fdaef260e244b1b6f470f1992e40 | 1 | 8f757da0750fe7f27b4ed3839bc3ef3650832ad9 | 0156c6b5e52d541e93f0d68e9245f20ae83bc933 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/1512 | |||||
275801463 | MDExOlB1bGxSZXF1ZXN0Mjc1ODAxNDYz | 447 | closed | 0 | Use dist: xenial and python: 3.7 on Travis | 9599 | 2019-05-03T18:07:07Z | 2019-05-03T18:17:05Z | 2019-05-03T18:16:53Z | 2019-05-03T18:16:53Z | 553314dcd699a84aa7cc806377150ca0d57a6024 | 0 | cd22e389d09b4fd5ed28205ba38a20faf1ed14f1 | 01b3de5b66742f0f661183e9e2ef66be3600e831 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/447 | |||||
1504918180 | PR_kwDOBm6k_c5Zszqk | 2175 | closed | 0 | Test against Python 3.12 preview | 9599 | https://dev.to/hugovk/help-test-python-312-beta-1508/ <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--2175.org.readthedocs.build/en/2175/ <!-- readthedocs-preview datasette end --> | 2023-09-06T16:09:05Z | 2023-09-06T16:16:28Z | 2023-09-06T16:16:27Z | 2023-09-06T16:16:27Z | e86eaaa4f371512689e973c18879298dab51f80a | 0 | 21e77c3ff9e4aacaa9442a7b3b36aafd87025115 | 05707aa16b5c6c39fbe48b3176b85a8ffe493938 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/2175 | ||||
804924636 | PR_kwDOBm6k_c4v-izc | 1559 | closed | 0 | filters_from_request plugin hook, now used in TableView | 9599 | New plugin hook, refs #473 Used it to extract the logic from TableView that handles _search and _through and _where - refs #1518 | 2021-12-16T23:59:33Z | 2021-12-17T23:09:41Z | 2021-12-17T19:02:15Z | 2021-12-17T19:02:15Z | aa7f0037a46eb76ae6fe9bf2a1f616c58738ecdf | 0 | 71af58d9392d42f45506cbc2370c1e9994126f63 | 0663d5525cc41e9260ac7d1f6386d3a6eb5ad2a9 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/1559 | ||||
560760145 | MDExOlB1bGxSZXF1ZXN0NTYwNzYwMTQ1 | 1204 | open | 0 | WIP: Plugin includes | 9599 | Refs #1191 Next steps: - [ ] Get comfortable that this pattern is the right way to go - [ ] Implement it for all of the other pages, not just the table page - [ ] Add a new set of plugin tests that exercise ALL of these new hook locations - [ ] Document, then ship | 2021-01-25T03:59:06Z | 2021-12-17T07:10:49Z | 98f06a766317a40035962416cf3211d7a374866a | 1 | 05258469ae39bcaad17beb57c5b7eeab0d58a589 | 07e163561592c743e4117f72102fcd350a600909 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/1204 | ||||||
1451100029 | PR_kwDOBm6k_c5Wfgd9 | 2118 | closed | 0 | New JSON design for query views | 9599 | WIP. Refs: - #2109 <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--2118.org.readthedocs.build/en/2118/ <!-- readthedocs-preview datasette end --> | 2023-07-26T23:29:21Z | 2023-08-08T01:47:40Z | 2023-08-08T01:47:39Z | 2023-08-08T01:47:39Z | 1377a290cd85ba8d3338b1da47c4665ed4c6c625 | 9700784 | 0 | 8b1dea3c0994d5875e372965eb5ca388ea08fe6a | 08181823990a71ffa5a1b57b37259198eaa43e06 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/2118 | |||
1167432070 | PR_kwDOBm6k_c5FlZmG | 1960 | closed | 0 | Port as many tests as possible to async def tests against ds_client | 9599 | Refs: - #1959 <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--1960.org.readthedocs.build/en/1960/ <!-- readthedocs-preview datasette end --> | 2022-12-15T21:45:53Z | 2022-12-17T21:47:56Z | 2022-12-17T21:47:55Z | 2022-12-17T21:47:55Z | 89cffcf14cda830871c8ee81742eaa1e2dff017b | 0 | f42bca8fc2657cecde05eca644c28fac7c28101f | 0b68996cc511b3a801f0cd0157bd66332d75f46f | OWNER | 107914493 | https://github.com/simonw/datasette/pull/1960 | ||||
1167644140 | PR_kwDOBm6k_c5FmNXs | 1961 | closed | 0 | Use click.echo() instead of print() for --root option | 9599 | This ensures the URL is output correctly when running under Docker. Closes #1958 <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--1961.org.readthedocs.build/en/1961/ <!-- readthedocs-preview datasette end --> | 2022-12-16T00:54:56Z | 2022-12-16T00:55:19Z | 2022-12-16T00:55:18Z | 2022-12-16T00:55:18Z | 013496862f4d4b441ab61255242b838b24287607 | 0 | 06d20c792f8c872118edd84973308fb3e5137b5e | 0b68996cc511b3a801f0cd0157bd66332d75f46f | OWNER | 107914493 | https://github.com/simonw/datasette/pull/1961 | ||||
195413241 | MDExOlB1bGxSZXF1ZXN0MTk1NDEzMjQx | 315 | closed | 0 | Streaming mode for downloading all rows as a CSV | 9599 | Refs #266 | 2018-06-18T03:06:59Z | 2018-06-18T03:29:13Z | 2018-06-18T03:21:02Z | 2018-06-18T03:21:02Z | fc3660cfad7668dbce6ead12766e048fc1f78b11 | 0 | b15f412e04ce9ff21983986e661fbe4396f97b43 | 0d7ba1ba676828dc7c8dda78ebe7921f7986fc18 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/315 | ||||
381666777 | MDExOlB1bGxSZXF1ZXN0MzgxNjY2Nzc3 | 688 | closed | 0 | Don't count rows on homepage for DBs > 100MB | 9599 | Closes #649. | 2020-02-29T01:01:06Z | 2020-02-29T01:08:30Z | 2020-02-29T01:08:29Z | 2020-02-29T01:08:29Z | 7f5a330377fd7db1f6d1efa5686d183bcaf89217 | 0 | 025fdd46f77822c0cbeb7856611c0a65a9b83057 | 0f8e91c68f2d2ad48efc8324b12762bf8b58facd | OWNER | 107914493 | https://github.com/simonw/datasette/pull/688 | ||||
201075532 | MDExOlB1bGxSZXF1ZXN0MjAxMDc1NTMy | 341 | closed | 0 | Bump aiohttp to fix compatibility with Python 3.7 | 9599 | Tests failed here: https://travis-ci.org/simonw/datasette/jobs/403223333 | 2018-07-12T17:41:24Z | 2018-07-12T18:07:38Z | 2018-07-12T18:07:38Z | 2018-07-12T18:07:38Z | 31a5d8fa77be68d4f837f0a80a611675dce49f4b | 0 | 8d34ed776168dcac530859c51f22e8b48829a513 | 130dc8823ebdcc1834fc7c4a03c996b13fc1e444 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/341 | ||||
468370658 | MDExOlB1bGxSZXF1ZXN0NDY4MzcwNjU4 | 936 | closed | 0 | Don't hang in db.execute_write_fn() if connection fails | 9599 | Refs #935 | 2020-08-15T22:20:12Z | 2020-08-15T22:35:33Z | 2020-08-15T22:35:32Z | 2020-08-15T22:35:32Z | b86f94883b1d827f85b07009e8346b8e9c6eeefa | 0 | 94a68b95a21f29526d66e88bf5ea524a3efcc609 | 13b3b51087964d5e1a8c1cdd2495e07bdbe176b8 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/936 | ||||
512736705 | MDExOlB1bGxSZXF1ZXN0NTEyNzM2NzA1 | 1065 | closed | 0 | Nav menu plus menu_links() hook | 9599 | Closes #1064, refs #690. | 2020-10-30T03:40:18Z | 2020-10-30T03:45:17Z | 2020-10-30T03:45:16Z | 2020-10-30T03:45:16Z | 18a64fbb29271ce607937110bbdb55488c43f4e0 | 6026070 | 0 | 5f118b56afbeff5348acd50a8b87537210e731ee | 1a861be19e326e0c88230a711a1b6536366697d7 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/1065 | |||
409153870 | MDExOlB1bGxSZXF1ZXN0NDA5MTUzODcw | 739 | closed | 0 | Configuration directory mode | 9599 | Refs #731 TODO: - [x] Decide how to combine explicit command-line options with items detected from the directory structure - [x] Add unit tests - [x] Implement `inspect-data.json` mechanism for populating `immutables` - [x] Add documentation | 2020-04-26T20:37:46Z | 2020-04-27T16:30:25Z | 2020-04-27T16:30:25Z | 2020-04-27T16:30:25Z | 25014ca25eb70b4c1217558ebd14db2845973bfb | 0 | 0d8fa53fab672fcf16b6a75aa55b07ccd243fb96 | 1b7b66c465e44025ec73421bd69752e42f108321 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/739 | ||||
339244888 | MDExOlB1bGxSZXF1ZXN0MzM5MjQ0ODg4 | 624 | closed | 0 | Bump pint to 0.9 | 9599 | 2019-11-11T04:07:07Z | 2019-11-11T04:19:02Z | 2019-11-11T04:19:02Z | 2019-11-11T04:19:02Z | 42ee3e16a9ba7cc513b8da944cc1609a5407cf42 | 0 | ed17117a2ad675cbf2430f28069bb1854846a6f0 | 1c063fae9dba70f70244db010d55a18846640f07 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/624 | |||||
1046943107 | PR_kwDOBm6k_c4-ZxWD | 1803 | closed | 0 | Workaround for test failure: RuntimeError: There is no current event loop | 9599 | Closes #1802 <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--1803.org.readthedocs.build/en/1803/ <!-- readthedocs-preview datasette end --> | 2022-09-06T00:31:06Z | 2022-09-06T00:40:19Z | 2022-09-06T00:40:19Z | 2022-09-06T00:40:19Z | 64288d827f7ff97f825e10f714da3f781ecf9345 | 0 | 7b6a2b48408697905bd93504b7f5554f4a7627ef | 1c29b925d300d1ee17047504473f2517767aa05b | OWNER | 107914493 | https://github.com/simonw/datasette/pull/1803 | ||||
182357613 | MDExOlB1bGxSZXF1ZXN0MTgyMzU3NjEz | 222 | closed | 0 | Fix for plugins in Python 3.5 | 9599 | 2018-04-18T03:21:01Z | 2018-04-18T04:26:50Z | 2018-04-18T03:24:21Z | 2018-04-18T03:24:21Z | 4be6deb94776744071311777f0b18efb993c0cfa | 0 | 420cdcb88ee41c15a90fce30fdec5832c03295bd | 1c36d07dd432b9960f4f2d096739460b4fcf8877 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/222 | |||||
1139440836 | PR_kwDOBm6k_c5D6nzE | 1912 | closed | 0 | Merge 1.0-dev (with initial write API) back into main | 9599 | See: - #1892 <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--1912.org.readthedocs.build/en/1912/ <!-- readthedocs-preview datasette end --> | 2022-11-29T19:31:21Z | 2022-11-29T19:39:37Z | 2022-11-29T19:39:36Z | 2022-11-29T19:39:36Z | 07aad511769da9242260c850e8d975cbd8c29552 | 0 | b8fc8e2cd755b9cfc66838bdc1ca9ee87afdce8a | 21f8aab53164a4f096737743d8cc624d2186327a | OWNER | 107914493 | https://github.com/simonw/datasette/pull/1912 | ||||
409123897 | MDExOlB1bGxSZXF1ZXN0NDA5MTIzODk3 | 737 | closed | 0 | Custom pages mechanism, refs #648 | 9599 | Refs #648. TODO: - [x] Pass a `view_name` to `render_template()` - [x] Mechanism for custom status code / headers / redirect - [x] Documentation | 2020-04-26T17:31:41Z | 2020-04-26T18:46:43Z | 2020-04-26T18:46:43Z | 2020-04-26T18:46:43Z | 304e7b1d9fd904ae1c35600bc03662eb90eeeae0 | 0 | b5bbf1bd88f67a26eb34902bc11f2da7692c7af2 | 227bb3e91fe34811a9374150798643a5af98ed79 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/737 | ||||
511005542 | MDExOlB1bGxSZXF1ZXN0NTExMDA1NTQy | 1056 | closed | 0 | Radical new colour scheme and base styles, courtesy of @natbat | 9599 | 2020-10-27T19:31:48Z | 2020-10-27T19:39:57Z | 2020-10-27T19:39:56Z | 2020-10-27T19:39:56Z | e5f5034bcdc71e4bc62a6a155ca60eb41910c335 | 6026070 | 0 | a7b2aabd5148c0ee382b583de68a4f0538f7dfb1 | 26bb4a268127da2c38f4241abe45444b2a6f7874 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/1056 | ||||
370675007 | MDExOlB1bGxSZXF1ZXN0MzcwNjc1MDA3 | 664 | closed | 0 | Datasette.render_template() method | 9599 | Refs #577 | 2020-02-04T06:53:59Z | 2020-02-04T20:26:18Z | 2020-02-04T20:26:18Z | 2020-02-04T20:26:18Z | 70b915fb4bc214f9d064179f87671f8a378aa127 | 0 | 19d4406f562aca291fef04363802093672620220 | 286ed286b68793532c2a38436a08343b45cfbc91 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/664 | ||||
712412883 | MDExOlB1bGxSZXF1ZXN0NzEyNDEyODgz | 1434 | open | 0 | Enrich arbitrary query results with foreign key links and column descriptions | 9599 | Refs #1293, follows #942. | 2021-08-13T14:43:01Z | 2021-08-19T21:18:58Z | d4d4f5566b1d43075cb52ded5d19a9dcf4350761 | 0 | 281c0872d5b8a462c9d7b2b2d77a924da4ed25a7 | 2883098770fc66e50183b2b231edbde20848d4d6 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/1434 | ||||||
339236647 | MDExOlB1bGxSZXF1ZXN0MzM5MjM2NjQ3 | 623 | closed | 0 | Test against Python 3.8 in Travis | 9599 | Needed for #622 | 2019-11-11T03:24:54Z | 2019-11-11T03:45:35Z | 2019-11-11T03:45:35Z | 2019-11-11T03:45:35Z | 1c063fae9dba70f70244db010d55a18846640f07 | 0 | 877dda2d287ed3b1772f051dffd295a69c3ecd27 | 28c4a6db5b5e512db630d7ba6127196185de67c7 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/623 | ||||
204851511 | MDExOlB1bGxSZXF1ZXN0MjA0ODUxNTEx | 353 | closed | 0 | render_cell(value) plugin hook | 9599 | Closes #352. | 2018-07-30T15:57:08Z | 2018-08-05T00:14:57Z | 2018-08-05T00:14:57Z | 2018-08-05T00:14:57Z | 4ac913224061f2dc4f673efab1a5ac6bc748854f | 0 | 2e538d924f3b17f82e94e8e8b5a05abcf9e1e697 | 295d005ca48747faf046ed30c3c61e7563c61ed2 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/353 | ||||
758569502 | PR_kwDOBm6k_c4tNtoe | 1490 | closed | 0 | Upgrade to httpx 0.20 | 9599 | Refs #1488 | 2021-10-14T17:51:05Z | 2021-10-14T18:03:45Z | 2021-10-14T18:03:44Z | 2021-10-14T18:03:44Z | b267b5775436577a91a9f9655143908aecff05da | 0 | e0332d1f4788a561492965a09ef83fe122fd3d8c | 2a8c6690399ee832ee62aafdede1794f5945d911 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/1490 | ||||
518988879 | MDExOlB1bGxSZXF1ZXN0NTE4OTg4ODc5 | 1085 | closed | 0 | Use FTS4 in fixtures | 9599 | Refs #1081 | 2020-11-11T06:44:30Z | 2020-11-12T00:02:59Z | 2020-11-12T00:02:58Z | 2020-11-12T00:02:58Z | e8e0a6f284ca953b2980186c4356594c07bd1929 | 0 | 51e7651c66aaf1804274ce68a6b5218bbba76338 | 2a981e2ac1d13125973904b777d00ea75e8df4e6 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/1085 | ||||
397749653 | MDExOlB1bGxSZXF1ZXN0Mzk3NzQ5NjUz | 714 | closed | 0 | --metadata accepts YAML as well as JSON | 9599 | Refs #713. Still needs tests and documentation. | 2020-04-02T18:36:02Z | 2020-04-02T19:30:54Z | 2020-04-02T19:30:54Z | 2020-04-02T19:30:54Z | 6717c719dd36dc2adc0f9da38a8c8e08129e96b4 | 0 | 5170c31adc44f6ef14b21782ba6f8ecb46dd9450 | 2aaad72789c427875426673c1a43e67c86fc970e | OWNER | 107914493 | https://github.com/simonw/datasette/pull/714 | ||||
188312411 | MDExOlB1bGxSZXF1ZXN0MTg4MzEyNDEx | 261 | closed | 0 | Facets improvements plus suggested facets | 9599 | Refs #255 | 2018-05-16T03:52:39Z | 2018-05-16T15:27:26Z | 2018-05-16T15:27:25Z | 2018-05-16T15:27:25Z | 9959a9e4deec8e3e178f919e8b494214d5faa7fd | 0 | af0e91e7769891949198fb1e1760886424f34b16 | 2b79f2bdeb1efa86e0756e741292d625f91cb93d | OWNER | 107914493 | https://github.com/simonw/datasette/pull/261 | ||||
651492888 | MDExOlB1bGxSZXF1ZXN0NjUxNDkyODg4 | 1339 | closed | 0 | ?_col=/?_nocol= to show/hide columns on the table page | 9599 | See #615. Still to do: - [x] Allow combination of `?_col=` and `?_nocol=` (`_nocol` wins) - [x] Deduplicate same column if passed in `?_col=` multiple times - [x] Validate that user did not try to remove a primary key - [x] Add tests - [x] Ensure this works correctly for SQL views - [x] Add documentation | 2021-05-24T17:15:20Z | 2021-05-27T04:17:44Z | 2021-05-27T04:17:43Z | 2021-05-27T04:17:43Z | f1c29fd6a184254aa68efadf096bcf21e848f921 | 0 | 387c8379b92e559180098f73017a1bf2e6370205 | 2bd9d54b2762c991e11950c22c88c0336158d49b | OWNER | 107914493 | https://github.com/simonw/datasette/pull/1339 | ||||
1488154809 | PR_kwDOBm6k_c5Ys3C5 | 2154 | closed | 0 | Cascade for restricted token view-table/view-database/view-instance operations | 9599 | Refs: - #2102 Also includes a prototype implementation of `--actor option` which I'm using for testing this, from: - #2153 <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--2154.org.readthedocs.build/en/2154/ <!-- readthedocs-preview datasette end --> | 2023-08-24T14:24:23Z | 2023-08-29T16:32:35Z | 2023-08-29T16:32:34Z | 2023-08-29T16:32:34Z | 50da908213a0fc405ecd7a40090dfea7a2e7395c | 0 | 1b38cba913b0a3515b4b1649276dc1ff973680bb | 2e2825869fc2655b5fcadc743f6f9dec7a49bc65 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/2154 | ||||
1496106142 | PR_kwDOBm6k_c5ZLMSe | 2165 | closed | 0 | DATASETTE_LOAD_PLUGINS environment variable for loading specific plugins | 9599 | - #2164 TODO: - [x] Automated tests - [ ] Documentation - [x] Make sure `DATASETTE_LOAD_PLUGINS=''` works for loading zero plugins | 2023-08-30T20:33:30Z | 2023-08-30T22:12:25Z | 2023-08-30T22:12:25Z | 2023-08-30T22:12:25Z | 6bfe104d47b888c70bfb7781f8f48ff11452b2b5 | 0 | 6321c9c055a640ed6ea98e231dc5813dcde1f773 | 30b28c8367a9c6870386ea10a202705b40862457 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/2165 | ||||
882973374 | PR_kwDOBm6k_c40oRq- | 1664 | closed | 0 | Remove hashed URL mode | 9599 | Refs #1661. | 2022-03-17T23:19:10Z | 2022-03-19T00:12:04Z | 2022-03-19T00:12:04Z | 2022-03-19T00:12:03Z | d4f60c2388c01ddce1b16f95c16d310e037c9912 | 0 | eae91fe8c2934c8674f5202b2d9f85b6f674c410 | 30e5f0e67c38054a8087a2a4eae3fc4d1779af90 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/1664 | ||||
368734500 | MDExOlB1bGxSZXF1ZXN0MzY4NzM0NTAw | 663 | closed | 0 | -p argument for datasette package, plus tests - refs #661 | 9599 | 2020-01-29T19:47:49Z | 2020-01-29T22:46:43Z | 2020-01-29T22:46:43Z | 2020-01-29T22:46:43Z | 67fc9c5720ed1fcd62b116481f70d4e80b403a22 | 0 | 8adfc9db7f15e36fed677be4a9c833ff2cdec0bc | 34d77d780f68b778fd9d6ebbaf69f250436f055f | OWNER | 107914493 | https://github.com/simonw/datasette/pull/663 | |||||
290897104 | MDExOlB1bGxSZXF1ZXN0MjkwODk3MTA0 | 518 | closed | 0 | Port Datasette from Sanic to ASGI + Uvicorn | 9599 | Most of the code here was fleshed out in comments on #272 (Port Datasette to ASGI) - this pull request will track the final pieces: - [x] Update test harness to more correctly simulate the `raw_path` issue - [x] Use `raw_path` so table names containing `/` can work correctly - [x] Bug: JSON not served with correct content-type - [x] Get ?_trace=1 working again - [x] Replacement for `@app.listener("before_server_start")` - [x] Bug: `/fixtures/table%2Fwith%2Fslashes.csv?_format=json` downloads as CSV - [x] Replace Sanic request and response objects with my own classes, so I can remove Sanic dependency - [x] Final code tidy-up before merging to master | 2019-06-23T15:18:42Z | 2019-06-24T13:42:50Z | 2019-06-24T03:13:09Z | 2019-06-24T03:13:09Z | ba8db9679f3bd2454c9e76e7e6c352126848b57a | 9599 | 3268330 | 0 | b794554a26ddc81bd772c4422d80d5ee863e92b0 | 35429f90894321eda7f2db31b9ea7976f31f73ac | OWNER | 107914493 | https://github.com/simonw/datasette/pull/518 | ||
204029142 | MDExOlB1bGxSZXF1ZXN0MjA0MDI5MTQy | 349 | closed | 0 | publish_subcommand hook + default plugins mechanism, used for publish heroku/now | 9599 | This change introduces a new plugin hook, publish_subcommand, which can be used to implement new subcommands for the "datasette publish" command family. I've used this new hook to refactor out the "publish now" and "publish heroku" implementations into separate modules. I've also added unit tests for these two publishers, mocking the subprocess.call and subprocess.check_output functions. As part of this, I introduced a mechanism for loading default plugins. These are defined in the new "default_plugins" list inside datasette/app.py Closes #217 (Plugin support for "datasette publish") Closes #348 (Unit tests for "datasette publish") Refs #14, #59, #102, #103, #146, #236, #347 | 2018-07-26T05:03:22Z | 2018-07-26T05:28:54Z | 2018-07-26T05:16:00Z | 2018-07-26T05:16:00Z | dbbe707841973b50a76d2703003ae2c40e7ad1fd | 0 | 7abdfd55daa9c617da02fd768b8e7476e89f0f94 | 3ac21c749881d0fb1c35b0f9b7a819e29f61c5c1 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/349 | ||||
379192258 | MDExOlB1bGxSZXF1ZXN0Mzc5MTkyMjU4 | 683 | closed | 0 | .execute_write() and .execute_write_fn() methods on Database | 9599 | See #682 - [x] Come up with design for `.execute_write()` and `.execute_write_fn()` - [x] Build some quick demo plugins to exercise the design - [x] Write some unit tests - [x] Write the documentation | 2020-02-24T19:51:58Z | 2020-05-30T18:40:20Z | 2020-02-25T04:45:08Z | 2020-02-25T04:45:08Z | a093c5f79fa034a97d2ad8b606745dd3b80365af | 3268330 | 0 | ec6e2edfe18446c9d77e3f30efbc299d27ea5c1b | 411056c4c43e74f2b3d0e3bc1175e7998516b1b3 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/683 | |||
424085264 | MDExOlB1bGxSZXF1ZXN0NDI0MDg1MjY0 | 772 | closed | 0 | Test that plugin hooks are unit tested | 9599 | Refs #771 | 2020-05-27T20:01:32Z | 2020-05-27T20:21:56Z | 2020-05-27T20:16:03Z | 2020-05-27T20:16:02Z | da87e963bff24e47878a5bc2025c8bfc63d4bc93 | 5471110 | 0 | 173b6947521f1c1b47a119f62f379bf4278c87c9 | 41a0cd7b6afe0397efbbf27ad822679fc574811a | OWNER | 107914493 | https://github.com/simonw/datasette/pull/772 | |||
339722790 | MDExOlB1bGxSZXF1ZXN0MzM5NzIyNzkw | 627 | closed | 0 | Support Python 3.8, stop supporting Python 3.5 | 9599 | Refs #622 | 2019-11-12T04:36:33Z | 2020-04-05T10:23:58Z | 2019-11-12T05:09:12Z | 2019-11-12T05:09:12Z | cf7776d36fbacefa874cbd6e5fcdc9fff7661203 | 0 | 18cc795b5c6ec9223a5cbc4f30b19710c17f7eaa | 42ee3e16a9ba7cc513b8da944cc1609a5407cf42 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/627 | ||||
187668890 | MDExOlB1bGxSZXF1ZXN0MTg3NjY4ODkw | 257 | closed | 0 | Refactor views | 9599 | * Split out view classes from main `app.py` * Run [black](https://github.com/ambv/black) against resulting code to apply opinionated source code formatting * Run [isort](https://github.com/timothycrosley/isort) to re-order my imports Refs #256 | 2018-05-13T13:00:50Z | 2018-05-14T03:04:25Z | 2018-05-14T03:04:24Z | 2018-05-14T03:04:24Z | 2b79f2bdeb1efa86e0756e741292d625f91cb93d | 0 | 0e2b41f3fa38456af32548c536f955c48c7637e8 | 4301a8f3ac69f2f54916e73cc90fcf216a9a3746 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/257 | ||||
250628275 | MDExOlB1bGxSZXF1ZXN0MjUwNjI4Mjc1 | 407 | closed | 0 | Heroku --include-vcs-ignore | 9599 | Should mean `datasette publish heroku` can work under Travis, unlike this failure: https://travis-ci.org/simonw/fivethirtyeight-datasette/builds/488047550 ``` 2.25s$ datasette publish heroku fivethirtyeight.db -m metadata.json -n fivethirtyeight-datasette tar: unrecognized option '--exclude-vcs-ignores' Try 'tar --help' or 'tar --usage' for more information. â–¸ Command failed: tar cz -C /tmp/tmpuaxm7i8f --exclude-vcs-ignores --exclude â–¸ .git --exclude .gitmodules . > â–¸ /tmp/f49440e0-1bf3-4d3f-9eb0-fbc2967d1fd4.tar.gz â–¸ tar: unrecognized option '--exclude-vcs-ignores' â–¸ Try 'tar --help' or 'tar --usage' for more information. â–¸ The command "datasette publish heroku fivethirtyeight.db -m metadata.json -n fivethirtyeight-datasette" exited with 0. ``` The fix for that issue is to call the heroku command like this: heroku builds:create -a app_name --include-vcs-ignore | 2019-02-06T04:06:20Z | 2019-02-06T04:31:30Z | 2019-02-06T04:15:47Z | 2019-02-06T04:15:46Z | 195a5b36349d0d24a6bbb758cebb719b6de303b6 | 0 | 01978ddb9682c828cafddaf9ca625e08ba3ba3a4 | 436b8bc1d17c2ab415800ab209204f94e7f7929e | OWNER | 107914493 | https://github.com/simonw/datasette/pull/407 | ||||
1034576054 | PR_kwDOBm6k_c49qmC2 | 1792 | closed | 0 | Test `--load-extension` in GitHub Actions | 9599 | Refs: - #1789 <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--1792.org.readthedocs.build/en/1792/ <!-- readthedocs-preview datasette end --> | 2022-08-23T18:43:29Z | 2022-08-24T00:11:46Z | 2022-08-24T00:11:45Z | 2022-08-24T00:11:45Z | ba35105eee2d3ba620e4f230028a02b2e2571df2 | 0 | f61cfb77056e2ee39ae827889c005b1e44c81165 | 456dc155d491a009942ace71a4e1827cddc6b93d | OWNER | 107914493 | https://github.com/simonw/datasette/pull/1792 | ||||
529887861 | MDExOlB1bGxSZXF1ZXN0NTI5ODg3ODYx | 1120 | closed | 0 | generated_columns table in fixtures.py | 9599 | Refs #1119 | 2020-12-01T00:17:19Z | 2020-12-01T00:28:03Z | 2020-12-01T00:28:02Z | 2020-12-01T00:28:02Z | 17cbbb1f7f230b39650afac62dd16476626001b5 | 0 | ddad8db2cc952eaf4f66f42324ccece115627b02 | 461670a0b87efa953141b449a9a261919864ceb3 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/1120 | ||||
1191716406 | PR_kwDOBm6k_c5HCCY2 | 1984 | closed | 0 | Upgrade Sphinx | 9599 | Refs #1971 <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--1984.org.readthedocs.build/en/1984/ <!-- readthedocs-preview datasette end --> | 2023-01-10T02:00:40Z | 2023-01-10T02:02:33Z | 2023-01-10T02:02:33Z | 2023-01-10T02:02:32Z | 8e7073404379d79a2d269167a12bbb58439edd39 | 0 | 0c8b3f5ca1385c804c696f1fa61c24de29ae4755 | 4880638f13c3a1abc53f395cde39ac848daf416d | OWNER | 107914493 | https://github.com/simonw/datasette/pull/1984 | ||||
440946817 | MDExOlB1bGxSZXF1ZXN0NDQwOTQ2ODE3 | 869 | closed | 0 | Magic parameters for canned queries | 9599 | Implementation for #842 TODO: - [x] Add tests for built-in magic parameters - [x] Magic parameters should not show up as blank form fields on the query page - [x] Update documentation for new `_request_X` (now called `_header_X`) implementation where X is a key from the ASGI scope - [x] Make sure these only work for canned queries, not for arbitrary SQL queries (security issue) - [x] Add test for the `register_magic_parameters` plugin hook - [x] Add documentation for the `register_magic_parameters` plugin hook | 2020-06-27T18:37:21Z | 2020-06-28T02:58:18Z | 2020-06-28T02:58:17Z | 2020-06-28T02:58:17Z | 563f5a2d3ab30ad08daee38f5ec3ed6429ac9206 | 5533512 | 0 | 9e693a7aae3b4a0882881e3a1c182e1c0c753efd | 4b142862f237f95a731cb8263a293eda70d13c82 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/869 | |||
293994443 | MDExOlB1bGxSZXF1ZXN0MjkzOTk0NDQz | 536 | closed | 0 | Switch to ~= dependencies, closes #532 | 9599 | 2019-07-03T04:12:16Z | 2019-07-03T04:32:55Z | 2019-07-03T04:32:55Z | 2019-07-03T04:32:55Z | f0d32da0a9af87bcb15e34e35424f0c0053be83a | 0 | 391d109dc3f9230dc4ee4afd20041e480e90e739 | 4d2fdafe39159c9a8aa83f7e9bfe768bbbbb56a3 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/536 | |||||
575940193 | MDExOlB1bGxSZXF1ZXN0NTc1OTQwMTkz | 1232 | closed | 0 | --crossdb option for joining across databases | 9599 | Refs #283. Still needs: - [x] Unit test for --crossdb queries - [x] Show warning on console if it truncates at ten databases (or on web interface) - [x] Show connected databases on the `/_memory` database page - [x] Documentation - [x] https://latest.datasette.io/ demo should demonstrate this feature | 2021-02-18T19:48:50Z | 2021-02-18T22:09:13Z | 2021-02-18T22:09:12Z | 2021-02-18T22:09:12Z | 6f41c8a2bef309a66588b2875c3e24d26adb4850 | 0 | 887649942b02d70a0fe4e205e1e5eff4e745b016 | 4df548e7668b5b21d64a267964951e67894f4712 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/1232 | ||||
872324754 | PR_kwDOBm6k_c4z_p6S | 1648 | closed | 0 | Use dash encoding for table names and row primary keys in URLs | 9599 | Refs #1439. - [x] Build `dash_encode` / `dash_decode` functions - [x] Use dash encoding for row primary keys - [x] Use dash encoding for `?_next=` pagination tokens - [x] Use dash encoding for table names in URLs - [x] Use dash encoding for database name - ~~Implement redirects from previous `%` URLs that replace those with `-`~~ - separate issue: #1650 | 2022-03-05T19:50:45Z | 2022-03-07T15:38:30Z | 2022-03-07T15:38:30Z | 2022-03-07T15:38:29Z | 1baa030eca375f839f3471237547ab403523e643 | 0 | 32548b88fdb413429d960966decba8f6b3889190 | 5010d1359b9e9db90a5a69a3ca22d12862893e00 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/1648 | ||||
1492599485 | PR_kwDOBm6k_c5Y90K9 | 2161 | closed | 0 | -s/--setting x y gets merged into datasette.yml, refs #2143, #2156 | 9599 | This change updates the `-s/--setting` option to `datasette serve` to allow it to be used to set arbitrarily complex nested settings in a way that is compatible with the new `-c datasette.yml` work happening in: - #2143 It will enable things like this: ``` datasette data.db --setting plugins.datasette-ripgrep.path "/home/simon/code" ``` For the moment though it just affects [settings](https://docs.datasette.io/en/1.0a4/settings.html) - so you can do this: ``` datasette data.db --setting settings.sql_time_limit_ms 3500 ``` I've also implemented a backwards compatibility mechanism, so if you use it this way (the old way): ``` datasette data.db --setting sql_time_limit_ms 3500 ``` It will notice that the setting you passed is one of Datasette's core settings, and will treat that as if you said `settings.sql_time_limit_ms` instead. <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--2161.org.readthedocs.build/en/2161/ <!-- readthedocs-preview datasette end --> | 2023-08-28T19:30:42Z | 2023-08-28T20:06:15Z | 2023-08-28T20:06:14Z | 2023-08-28T20:06:14Z | d9aad1fd042a25d226f2ace1f7827b4602761038 | 0 | a5cbf80d795b599697b2b873566386abb0cd8b32 | 527cec66b0403e689c8fb71fc8b381a1d7a46516 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/2161 | ||||
468484031 | MDExOlB1bGxSZXF1ZXN0NDY4NDg0MDMx | 941 | closed | 0 | Run CI on GitHub Actions, not Travis | 9599 | Refs #940 | 2020-08-16T19:13:39Z | 2020-08-18T05:09:36Z | 2020-08-18T05:09:35Z | 2020-08-18T05:09:35Z | 5e0b72247ecab4ce0fcec599b77a83d73a480872 | 0 | f5a72e11b632b01acc41c07f6f4cfffa1a7ed14e | 52eabb019d4051084b21524bd0fd9c2731126985 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/941 | ||||
702422263 | MDExOlB1bGxSZXF1ZXN0NzAyNDIyMjYz | 1418 | closed | 0 | Spelling corrections plus CI job for codespell | 9599 | Refs #1417. | 2021-08-03T16:21:19Z | 2021-08-03T16:36:39Z | 2021-08-03T16:36:38Z | 2021-08-03T16:36:38Z | 2208c3c68e552d343e6a2872ff6e559fca9d1b38 | 0 | 532170fc606df04986104aacbd67b920c5fa0af9 | 54b6e96ee8aa553b6671e341a1944f93f3fb89c3 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/1418 | ||||
1212277427 | PR_kwDOBm6k_c5IQeKz | 1999 | closed | 0 | ?_extra= support (draft) | 9599 | Refs: - #262 <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--1999.org.readthedocs.build/en/1999/ <!-- readthedocs-preview datasette end --> | 2023-01-21T04:55:18Z | 2023-03-22T22:49:41Z | 2023-03-22T22:49:40Z | 2023-03-22T22:49:40Z | d97e82df3c8a3f2e97038d7080167be9bb74a68d | 0 | 69a31cd5b61f0b62938efdeec5972090f1a1a508 | 56b0758a5fbf85d01ff80a40c9b028469d7bb65f | OWNER | 107914493 | https://github.com/simonw/datasette/pull/1999 | ||||
608323028 | MDExOlB1bGxSZXF1ZXN0NjA4MzIzMDI4 | 1290 | closed | 0 | Use pytest-xdist to speed up tests | 9599 | Closes #1289, refs #1212. | 2021-04-03T03:34:36Z | 2021-04-03T03:42:29Z | 2021-04-03T03:42:28Z | 2021-04-03T03:42:28Z | 0a7621f96f8ad14da17e7172e8a7bce24ef78966 | 0 | 2fb1e4284f1f0f6aaba7e889a6713c0f96e802e1 | 59ef4a20cba1533bc347378415f4ffcd025f32c8 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/1290 | ||||
232172106 | MDExOlB1bGxSZXF1ZXN0MjMyMTcyMTA2 | 389 | closed | 0 | Bump dependency versions | 9599 | 2018-11-20T02:23:12Z | 2019-11-13T19:13:41Z | 2019-11-13T19:13:41Z | 9194c0165aef411e0784ba49939b1005306f1f38 | 0 | f8349b45916e68d2f89c57694bd0e6afaf1bd508 | 5e3a432a0caa23837fa58134f69e2f82e4f632a6 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/389 | ||||||
285698310 | MDExOlB1bGxSZXF1ZXN0Mjg1Njk4MzEw | 501 | closed | 0 | Test against Python 3.8-dev using Travis | 9599 | 2019-06-06T08:37:53Z | 2019-11-11T03:23:29Z | 2019-11-11T03:23:29Z | 1aac0cf0ab962060dd5cff19b8b179bb7fa0f00b | 0 | a5defb684fcc734f6325ca08beef9f49c3e7a298 | 5e8fbf7f6fbc0b63d0479da3806dd9ccd6aaa945 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/501 | ||||||
1067890893 | PR_kwDOBm6k_c4_prjN | 1823 | open | 0 | Keyword-only arguments for a bunch of internal methods | 9599 | Refs #1822 <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--1823.org.readthedocs.build/en/1823/ <!-- readthedocs-preview datasette end --> | 2022-09-27T00:44:59Z | 2022-10-05T04:37:54Z | 28068a62ad6a8b76a1c9223c4ca78099cfd2ece5 | 0 | b545b6a04ed7b407331f991adce107691ac3ab97 | 5f9f567acbc58c9fcd88af440e68034510fb5d2b | OWNER | 107914493 | https://github.com/simonw/datasette/pull/1823 | ||||||
157365811 | MDExOlB1bGxSZXF1ZXN0MTU3MzY1ODEx | 168 | closed | 0 | Upgrade to Sanic 0.7.0 | 9599 | 2017-12-09T01:25:08Z | 2017-12-09T03:00:34Z | 2017-12-09T03:00:34Z | 2017-12-09T03:00:34Z | 446f4b832272b2286f6f65af19714eb64afb7aa6 | 0 | d9e13a5cc2b77637a6cdd8bd21b9b8fc1350051a | 61e3c5a1e904a6e1cbee86ba1494b5cb4b5820cf | OWNER | 107914493 | https://github.com/simonw/datasette/pull/168 | |||||
753513062 | PR_kwDOBm6k_c4s6bJm | 1481 | closed | 0 | Fix compatibility with Python 3.10 | 9599 | 2021-10-07T20:34:23Z | 2021-10-24T22:19:55Z | 2021-10-24T22:19:54Z | 2021-10-24T22:19:54Z | 96a823f2834a262ae97a90ebfb6847f14763c415 | 0 | 50005bd2d36219c3ae8b6220d38df918459a1812 | 63886178a649586b403966a27a45881709d2b868 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/1481 | |||||
431478724 | MDExOlB1bGxSZXF1ZXN0NDMxNDc4NzI0 | 819 | closed | 0 | register_routes() plugin hook | 9599 | Refs #215 | 2020-06-09T01:20:44Z | 2020-06-09T03:12:08Z | 2020-06-09T03:12:07Z | 2020-06-09T03:12:07Z | f5e79adf26d0daa3831e3fba022f1b749a9efdee | 5512395 | 0 | 18127f074efc1b0148d1098da063e51ccea7797c | 647c5ff0f3e8140f40d7f41f0874ce4e1f4df65c | OWNER | 107914493 | https://github.com/simonw/datasette/pull/819 | |||
275861559 | MDExOlB1bGxSZXF1ZXN0Mjc1ODYxNTU5 | 449 | closed | 0 | Apply black to everything | 9599 | I've been hesitating on this for literally months, because I'm not at all excited about the giant diff that will result. But I've been using black on many of my other projects (most actively [sqlite-utils](https://github.com/simonw/sqlite-utils)) and the productivity boost is undeniable: I don't have to spend a single second thinking about code formatting any more! So it's worth swallowing the one-off pain and moving on in a new, black-enabled world. | 2019-05-03T21:57:26Z | 2019-05-04T02:17:14Z | 2019-05-04T02:15:15Z | 2019-05-04T02:15:15Z | 35d6ee2790e41e96f243c1ff58be0c9c0519a8ce | 0 | 9683aeb2394a4b7e44499b8a0240af3baafda832 | 66c87cee0c7344c7877373c60b180c766c206101 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/449 | ||||
415286105 | MDExOlB1bGxSZXF1ZXN0NDE1Mjg2MTA1 | 763 | closed | 0 | Documentation + improvements for db.execute() and Results class | 9599 | Refs #685 Still TODO: - [x] Implement `results.first()` - [x] Implement `results.single_value()` - [x] Unit tests for the above | 2020-05-08T15:16:02Z | 2020-06-11T16:05:48Z | 2020-05-08T16:05:46Z | 2020-05-08T16:05:46Z | 4433306c1855ad69840cc76cbd41086137572be2 | 0 | 1ea62c77221d07cd121367f1c6b620f8bde0716a | 69e3a855dd7e5a77409d70b18c45ae3c1a145a75 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/763 | ||||
375180832 | MDExOlB1bGxSZXF1ZXN0Mzc1MTgwODMy | 672 | open | 0 | --dirs option for scanning directories for SQLite databases | 9599 | Refs #417. | 2020-02-14T02:25:52Z | 2020-03-27T01:03:53Z | 0e0e544f1f23451f04d7ca576ace5b18ce168e6f | 0 | ee718b98b793df2a15b125cbf20816c9864bf7e9 | 6aa516d82dea9885cb4db8d56ec2ccfd4cd9b840 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/672 | ||||||
153432045 | MDExOlB1bGxSZXF1ZXN0MTUzNDMyMDQ1 | 118 | closed | 0 | Foreign key information on row and table pages | 9599 | 2017-11-18T03:13:27Z | 2017-11-18T03:15:57Z | 2017-11-18T03:15:50Z | 2017-11-18T03:15:50Z | 1b04662585ea1539014bfbd616a8112b650d5699 | 0 | 2fa60bc5e3c9d75c19e21a2384f52b58e1872fa8 | 6d39429daa4655e3cf7a6a7671493292a20a30a1 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/118 | |||||
662557240 | MDExOlB1bGxSZXF1ZXN0NjYyNTU3MjQw | 1357 | closed | 0 | Make custom pages compatible with base_url setting | 9599 | Refs #1238. | 2021-06-05T18:54:39Z | 2021-06-05T18:59:54Z | 2021-06-05T18:59:54Z | 2021-06-05T18:59:54Z | a63412152518581c6a3d4e142b937e27dabdbfdb | 0 | 1b27643d7bd192e1d2cc52e36ada0021c3f76bb8 | 6e9b07be92905011211d8df7a872fb7c1f2737b2 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/1357 | ||||
1522166951 | PR_kwDOBm6k_c5aumyn | 2192 | closed | 0 | Stop using parallel SQL queries for tables | 9599 | Refs: - #2189 <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--2192.org.readthedocs.build/en/2192/ <!-- readthedocs-preview datasette end --> | 2023-09-20T01:28:43Z | 2023-09-20T22:10:56Z | 2023-09-20T22:10:55Z | 2023-09-20T22:10:55Z | b0e5d8afa308759f4ee9f3ecdf61101dffc4a037 | 0 | 4e6a34179eaedec44c1263275d7592fd83d7e2ac | 6ed7908580fa2ba9297c3225d85c56f8b08b9937 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/2192 | ||||
521276296 | MDExOlB1bGxSZXF1ZXN0NTIxMjc2Mjk2 | 1097 | closed | 0 | Use f-strings | 9599 | Since Datasette now requires Python 3.6, how about some f-strings? I ran this in the `datasette` root checkout: ``` pip install flynt flynt . black . ``` | 2020-11-15T23:12:36Z | 2020-11-15T23:24:24Z | 2020-11-15T23:24:23Z | 2020-11-15T23:24:23Z | 30e64c8d3b3728a86c3ca42a75322cc3feb5b0c8 | 0 | e89211d21eebb7a2e4588b06927da84416e3a555 | 6fd35be64de221eba4945ca24e8e1678f6142a73 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/1097 | ||||
500256485 | MDExOlB1bGxSZXF1ZXN0NTAwMjU2NDg1 | 1000 | closed | 0 | datasette.client internal requests mechanism | 9599 | Refs #943 | 2020-10-08T23:58:25Z | 2020-10-09T16:11:26Z | 2020-10-09T16:11:25Z | 2020-10-09T16:11:25Z | 8f97b9b58e77f82fef1f10e9c9f6754b993544b6 | 9599 | 5971510 | 0 | 8a80c79deb640bc1a1864132a3564ccca59e8858 | 7249ac5ca04b5ddc6517750326ee7e522cc49145 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/1000 | ||
293962405 | MDExOlB1bGxSZXF1ZXN0MjkzOTYyNDA1 | 533 | closed | 0 | Support cleaner custom templates for rows and tables, closes #521 | 9599 | - [x] Rename `_rows_and_columns.html` to `_table.html` - [x] Unit test - [x] Documentation | 2019-07-03T00:40:18Z | 2019-07-03T03:23:06Z | 2019-07-03T03:23:06Z | 2019-07-03T03:23:06Z | b9ede4c1898616512b5d204f9c941deff473cbe4 | 0 | 1add905532b7bc4f681318b8f22b9b74cca2b2a0 | 76882830548e16905348ee75acb0044cb8e1fd20 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/533 | ||||
269364924 | MDExOlB1bGxSZXF1ZXN0MjY5MzY0OTI0 | 426 | closed | 0 | Upgrade to Jinja2==2.10.1 | 9599 | https://nvd.nist.gov/vuln/detail/CVE-2019-10906 This is only a security issue of concern if evaluating templates from untrusted sources, which isn't something I would ever expect a Datasette user to do. | 2019-04-10T23:03:08Z | 2019-04-22T21:23:22Z | 2019-04-10T23:13:31Z | 2019-04-10T23:13:31Z | 9cd3b44277e6a8ea9273bf659379ff0414e0b8ae | 0 | 629453383c7f911eddfc891f22c39b7d6e9661aa | 78e45ead4d771007c57b307edf8fc920101f8733 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/426 | ||||
1086765659 | PR_kwDOBm6k_c5Axrpb | 1842 | closed | 0 | check_visibility can now take multiple permissions into account | 9599 | Refs #1829 - [x] Fix table page - [x] Fix database page - [x] Fix query page - [x] Fix row page - [x] Tests - [x] Updated documentation for `check_visibility` method, to cover the new `permissions=` keyword argument Also this fix is currently only applied on the table page - needs to be applied on database, row and query pages too. <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--1842.org.readthedocs.build/en/1842/ <!-- readthedocs-preview datasette end --> | 2022-10-14T00:06:04Z | 2022-10-24T02:11:36Z | 2022-10-24T02:11:36Z | 2022-10-24T02:11:34Z | 78dad236df730212aa7172f885fd8ec575f0d3ad | 0 | 362347574e3283d637243906af7d5e028e100180 | 79aa0de083d38a9975915d5a4cc68ca6c74fbe3d | OWNER | 107914493 | https://github.com/simonw/datasette/pull/1842 | ||||
655684477 | MDExOlB1bGxSZXF1ZXN0NjU1Njg0NDc3 | 1346 | closed | 0 | Re-display user's query with an error message if an error occurs | 9599 | Refs #619 | 2021-05-28T02:04:20Z | 2021-06-02T03:46:21Z | 2021-06-02T03:46:21Z | 2021-06-02T03:46:21Z | 9552414e1f968c6fc704031cec349c05e6bc2371 | 0 | 3bffc35ff9137a75024d2a8ef44828a50ec91071 | 7b106e106000713bbee31b34d694b3dadbd4818c | OWNER | 107914493 | https://github.com/simonw/datasette/pull/1346 | ||||
284390197 | MDExOlB1bGxSZXF1ZXN0Mjg0MzkwMTk3 | 497 | closed | 0 | Upgrade pytest to 4.6.1 | 9599 | 2019-06-03T01:45:34Z | 2019-06-03T02:06:32Z | 2019-06-03T02:06:27Z | 2019-06-03T02:06:27Z | 5e8fbf7f6fbc0b63d0479da3806dd9ccd6aaa945 | 0 | bf2ab0306e6d3ce7524fecf015e2cec7ae45e994 | 803f750309bf0cd5b7501228c1efcf9a35686d74 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/497 | |||||
434055752 | MDExOlB1bGxSZXF1ZXN0NDM0MDU1NzUy | 844 | closed | 0 | Action to run tests and upload coverage report | 9599 | Refs #843 | 2020-06-13T20:52:47Z | 2020-06-13T21:36:52Z | 2020-06-13T21:36:50Z | 2020-06-13T21:36:50Z | cf7a2bdb404734910ec07abc7571351a2d934828 | 0 | 1210d9f41841bdca450f85a2342cdb0ff339c1b4 | 80c18a18fc444b89cc12b73599d56e091f3a3c87 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/844 | ||||
466410755 | MDExOlB1bGxSZXF1ZXN0NDY2NDEwNzU1 | 927 | closed | 0 | 'datasette --get' option, refs #926 | 9599 | Refs #926, #898 | 2020-08-11T23:31:52Z | 2020-08-12T00:24:42Z | 2020-08-12T00:24:41Z | 2020-08-12T00:24:41Z | e139a7619f63d45ca2ff1ee108b933e17b5675b3 | 0 | 2111da01a03cfc62303b6a4b59ea9f96d22c0f78 | 83eda049af3f38d4289118d3576f96b2535084b1 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/927 | ||||
391924509 | MDExOlB1bGxSZXF1ZXN0MzkxOTI0NTA5 | 703 | closed | 0 | WIP implementation of writable canned queries | 9599 | Refs #698. | 2020-03-21T22:23:51Z | 2020-06-03T00:08:14Z | 2020-06-02T23:57:35Z | 80c5a74a947e63673389604de12e80fa27305454 | 1 | 61e40e917efc43a8aea5298a22badbb6eaea3fa1 | 89c4ddd4828623888e91a1d2cb396cba12d4e7b4 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/703 | |||||
410469272 | MDExOlB1bGxSZXF1ZXN0NDEwNDY5Mjcy | 746 | closed | 0 | shutil.Error, not OSError | 9599 | Refs #744 | 2020-04-29T03:30:51Z | 2020-04-29T07:07:24Z | 2020-04-29T07:07:23Z | e4e8b51b50e51b2515c6d8874d16c4607f79b80a | 0 | af3a5b91503f5d74aa111bbcd1ee531ee00f9ed7 | 89c4ddd4828623888e91a1d2cb396cba12d4e7b4 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/746 | |||||
838724548 | PR_kwDOBm6k_c4x_evE | 1622 | closed | 0 | Test against Python 3.11-dev | 9599 | Refs #1621 | 2022-02-02T21:39:38Z | 2022-02-02T21:58:53Z | 2022-02-02T21:58:53Z | 2022-02-02T21:58:53Z | a9d8824617268c4d214dd3be2174ac452044f737 | 0 | fbaf317ab723482e971688cda72ce51825bcf4d7 | 8d5779acf0041cfd0db7f68f468419f9008b86ec | OWNER | 107914493 | https://github.com/simonw/datasette/pull/1622 | ||||
247923347 | MDExOlB1bGxSZXF1ZXN0MjQ3OTIzMzQ3 | 404 | closed | 0 | Experiment: run Jinja in async mode | 9599 | See http://jinja.pocoo.org/docs/2.10/api/#async-support Tests all pass. Have not checked performance difference yet. Creating pull request to run tests in Travis. This is not ready to merge - I'm not yet sure if this is a good idea. | 2019-01-27T00:28:44Z | 2019-11-12T05:02:18Z | 2019-11-12T05:02:13Z | 773bcac907d17b16eef604ad943837da39a10090 | 0 | dd7f24a47f660e2f0fc1e97a13d28908c28dc245 | 909cc8fbdfc9c05e447f40e9a73489809602c3cd | OWNER | 107914493 | https://github.com/simonw/datasette/pull/404 | |||||
181755220 | MDExOlB1bGxSZXF1ZXN0MTgxNzU1MjIw | 212 | closed | 0 | New --plugins-dir=plugins/ option | 9599 | Refs #211 | 2018-04-16T05:19:28Z | 2018-04-16T05:22:18Z | 2018-04-16T05:22:01Z | 2018-04-16T05:22:01Z | b2955d9065ea019500c7d072bcd9d49d1967f051 | 0 | 33c6bcadb962457be6b0c7f369826b404e2bcef5 | 92396ae5bacedfcb3d7c81319ccdd04483fd7fd4 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/212 | ||||
1144085408 | PR_kwDOBm6k_c5EMVug | 1931 | closed | 0 | /db/table/-/upsert | 9599 | Refs #1878 Still todo: - [x] Support `"return": true` properly for upserts (with tests) - [x] Require both `insert-row` and `update-row` permissions - [x] Tests are going to need to cover both rowid-only and compound primary key tables, including all of the error states - [x] Documentation <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--1931.org.readthedocs.build/en/1931/ <!-- readthedocs-preview datasette end --> | 2022-12-03T07:01:44Z | 2022-12-08T01:12:17Z | 2022-12-08T01:12:16Z | 2022-12-08T01:12:16Z | 272982e8a6f45700ff93c3917b4688a86de0e672 | 8711695 | 0 | 7cd6fd9f76913196d4f99a194a30e406f33aa363 | 93ababe6f7150454d2cf278dae08569e505d2a5b | OWNER | 107914493 | https://github.com/simonw/datasette/pull/1931 | |||
426891471 | MDExOlB1bGxSZXF1ZXN0NDI2ODkxNDcx | 796 | closed | 0 | New WIP writable canned queries | 9599 | Refs #698. Replaces #703 Still todo: - [x] Unit tests - ~~Figure out `.json` mode~~ - [x] Flash message solution - ~~CSRF protection~~ - [x] Better error message display on errors - [x] Documentation - ~~Maybe widgets?~~ I'll do these later | 2020-06-03T00:08:00Z | 2020-06-03T15:16:52Z | 2020-06-03T15:16:50Z | 2020-06-03T15:16:50Z | aa82d0370463580f2cb10d9617f1bcbe45cc994a | 3268330 | 0 | e164939de719b5930ca4972e20490c9b2fd37f6d | 9690ce606823bbfceb0c50d59e03adf7bb1a8475 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/796 | |||
429366641 | MDExOlB1bGxSZXF1ZXN0NDI5MzY2NjQx | 803 | closed | 0 | Canned query permissions | 9599 | Refs #800. Closes #786 | 2020-06-06T18:20:00Z | 2020-06-06T19:40:21Z | 2020-06-06T19:40:20Z | 2020-06-06T19:40:20Z | 415ccd7cbdeebfb52f514a0387221023aa8b4d91 | 0 | 3359d54a4eb9c9725c27a85437661b5180c4099a | 9c563d6aed072f14d3d25f58e84659f9caa1a243 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/803 | ||||
270251021 | MDExOlB1bGxSZXF1ZXN0MjcwMjUxMDIx | 432 | closed | 0 | Refactor facets to a class and new plugin, refs #427 | 9599 | WIP for #427 | 2019-04-13T20:04:45Z | 2019-05-03T00:04:24Z | 2019-05-03T00:04:24Z | b78bc19269ed83b054a60c79c4fe08f4ca943942 | 0 | 5c198f7ca5d2aff49180820271ba8d06b79aefb1 | 9c77e6e355ec718d76178a7607721d10a66b6aef | OWNER | 107914493 | https://github.com/simonw/datasette/pull/432 | |||||
379378780 | MDExOlB1bGxSZXF1ZXN0Mzc5Mzc4Nzgw | 686 | closed | 0 | ?_searchmode=raw option | 9599 | Closes #676 | 2020-02-25T05:45:50Z | 2020-02-25T05:56:09Z | 2020-02-25T05:56:04Z | 2020-02-25T05:56:04Z | 6cb65555f46456eb31b62e855e21b1d8c809b1a2 | 0 | abc782cb342c21b565142e44e70502e61ac6756b | a093c5f79fa034a97d2ad8b606745dd3b80365af | OWNER | 107914493 | https://github.com/simonw/datasette/pull/686 | ||||
294992578 | MDExOlB1bGxSZXF1ZXN0Mjk0OTkyNTc4 | 542 | closed | 0 | extra_template_vars plugin hook | 9599 | Refs #541 | 2019-07-05T22:19:17Z | 2019-07-06T00:05:57Z | 2019-07-06T00:05:56Z | 2019-07-06T00:05:56Z | fcfcae21e67cc15090942b1d2a47b5f016279337 | 0 | e81c7abb40c8ecf8d9d23cbcdde045e0a3b4ab14 | a18e0964ecd04593f227616538a80dee08768057 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/542 | ||||
193361341 | MDExOlB1bGxSZXF1ZXN0MTkzMzYxMzQx | 307 | closed | 0 | Initial sketch of custom URL routing, refs #306 | 9599 | See #306 for background on this. | 2018-06-07T15:26:48Z | 2018-06-07T15:29:54Z | 2018-06-07T15:29:41Z | 8c6663d3cc8043fc6f5c796275e80b0445bdff12 | 0 | 018af454f286120452e33d2568dd40908474a8a8 | a246f476b4fe490f5450836b22961bc607e6b4b0 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/307 | |||||
925926708 | PR_kwDOBm6k_c43MIU0 | 1736 | closed | 0 | Clean up compatibility with Pyodide | 9599 | Closes #1735, closes #1733 | 2022-05-02T20:14:38Z | 2022-05-02T20:15:28Z | 2022-05-02T20:15:27Z | 2022-05-02T20:15:27Z | 3f00a29141bdea5be747f6d1c93871ccdb792167 | 0 | 784fe6a245a051ef6b42e153d3fae9cce7b0b148 | a29c1277896b6a7905ef5441c42a37bc15f67599 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/1736 | ||||
393274433 | MDExOlB1bGxSZXF1ZXN0MzkzMjc0NDMz | 708 | closed | 0 | base_url configuration setting, refs #394 | 9599 | Pull request implementing #394 | 2020-03-24T21:52:00Z | 2020-03-25T00:18:44Z | 2020-03-25T00:18:44Z | 2020-03-25T00:18:44Z | 7656fd64d8b6a32ebc34d89c1b8711cc5ea240f7 | 5234079 | 0 | b1f953b5de1bef239ddb1d133f9b2e19f8e3438a | a498d0fe6590f9bdbc4faf9e0dd5faeb3b06002c | OWNER | 107914493 | https://github.com/simonw/datasette/pull/708 | |||
560831638 | MDExOlB1bGxSZXF1ZXN0NTYwODMxNjM4 | 1206 | closed | 0 | Release 0.54 | 9599 | Refs #1201 | 2021-01-25T06:45:47Z | 2021-01-25T17:33:30Z | 2021-01-25T17:33:29Z | 2021-01-25T17:33:29Z | 0b9ac1b2e9c855f1b823a06a898891da87c720ef | 0 | 571476d2cf8f7d7eac6098de8557264e69cac43f | a5ede3cdd455e2bb1a1fb2f4e1b5a9855caf5179 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/1206 | ||||
801798514 | PR_kwDOBm6k_c4vynly | 1554 | closed | 0 | TableView refactor | 9599 | I'm starting a PR with almost nothing in it so I can use the GitHub code commenting feature to add a bunch of comments to the code I intend to refactor. Related issues: - #617 - #715 - #870 - #1518 | 2021-12-13T23:16:04Z | 2021-12-20T23:52:11Z | 2021-12-20T23:52:04Z | a68545f9a4c3b3a68259be5c03abfc9ad7710875 | 0 | 1d08b46412410837f987c606b2307a121fa2641a | a6ff123de5464806441f6a6f95145c9a83b7f20b | OWNER | 107914493 | https://github.com/simonw/datasette/pull/1554 | |||||
301483613 | MDExOlB1bGxSZXF1ZXN0MzAxNDgzNjEz | 564 | open | 0 | First proof-of-concept of Datasette Library | 9599 | Refs #417. Run it like this: datasette -d ~/Library Uses a new plugin hook - available_databases() | 2019-07-26T10:22:26Z | 2023-02-07T15:14:11Z | 4f425d2b39d1be10d7ef5c146480a3eb494d5086 | 1 | 947645d84710677ea50762016081a9fbc6b014a8 | a9453c4dda70bbf5122835e68f63db6ecbe1a6fc | OWNER | 107914493 | https://github.com/simonw/datasette/pull/564 | ||||||
295127213 | MDExOlB1bGxSZXF1ZXN0Mjk1MTI3MjEz | 546 | open | 0 | Facet by delimiter | 9599 | Refs #510 | 2019-07-07T20:06:05Z | 2019-11-18T23:46:01Z | 68a6fb1a576a747b868771d00a10753f35aaa0cf | 0 | 47ac6c6e46da16716d295d7cda8f79cd0663ca5e | a9909c29ccac771c23c2ef22b89d10697b5256b9 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/546 | ||||||
323983732 | MDExOlB1bGxSZXF1ZXN0MzIzOTgzNzMy | 579 | open | 0 | New connection pooling | 9599 | See #569 | 2019-10-02T23:22:19Z | 2019-11-15T22:57:21Z | 025b4024b1b43ea034b7fd331c30740165ff75f2 | 0 | 32cbfd2acd28bcefb97c442ac8e3ee2c07401e19 | a9909c29ccac771c23c2ef22b89d10697b5256b9 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/579 | ||||||
572209243 | MDExOlB1bGxSZXF1ZXN0NTcyMjA5MjQz | 1222 | closed | 0 | --ssl-keyfile and --ssl-certfile, refs #1221 | 9599 | 2021-02-12T00:45:58Z | 2021-02-12T00:52:18Z | 2021-02-12T00:52:17Z | 2021-02-12T00:52:17Z | eda652cf6ee28a0babfb30ce3834512e9e33fb8e | 0 | 8ec72ea3e3e0a9876d5e61e4a2260224f16db2e3 | aa1fe0692c2abb901216738bfb35f9fcc5090e7d | OWNER | 107914493 | https://github.com/simonw/datasette/pull/1222 | |||||
185307407 | MDExOlB1bGxSZXF1ZXN0MTg1MzA3NDA3 | 246 | closed | 0 | ?_shape=array and _timelimit= | 9599 | 2018-05-02T00:18:54Z | 2018-05-02T00:20:41Z | 2018-05-02T00:20:40Z | 2018-05-02T00:20:40Z | 690736436bac599ca042d1caa465c6d66d2651f9 | 0 | 3807d93b98573e142858c5871b8b4aadda71d28f | aa954382c3776d596f459897b0d984161293529d | OWNER | 107914493 | https://github.com/simonw/datasette/pull/246 | |||||
511868153 | MDExOlB1bGxSZXF1ZXN0NTExODY4MTUz | 1060 | closed | 0 | New explicit versioning mechanism | 9599 | - Remove all references to versioneer - Re-implement versioning to use a static string baked into the repo - Ensure that string is output by `datasette --version` and `/-/versions` Refs #1054 | 2020-10-28T22:14:55Z | 2020-10-29T03:38:17Z | 2020-10-29T03:38:16Z | 2020-10-29T03:38:16Z | cefd058c1c216a184bb63c79abba66893977c18e | 6026070 | 0 | 4725d46780783e9875bde5957f053ba19cf92ff0 | abcf0222496d8148b2e585ffa0ff192270a04b06 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/1060 | |||
716262829 | MDExOlB1bGxSZXF1ZXN0NzE2MjYyODI5 | 1444 | closed | 0 | Ability to deploy demos of branches | 9599 | See #1442. | 2021-08-19T21:08:04Z | 2021-08-19T21:09:44Z | 2021-08-19T21:09:39Z | 2021-08-19T21:09:39Z | d84e574e59c51ddcd6cf60a6f9b3d45182daf824 | 0 | 75f9fe6d6bc642ce5587dd74eed70064c11868be | adb5b70de5cec3c3dd37184defe606a082c232cf | OWNER | 107914493 | https://github.com/simonw/datasette/pull/1444 | ||||
468377212 | MDExOlB1bGxSZXF1ZXN0NDY4Mzc3MjEy | 937 | closed | 0 | Docs now live at docs.datasette.io | 9599 | 2020-08-15T23:53:52Z | 2020-08-15T23:57:06Z | 2020-08-15T23:57:05Z | 2020-08-15T23:57:05Z | 41ddc197561ac2d2a1bb988956c301a523c6ca35 | 0 | ff2605af65e023564cd7b57382b116e94b9d4f16 | af12f45c2b0e4782ca92c2d00481dc47ccb7a046 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/937 | |||||
261418285 | MDExOlB1bGxSZXF1ZXN0MjYxNDE4Mjg1 | 416 | closed | 0 | URL hashing now optional: turn on with --config hash_urls:1 (#418) | 9599 | 2019-03-15T04:26:06Z | 2019-03-17T22:55:04Z | 2019-03-17T22:55:04Z | 2019-03-17T22:55:04Z | 6f6d0ff2b41f1cacaf42287b1b230b646bcba9ee | 0 | 0d02a99c9665669540aebff981246d8c743072b3 | afe9aa3ae03c485c5d6652741438d09445a486c1 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/416 | |||||
711783616 | MDExOlB1bGxSZXF1ZXN0NzExNzgzNjE2 | 1430 | closed | 0 | Column metadata | 9599 | Refs #942 Still needs: - [x] Tests - [x] Documentation | 2021-08-12T23:34:39Z | 2021-08-12T23:53:23Z | 2021-08-12T23:53:23Z | 2021-08-12T23:53:23Z | e837095ef35ae155b4c78cc9a8b7133a48c94f03 | 0 | 941994725dd41deb6f839c5063cff5d15d4abb1c | b1fed48a95516ae84c0f020582303ab50ab817e2 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/1430 | ||||
180188397 | MDExOlB1bGxSZXF1ZXN0MTgwMTg4Mzk3 | 196 | closed | 0 | _sort= and _sort_desc= parameters to table view | 9599 | See #189 | 2018-04-09T00:07:21Z | 2018-04-09T05:10:29Z | 2018-04-09T05:10:23Z | 2018-04-09T05:10:23Z | c1d37fdf2be84fb07155bb1b1f61057444b03300 | 0 | fdd6b71e40c8aa9a93e95802a8b6291099d4db2c | b2188f044265c95f7e54860e28107c17d2a6ed2e | OWNER | 107914493 | https://github.com/simonw/datasette/pull/196 | ||||
1365439700 | PR_kwDOBm6k_c5RYvTU | 2080 | closed | 0 | New View base class | 9599 | Refs: - #2078 TODO: - [x] Teach router layer how to handle this - [x] Use it for something <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--2080.org.readthedocs.build/en/2080/ <!-- readthedocs-preview datasette end --> | 2023-05-25T23:22:55Z | 2023-05-26T00:18:45Z | 2023-05-26T00:18:44Z | 2023-05-26T00:18:44Z | dda99fc09fb0b5523948f6d481c6c051c1c7b5de | 0 | e990fbc00ef36c022986432e7706b3ad1c9c68a1 | b49fa446d683ddcaf6faf2944dacc0d866bf2d70 | OWNER | 107914493 | https://github.com/simonw/datasette/pull/2080 |