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 284743794,MDExOlB1bGxSZXF1ZXN0Mjg0NzQzNzk0,500,closed,0,Fix typo in install step: should be install -e,32314,,2019-06-03T21:50:51Z,2019-06-11T18:48:43Z,2019-06-11T18:48:40Z,2019-06-11T18:48:40Z,aa911122feab13f8e65875c98edb00fd3832b7b8,,,0,ff98f44d7f10ff65fc172df9155c77f169ab4c7f,5e8fbf7f6fbc0b63d0479da3806dd9ccd6aaa945,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/500,, 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,, 764281468,PR_kwDOBm6k_c4tjgJ8,1495,open,0,Allow routes to have extra options,536941,"Right now, datasette routes can only be a 2-tuple of `(regex, view_fn)`. If it was possible for datasette to handle extra options, like [standard Django does](https://docs.djangoproject.com/en/3.2/topics/http/urls/#passing-extra-options-to-view-functions), it would add flexibility for plugin authors. For example, if extra options were enabled, then it would be easy to make a single table the home page (#1284). This plugin would accomplish it. ```python from datasette import hookimpl from datasette.views.table import TableView @hookimpl def register_routes(datasette): return [ (r""^/$"", TableView.as_view(datasette), {'db_name': 'DB_NAME', 'table': 'TABLE_NAME'}) ] ``` ",2021-10-22T15:00:45Z,2021-11-19T15:36:27Z,,,44969c5654748fb26ad05ab37245678f245f32e5,,,0,fe7fa14b39846b919dfed44514a7d18d67e01dfd,ff9ccfb0310501a3b4b4ca24d73246a8eb3e7914,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/1495,, 1515716751,PR_kwDOBm6k_c5aWACP,2185,closed,0,Bump the python-packages group with 3 updates,49699333,"Bumps the python-packages group with 3 updates: [sphinx](https://github.com/sphinx-doc/sphinx), [furo](https://github.com/pradyunsg/furo) and [black](https://github.com/psf/black). Updates `sphinx` from 7.2.5 to 7.2.6
Release notes

Sourced from sphinx's releases.

Sphinx 7.2.6

Changelog: https://www.sphinx-doc.org/en/master/changes.html

Changelog

Sourced from sphinx's changelog.

Release 7.2.6 (released Sep 13, 2023)

Bugs fixed

Commits

Updates `furo` from 2023.8.19 to 2023.9.10
Changelog

Sourced from furo's changelog.

Changelog

2023.09.10 -- Zesty Zaffre

2023.08.19 -- Xenolithic Xanadu

2023.08.17 -- Wonderous White

2023.07.26 -- Vigilant Volt

2023.05.20 -- Unassuming Ultramarine

2023.03.27 -- Tasty Tangerine

2023.03.23 -- Sassy Saffron

... (truncated)

Commits

Updates `black` from 23.7.0 to 23.9.1
Release notes

Sourced from black's releases.

23.9.1

Due to various issues, the previous release (23.9.0) did not include compiled mypyc wheels, which make Black significantly faster. These issues have now been fixed, and this release should come with compiled wheels once again.

There will be no wheels for Python 3.12 due to a bug in mypyc. We will provide 3.12 wheels in a future release as soon as the mypyc bug is fixed.

Packaging

Performance

23.9.0

Preview style

Configuration

Performance

Blackd

Integrations

Changelog

Sourced from black's changelog.

23.9.1

Due to various issues, the previous release (23.9.0) did not include compiled mypyc wheels, which make Black significantly faster. These issues have now been fixed, and this release should come with compiled wheels once again.

There will be no wheels for Python 3.12 due to a bug in mypyc. We will provide 3.12 wheels in a future release as soon as the mypyc bug is fixed.

Packaging

Performance

23.9.0

Preview style

Configuration

Performance

Blackd

Integrations

Commits

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore ` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore ` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore ` will remove the ignore condition of the specified dependency and ignore conditions
---- :books: Documentation preview :books:: https://datasette--2185.org.readthedocs.build/en/2185/ ",2023-09-14T13:27:40Z,2023-09-20T22:11:25Z,2023-09-20T22:11:24Z,2023-09-20T22:11:24Z,6763572948ffd047a89a3bbf7c300e91f51ae98f,,,0,fe5f881a5270201d833fff2ebfd08c883116223a,6ed7908580fa2ba9297c3225d85c56f8b08b9937,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/2185,, 428212421,MDExOlB1bGxSZXF1ZXN0NDI4MjEyNDIx,798,closed,0,CSRF protection,9599,Refs #793,2020-06-05T04:22:35Z,2020-06-06T00:43:41Z,2020-06-05T19:05:58Z,2020-06-05T19:05:57Z,84a9c4ff75460f91c049bd30bba3cee1fd89d9e2,,5512395,0,fe43963376b1c44ec23a213277bcb33d98e4aef9,d96ac1d52cacf34bae09705eb8f9a0e3f81c426b,OWNER,107914493,https://github.com/simonw/datasette/pull/798,, 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,, 981389800,PR_kwDOBm6k_c46ftHo,1763,closed,0,Bump black from 22.1.0 to 22.6.0,49699333,"Bumps [black](https://github.com/psf/black) from 22.1.0 to 22.6.0.
Release notes

Sourced from black's releases.

22.6.0

Style

Preview style

Integrations

Output

Packaging

Parser

Vim Plugin

Full Changelog: https://github.com/psf/black/compare/22.3.0...22.6.0


Thank you!

... and everyone else who contributed documentation, tests, or other improvements to the Black project!

... (truncated)

Changelog

Sourced from black's changelog.

22.6.0

Style

Preview style

Integrations

Output

Packaging

Parser

Vim Plugin

22.3.0

Preview style

Configuration

... (truncated)

Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=black&package-manager=pip&previous-version=22.1.0&new-version=22.6.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
",2022-06-28T13:11:32Z,2022-06-28T17:40:25Z,2022-06-28T17:40:25Z,2022-06-28T17:40:24Z,9f1eb0d4eac483b953392157bd9fd6cc4df37de7,,,0,fd6a817de499053c10c62139872486ef1698a481,00e59ec461dc0150772b999c7cc15fcb9b507d58,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/1763,, 294400446,MDExOlB1bGxSZXF1ZXN0Mjk0NDAwNDQ2,539,closed,0,Secret plugin configuration options,9599,Refs #538 ,2019-07-04T03:21:20Z,2019-07-04T05:36:45Z,2019-07-04T05:36:45Z,2019-07-04T05:36:45Z,a2d45931935f6bb73605a94afedf9e78308c95d6,,,0,fd6164b03ebe450a9a00df2e5be2dc7bbfbd9a3f,f0d32da0a9af87bcb15e34e35424f0c0053be83a,OWNER,107914493,https://github.com/simonw/datasette/pull/539,, 790665890,PR_kwDOBm6k_c4vIJqi,1537,closed,0,"Update aiofiles requirement from <0.8,>=0.4 to >=0.4,<0.9",49699333,"Updates the requirements on [aiofiles](https://github.com/Tinche/aiofiles) to permit the latest version.
Commits

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
",2021-11-29T13:13:52Z,2021-11-30T02:29:55Z,2021-11-30T02:29:54Z,2021-11-30T02:29:54Z,1beb7d939999da79bb77c4d3c777657c8a16bcd9,,,0,fcfaec1793ed4b1f5d0f9a43f392f598a41f4ad2,48f11998b73350057b74fe6ab464d4ac3071637c,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/1537,, 1519993584,PR_kwDOBm6k_c5amULw,2190,closed,0,"Raise an exception if a ""plugins"" block exists in metadata.json",15178711,"refs #2183 #2093 From [this comment](https://github.com/simonw/datasette/pull/2183#issuecomment-1714699724) in #2183: If a `""plugins""` block appears in `metadata.json`, it means that a user hasn't migrated over their plugin configuration from `metadata.json` to `datasette.yaml`, which is a breaking change in Datasette 1.0. This PR will ensure that an error is raised whenever that happens. ---- :books: Documentation preview :books:: https://datasette--2190.org.readthedocs.build/en/2190/ ",2023-09-18T18:08:56Z,2023-10-12T16:20:51Z,2023-10-12T16:20:51Z,2023-10-12T16:20:51Z,3d6d1e3050b8e50fac40ec090672d8a95fa8e06c,,,0,fc7dbe0d8ac3e368b6c335d2ce8abe780f36dbd6,6ed7908580fa2ba9297c3225d85c56f8b08b9937,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/2190,, 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,, 439203808,MDExOlB1bGxSZXF1ZXN0NDM5MjAzODA4,866,closed,0,"Update pytest-asyncio requirement from <0.13,>=0.10 to >=0.10,<0.15",27856297,"Updates the requirements on [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) to permit the latest version.
Commits

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language - `@dependabot badge me` will comment on this PR with code to add a ""Dependabot enabled"" badge to your readme Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com): - Update frequency (including time of day and day of week) - Pull request limits (per update run and/or open at any time) - Out-of-range updates (receive only lockfile updates, if desired) - Security updates (receive only security updates, if desired)
",2020-06-24T13:21:47Z,2020-06-24T18:50:57Z,2020-06-24T18:50:56Z,2020-06-24T18:50:56Z,1bb33dab49fd25f77b9f8e7ab7ee23b3d64c123c,,,0,fb64dda76dda7354a77cb50c5864aff67a6fef8d,1a5b7d318fa923edfcefd3df8f64dae2e9c49d3f,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/866,, 598213565,MDExOlB1bGxSZXF1ZXN0NTk4MjEzNTY1,1271,open,0,Use SQLite conn.interrupt() instead of sqlite_timelimit(),9599,"Refs #1270, #1268, #1249 Before merging this I need to do some more testing (to make sure that expensive queries really are properly cancelled). I also need to delete a bunch of code relating to the old mechanism of cancelling queries. [See comment below: this doesn't actually cancel the query due to a thread-local confusion]",2021-03-22T17:34:20Z,2021-03-22T21:49:27Z,,,a4fd7e5a761523881c031b4fee266a366e1c97bd,,,1,fb2ad7ada0b86a7fe4a576fe23236757c41eb05e,c4f1ec7f33fd7d5b93f0f895dafb5351cc3bfc5b,OWNER,107914493,https://github.com/simonw/datasette/pull/1271,, 295711504,MDExOlB1bGxSZXF1ZXN0Mjk1NzExNTA0,554,closed,0,Fix static mounts using relative paths and prevent traversal exploits,3243482,"While debugging why my static mounts using a relative path (`--static mystatic:rel/path/to/dir`) not working, I noticed that the requests fail no matter what, returning 404 errors. The reason is that datasette tries to prevent traversal exploits by checking if the path is relative to its registered directory. This check fails when the mount is a relative directory, because `/abs/dir/file` obviously not under `dir/file`. https://github.com/simonw/datasette/blob/81fa8b6cdc5457b42a224779e5291952314e8d20/datasette/utils/asgi.py#L303-L306 This also has the consequence of returning any requested file, because when `/abs/dir/../../evil.file` resolves `aiofiles` happily returns it to the client after it resolves the path itself. The solution is to make sure we're checking relativity of paths after they're fully resolved. I've implemented the mentioned changes and also updated the tests.",2019-07-09T11:32:02Z,2019-07-11T16:29:26Z,2019-07-11T16:13:19Z,2019-07-11T16:13:19Z,74ecf8a7cc45cabf369e510c7214f5ed85c8c6d8,,,0,fa7ddea3ea6c9378bee7d5f5c93fe05d735a0afb,81fa8b6cdc5457b42a224779e5291952314e8d20,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/554,, 235194286,MDExOlB1bGxSZXF1ZXN0MjM1MTk0Mjg2,390,closed,0,tiny typo in customization docs,418191,was looking to add some custom templates to my use of datasette and saw this small typo.,2018-12-01T13:44:42Z,2019-12-19T02:30:35Z,2018-12-16T21:32:56Z,2018-12-16T21:32:56Z,ed78922ae38b51513319b60ac39990b7c2aca810,,,0,f8c01373dad3b8dcd10577a2e541f88ef34c77bc,3de8fac1d322cbab6c8c55899e0e8511b36337d0,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/390,, 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,, 275909197,MDExOlB1bGxSZXF1ZXN0Mjc1OTA5MTk3,450,closed,0,Coalesce hidden table count to 0,45057,"For some reason I'm hitting a `None` here with a FTS table. I'm not entirely sure why but this makes the logic work the same as with non-hidden tables.",2019-05-04T09:37:10Z,2019-05-11T18:10:09Z,2019-05-11T18:10:09Z,,5918489a2a2f14b58c5c71773a9d4fb6bb0e3e0a,,,0,f81d9df985e8d054fc16ab91f72878fe71656354,55643430f7ac8d27e99b00e7cf79db741003e811,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/450,, 928210171,PR_kwDOBm6k_c43U1z7,1740,closed,0,chore: Set permissions for GitHub actions,172697," Restrict the GitHub token permissions only to the required ones; this way, even if the attackers will succeed in compromising your workflow, they won’t be able to do much. - Included permissions for the action. https://github.com/ossf/scorecard/blob/main/docs/checks.md#token-permissions https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions https://docs.github.com/en/actions/using-jobs/assigning-permissions-to-jobs [Keeping your GitHub Actions and workflows secure Part 1: Preventing pwn requests](https://securitylab.github.com/research/github-actions-preventing-pwn-requests/) Signed-off-by: naveen <172697+naveensrinivasan@users.noreply.github.com> ",2022-05-05T01:03:08Z,2022-05-31T19:28:41Z,2022-05-31T19:28:40Z,2022-05-31T19:28:40Z,2e9751672d4fe329b3c359d5b7b1992283185820,,,0,f76fce5fd2bacadf2f46656e32093c6d639270c9,280ff372ab30df244f6c54f6f3002da57334b3d7,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/1740,, 655726387,MDExOlB1bGxSZXF1ZXN0NjU1NzI2Mzg3,1347,closed,0,Test docker platform blair only,10801138,,2021-05-28T02:47:09Z,2021-05-28T02:47:28Z,2021-05-28T02:47:28Z,,e755dd8c8cf7149046a8b5fd44aec07c4b2416d3,,,0,f730725fd260ba6578c472c344269d5d5df4e650,7b106e106000713bbee31b34d694b3dadbd4818c,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/1347,, 1034576054,PR_kwDOBm6k_c49qmC2,1792,closed,0,Test `--load-extension` in GitHub Actions,9599,"Refs: - #1789 ---- :books: Documentation preview :books:: https://datasette--1792.org.readthedocs.build/en/1792/ ",2022-08-23T18:43:29Z,2022-08-24T00:11:46Z,2022-08-24T00:11:45Z,2022-08-24T00:11:45Z,ba35105eee2d3ba620e4f230028a02b2e2571df2,,,0,f61cfb77056e2ee39ae827889c005b1e44c81165,456dc155d491a009942ace71a4e1827cddc6b93d,OWNER,107914493,https://github.com/simonw/datasette/pull/1792,, 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,, 687298112,MDExOlB1bGxSZXF1ZXN0Njg3Mjk4MTEy,1392,closed,0,Update deploying.rst,80737,Use same base url for Apache as in the example,2021-07-11T08:43:19Z,2021-07-13T17:42:31Z,2021-07-13T17:42:27Z,2021-07-13T17:42:27Z,4054e96a3914e821d0880a40a7284aaa9db1eaaa,,,0,f57a8ab0905bb85a9334fe4bf87e2cd736c78cbb,f83c84fd51d144036924ae77d99f12b0a69e7e6f,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/1392,, 1308472112,PR_kwDOBm6k_c5N_bMw,2056,open,0,GitHub Action to lint Python code with ruff,3709715,"[Ruff](https://beta.ruff.rs/) supports [over 500 lint rules](https://beta.ruff.rs/docs/rules) and can be used to replace [Flake8](https://pypi.org/project/flake8/) (plus dozens of plugins), [isort](https://pypi.org/project/isort/), [pydocstyle](https://pypi.org/project/pydocstyle/), [yesqa](https://github.com/asottile/yesqa), [eradicate](https://pypi.org/project/eradicate/), [pyupgrade](https://pypi.org/project/pyupgrade/), and [autoflake](https://pypi.org/project/autoflake/), all while executing (in Rust) tens or hundreds of times faster than any individual tool. The ruff Action uses minimal steps to run in ~5 seconds, rapidly providing intuitive GitHub Annotations to contributors. ![image](https://user-images.githubusercontent.com/3709715/223758136-afc386d2-70aa-4eff-953a-2c2d82ceea23.png) ---- :books: Documentation preview :books:: https://datasette--2056.org.readthedocs.build/en/2056/ ",2023-04-11T06:41:27Z,2023-04-15T14:24:46Z,,,608507fe15679221ff74d437339ee66e3d21a7ae,,,0,f53b78029321cd9bd5661accb5bd043d62e35a85,5890a20c374fb0812d88c9b0ef26a838bfa06c76,FIRST_TIME_CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/2056,, 1220379312,PR_kwDOBm6k_c5IvYKw,2008,open,0,array facet: don't materialize unnecessary columns,193185,"The presence of `inner.*` causes SQLite to materialize a row with all the columns. Those columns will be discarded later. Instead, we can select only the column we'll use. This lets SQLite's optimizer realize that the other columns in the CTE definition aren't needed. On a test table with 278K rows, 98K of which had an array, this speeds up the facet calculation from 4 sec to 1 sec. ---- :books: Documentation preview :books:: https://datasette--2008.org.readthedocs.build/en/2008/ ",2023-01-28T19:33:40Z,2023-01-29T18:17:40Z,,,0eda5a57ead9bda8be4c9e5cd2fdb9f22e69222e,,,0,f529a3001d35a114d2e622dcc7913c4c25a95ed8,0b4a28691468b5c758df74fa1d72a823813c96bf,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/2008,, 1167432070,PR_kwDOBm6k_c5FlZmG,1960,closed,0,Port as many tests as possible to async def tests against ds_client,9599,"Refs: - #1959 ---- :books: Documentation preview :books:: https://datasette--1960.org.readthedocs.build/en/1960/ ",2022-12-15T21:45:53Z,2022-12-17T21:47:56Z,2022-12-17T21:47:55Z,2022-12-17T21:47:55Z,89cffcf14cda830871c8ee81742eaa1e2dff017b,,,0,f42bca8fc2657cecde05eca644c28fac7c28101f,0b68996cc511b3a801f0cd0157bd66332d75f46f,OWNER,107914493,https://github.com/simonw/datasette/pull/1960,, 274174614,MDExOlB1bGxSZXF1ZXN0Mjc0MTc0NjE0,437,closed,0,Add inspect and prepare_sanic hooks,45057,"This adds two new plugin hooks: The `inspect` hook allows plugins to add data to the inspect dictionary. The `prepare_sanic` hook allows plugins to hook into the web router. I've attached a warning to this hook in the docs in light of #272 but I want this hook now... On quick inspection, I don't think it's worthwhile to try and make this hook independent of the web framework (but it looks like Starlette would make the hook implementation a bit nicer). Ref #14",2019-04-28T11:53:34Z,2019-06-24T16:38:57Z,2019-06-24T16:38:56Z,,7aeaac7c478acf572bda61bdaa6ac3247dc15811,,,0,f33a0a63a7442f0b665320ac3e2eb55de315f1f7,11b352b4d52fd02a422776edebb14f12e4994d3b,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/437,, 501579088,MDExOlB1bGxSZXF1ZXN0NTAxNTc5MDg4,1017,closed,0,"Update janus requirement from <0.6,>=0.4 to >=0.4,<0.7",27856297,"Updates the requirements on [janus](https://github.com/aio-libs/janus) to permit the latest version.
Changelog

Sourced from janus's changelog.

Changes

0.5.0 (2020-04-23)

0.4.0 (2018-07-28)

0.3.2 (2018-07-06)

0.3.1 (2018-01-30)

0.3.0 (2017-02-21)

0.2.4 (2016-12-05)

0.2.3 (2016-07-12)

0.2.2 (2016-07-11)

0.2.1 (2016-03-24)

Commits

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language - `@dependabot badge me` will comment on this PR with code to add a ""Dependabot enabled"" badge to your readme Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com): - Update frequency (including time of day and day of week) - Pull request limits (per update run and/or open at any time) - Out-of-range updates (receive only lockfile updates, if desired) - Security updates (receive only security updates, if desired)
",2020-10-12T13:29:46Z,2020-10-14T21:52:08Z,2020-10-14T21:52:07Z,2020-10-14T21:52:07Z,7f2edb5dd2074dce0090659021991695a984844b,,,0,f30d9da06b02a53f880b6fe7a7af9d3ff719dede,acf07a67722aa74828744726187690b59d342494,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/1017,, 421491810,MDExOlB1bGxSZXF1ZXN0NDIxNDkxODEw,768,closed,0,Use dirs_exist_ok=True,9599,Refs #744,2020-05-21T17:53:44Z,2020-05-27T20:21:56Z,2020-05-21T17:53:51Z,2020-05-21T17:53:51Z,cee671a58f417f827d1735b1abaa40716534ea67,,5471110,0,f2e0a558238a34dc482803762de2509474a178c6,faea5093b865031f650da7da6539430f732f511a,OWNER,107914493,https://github.com/simonw/datasette/pull/768,, 1123392399,PR_kwDOBm6k_c5C9ZuP,1893,closed,0,"Upgrade to CodeMirror 6, add SQL autocomplete",95570,"In an effort to get closer to table / column autocomplete I took a shot at https://github.com/simonw/datasette/issues/1796. I haven't done a lot of testing but would be curious if this fixes some of the concerns raised in https://github.com/simonw/datasette/issues/1796#issue-1355148385 for example. Done: * Changed to bundling using rollup as per https://codemirror.net/examples/bundle/ * Restored a fromTextArea-like function from https://codemirror.net/docs/migration/ * Removed old JS and CSS files (no external CSS needed anymore as per https://codemirror.net/examples/styling/) * Updated instructions for building the bundle Not done: * cmResize had an error, so commented out the resize handle * Add extraKeys option for shift+enter and tab ---- :books: Documentation preview :books:: https://datasette--1893.org.readthedocs.build/en/1893/ ",2022-11-15T20:52:35Z,2022-11-16T23:54:02Z,2022-11-16T23:49:06Z,2022-11-16T23:49:06Z,ae11fa5887e03376704c22e5d0969c1e0642d8d8,,,0,f254be4b38936e95e7a7f25866e7c6b0520db96f,6f610e1d94b7b8ec605b5b7fcb01537f6adf9c5b,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/1893,, 1243080434,PR_kwDOBm6k_c5KF-by,2026,open,0,Avoid repeating primary key columns if included in _col args,8513,"...while maintaining given order. Fixes #1975 (if I'm understanding correctly). ---- :books: Documentation preview :books:: https://datasette--2026.org.readthedocs.build/en/2026/ ",2023-02-16T04:16:25Z,2023-02-16T04:16:41Z,,,ad2bfc72186e7af2244a6f27e02754f4c2f64910,,,0,f15adf1d6211e05250e5492826dd3f8e8e328077,0b4a28691468b5c758df74fa1d72a823813c96bf,FIRST_TIME_CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/2026,, 1259276997,PR_kwDOBm6k_c5LDwrF,2031,open,0,Expand foreign key references in row view as well,82332573,"Unlike the table view, the single row view does not resolve foreign key references into labels. This patch extracts the foreign key reference expansion code from TableView.data() into a standalone function that is then called by both TableView.data() and RowView.data(). ---- :books: Documentation preview :books:: https://datasette--2031.org.readthedocs.build/en/2031/ ",2023-03-01T18:43:09Z,2023-03-24T18:35:25Z,,,ee7aec6175d0934c0420002529d21a767d2a527d,,,0,ef25867492ce6eb69492aa37fcde98936a95365c,3feed1f66e2b746f349ee56970a62246a18bb164,FIRST_TIME_CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/2031,, 1592615419,PR_kwDOBm6k_c5e7WH7,2206,open,0,Bump the python-packages group with 1 update,49699333,"Bumps the python-packages group with 1 update: [black](https://github.com/psf/black).
Release notes

Sourced from black's releases.

23.11.0

Highlights

Stable style

Preview style

Configuration

Performance

Integrations

23.10.1

Highlights

Preview style

... (truncated)

Changelog

Sourced from black's changelog.

23.11.0

Highlights

Stable style

Preview style

Configuration

Performance

Integrations

23.10.1

Highlights

... (truncated)

Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=black&package-manager=pip&previous-version=23.9.1&new-version=23.11.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore ` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore ` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore ` will remove the ignore condition of the specified dependency and ignore conditions
---- :books: Documentation preview :books:: https://datasette--2206.org.readthedocs.build/en/2206/ ",2023-11-08T13:18:56Z,2023-12-08T13:46:24Z,,,57f4b139eaf0a394606b76c6281470c42c116dfa,,,0,eec10df01afbb4489feb7c97544fa10db041e6b0,452a587e236ef642cbc6ae345b58767ea8420cb5,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/2206,, 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,, 1303909190,PR_kwDOBm6k_c5NuBNG,2053,closed,0,WIP new JSON for queries,9599,"Refs: - #2049 TODO: - [x] Read queries JSON - Implement error display with `""ok"": false` and an errors key - Read queries HTML - Read queries other formats (plugins) - Canned read queries (dispatched to from table) - Write queries (a canned query thing) - Implement different shapes, refactoring to share code with table - Implement a sensible subset of extras, also refactoring to share code with table - Get all tests passing ---- :books: Documentation preview :books:: https://datasette--2053.org.readthedocs.build/en/2053/ ",2023-04-05T23:26:15Z,2023-07-26T18:28:59Z,2023-07-26T18:26:45Z,,c69f7961e42c1103e281ca061edbe041e212cbb0,,,1,ee24ea94525ace221f1b4d141d01cf56410c2c6d,dda99fc09fb0b5523948f6d481c6c051c1c7b5de,OWNER,107914493,https://github.com/simonw/datasette/pull/2053,, 737690951,PR_kwDOBm6k_c4r-EVH,1475,open,0,feat: allow joins using _through in both directions,5268174,"Currently the `_through` clause can only work if the FK relationship is defined in a specific direction. I don't think there is any reason for this limitation, as an FK allows joining in both directions. This is an admittedly hacky change to implement bidirectional joins using `_through`. It does work for our use-case, but I don't know if there are other implications that I haven't thought of. Also if this change is desirable we probably want to make the code a little nicer.",2021-09-20T15:28:20Z,2021-09-20T15:28:20Z,,,aa2f1c103730c0ede4ab67978288d91bbe1e00a6,,,0,edf3c4c3271c8f13ab4c28ad88b817e115477e41,b28b6cd2fe97f7e193a235877abeec2c8eb0a821,FIRST_TIME_CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/1475,, 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,, 498104830,MDExOlB1bGxSZXF1ZXN0NDk4MTA0ODMw,994,closed,0,Run tests against Python 3.9,9599,,2020-10-05T20:40:13Z,2020-10-09T16:22:51Z,2020-10-09T16:22:50Z,2020-10-09T16:22:50Z,6e091b14b651d67e0ff41a353d36bbeb1d8ba235,,,0,ecba5d257ef4218a98b5903d856a4d7c0382f43d,e807c4eac0e85ae15e013379b0dde1d797f1377d,OWNER,107914493,https://github.com/simonw/datasette/pull/994,, 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,, 893039755,PR_kwDOBm6k_c41OrSL,1693,closed,0,Bump black from 22.1.0 to 22.3.0,49699333,"Bumps [black](https://github.com/psf/black) from 22.1.0 to 22.3.0.
Release notes

Sourced from black's releases.

22.3.0

Preview style

Configuration

Documentation

Integrations

Output

Packaging

Parser

Changelog

Sourced from black's changelog.

22.3.0

Preview style

Configuration

Documentation

Integrations

Output

Packaging

Parser

Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=black&package-manager=pip&previous-version=22.1.0&new-version=22.3.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
",2022-03-29T13:11:09Z,2022-06-28T13:11:38Z,2022-06-28T13:11:36Z,,17e058e286104e9b9180df72c61eb9218f376c4d,,,0,ec2d1e47dc39dd1db2048cd0a001aa9e4be20812,1d33fd03b3c211e0f48a8f3bde83880af89e4e69,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/1693,, 181642114,MDExOlB1bGxSZXF1ZXN0MTgxNjQyMTE0,205,closed,0,Support filtering with units and more,45057,"The first commit: * Adds units to exported JSON * Adds units key to metadata skeleton * Adds some docs for units The second commit adds filtering by units by the first method I mentioned in #203: ![image](https://user-images.githubusercontent.com/45057/38767463-7193be16-3fd9-11e8-8a5f-ac4159415c6d.png) [Try it here](https://wtr-api.herokuapp.com/wtr-663ea99/license_frequency?frequency__gt=50GHz&height__lt=50ft). I think it integrates pretty neatly. The third commit adds support for registering custom units with Pint from metadata.json. Probably pretty niche, but I need decibels!",2018-04-14T10:47:51Z,2018-04-14T15:24:04Z,2018-04-14T15:24:04Z,,ed059c70e87a2930206652621e23a55167aa57c1,,,0,eb3a37c34813ecbbfdae015305fec1f2a4ec27a5,6b15a53cd3cd40880a5e2d38827d5fac10e4bb5f,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/205,, 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,, 354869391,MDExOlB1bGxSZXF1ZXN0MzU0ODY5Mzkx,652,closed,0,Quick (and uninformed and perhaps misguided) attempt to add a url for hosting datasette at a particular host/URI,132978,"As usual, I don't really know what I'm doing... so this is just a suggested approach. I've not written tests, I've not run the tests, I don't know if I've missed some absolute URLs that would need to have the leading slash dropped. BUT, I tested it with `--config base_url:http://127.0.0.1:8001/` on the command line and from what little I know about datasette it's at least working in some obvious cases. My changes are based on what I saw in https://github.com/simonw/datasette/commit/8da2db4b71096b19e7a9ef1929369b8483d448bf (thanks!) I'm happy to be more thorough on this if you think it's worth pursuing. Fixes #394 (he said, optimistically).",2019-12-18T23:37:16Z,2020-03-24T22:14:50Z,2020-03-24T22:14:50Z,,8e674de58c17c89c8a4a90bc3ec6e02151b354e5,,,0,eaa636841e38d40360a74596ef1a0df50f6a86a5,a498d0fe6590f9bdbc4faf9e0dd5faeb3b06002c,NONE,107914493,https://github.com/simonw/datasette/pull/652,, 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 ---- :books: Documentation preview :books:: https://datasette--2080.org.readthedocs.build/en/2080/ ",2023-05-25T23:22:55Z,2023-05-26T00:18:45Z,2023-05-26T00:18:44Z,2023-05-26T00:18:44Z,dda99fc09fb0b5523948f6d481c6c051c1c7b5de,,,0,e990fbc00ef36c022986432e7706b3ad1c9c68a1,b49fa446d683ddcaf6faf2944dacc0d866bf2d70,OWNER,107914493,https://github.com/simonw/datasette/pull/2080,, 679035847,MDExOlB1bGxSZXF1ZXN0Njc5MDM1ODQ3,1386,closed,0,"Update asgiref requirement from <3.4.0,>=3.2.10 to >=3.2.10,<3.5.0",49699333,"Updates the requirements on [asgiref](https://github.com/django/asgiref) to permit the latest version.
Changelog

Sourced from asgiref's changelog.

3.4.0 (2021-06-27)

3.3.4 (2021-04-06)

3.3.3 (2021-04-06)

3.3.2 (2021-04-05)

... (truncated)

Commits

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
",2021-06-28T13:13:07Z,2021-07-11T01:36:19Z,2021-07-11T01:36:18Z,2021-07-11T01:36:18Z,f83c84fd51d144036924ae77d99f12b0a69e7e6f,,,0,e974ed19b09500aecb62252fe7001234d4424ff9,ea627baccf980d7d8ebc9e1ffff1fe34d556e56f,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/1386,, 692596006,MDExOlB1bGxSZXF1ZXN0NjkyNTk2MDA2,1400,closed,0,Bump black from 21.6b0 to 21.7b0,49699333,"Bumps [black](https://github.com/psf/black) from 21.6b0 to 21.7b0.
Release notes

Sourced from black's releases.

21.7b0

Black

Docker

Integrations

Changelog

Sourced from black's changelog.

21.7b0

Black

Docker

Integrations

Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=black&package-manager=pip&previous-version=21.6b0&new-version=21.7b0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
",2021-07-19T13:13:41Z,2021-08-25T01:29:56Z,2021-08-25T01:29:55Z,2021-08-25T01:29:55Z,a1a33bb5822214be1cebd98cd858b2058d91a4aa,,,0,e95c68592346e8602c2d4c68c8c7fef8bfb939c3,c73af5dd72305f6a01ea94a2c76d52e5e26de38b,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/1400,, 1151526508,PR_kwDOBm6k_c5EouZs,1935,closed,0,Bump furo from 2022.9.29 to 2022.12.7,49699333,"Bumps [furo](https://github.com/pradyunsg/furo) from 2022.9.29 to 2022.12.7.
Changelog

Sourced from furo's changelog.

Changelog

2022.12.07 -- Reverent Raspberry

2022.09.29 -- Quaint Quartz

2022.09.15 -- Pragmatic Pistachio

2022.06.21 -- Opulent Opal

2022.06.04.1 -- Naughty Nickel bugfix

2022.06.04 -- Naughty Nickel

... (truncated)

Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=furo&package-manager=pip&previous-version=2022.9.29&new-version=2022.12.7)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
---- :books: Documentation preview :books:: https://datasette--1935.org.readthedocs.build/en/1935/ ",2022-12-07T13:02:57Z,2022-12-08T21:12:08Z,2022-12-08T21:12:07Z,2022-12-08T21:12:07Z,bffefc7db0c25acb03e3b44ff357d50bb7f04dd7,,,0,e8ae41e27c5ec3b0738deb536fc206bd4b9ce823,93ababe6f7150454d2cf278dae08569e505d2a5b,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/1935,, 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,, 255725057,MDExOlB1bGxSZXF1ZXN0MjU1NzI1MDU3,413,closed,0,Update spatialite.rst,28597217,a line of sql added to create the idx_ in the python recipe,2019-02-25T00:08:35Z,2019-03-15T05:06:45Z,2019-03-15T05:06:45Z,2019-03-15T05:06:45Z,9e8c36793bfbb17c2f67371cc7f9aa8b9202fdc4,,,0,e87565604a169a34eadadfc99e96a8f503123e8c,1f91065b20cbc691f464bccfd8eef7d1ce4b14a8,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/413,, 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,, 1069033742,PR_kwDOBm6k_c4_uCkO,1825,closed,0,Add documentation for serving via OpenRC,1048831,"I also removed a few lines which felt redundant given the following section dedicated to running behind a nginx proxy. ---- :books: Documentation preview :books:: https://datasette--1825.org.readthedocs.build/en/1825/ ",2022-09-27T19:00:56Z,2022-09-28T04:21:37Z,2022-09-28T04:21:37Z,2022-09-28T04:21:37Z,984b1df12cf19a6731889fc0665bb5f622e07b7c,,,0,e7e96dc2ef2b76338786f1b911a9753bb8bfc297,5f9f567acbc58c9fcd88af440e68034510fb5d2b,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/1825,, 511549374,MDExOlB1bGxSZXF1ZXN0NTExNTQ5Mzc0,1059,closed,0,"Update aiofiles requirement from <0.6,>=0.4 to >=0.4,<0.7",27856297,"Updates the requirements on [aiofiles](https://github.com/Tinche/aiofiles) to permit the latest version.
Commits

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language - `@dependabot badge me` will comment on this PR with code to add a ""Dependabot enabled"" badge to your readme Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com): - Update frequency (including time of day and day of week) - Pull request limits (per update run and/or open at any time) - Out-of-range updates (receive only lockfile updates, if desired) - Security updates (receive only security updates, if desired)
",2020-10-28T13:32:40Z,2020-10-28T17:08:29Z,2020-10-28T17:08:28Z,2020-10-28T17:08:28Z,879617265262024edd93722adcdcb6c21e57f5f7,,,0,e46327a745c5a4130b65bf340d19dccc76441841,7d9fedc176717a7e3d22a96575ae0aada5a65440,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/1059,, 564608264,MDExOlB1bGxSZXF1ZXN0NTY0NjA4MjY0,1211,closed,0,Use context manager instead of plain open,4488943,"Context manager with open closes the files after usage. Fixes: https://github.com/simonw/datasette/issues/1208 When the object is already a pathlib.Path i used read_text write_text functions In some cases pathlib.Path.open were used in context manager, it is basically the same as builtin open. Tests are passing: 850 passed, 5 xfailed, 10 xpassed",2021-01-31T07:58:10Z,2021-03-11T16:15:50Z,2021-03-11T16:15:50Z,2021-03-11T16:15:49Z,8e18c7943181f228ce5ebcea48deb59ce50bee1f,,,0,e33ccaaafbe9a16b8339a3bf4c0ae7b83354570c,dde3c500c73ace33529672f7d862b76753d309cc,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/1211,, 154246816,MDExOlB1bGxSZXF1ZXN0MTU0MjQ2ODE2,145,closed,0,Fix pytest version conflict,9599,"https://travis-ci.org/simonw/datasette/jobs/305929426 pkg_resources.VersionConflict: (pytest 3.2.1 (/home/travis/virtualenv/python3.5.3/lib/python3.5/site-packages), Requirement.parse('pytest==3.2.3'))",2017-11-22T20:15:34Z,2017-11-22T20:17:54Z,2017-11-22T20:17:52Z,2017-11-22T20:17:52Z,f96e55bce55d26c4d5b198edc536e1b8e9bbea43,,,0,e319478c4a34fb5afbff2b2a8c3b9ef9f859bb10,fa8eb0bf1b113ab17ede9cd107b7c3bd5cde39c3,OWNER,107914493,https://github.com/simonw/datasette/pull/145,, 1477525578,PR_kwDOBm6k_c5YEUBK,2141,closed,0,Bump the python-packages group with 1 update,49699333,"Bumps the python-packages group with 1 update: [blacken-docs](https://github.com/asottile/blacken-docs).
Changelog

Sourced from blacken-docs's changelog.

1.16.0 (2023-08-16)

  • Allow Markdown fence options.

    Thanks to initial work from Matthew Anderson in PR [#246](https://github.com/asottile/blacken-docs/issues/246) <https://github.com/adamchainz/blacken-docs/pull/246>__.

  • Expand Markdown detection to all Python language names from Pygments: py, sage, python3, py3, and numpy.

  • Preserve leading whitespace lines in reStructuredText code blocks.

    Thanks to Julianus Pfeuffer for the report in Issue [#217](https://github.com/asottile/blacken-docs/issues/217) <https://github.com/adamchainz/blacken-docs/issues/217>__.

  • Use exit code 2 to indicate errors from Black, whilst exit code 1 remains for “files have been formatted”.

    Thanks to Julianus Pfeuffer for the report in Issue [#218](https://github.com/asottile/blacken-docs/issues/218) <https://github.com/adamchainz/blacken-docs/issues/218>__.

  • Support passing the --preview option through to Black, to select the future style.

  • Remove language_version from .pre-commit-hooks.yaml. This change allows default_language_version in ``.pre-commit-config.yaml` to take precedence.

    Thanks to Aneesh Agrawal in PR [#258](https://github.com/asottile/blacken-docs/issues/258) <https://github.com/adamchainz/blacken-docs/pull/258>__.

Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=blacken-docs&package-manager=pip&previous-version=1.15.0&new-version=1.16.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore dependency` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore dependency` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore ` will remove the ignore condition of the specified dependency and ignore conditions
---- :books: Documentation preview :books:: https://datasette--2141.org.readthedocs.build/en/2141/ ",2023-08-16T13:47:35Z,2023-08-17T13:07:48Z,2023-08-17T13:07:45Z,,dcd7926e18195d4f301a89de73711f58dcc76c95,,,0,e2be94a4e064464e1050964bcf41807dbfd9d809,943df09dcca93c3b9861b8c96277a01320db8662,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/2141,, 327541046,MDExOlB1bGxSZXF1ZXN0MzI3NTQxMDQ2,595,closed,0,bump uvicorn to 0.9.0 to be Python-3.8 friendly,4312421,"as uvicorn-0.9 is needed to get websockets-8.0.2, which is needed to have Python-3.8 compatibility",2019-10-13T10:00:04Z,2019-11-12T04:46:48Z,2019-11-12T04:46:48Z,,5a7185bcd15aab28e86338b3771c25af13a94a4c,,,0,e1d92ea94ca8f14879ef280cb7dadab7eed76e9c,fffd69ec031b83f46680f192ba57a27f0d1f0b8a,NONE,107914493,https://github.com/simonw/datasette/pull/595,, 1507122571,PR_kwDOBm6k_c5Z1N2L,2181,closed,0,actors_from_ids plugin hook and datasette.actors_from_ids() method,9599,"Refs: - #2180 This plugin hook is feature complete - including documentation and tests. I'm not going to land it in Datasette `main` until we've used it at least once though, which should happen promptly in development for [Datasette Cloud](https://www.datasette.cloud/). ---- :books: Documentation preview :books:: https://datasette--2181.org.readthedocs.build/en/2181/ ",2023-09-08T01:51:07Z,2023-09-08T04:24:00Z,2023-09-08T04:23:59Z,2023-09-08T04:23:59Z,b645174271aa08e8ca83b27ff83ce078ecd15da2,,,0,e1c5a9d92b7677eaf9eff58d05badb39d078d1bd,c26370485a4fd4bf130da051be9163d92c57f24f,OWNER,107914493,https://github.com/simonw/datasette/pull/2181,, 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,, 505453900,MDExOlB1bGxSZXF1ZXN0NTA1NDUzOTAw,1030,open,0,Make `package` command deal with a configuration directory argument,299380,Currently if we run `datasette package` on a configuration directory we'll get an exception when we try to hard link to the directory. This PR copies the tree and makes the Dockerfile run inspect on all *.db files.,2020-10-18T11:07:02Z,2020-10-19T08:01:51Z,,,124142e4d2710525b09ff2bd2a7a787cbed163a4,,,0,e0825334692967fec195e104cb6aa11095807a8e,c37a0a93ecb847e66cfe7b6f9452ba210fcae91b,FIRST_TIME_CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/1030,, 630578735,MDExOlB1bGxSZXF1ZXN0NjMwNTc4NzM1,1318,closed,0,Bump black from 21.4b2 to 21.5b0,49699333,"Bumps [black](https://github.com/psf/black) from 21.4b2 to 21.5b0.
Release notes

Sourced from black's releases.

21.5b0

Black

  • Set --pyi mode if --stdin-filename ends in .pyi (#2169)
  • Stop detecting target version as Python 3.9+ with pre-PEP-614 decorators that are being called but with no arguments (#2182)

Black-Primer

  • Add --no-diff to black-primer to suppress formatting changes (#2187)
Changelog

Sourced from black's changelog.

21.5b0

Black

  • Set --pyi mode if --stdin-filename ends in .pyi (#2169)
  • Stop detecting target version as Python 3.9+ with pre-PEP-614 decorators that are being called but with no arguments (#2182)

Black-Primer

  • Add --no-diff to black-primer to suppress formatting changes (#2187)
Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=black&package-manager=pip&previous-version=21.4b2&new-version=21.5b0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
",2021-05-05T13:07:51Z,2021-05-11T13:12:32Z,2021-05-11T13:12:31Z,,e864f5420abb7a5d135f8fe470183786b577ce9a,,,0,e06c09911be52202940808d7a08df2e9b71b3af2,1b697539f5b53cec3fe13c0f4ada13ba655c88c7,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/1318,, 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,, 727436404,MDExOlB1bGxSZXF1ZXN0NzI3NDM2NDA0,1458,closed,0,Rework the `--static` documentation a bit,51016,"Per https://github.com/simonw/datasette/issues/1457, I was confused by the current docs and took a few minutes to sort out what the right combination of locations was. This is a PR that differentiates the docs to split out `/static/` in URL from `--static` option and `./static/` path. Not wedded to the details in any way, happy to change to suit. Fixes #1457.",2021-09-05T17:08:48Z,2021-10-15T13:24:29Z,2021-10-14T18:39:55Z,2021-10-14T18:39:55Z,0fdbf004843850f200e077a3c87427fe16c18b85,,,0,e00c3a274d073c09707f4b6edd2ed652efe03918,d57ab156b35ec642549fb69d08279850065027d2,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/1458,, 1294011106,PR_kwDOBm6k_c5NIQri,2047,closed,0,Bump black from 22.12.0 to 23.3.0,49699333,"Bumps [black](https://github.com/psf/black) from 22.12.0 to 23.3.0.
Release notes

Sourced from black's releases.

23.3.0

Highlights

This release fixes a longstanding confusing behavior in Black's GitHub action, where the version of the action did not determine the version of Black being run (issue #3382). In addition, there is a small bug fix around imports and a number of improvements to the preview style.

Please try out the preview style with black --preview and tell us your feedback. All changes in the preview style are expected to become part of Black's stable style in January 2024.

Stable style

  • Import lines with # fmt: skip and # fmt: off no longer have an extra blank line added when they are right after another import line (#3610)

Preview style

  • Add trailing commas to collection literals even if there's a comment after the last entry (#3393)
  • async def, async for, and async with statements are now formatted consistently compared to their non-async version. (#3609)
  • with statements that contain two context managers will be consistently wrapped in parentheses (#3589)
  • Let string splitters respect East Asian Width (#3445)
  • Now long string literals can be split after East Asian commas and periods ( U+3001 IDEOGRAPHIC COMMA, U+3002 IDEOGRAPHIC FULL STOP, & U+FF0C FULLWIDTH COMMA) besides before spaces (#3445)
  • For stubs, enforce one blank line after a nested class with a body other than just ... (#3564)
  • Improve handling of multiline strings by changing line split behavior (#1879)

Parser

  • Added support for formatting files with invalid type comments (#3594)

Integrations

  • Update GitHub Action to use the version of Black equivalent to action's version if version input is not specified (#3543)
  • Fix missing Python binary path in autoload script for vim (#3508)

Documentation

  • Document that only the most recent release is supported for security issues; vulnerabilities should be reported through Tidelift (#3612)

... (truncated)

Changelog

Sourced from black's changelog.

23.3.0

Highlights

This release fixes a longstanding confusing behavior in Black's GitHub action, where the version of the action did not determine the version of Black being run (issue #3382). In addition, there is a small bug fix around imports and a number of improvements to the preview style.

Please try out the preview style with black --preview and tell us your feedback. All changes in the preview style are expected to become part of Black's stable style in January 2024.

Stable style

  • Import lines with # fmt: skip and # fmt: off no longer have an extra blank line added when they are right after another import line (#3610)

Preview style

  • Add trailing commas to collection literals even if there's a comment after the last entry (#3393)
  • async def, async for, and async with statements are now formatted consistently compared to their non-async version. (#3609)
  • with statements that contain two context managers will be consistently wrapped in parentheses (#3589)
  • Let string splitters respect East Asian Width (#3445)
  • Now long string literals can be split after East Asian commas and periods ( U+3001 IDEOGRAPHIC COMMA, U+3002 IDEOGRAPHIC FULL STOP, & U+FF0C FULLWIDTH COMMA) besides before spaces (#3445)
  • For stubs, enforce one blank line after a nested class with a body other than just ... (#3564)
  • Improve handling of multiline strings by changing line split behavior (#1879)

Parser

  • Added support for formatting files with invalid type comments (#3594)

Integrations

  • Update GitHub Action to use the version of Black equivalent to action's version if version input is not specified (#3543)
  • Fix missing Python binary path in autoload script for vim (#3508)

Documentation

  • Document that only the most recent release is supported for security issues; vulnerabilities should be reported through Tidelift (#3612)

... (truncated)

Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=black&package-manager=pip&previous-version=22.12.0&new-version=23.3.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
---- :books: Documentation preview :books:: https://datasette--2047.org.readthedocs.build/en/2047/ ",2023-03-29T06:09:06Z,2023-03-29T06:12:21Z,2023-03-29T06:12:05Z,2023-03-29T06:12:05Z,30c88e3570ba3febf232c7ad429d7045ea8a9915,,,0,dff8cf08625bbf4526b400f53da9f3ceba62fa97,bbd5489dbc440c67c69396e7f752584a32d2cfbe,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/2047,, 1372714762,PR_kwDOBm6k_c5R0fcK,2082,open,0,Catch query interrupted on facet suggest row count,10843208,"Just like facet's `suggest()` is trapping `QueryInterrupted` for facet columns, we also need to trap `get_row_count()`, which can reach timeout if database tables are big enough. I've included `get_columns()` inside the block as that's just another query, despite it's a really cheap one and might never raise the exception. ---- :books: Documentation preview :books:: https://datasette--2082.org.readthedocs.build/en/2082/ ",2023-05-31T18:42:46Z,2023-05-31T18:45:26Z,,,eadc26004d50f38f28b032056821ba319c9f2e87,,,0,dfe99af36c11b88ffcb5ca602d72cee1b8acd8bc,dda99fc09fb0b5523948f6d481c6c051c1c7b5de,FIRST_TIME_CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/2082,, 820898460,PR_kwDOBm6k_c4w7eqc,1593,closed,0,"Update pytest-asyncio requirement from <0.17,>=0.10 to >=0.10,<0.18",49699333,"Updates the requirements on [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) to permit the latest version.
Release notes

Sourced from pytest-asyncio's releases.

pytest-asyncio 0.17.0


title: 'pytest-asyncio: pytest support for asyncio'

pytest-asyncio is an Apache2 licensed library, written in Python, for testing asyncio code with pytest.

asyncio code is usually written in the form of coroutines, which makes it slightly more difficult to test using normal testing tools. pytest-asyncio provides useful fixtures and markers to make testing easier.

@pytest.mark.asyncio
async def test_some_asyncio_code():
    res = await library.do_something()
    assert b"expected result" == res

pytest-asyncio has been strongly influenced by pytest-tornado.

Features

  • fixtures for creating and injecting versions of the asyncio event loop
  • fixtures for injecting unused tcp/udp ports
  • pytest markers for treating tests as asyncio coroutines
  • easy testing with non-default event loops
  • support for [async def]{.title-ref} fixtures and async generator fixtures
  • support auto mode to handle all async fixtures and tests automatically by asyncio; provide strict mode if a test suite should work with different async frameworks simultaneously, e.g. asyncio and trio.

Installation

... (truncated)

Commits

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
",2022-01-13T13:11:50Z,2022-02-07T13:13:24Z,2022-02-07T13:13:23Z,,750b3fa430a30ce5e44f146ffaa390937090db80,,,0,df73ebb0c9a6e1d77ec08399608eb1422d43a779,8c401ee0f054de2f568c3a8302c9223555146407,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/1593,, 152870030,MDExOlB1bGxSZXF1ZXN0MTUyODcwMDMw,104,closed,0,[WIP] Add publish to heroku support,21148," Refs #90 ",2017-11-15T19:56:22Z,2017-11-21T20:55:05Z,2017-11-21T20:55:05Z,2017-11-21T20:55:05Z,e47117ce1d15f11246a3120aa49de70205713d05,,,0,de42240afd1e3829fd21cbe77a89ab0eaab20d78,0331666e346c68b86de4aa19fbb37f3a408d37ca,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/104,, 712346199,MDExOlB1bGxSZXF1ZXN0NzEyMzQ2MTk5,1433,closed,0,"Update trustme requirement from <0.9,>=0.7 to >=0.7,<0.10",49699333,"Updates the requirements on [trustme](https://github.com/python-trio/trustme) to permit the latest version.
Commits

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
",2021-08-13T13:10:24Z,2021-08-25T01:29:27Z,2021-08-25T01:29:26Z,2021-08-25T01:29:26Z,5161422b7fa249c6b7d6dc47ec6f483d3fdbd170,,,0,ddba6cc0f74a6cda31e621889f5055fe8687d446,2883098770fc66e50183b2b231edbde20848d4d6,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/1433,, 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,, 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,, 1216059840,PR_kwDOBm6k_c5Ie5nA,2004,open,0,"use single quotes for string literals, fixes #2001",193185,"This modernizes some uses of double quotes for string literals to use only single quotes, fixes simonw/datasette#2001 While developing it, I manually enabled the stricter mode by using the code snippet at https://gist.github.com/cldellow/85bba507c314b127f85563869cd94820 I think that code snippet isn't generally safe/portable, so I haven't tried to automate it in the tests. ---- :books: Documentation preview :books:: https://datasette--2004.org.readthedocs.build/en/2004/ ",2023-01-25T05:08:45Z,2023-02-01T06:37:18Z,,,f678bfc05913a4b5ecf0c4cebe9ca8329c7d4a21,,,0,dca7634c274e71fae0d95ea4ff1dfd987b9af63c,e4ebef082de90db4e1b8527abc0d582b7ae0bc9d,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/2004,, 163523976,MDExOlB1bGxSZXF1ZXN0MTYzNTIzOTc2,180,closed,0,make html title more readable in query template,56477,tiny tweak to make this easier to visually parse—I think it matches your style in other templates,2018-01-17T18:56:03Z,2018-04-03T16:03:38Z,2018-04-03T15:24:05Z,2018-04-03T15:24:05Z,446d47fdb005b3776bc06ad8d1f44b01fc2e938b,,,0,dc900b2f587c839e97389aaca70140fb06b4d40b,56623e48da5412b25fb39cc26b9c743b684dd968,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/180,, 508719567,MDExOlB1bGxSZXF1ZXN0NTA4NzE5NTY3,1043,closed,0,Include LICENSE in sdist,45380,"Hi, thanks for `datasette`! This PR adds the `LICENSE` to source distributions, which seems the norm for Apache-2.0 stuff. I noticed the [0.50.2 sdist](https://files.pythonhosted.org/packages/f2/ba/1b5f182c3f1769c0863bcaa77406bdcb81c92e31bb579959c01b1d8951c0/datasette-0.50.2.tar.gz) doesn't ship `LICENSE`, but the 0.5.2 `whl` does, so I'm assuming the intent _is_ to ship... and it's a one-liner! Motivation: It might be a bit of a slog, but I'm looking to see about getting `datasette` (and friends!) available on conda-forge. There are a few missing upstreams (`asgi-csrf`, `python-basecov`, `mergedeep`) and some of the plugins don't even appear to _have_ tarballs (just `whl`!), but the little stuff like licenses are nice to get out handled upstream vs separately grabbing them.",2020-10-23T05:04:12Z,2020-10-26T00:14:57Z,2020-10-23T20:54:35Z,2020-10-23T20:54:35Z,976e5f74aae1fa0d406df6691dc8b5feeebe8788,,,0,dc4129cb37060b52775d96e756f7cdb65ee76bc3,d0cc6f4c32e1f89238ddec782086b3122f445bd4,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/1043,, 1485078422,PR_kwDOBm6k_c5YhH-W,2149,closed,0,"Start a new `datasette.yaml` configuration file, with settings support",15178711,"refs #2093 #2143 This is the first step to implementing the new `datasette.yaml`/`datasette.json` configuration file. - The old `--config` argument is now back, and is the path to a `datasette.yaml` file. Acts like the `--metadata` flag. - The old `settings.json` behavior has been removed. - The `""settings""` key inside `datasette.yaml` defines the same `--settings` flags - Values passed in `--settings` will over-write values in `datasette.yaml` Docs for the Config file is pretty light, not much to add until we add more config to the file. ---- :books: Documentation preview :books:: https://datasette--2149.org.readthedocs.build/en/2149/ ",2023-08-22T16:24:16Z,2023-08-23T01:26:11Z,2023-08-23T01:26:11Z,2023-08-23T01:26:11Z,17ec309e14f9c2e90035ba33f2f38ecc5afba2fa,,,0,db720cd603def51f1d0f074a16d186779a962ea7,943df09dcca93c3b9861b8c96277a01320db8662,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/2149,, 290971295,MDExOlB1bGxSZXF1ZXN0MjkwOTcxMjk1,524,closed,0,"Sort commits using isort, refs #516",9599,Also added a lint unit test to ensure they stay sorted. #516,2019-06-24T05:04:48Z,2023-08-23T01:31:08Z,2023-08-23T01:31:08Z,,4e92ebe00a058e02b2d7543cff60ac2f78aa97c7,,,0,dafae70ee7f74ce79b541a94385172be3ad0de83,cdd24f3eaa207f67d948c1876725b0f84654a623,OWNER,107914493,https://github.com/simonw/datasette/pull/524,, 208719043,MDExOlB1bGxSZXF1ZXN0MjA4NzE5MDQz,361,closed,0," Import pysqlite3 if available, closes #360 ",9599,,2018-08-16T00:52:21Z,2018-08-16T00:58:57Z,2018-08-16T00:58:57Z,2018-08-16T00:58:57Z,aae49fef3b75848628d824077ec063834e3e5167,,,0,da41daa168af8f29a1beb5278aed833cf3dc48ce,e1db8194e8c1d7f361fd0c1c3fc1b91d6aa920e5,OWNER,107914493,https://github.com/simonw/datasette/pull/361,, 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,, 181647717,MDExOlB1bGxSZXF1ZXN0MTgxNjQ3NzE3,207,closed,0,Link foreign keys which don't have labels,45057,"This renders unlabeled FKs as simple links. I can't see why this would cause any major problems. ![image](https://user-images.githubusercontent.com/45057/38768722-ea15a000-3fef-11e8-8664-ffd7aa4894ea.png) Also includes bonus fixes for two minor issues: * In foreign key link hrefs the primary key was escaped using HTML escaping rather than URL escaping. This broke some non-integer PKs. * Print tracebacks to console when handling 500 errors.",2018-04-14T13:27:14Z,2018-04-14T15:00:00Z,2018-04-14T15:00:00Z,2018-04-14T15:00:00Z,f2b940d6026677f6859d46a4f16fa402745d261d,,,0,d9858672da8f74e5530deead140e2e633e1c2627,ec6abc81e433c9bac1b9f085111785fc227e9e34,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/207,, 817942693,PR_kwDOBm6k_c4wwNCl,1589,closed,0,Typo in docs about default redirect status code,3556,,2022-01-10T19:14:36Z,2022-03-06T02:27:49Z,2022-03-06T01:58:32Z,2022-03-06T01:58:32Z,0499f174c063283aa9b589d475a32077aaf7adc5,,,0,d95bd658748172d88b04330950ef8f8d18b726c7,8c401ee0f054de2f568c3a8302c9223555146407,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/1589,, 647552141,MDExOlB1bGxSZXF1ZXN0NjQ3NTUyMTQx,1335,closed,0,Fix small typo,3243482,,2021-05-19T11:17:04Z,2021-05-22T23:53:34Z,2021-05-22T23:53:34Z,2021-05-22T23:53:34Z,459259175eddeed727fd8f08dc19a332779a4f6b,,,0,d91c18dcd956b414b57eaa2763d2b8f5f6f6427f,9b3b7e280ca718254b4ca15d40864297146a85b3,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/1335,, 181731956,MDExOlB1bGxSZXF1ZXN0MTgxNzMxOTU2,210,closed,0,"Start of the plugin system, based on pluggy",9599,Refs #14,2018-04-16T00:51:30Z,2018-04-16T00:56:16Z,2018-04-16T00:56:16Z,2018-04-16T00:56:16Z,33c7c53ff87c25445c68088ede49d062d9c31fe8,,,0,d75e57060d9ef4ef6ebab3600e542885b7467272,efbb4e83374a2c795e436c72fa79f70da72309b8,OWNER,107914493,https://github.com/simonw/datasette/pull/210,, 1504915653,PR_kwDOBm6k_c5ZszDF,2174,open,0,Use $DATASETTE_INTERNAL in absence of --internal,15178711,"#refs 2157, specifically [this comment](https://github.com/simonw/datasette/issues/2157#issuecomment-1700291967) Passing in `--internal my_internal.db` over and over again can get repetitive. This PR adds a new configurable env variable `DATASETTE_INTERNAL_DB_PATH`. If it's defined, then it takes place as the path to the internal database. Users can still overwrite this behavior by passing in their own `--internal internal.db` flag. In draft mode for now, needs tests and documentation. Side note: Maybe we can have a sections in the docs that lists all the ""configuration environment variables"" that Datasette respects? I did a quick grep and found: - `DATASETTE_LOAD_PLUGINS` - `DATASETTE_SECRETS` ---- :books: Documentation preview :books:: https://datasette--2174.org.readthedocs.build/en/2174/ ",2023-09-06T16:07:15Z,2023-09-08T00:46:13Z,,,0fc2896ffc5b49adba967a3d0ab8ac9ca119ba0e,,,0,d75b51950f6836d6e5a58accb48b1d7687dbdd1c,05707aa16b5c6c39fbe48b3176b85a8ffe493938,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/2174,, 216651317,MDExOlB1bGxSZXF1ZXN0MjE2NjUxMzE3,365,closed,0,fix small doc typo,418191,,2018-09-19T14:02:02Z,2019-12-19T02:30:33Z,2018-09-19T17:15:43Z,2018-09-19T17:15:43Z,1bcd54a834a2f9730d21095df855f6708c85c200,,,0,d3fb6a80c5878c73befa2a35e11a9ce28a6e1ab6,b7257a21bf3dfa7353980f343c83a616da44daa7,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/365,, 241418443,MDExOlB1bGxSZXF1ZXN0MjQxNDE4NDQz,392,closed,0,Fix some regex DeprecationWarnings,9599,,2018-12-29T02:10:28Z,2018-12-29T02:22:28Z,2018-12-29T02:22:28Z,2018-12-29T02:22:28Z,a2bfcfc1b1c60dac3526364af17c2fa2f3d41a0a,,,0,d245982aedaf7c54bf41d60ea7f0e0cf419c2b2f,eac08f0dfc61a99e8887442fc247656d419c76f8,OWNER,107914493,https://github.com/simonw/datasette/pull/392,, 587332473,MDExOlB1bGxSZXF1ZXN0NTg3MzMyNDcz,1252,closed,0,Add back styling to lists within table cells (fixes #1141),7476523,"This overrides the Datasette reset - see https://github.com/simonw/datasette/blob/d0fd833b8cdd97e1b91d0f97a69b494895d82bee/datasette/static/app.css#L35-L38 - to add back the default styling of list items displayed within Datasette table cells. Following this change, the same content as in the original issue looks like this: ![2021-03-09_02:57:32](https://user-images.githubusercontent.com/7476523/110411982-63e5ae80-8083-11eb-9b5c-e5dc825073e2.png) ",2021-03-09T03:00:57Z,2021-03-29T00:14:04Z,2021-03-29T00:14:04Z,2021-03-29T00:14:04Z,e72397d65b06b019521b6411243687464ac8d8ca,,,0,d22aa32cd9c0f798bcab917cc2024a371b4c0069,d0fd833b8cdd97e1b91d0f97a69b494895d82bee,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/1252,, 572254103,MDExOlB1bGxSZXF1ZXN0NTcyMjU0MTAz,1223,closed,0,Add compile option to Dockerfile to fix failing test (fixes #696),7476523,"This test was failing when run inside the Docker container: `test_searchable[/fixtures/searchable.json?_search=te*+AND+do*&_searchmode=raw-expected_rows3]`, with this error: ``` def test_searchable(app_client, path, expected_rows): response = app_client.get(path) > assert expected_rows == response.json[""rows""] E AssertionError: assert [[1, 'barry c...sel', 'puma']] == [] E Left contains 2 more items, first extra item: [1, 'barry cat', 'terry dog', 'panther'] E Full diff: E + [] E - [[1, 'barry cat', 'terry dog', 'panther'], E - [2, 'terry dog', 'sara weasel', 'puma']] ``` The issue was that the version of sqlite3 built inside the Docker container was built with FTS3 and FTS4 enabled, but without the `SQLITE_ENABLE_FTS3_PARENTHESIS` compile option passed, which adds support for using `AND` and `NOT` within `match` expressions (see https://sqlite.org/fts3.html#compiling_and_enabling_fts3_and_fts4 and https://www.sqlite.org/compile.html). Without this, the `AND` used in the search in this test was being interpreted as a literal string, and so no matches were found. Adding this compile option fixes this. --- I actually ran into this issue because the same test was failing when I ran the test suite on my own machine, outside of Docker, and so I eventually tracked this down to my system sqlite3 also being compiled without this option. I wonder if this is a sign of a slightly deeper issue, that Datasette can silently behave differently based on the version and compilation of sqlite3 it is being used with. On my own system I fixed the test suite by running `pip install pysqlite3-binary`, so that this would be picked up instead of the `sqlite` package, as this seems to be compiled using this option, . Maybe using `pysqlite3-binary` could be installed/recommended by default so a more deterministic version of sqlite is used? Or there could be some feature detection done on the available sqlite version, to know what features are available and can be used/tested?",2021-02-12T03:38:05Z,2021-03-07T12:01:12Z,2021-03-07T07:41:17Z,2021-03-07T07:41:17Z,d0fd833b8cdd97e1b91d0f97a69b494895d82bee,,,0,d1cd1f259c699fab3af01c4aa90035ed0242471a,9603d893b9b72653895318c9104d754229fdb146,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/1223,, 189707374,MDExOlB1bGxSZXF1ZXN0MTg5NzA3Mzc0,279,closed,0,Add version number support with Versioneer,198537,"I think that's all for getting Versioneer support, I've been happily using it in a couple of projects ... ``` In [2]: datasette.__version__ Out[2]: '0.22+3.g6e12445' ``` Repo: https://github.com/warner/python-versioneer Versioneer Licence: Public Domain (CC0-1.0) Closes #273 ",2018-05-22T15:39:45Z,2018-05-22T19:35:23Z,2018-05-22T19:35:22Z,2018-05-22T19:35:22Z,49f317752cfe89c5641165a490eef49e025752a7,,,0,d0d19453e8623cc98a2baa2cadaaff4cd2fee973,58b5a37dbbf13868a46bcbb284509434e66eca25,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/279,, 634821065,MDExOlB1bGxSZXF1ZXN0NjM0ODIxMDY1,1319,closed,0,Add Docker multi-arch support with Buildx,10801138,"This adds Docker support to extra CPU architectures (like arm) using [Docker's Buildx action](https://github.com/marketplace/actions/docker-setup-buildx) You can see [what that looks like on Dockerhub](https://hub.docker.com/r/blairdrummond/datasette/tags?page=1&ordering=last_updated) And how it lets Datasette run on a Raspberry Pi (top is my dockerhub, bottom is upstream) ![Screenshot from 2021-05-08 15-32-25](https://user-images.githubusercontent.com/10801138/117551210-a17a9f80-b012-11eb-966b-10e1590dd4a9.png) The workflow log [here](https://github.com/blairdrummond/datasette/runs/2535743398?check_suite_focus=true) (I subbed `blairdrummond` for datasetteproject in my branch) ",2021-05-08T19:35:03Z,2021-05-27T16:49:24Z,2021-05-27T16:49:24Z,2021-05-27T16:49:23Z,89822d10be0da446471986addea91d9766f12efb,,,0,cfca570f9ca010ff9036c75209dc42e78bbc945f,1b697539f5b53cec3fe13c0f4ada13ba655c88c7,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/1319,, 322529381,MDExOlB1bGxSZXF1ZXN0MzIyNTI5Mzgx,578,closed,0,Added support for multi arch builds,887095,Minor changes in Dockerfile and new Makefile to support Docker multi architecture builds. `make`will build one image per architecture and push them as one Docker manifest to Docker Hub. Feel free to change `IMAGE_NAME ` to `datasetteproject/datasette` to update your official Docker Hub image(s).,2019-09-29T18:43:03Z,2019-11-13T19:13:15Z,2019-11-13T19:13:15Z,,ae1aa0929b9e62a413ec9b4a40588e6aafe50573,,,0,ce6372bc6210ae52ac1951647b8fbaee40d64fc1,0fc8afde0eb5ef677f4ac31601540d6168c8208d,NONE,107914493,https://github.com/simonw/datasette/pull/578,, 643149273,MDExOlB1bGxSZXF1ZXN0NjQzMTQ5Mjcz,1323,closed,0,"Update click requirement from ~=7.1.1 to >=7.1.1,<8.1.0",49699333,"Updates the requirements on [click](https://github.com/pallets/click) to permit the latest version.
Release notes

Sourced from click's releases.

8.0.0

New major versions of all the core Pallets libraries, including Click 8.0, have been released! :tada:

This represents a significant amount of work, and there are quite a few changes. Be sure to carefully read the changelog, and use tools such as pip-compile and Dependabot to pin your dependencies and control your updates.

Changelog

Sourced from click's changelog.

Version 8.0.0

Released 2021-05-11

  • Drop support for Python 2 and 3.5.
  • Colorama is always installed on Windows in order to provide style and color support. :pr:1784
  • Adds a repr to Command, showing the command name for friendlier debugging. :issue:1267, :pr:1295
  • Add support for distinguishing the source of a command line parameter. :issue:1264, :pr:1329
  • Add an optional parameter to ProgressBar.update to set the current_item. :issue:1226, :pr:1332
  • version_option uses importlib.metadata (or the importlib_metadata backport) instead of pkg_resources. :issue:1582
  • If validation fails for a prompt with hide_input=True, the value is not shown in the error message. :issue:1460
  • An IntRange or FloatRange option shows the accepted range in its help text. :issue:1525, :pr:1303
  • IntRange and FloatRange bounds can be open (<) instead of closed (<=) by setting min_open and max_open. Error messages have changed to reflect this. :issue:1100
  • An option defined with duplicate flag names ("--foo/--foo") raises a ValueError. :issue:1465
  • echo() will not fail when using pytest's capsys fixture on Windows. :issue:1590
  • Resolving commands returns the canonical command name instead of the matched name. This makes behavior such as help text and Context.invoked_subcommand consistent when using patterns like AliasedGroup. :issue:1422
  • The BOOL type accepts the values "on" and "off". :issue:1629
  • A Group with invoke_without_command=True will always invoke its result callback. :issue:1178
  • nargs == -1 and nargs > 1 is parsed and validated for values from environment variables and defaults. :issue:729
  • Detect the program name when executing a module or package with python -m name. :issue:1603
  • Include required parent arguments in help synopsis of subcommands. :issue:1475
  • Help for boolean flags with show_default=True shows the flag name instead of True or False. :issue:1538
  • Non-string objects passed to style() and secho() will be converted to string. :pr:1146
  • edit(require_save=True) will detect saves for editors that exit very fast on filesystems with 1 second resolution. :pr:1050
  • New class attributes make it easier to use custom core objects throughout an entire application. :pr:938

... (truncated)

Commits

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
",2021-05-12T13:08:56Z,2021-05-22T23:54:48Z,2021-05-22T23:54:48Z,2021-05-22T23:54:48Z,5c3b3ef97eed55895cf48d4a9ee0635c1c4d03b8,,,0,cd695020e4fdfe31d3417d91911c9bdbce9a2f2e,9b3b7e280ca718254b4ca15d40864297146a85b3,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/1323,, 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,, 295065796,MDExOlB1bGxSZXF1ZXN0Mjk1MDY1Nzk2,544,closed,0,--plugin-secret option,9599,"Refs #543 - [x] Zeit Now v1 support - [x] Solve escaping of ENV in Dockerfile - [x] Heroku support - [x] Unit tests - [x] Cloud Run support - [x] Documentation ",2019-07-06T22:18:20Z,2019-07-08T02:06:31Z,2019-07-08T02:06:31Z,2019-07-08T02:06:31Z,973f8f139df6ad425354711052cfc2256de2e522,,4471010,0,ccf80604e931fba1893b5bab11de386fed82009e,fcfcae21e67cc15090942b1d2a47b5f016279337,OWNER,107914493,https://github.com/simonw/datasette/pull/544,, 529783275,MDExOlB1bGxSZXF1ZXN0NTI5NzgzMjc1,1117,closed,0,Support for generated columns,9599,"Refs #1116. My first attempt at this worked on my laptop but broke in CI, so I'm going to iterate on it in a pull request instead.",2020-11-30T20:10:46Z,2020-11-30T22:23:19Z,2020-11-30T21:29:58Z,2020-11-30T21:29:58Z,461670a0b87efa953141b449a9a261919864ceb3,,,0,ccdf2c650278b8b9465d3a2d7c916f3bb06c4f01,dea3c508b39528e566d711c38a467b3d372d220b,OWNER,107914493,https://github.com/simonw/datasette/pull/1117,, 645849027,MDExOlB1bGxSZXF1ZXN0NjQ1ODQ5MDI3,1330,closed,0,"Update aiofiles requirement from <0.7,>=0.4 to >=0.4,<0.8",49699333,"Updates the requirements on [aiofiles](https://github.com/Tinche/aiofiles) to permit the latest version.
Commits

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
",2021-05-17T13:07:31Z,2021-05-22T23:53:57Z,2021-05-22T23:53:56Z,2021-05-22T23:53:56Z,593d3e8173b45e20ff3c95afb3df7ceb85bf7fef,,,0,cc1b504793486dd7d14a9cb8248c4cf6db60b179,1b697539f5b53cec3fe13c0f4ada13ba655c88c7,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/1330,, 737420528,PR_kwDOBm6k_c4r9CTw,1474,closed,0,Update full_text_search.rst,72577720,"Change ""above"" to ""below"" to correct correspondence of reference to example.",2021-09-20T09:59:45Z,2021-10-13T21:10:23Z,2021-10-13T21:10:23Z,2021-10-13T21:10:23Z,31352914c427162f785d2610222a54a426d5215f,,,0,cbccacfd3f501e3f4bae6cc42dcbbdd9635ae509,b28b6cd2fe97f7e193a235877abeec2c8eb0a821,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/1474,, 1392480869,PR_kwDOBm6k_c5S_5Jl,2083,closed,0,Bump blacken-docs from 1.13.0 to 1.14.0,49699333,"Bumps [blacken-docs](https://github.com/asottile/blacken-docs) from 1.13.0 to 1.14.0.
Changelog

Sourced from blacken-docs's changelog.

1.14.0 (2023-06-13)

  • Support Python 3.12.
Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=blacken-docs&package-manager=pip&previous-version=1.13.0&new-version=1.14.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
---- :books: Documentation preview :books:: https://datasette--2083.org.readthedocs.build/en/2083/ ",2023-06-14T13:57:52Z,2023-06-29T14:31:55Z,2023-06-29T14:31:54Z,2023-06-29T14:31:54Z,ede62036180993dbd9d4e5d280fc21c183cda1c3,,,0,caee23e9ca8cbd4d189070188f90eabf97008b59,dda99fc09fb0b5523948f6d481c6c051c1c7b5de,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/2083,, 340211149,MDExOlB1bGxSZXF1ZXN0MzQwMjExMTQ5,631,closed,0,bugfix issue 572,3683993,closes bugfix issue #572 ,2019-11-13T02:46:50Z,2019-11-13T04:28:43Z,2019-11-13T04:28:42Z,2019-11-13T04:28:42Z,848dec4deb0d3c140a4e0394cac45fbb2593349b,,,0,ca43966e5aa832a377e4db5d411b6cc8b1c5b3ac,bbd00e903cdd49067ecdbdb60a4d225833a44b05,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/631,, 274468836,MDExOlB1bGxSZXF1ZXN0Mjc0NDY4ODM2,441,closed,0,Add register_output_renderer hook,45057,"This changeset refactors out the JSON renderer and then adds a hook and dispatcher system to allow custom output renderers to be registered. The CSV output renderer is untouched because supporting streaming renderers through this system would be significantly more complex, and probably not worthwhile. We can't simply allow hooks to be called at request time because we need a list of supported file extensions when the request is being routed in order to resolve ambiguous database/table names. So, renderers need to be registered at startup. I've tried to make this API independent of Sanic's request/response objects so that this can remain stable during the switch to ASGI. I'm using dictionaries to keep it simple and to make adding additional options in the future easy. Fixes #440",2019-04-29T18:03:21Z,2019-05-01T23:01:57Z,2019-05-01T23:01:57Z,2019-05-01T23:01:57Z,cf406c075433882b656e340870adf7757976fa4c,,,0,c9f941f06eb0268841de49407725917c74a8a2dc,11b352b4d52fd02a422776edebb14f12e4994d3b,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/441,, 440735814,MDExOlB1bGxSZXF1ZXN0NDQwNzM1ODE0,868,open,0,initial windows ci setup,702729,Picking up the work done on #557 with a new PR. Seeing if I can get this working.,2020-06-26T18:49:13Z,2021-07-10T23:41:43Z,,,b99adb1720a0b53ff174db54d0e4a67357b47f33,,,0,c99cabae638958ef057438a92cb9a182ba4f8188,180c7a5328457aefdf847ada366e296fef4744f1,FIRST_TIME_CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/868,, 1602618258,PR_kwDOBm6k_c5fhgOS,2209,open,0,Fix query for suggested facets with column named value,198537,"See discussion in https://github.com/simonw/datasette/issues/2208 ---- :books: Documentation preview :books:: https://datasette--2209.org.readthedocs.build/en/2209/ ",2023-11-15T14:13:30Z,2023-11-15T15:31:12Z,,,d628c1520160c030c26353792221925fdcd5cbe4,,,0,c88414be391a2e64208e35d33a69a246170499a6,452a587e236ef642cbc6ae345b58767ea8420cb5,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/2209,, 545264436,MDExOlB1bGxSZXF1ZXN0NTQ1MjY0NDM2,1159,open,0,Improve the display of facets information,552629,"This PR changes the display of facets to hopefully make them more readable. Before | After ---|--- ![image](https://user-images.githubusercontent.com/552629/103084609-b1ec2980-45df-11eb-85bc-68ab8df3e8d9.png) | ![image](https://user-images.githubusercontent.com/552629/103085220-620e6200-45e1-11eb-8189-5dd5d3e2569e.png) ",2020-12-24T11:01:47Z,2023-07-31T18:57:59Z,,,0276c5609da34bfb660f65212e1a367e637979d7,,3268330,0,c820abd0bcb34d1ea5a03be64a2158ae7c42920c,a882d679626438ba0d809944f06f239bcba8ee96,FIRST_TIME_CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/1159,, 883644303,PR_kwDOBm6k_c40q1eP,1665,closed,0,Pin setup-gcloud to v0 instead of master,408570,"setup-gcloud will be updating the branch name from master to main in a future release. Even though GitHub will establish redirects, this will break any GitHub Actions workflows that pin to master. This PR updates your GitHub Actions workflows to pin to v0, which is the recommended best practice.",2022-03-18T17:17:22Z,2022-03-23T19:31:10Z,2022-03-23T17:55:39Z,,5bd51d8eda65b25ce639a841944eb6b522768b2b,,,0,c811c2181e298a48fdf50523525813c37f99e592,30e5f0e67c38054a8087a2a4eae3fc4d1779af90,NONE,107914493,https://github.com/simonw/datasette/pull/1665,, 152360740,MDExOlB1bGxSZXF1ZXN0MTUyMzYwNzQw,81,closed,0,:fire: Removes DS_Store,50527,,2017-11-13T22:07:52Z,2017-11-14T02:24:54Z,2017-11-13T22:16:55Z,2017-11-13T22:16:55Z,06a826c3188af82f27bb6b4e09cc89b782d30bd6,,,0,c66d297eac556a7f4fd4dcdb15cfb9466fddac77,d75f423b6fcfc074b7c6f8f7679da8876f181edd,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/81,,